【发布时间】:2014-01-07 01:39:19
【问题描述】:
我正在通过持久连接连接到远程服务器,并且我和远程服务器之间的网络设备使用 VRRP 创建 VIP 并在一个设备或链接发生故障时进行故障转移。
故障转移是否会导致 TCP 连接中断,我需要处理这种情况以重新连接远程服务器,或者我可以忽略这一点,就像 vmware 的 VMotion 一样?
【问题讨论】:
标签: tcp
我正在通过持久连接连接到远程服务器,并且我和远程服务器之间的网络设备使用 VRRP 创建 VIP 并在一个设备或链接发生故障时进行故障转移。
故障转移是否会导致 TCP 连接中断,我需要处理这种情况以重新连接远程服务器,或者我可以忽略这一点,就像 vmware 的 VMotion 一样?
【问题讨论】:
标签: tcp
这取决于应用程序的保活和 VRRP 通告间隔设置。但很可能忽略它应该没问题。
故障转移是 VRRP 最重要的功能,可确保使用 VIP 的主机在出现中断(例如主 VRRP 路由器出现故障)时受到的影响最小。也就是说,仍然存在影响,即失去通过 VIP 的连接。
您可以检查 VRRP 配置以估计丢失的持续时间。如果 VRRP 通告间隔(即 keepalive 间隔)配置为 1 秒(这是版本 2 和 3 的默认值),则备份节点需要 1 秒 * 3 = 3 秒才能检测到故障,再加上一些备份将其状态更改为主控的时间。所以总共在3-4秒之间。如果广告间隔比这更短,则无连接的时间也将更短,遵循此处描述的相同公式。
所以真正的问题是,在与 LAN 外部没有连接的情况下会发生什么? TCP 本质上不介意 3 秒的空闲时间或建立连接后的任何持续时间,因此只要 VRRP 故障转移完成,TCP 就不会注意到任何事情。
但是,应用程序可以实现自己的 keepalive 来监控 TCP 上的连接。如果该间隔比 VRRP 通告间隔短,它可能会认为 VRRP 故障转移期间连接中断。但是应用程序将其保持活动设置为短至几秒钟的情况应该很少见。例如,对于 SSH,通常设置为 60 秒。
总而言之,这应该不是问题。但如果是,请检查应用程序保活和 VRRP 通告间隔的设置,并根据需要进行调整。请注意,您可能不希望 VRRP 通告间隔太短,因为它会生成不必要的保活,这会使用 LAN 带宽。
【讨论】: