我正在使用 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。