RHEL 6.4:模式1通道绑定不能故障转移

我正在运行带有两个板载Broadcom NetXtreme II BCM5708 1000Base-T NIC的HP ML 350 G5上的RHEL 6.4,kernel-2.6.32-358.el6.i686。 我的目标是将两个接口绑定到一个mode=1故障转移对。

我的问题是,尽pipe有证据certificate债券已经build立并被接受,但是将电缆从主NIC拔出将导致所有通信停止。

ifcfg-etho和ifcfg-eth1

首先,ifcfg-eth0:

 DEVICE=eth0 HWADDR=00:22:64:F8:EF:60 TYPE=Ethernet UUID=99ea681d-831b-42a7-81be-02f71d1f7aa0 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=none MASTER=bond0 SLAVE=yes 

接下来,ifcfg-eth1:

 DEVICE=eth1 HWADDR=00:22:64:F8:EF:62 TYPE=Ethernet UUID=92d46872-eb4a-4eef-bea5-825e914a5ad6 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=none MASTER=bond0 SLAVE=yes 

的ifcfg-bond0

我的债券的configuration文件:

 DEVICE=bond0 IPADDR=192.168.11.222 GATEWAY=192.168.11.1 NETMASK=255.255.255.0 DNS1=192.168.11.1 ONBOOT=yes BOOTPROTO=none USERCTL=no BONDING_OPTS="mode=1 miimmon=100" 

/etc/modprobe.d/bonding.conf

我有一个/etc/modprobe.d/bonding.conf文件,因此被填充:

 alias bond0 bonding 

ip地址输出

债券到了,我可以通过债券的IP地址访问服务器的公共服务:

 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000 link/ether 00:22:64:f8:ef:60 brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000 link/ether 00:22:64:f8:ef:60 brd ff:ff:ff:ff:ff:ff 4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether 00:22:64:f8:ef:60 brd ff:ff:ff:ff:ff:ff inet 192.168.11.222/24 brd 192.168.11.255 scope global bond0 inet6 fe80::222:64ff:fef8:ef60/64 scope link valid_lft forever preferred_lft forever 

绑定内核模块

…已加载:

 # cat /proc/modules | grep bond bonding 111135 0 - Live 0xf9cdc000 

/ SYS /类/净

/sys/class/net文件系统显示了很好的东西:

 cat /sys/class/net/bonding_masters bond0 cat /sys/class/net/bond0/operstate up cat /sys/class/net/bond0/slave_eth0/operstate up cat /sys/class/net/bond0/slave_eth1/operstate up cat /sys/class/net/bond0/type 1 

在/ var / log / messages中

日志文件中不会出现任何问题。 事实上,一切看起来都很开心。

 Jun 15 15:47:28 rhsandbox2 kernel: Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009) Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: setting mode to active-backup (1). Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: setting mode to active-backup (1). Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: setting mode to active-backup (1). Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: setting mode to active-backup (1). Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: Adding slave eth0. Jun 15 15:47:28 rhsandbox2 kernel: bnx2 0000:03:00.0: eth0: using MSI Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: making interface eth0 the new active one. Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: first active interface up! Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: enslaving eth0 as an active interface with an up link. Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: Adding slave eth1. Jun 15 15:47:28 rhsandbox2 kernel: bnx2 0000:05:00.0: eth1: using MSI Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: enslaving eth1 as a backup interface with an up link. Jun 15 15:47:28 rhsandbox2 kernel: 8021q: adding VLAN 0 to HW filter on device bond0 Jun 15 15:47:28 rhsandbox2 kernel: bnx2 0000:03:00.0: eth0: NIC Copper Link is Up, 1000 Mbps full duplex Jun 15 15:47:28 rhsandbox2 kernel: bnx2 0000:05:00.0: eth1: NIC Copper Link is Up, 1000 Mbps full duplex 

所以有什么问题?!

从eth0中拔出网线会导致所有的通信变黑。 问题是什么,我应该采取什么进一步的步骤来解决这个问题?

编辑:

进一步故障排除

networking是一个单独的子网,由ProCurve 1800-8G交换机提供单个VLAN。 我已经添加了primary=eth0 ifcfg-bond0并重新启动networking服务,但是这并没有改变任何行为。 我检查/sys/class/net/bond0/bonding/primary在添加primary=eth1之前和之后,它有一个空值,我不知道是好还是坏。

eth1的电缆被移除时,挂载/var/log/messages显示无非是:

 Jun 15 16:51:16 rhsandbox2 kernel: bnx2 0000:03:00.0: eth0: NIC Copper Link is Down Jun 15 16:51:24 rhsandbox2 kernel: bnx2 0000:03:00.0: eth0: NIC Copper Link is Up, 1000 Mbps full duplex 

我在ifcfg-bond0BONDING_OPTS节中添加了use_carrier=0来启用MII / ETHTOOL ioctls。 重新启动networking服务后,症状没有改变。 从eth0拉电缆导致所有的networking通信停止。 再一次, /var/log/messages错误将保存为该端口上的链接closures的通知。

读。 你的。 CONFIGS。

而当失败…

读。 所有。 输出。

你看到ifcfg-bond0什么吗? 不,你了解 ifcfg-bond0什么吗?
滑企鹅的世界是miimmon=100
哦,对不起,你是说miimon=100

是的,我认为你的意思是miimon而不是miimmon

此外,一个很大的赠品是,当你重新启动你的networking服务,你看到这个:

 service network restart Shutting down interface bond0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface bond0: ./network-functions: line 446: /sys/class/net/bond0/bonding/miimmon: No such file or directory ./network-functions: line 446: /sys/class/net/bond0/bonding/miimmon: No such file or directory [ OK ] 

注意你input的所有内容,当你犯不可避免的打字错误时,要特别注意你看到的每一个输出。

你是一个坏人,你应该感觉不好。

尝试指定其中一个NICS作为主从服务器。

 DEVICE=bond0 IPADDR=192.168.11.222 GATEWAY=192.168.11.1 NETMASK=255.255.255.0 DNS1=192.168.11.1 ONBOOT=yes BOOTPROTO=none USERCTL=no BONDING_OPTS="mode=1 miimmon=100 primary=eth0" 

RH的更多文档:

primary =指定主设备的接口名称,例如eth0。 主设备是要使用的第一个绑定接口,除非失败,否则不会被放弃。 当绑定界面中的一个NIC更快,因此能够处理更大的负载时,此设置特别有用。 绑定接口处于主备模式时,该configuration才有效。 有关更多信息,请参阅/usr/share/doc/kernel-doc-/Documentation/networking/bonding.txt。

添加下列绑定选项downdelay = xxxx(以milisec为单位),在检测到失败之后,eth失败,并将主从设备设置为剩余的。 如果此参数不在bonding_opt中,则绑定将检测到失败(因为您包含miimom = yyyy),但它永远不会失败eth0。 你可以通过查看/ proc / net / bonding / bondX文件来看到这一点。

无论如何,在RHEL6.3(与您的版本几乎相同)的情况下,我们还遇到了其他一些与绑定相关的问题,例如从交换机上看到的重复的mac地址。

祝你好运。