绑定从属接口在 LACP 上未获得相同的聚合器 ID

绑定从属接口在 LACP 上未获得相同的聚合器 ID

某些服务器上有一个错误,LACP ( ) 无法正常工作。我在所有服务器上都安装了具有两个从属设备的802.3ad绑定设备,每个接口都插在不同的交换机上,并且两个交换机都配置了 LACP。bond0eth

一切似乎都正常,但网络工程师检测到物理设备启动时某些 MLAG(Arista LACP 实施)没有正常工作。

当我查看/proc/net/bonding/bond0受影响的服务器时,我发现每个接口都有不同的Aggregator ID。在正常服务器上Aggregator ID是相同的。

可以通过关闭和打开交换机上的端口来重现此问题,然后我们可以观察到尽管物理链路已启动,但 MLAG 已关闭。此错误存在于 RHEL 6 和 7 上(但并非所有服务器都受到影响)。

配置

#/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
MACADDR=14:02:ec:44:e9:80
IPADDR=xxx.xxx.xxx.xxx
NETMASK=xxx.xxx.xxx.xxx
BONDING_OPTS="mode=802.3ad lacp_rate=slow xmit_hash_policy=layer3+4"
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
NM_CONTROLLED=no
PEERDNS=no

# /etc/sysconfig/network-scripts/ifcfg-eno49 (same for other interface)
HWADDR=14:02:ec:44:e9:80
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
NM_CONTROLLED=no
PEERDNS=no

我们现在有一个解决方法 - 在服务器上设置下载和上传eth界面 - 但这并不理想。

为了检查 LACP 协议,我做了

tcpdump -i eno49 -tt -vv -nnn ether host 01:80:c2:00:00:02

我可以在一个接口上每 30 秒看到一个数据包,但在另一个接口上我每 1 秒看到一个数据包,因为它正在尝试建立 LACP 会话。

您有办法排除故障并修复该问题吗?

(如果我没有使用正确的网络术语,抱歉,我对 LACP 不太熟练)

谢谢

答案1

在查阅了一些文档并进行了测试之后,我发现当服务器使用绑定时,您需要使用模块miimon中的参数强制监控网络链接bonding

查看时/proc/net/bonding/bond0我应该看到其中一个设备具有 MII 状态down,实际上它是在链路级别上。

https://access.redhat.com/articles/172483#Link_Monitoring_Modes指出:

miimon指定链路监控模式(或arp_interval和参数)至关重要arp_ip_target。配置没有链路监控模式的绑定不是绑定驱动程序的有效使用

因此,要在文件中报告该情况,请在选项ifcfg-bond0中传递该信息BONDING_OPTS

#/etc/sysconfig/network-scripts/ifcfg-bond0
...
BONDING_OPTS="mode=802.3ad lacp_rate=slow xmit_hash_policy=layer2+2 miimon=100"
...

因此它强制每 100 毫秒轮询一次链接。

重新启动网络服务以应用更改。

相关内容