手机收到keepalived vip无法ping通的告警,查看服务器和服务时发现vip在服务器上,服务也正常。
只能在本机ping通,跨网段无法ping通。
切换keepalived vip至slave后恢复,但是在切回master后过了一会又无法ping通。
查看tcpdump抓包,未发现有vrid相同的情况,如果相同从日志也能看出。
1、网管反馈网络正常
2、有点怀疑是apr绑定的问题了,于是清理该vip的arp绑定
虚拟IP,就是一个未分配给真实主机的IP,也就是说对外提供数据库服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个 IP 中的任意一个都可以连接到这台主机,所有工程中数据库链接一项配置的都是这个虚IP,当服务器发生故障无法对外提供服务时,动态将这个虚IP切换到备用主机。这个切换的过程我们称之为IP漂移。
其实现原理主要是靠 TCP/IP 的 ARP 协议。
因为 IP 地址只是一个逻辑 地址,在以太网中 MAC 地址才是真正用来进行数据传输的物理地址,每台主机中都有一个 ARP缓存,存储同一个网络内的IP地址与 MAC 地址的对应关系,以太网中的主机发送数据时会先从这个缓存中查询目标 IP 对应的MAC地址,会向这个 MAC 地址发送数据。
操作系统会自动维护这个缓存,这就是整个实现的关键。
所有在Linux系统下 arp -d $ip 命令只能清除一个IP地址的对应MAC地址缓存,可以使用组合命令操作。
需要root权限才能执行此清理命令。
# arp -n | awk '/^[1-9]/{system("arp -d "$1)}'
# arp -n | awk '/^[1-9]/{print "arp -d " $1}' | sh -x
image.png
使用ip命令清除某一网络接口的arp
# ip neigh flush dev eth0
主动广播新IP MAC地址的命令
# arping -c 5 -U -I eth0 192.168.4.100
-c 表示要发多少个广播包
-U 非请求模式,更新同网段设备上的arp缓存
-I 通过哪个接口发送数据包,这个会使用到这个网卡的mac的地址
参考
如何清空ARP缓存
https://www.ahaoyw.com/article/295.html
https://zhidao.baidu.com/question/1754004077951336428.html
网友评论