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
文件中,设置loopback
, eth1
和eth3
接口:
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
现在您可以检查您的绑定设置。 确保您的bond0
, eth1
和eth3
正确无误:
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
希望这可以帮助!