在使用 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 包进行健康检查产生的正常现象。

LVS-DR 健康检查 TCP 连接查询问题分析

原文地址: https://www.cveoy.top/t/topic/qamI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录