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