Ubuntu:ethX接口拔出并拔回电缆后没有粘接

我试图在绑定中设置故障恢复配置,但我无法绕过接口配置。 我的界面如下:

auto bond0 iface bond0 inet static address 192.168.1.39 netmask 255.255.255.0 up /sbin/ifenslave bond0 eth1 eth3 down /sbin/ifenslave -d bond0 eth1 eth3 

我的/etc/modprobe.d/bonding.conf文件是:

 alias bond0 bonding options bonding mode=3 

我通过从其他系统运行ping来测试它。 我的债券状况如下:

 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (broadcast) MII Status: up MII Polling Interval (ms): 0 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth1 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 44:a8:42:03:68:2c Slave queue ID: 0 Slave Interface: eth3 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 44:a8:42:03:68:2c Slave queue ID: 0 

当我删除eth1电缆时,故障转移工作,eth3执行数据(ping仍然继续)。

如果我连接eth1并删除eth3,则ping停止,绑定状态不包含任何接口。 债券状况是:

 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (broadcast) MII Status: up MII Polling Interval (ms): 0 Up Delay (ms): 0 Down Delay (ms): 0 

我尝试了粘合中的所有模式(0到6)。 但是没有一个配置提供故障恢复支持。 我哪里错了?

编辑在这个答案中,我们使用了一个bond-primary接口集的active-backup绑定,允许故障转移在可用时返回主节点。 可以找到更多信息: https : //wiki.linuxfoundation.org/networking/bonding


Ubuntu中的绑定是一个不同的设置,就像在其他Linux发行版中一样,如RedHat。 我在Ubuntu中做了一些绑定配置,我会尽可能地在下面列出它。

看起来,你已经安装了ifenslave ,但如果没有,请安装ifenslave

 sudo apt-get install ifenslave 

接下来,看看/etc/modules并确保它有以下几行:

 loop lp rtc bonding 

/etc/network/interfaces文件中,设置loopbacketh1eth3接口:

 auto lo iface lo inet loopback auto eth1 iface eth1 inet manual bond-master bond0 bond-primary eth1 auto eth3 iface eth3 inet manual bond-master bond0 

现在,如果其中一个NIC连接失败,请将bond0接口设置为active-backup以进行故障转移:

 auto bond0 iface bond0 inet static address 192.168.1.39 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 bond-mode active-backup bond-miimon 100 bond-slaves none 

将更改保存到/etc/network/interfaces文件并重新启动网络服务:

 sudo /etc/init.d/networking restart 

现在您可以检查您的绑定设置。 确保您的bond0eth1eth3正确无误:

 sudo ethtool bond0 sudo ethtool eth1 sudo ethtool eth3 

通过从bond0删除eth1来检查故障转移现在是否有效:

 sudo ifenslave -d bond0 eth1 

检查您是否仍然可以ping网关:

 ping -c2 192.168.1.1 

eth1添加回bond0

 sudo ifenslave bond0 eth1 

希望这可以帮助!

Interesting Posts