Linux多网卡情况下虚拟IP快速生效的方法


物理环境:双机+多网卡+其中一个网卡绑定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命令。不过晚上好像有类似的脚本和源码,可以实现同样的功能。

相关内容