仅使用一个网络接口绑定 balance-xor(模式 2)

仅使用一个网络接口绑定 balance-xor(模式 2)

我正在使用 Ubuntu 16.04.6 LTS 并绑定了 2 个网络接口,配置如下:

auto eno0
iface eno0 inet manual
        bond-master bond0

auto eno1
iface eno1 inet manual
        bond-master bond0

auto bond0
iface bond0 inet static
        bond-slaves none
        bond-miimon 100
        bond-mode balance-xor
       address [IP]
       netmask [IP]
       network [IP]
       broadcast [IP]
       gateway [IP]
       # dns-* options are implemented by the resolvconf package, if installed
       dns-nameservers 8.8.8.8 8.8.4.4

网络正在运行,但流量几乎仅通过一个接口传输:

       eno0                eno1               bond0
 KB/s in  KB/s out   KB/s in  KB/s out   KB/s in  KB/s out
 3436.42  100942.1     11.59      0.00   3447.97  100929.5
 3450.31  98191.30     10.32      0.00   3461.29  98208.12
 3426.57  94762.22      9.16      0.00   3436.65  94754.99
 3579.97  101313.8     10.66      0.00   3588.80  101302.2
 4029.16  97184.86      9.93      0.00   4038.42  97196.67
 3225.66  90987.53     13.48      0.00   3239.43  90991.49

当我拔下 eno0 时,流量会移至 eno1。当我将其重新插入时,流量又会回到 eno0。据我所知,流量应该或多或少均匀地分布在两个接口之间,因为它是由数千名用户生成的。

知道可能是什么问题吗?

编辑:

cat /sys/class/net/bond0/bonding/mode
balance-xor 2

答案1

如果 eno0 和 eno1 都连接到同一台交换机,或者两台交换机之间存在某种形式的互连。则需要在交换机上配置静态聚合。

这是因为交换机作为二层设备,会自动记录MAC地址和端口的映射关系(默认情况下,每个MAC地址一次只能映射到一个端口)。但在模式2下,bond0下的所有网卡都共享一个MAC地址。

如果您的交换机支持 LACP,请考虑使用 802.3ad(模式 4)。否则,如果没有交换机配置权限,则只能使用模式 1、5 或 6。

相关内容