CentOS 6 接口绑定、循环而不是主动备份、重复帧

CentOS 6 接口绑定、循环而不是主动备份、重复帧

两个接口,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

相关内容