两个接口,eth0
是CentOS 6 上eth1
网络绑定的一部分。bond0
在CentOS 5下一切正常,但升级到CentOS 6.6后,保持相同的配置,网络工作正常,但
尽管
/etc/modprobe.d/bonding.conf
使用options mode=1
或 Even设置mode=active-backup
,状态/proc/net/bonding/bond0
始终显示load balancing
(循环),而不是active-backup
应有的状态。bond0
重新启动后第一次对 LAN 地址(属于网络)执行 ping 操作,第一帧DUP!
(重复),在进一步的 ping 操作中不再发生 DUP。可能是由于循环赛代替主动备份
/etc/modprobe.d/bonding.conf:
alias bond0 bonding
options bond0 mode=1 miimon=100
ifcfg-bond0:
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
NETWORK=10.1.1.0
NETMASK=255.255.255.0
IPADDR=10.1.1.11
USERCTL=no
NM_CONTROLLED=no
ifcfg-eth0:
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:22:35:12:26:18
UUID=12fa32c2-e421-47f6-8d25-11414a664318
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
MASTER=bond0
SLAVE=yes
USERCTL=no
ifcfg-eth1:
DEVICE=eth1
BOOTPROTO=none
HWADDR=00:22:35:12:26:19
UUID=12fa32c2-e421-47f6-8d25-11414a664319
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
MASTER=bond0
SLAVE=yes
USERCTL=no
所有更新均已应用。网络管理器被禁用。
现在主要的问题似乎是模式,循环而不是主动备份。
答案1
经过一些更深入的调查,发现问题为round-robin和DUP问题。它们实际上是相关的。
- 循环 (0) 而不是主动备份 (1)
在 CentOS 5+ 上,尤其是 6.6 上,建议/首选BONDING_OPTS
直接使用该参数ifcfg-bond0
(而不是在绑定模块选项中,这是有道理的)
DEVICE=bond0
...
BONDING_OPTS="mode=1 miimon=100"
(模式可以指定为“1”或“活动备份”)
添加该行后,一切都按预期工作。
- 重复的平框架
在循环模式下,两个接口都会被使用。而当接口连接到两个不同的交换机时,早期的平回复可能重复
当首次使用绑定设备时,或者在闲置一段时间后,观察到短暂的重复流量突发的情况并不少见。通过向网络上的其他主机发出“ping”,并注意到 ping 标志的输出重复(通常每个从站一个),最容易观察到这一点。
例如,在主动备份模式下的绑定上,五个从属设备全部连接到一台交换机,输出可能如下所示:
# ping -n 10.0.4.2
PING 10.0.4.2 (10.0.4.2) from 10.0.3.10 : 56(84) bytes of data.
64 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.7 ms
64 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.8 ms (DUP!)
这不是由于绑定驱动程序中的错误造成的,而是由于有多少交换机更新其 MAC 转发表而产生的副作用。
切换到主动备份后,不再观察到 DUP。
这个知识渊博的文档对此进行了详细解释
https://www.kernel.org/doc/Documentation/networking/bonding.txt