某些服务器上有一个错误,LACP ( ) 无法正常工作。我在所有服务器上都安装了具有两个从属设备的802.3ad
绑定设备,每个接口都插在不同的交换机上,并且两个交换机都配置了 LACP。bond0
eth
一切似乎都正常,但网络工程师检测到物理设备启动时某些 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 毫秒轮询一次链接。
重新启动网络服务以应用更改。