Ubuntu:拔下并重新插入电缆后,ethX 接口未绑定

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)。但没有一个配置提供故障恢复支持。我哪里做错了?

答案1

编辑2019-01-10:这些说明适用于 Ubuntu 16.04 及更早版本。我将尝试使用 18.04 的说明进行更新。

在此答案中,我们使用active-backup绑定和bond-primary接口集,允许故障转移在主服务器可用时返回到主服务器。更多信息可以找到:https://wiki.linuxfoundation.org/networking/bonding


Ubuntu 中的绑定设置与 RedHat 等其他 Linux 发行版中的设置不同。我在 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

现在设置您的bond0接口,active-backup以便在其中一个 NIC 连接发生故障时进行故障转移:

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

eth1通过删除以下内容来检查故障转移现在是否有效bond0

sudo ifenslave -d bond0 eth1

检查是否仍可以 ping 通网关:

ping -c2 192.168.1.1

添加eth1bond0

sudo ifenslave bond0 eth1

希望这可以帮助!

相关内容