物理環境:雙機+多網卡+其中一個網卡綁定2個IP+帶arp緩存的交換機
使用場景:雙機主備切換,通過虛擬一個IP地址來統一對外提供服務
問題:主備切換後,虛擬IP綁定成功,但外面不能ping同虛擬IP,也就是虛擬IP不能快速生效
注意:如果使用普通的二層交換機,則不存在該問題,因為普通交換機沒有arp緩存。當然,通過調整交換機上的arp緩存失效時間,可以緩解該問題,但通常情況下,交換機是別人的,不能隨便動。
解決方法:主動發起arp地址更新,也就是向交換機廣播一個arp地址更新指令即可。
linux下,直接使用arping命令即可。
arping -I eth3 -s 172.16.251.54 -b -c 1 172.16.251.49
-I:指定綁定虛擬IP的物理接口
-s:指定要變更MAC地址的虛擬IP
-b:廣播模式
-c:發送廣播包的數量控制
最後為要通知arp地址變更的三層交換上的網關。
主備服務器切換後,綁定虛擬IP的服務器直接執行上面的指令,即可告訴交換機:該虛擬IP的MAC地址變更了,及時更新。
這樣,通過交換機訪問虛擬IP時,交換機就能及時使用新的MAC地址,從而快速上虛擬IP生效。
windows下沒有arping命令。不過晚上好像有類似的腳本和源碼,可以實現同樣的功能。