LVS-DR 健康检查 TCP 连接查询问题分析
在使用 LVS-DR 配置进行 TCP 健康检查时,DR 服务器上无法查询到健康检查的 TCP 连接。这是因为在 LVS-DR 模式下,健康检查是由 Director 服务器来完成的,而不是由 Real Server 节点来完成的。Director 服务器会发送 SYN 包给 Real Server 节点进行健康检查,不会建立完整的 TCP 连接。因此,即使在 Director 服务器上查到了到 '10.2.1.10:4444' 端口的 TIME_WAIT 状态的连接,这些连接并不是健康检查的 TCP 连接。
配置案例:
virtual_server 10.2.1.2 1234 {
delay_loop 6
lb_algo wlc
lb_kind DR
protocol TCP
real_server 10.2.1.10 1234 {
weight 10
TCP_CHECK {
connect_port 4444
connect_timeout 3
retry 3
delay_before_retry 1
}
}
}
TIME_WAIT 状态连接的产生原因:
Director 服务器在发送 SYN 包进行健康检查后,Real Server 节点会回复 SYN-ACK 包。由于 Director 服务器不会建立完整的 TCP 连接,因此会将该连接置为 TIME_WAIT 状态。这是 TCP 协议的正常行为,用于避免旧连接数据包干扰新连接。
总结:
在 LVS-DR 配置中,DR 服务器上的 TIME_WAIT 状态连接并非健康检查的 TCP 连接,而是 Director 服务器发送 SYN 包进行健康检查产生的正常现象。
原文地址: https://www.cveoy.top/t/topic/qamI 著作权归作者所有。请勿转载和采集!