Networking

綁定從介面在 LACP 上未獲得相同的聚合器 ID

  • November 5, 2020

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_intervalarp_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 毫秒輪詢一次連結。

重新啟動網路服務以應用更改。

引用自:https://serverfault.com/questions/925394