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命令。不过晚上好像有类似的脚本和源码,可以实现同样的功能。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/4d5839e8008a2e523765c9f9577c8b58.html