802.3ad
我在一些 LACP ( ) 不工作的服务器上有一个错误。我在所有服务器上都有一个bond0
带有两个eth
从属设备的绑定设备,每个接口都插在不同的交换机上,并且两个交换机都配置了 LACP。
一切似乎都正常,但网络工程师检测到某些 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 并不十分熟练)
谢谢
在深入研究了一些文档和一些测试之后,我发现当服务器使用绑定时,您需要使用模块中的
miimon
参数强制监控网络链接bonding
。在查看时,
/proc/net/bonding/bond0
我应该已经看到其中一个设备具有 MII 状态down
,实际上它在链接级别上处于启动状态。https://access.redhat.com/articles/172483#Link_Monitoring_Modes指出:
所以要在文件中报告你在选项
ifcfg-bond0
中传递它BONDING_OPTS
因此它强制每 100 毫秒轮询一次链接。
重新启动网络服务以应用更改。