我使用持續連接連接到遠程服務器,並且我和遠程服務器之間的網絡設備使用VRRP創建VIP,並在一個設備或鏈接失敗時執行故障切換。VRRP故障轉移是否會導致TCP連接關閉並需要重新連接?
故障切換是否會導致TCP連接斷開,我需要處理這種情況以重新連接遠程服務器,或者我可以忽略這一點,就像vmware的VMotion一樣?
我使用持續連接連接到遠程服務器,並且我和遠程服務器之間的網絡設備使用VRRP創建VIP,並在一個設備或鏈接失敗時執行故障切換。VRRP故障轉移是否會導致TCP連接關閉並需要重新連接?
故障切換是否會導致TCP連接斷開,我需要處理這種情況以重新連接遠程服務器,或者我可以忽略這一點,就像vmware的VMotion一樣?
這取決於應用keepalive和VRRP通告時間間隔設置。但最有可能的是忽略它。
故障轉移是VRRP最重要的功能,可確保在發生故障時(例如Master VRRP路由器停機),使用VIP的主機受到的影響最小。也就是說,還有一個影響,就是通過VIP失去連接。
您可以檢查VRRP配置以估計損失的持續時間。如果VRRP通告時間間隔(即keepalive interval)配置爲1秒(這是版本2和版本3的默認值),則備份節點需要1秒* 3 = 3秒來檢測故障,再加上一些備份時間將其狀態更改爲主。所以總共需要3-4秒。如果廣告時間間隔短於此時間,則無連接時間也將縮短,遵循此處所述的相同公式。
所以問題是,在沒有連接到LAN之外的情況下會發生什麼? TCP 在建立連接後固有地不介意3秒或任何持續時間的空閒時間,因此只要VRRP故障切換完成,TCP就不會注意到任何事情。
但是,應用程序可能會實現自己的keepalive來監視通過TCP的連接。如果該時間間隔小於VRRP通告時間間隔,則可能認爲VRRP故障切換期間連接中斷。但是應用程序會將其存活時間設置爲幾秒鐘,這應該是非常罕見的。例如,對於SSH,通常設置爲60秒。
總之,它不應該是一個問題。但是,如果是,請檢查應用程序保持時間和VRRP通告間隔的設置,並根據需要進行調整。請注意,您可能不希望VRRP通告時間間隔太短,因爲它會產生比使用LAN帶寬所需的更多Keepalive。