綁定從介面在 LACP 上未獲得相同的聚合器 ID
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指出:
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 毫秒輪詢一次連結。
重新啟動網路服務以應用更改。