因为arp 问题导致的vip 故障与解决方案

这几天进行了关于vip 方面的检测的 测试,

遇到了一个奇怪的问题,vip 服务正常,数据库可以通过vip访问,但是从库在ping vip 的时候,却告警ping 不通,

出现的次数也不多,每天有2,3次的样子,检测过程经过了容错包装,也不至于会导致系统误切换。

但是还是搞清楚,心里才踏实。 

联合网络做了些分析: 

经过查看当时的日志还是发现了一些端倪的: 

从机会通过arping 去确认vip 是否存活, 然后我们就在这里发现了问题了。 


这套设备是启动了双网卡的,一个工作网络,一个是心跳网络

最后发现 在ping 之前发出的那个arp 相应包,是不是工作网卡的mac 地址

而是心跳 网卡的mac 地址

然后ping 完后,就变工作网卡的mac 地址了。 



在网络同事的帮助下,分析了原因: 


默认情况,linux 的arp 响应是出在混杂模式的, 
主机默认是开启arp 混杂模式的,
就说这台机器上如果有多个网卡启动,那么在混杂模式下,我这个网卡收到arp 询问的时候,如果如果这台机器上配置了对应的ip 但不是配置我当前的网卡上,那么这个网卡还是可能会响应arp 询问包,把自己的arp 回给对方。

这个情况下,就导致对方询问的arp 不是目标ip 所在的网卡。 

从日志里也得到了证实, 我们从库会通过arp 广播来确定确定vip 是否在运行,这个时候某些情况下,我们接受的arp 回应是主库的另外一个网卡的arp 不是vip 所在网卡的arp ,在接下来的ping 的检测,因为在不同的网段,arp 表中标记的arp 跟vip 不在同一个子网里,导致ping 不通。


这样就解释的通,为什么ping 不同vip 

解决方案: 
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2


这两个参数写到/etc/sysctl.conf 里面 


怎么生效,就不说了吧?

sysctl  -p 后 

是需要重启网卡生效的 



一般情况下都不太可能用到这种混杂模式的,所以在装机的就处理掉最好,免得梦多。 


祝玩得愉快!!



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/133735/viewspace-1182301/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/133735/viewspace-1182301/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值