bonding-question
bonding-question

问题现象

SW1和SW2主机之间基于VRRP协议做的主备,两台交换机的IP分别是192.168.20.2/3 ,两台主机间的VIP是192.168.20.1 。serverA主机ping serverB不通, ping serverC主机是通的。几台主机上都没有开启防火墙和禁ping策略,初始怀疑是交换机上有策略。与网络工程师一起定位,确认交换机上没有策略,分别在主机上ping两台SW的网关,发现192.168.20.1/2 两个可以ping通,192.168.20.3不能ping通,其他主机发现不存在该问题。主备切换后,发现192.168.20.2不通ping通。

问题处理

通过查看主机的配置发现如下:

1[root@ZJHZ-RTS-REDIS2 network-scripts]# cat ifcfg-bond1
2DEVICE=bond1
3BOOTPROTO=none
4IPADDR=192.168.20.87
5NETMASK=255.255.255.0
6USERCTL=no
7ONBOOT=yes
8BONDING_OPTS="miimon=100 mode=1"
9BONDING_OPTS="mode=1 arp_interval=1000 arp_ip_target=192.168.20.1 arp_validate=all"

发现配置了两台BONDING_OPTS配置,通过注释下面一条配置,down/up网卡接口后,主机ping问题解决。最后一条配置的意思如下:

mode=1表示主备模式

arp_interval =1000表示1000毫秒发一次arp请求

arp_ip_target=192.168.20.1表示主网卡发出的arp请求,IP一般是服务器网关地址,如果网关不通,在/proc/net/bonding/bond0里会一会down,一会up。

arp_validate=all arp保持验证,一定要配置不然无法实现预期的网卡切换。

按该条配置完成后,如果交换机的上联出现问题,网络不通,它就会把链路转到另一块网卡上。

事后分析

由于这台主机某业务团队自维的,配置上并有按工程标准进行。目前怀疑是配置了两条BONDING_OPTS导致的,由于上面一条配置是常用配置,下面一条的arp配置尚不确认和上面两台交换机的VRRP配置是否有冲突。这个有机会再测试吧。