共计 533 个字符,预计需要花费 2 分钟才能阅读完成。
物理环境:双机 + 多网卡 + 其中一个网卡绑定 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 命令。不过晚上好像有类似的脚本和源码,可以实现同样的功能。
正文完
星哥玩云-微信公众号