Debian

Linux 綁定模式 802.3ad 未啟動

  • August 20, 2021

在執行Debian Stretch的伺服器上,我使用802.3ad 模式配置了一個bond0 ,如下所示:

auto bond0
iface bond0 inet manual
       slaves eth0 eth2
       bond_miimon 100
       bond_mode 802.3ad

bond0介面已啟動並正在執行,但它正在使用負載**平衡(循環)**模式:

root@servir01:~# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 2
Permanent HW addr: e4:1f:13:65:f0:c4
Slave queue ID: 0

Slave Interface: eth2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 2
Permanent HW addr: e4:1f:13:36:a3:ac
Slave queue ID: 0

在交換機上,LAG 是在啟用 LACP 的情況下正確創建的,並且它的兩個埠都已啟動並正在執行:

[滯後狀態[1]

Unit3/port1 的狀態

Unit4/port1的狀態

同一台機器有另一個以相同方式配置的綁定介面**(eth1 和 eth3 介面上的bond1)**,連接在相同的交換機上,並且 LACP 工作良好:

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: e4:1f:13:65:f0:c6
Active Aggregator Info:
   Aggregator ID: 1
   Number of ports: 2
   Actor Key: 9
   Partner Key: 1010

為什麼bond0 介面不想啟用LACP?我哪裡錯了?

老問題,但由於它在搜尋中很早就出現了,而且我有一個類似的設置,同樣的問題。這是我如何讓它工作的,(在 Debian stretch 上使用 ifenslave)……

/etc/網路/介面…

   # The loopback network interface
   auto lo
   iface lo inet loopback

   # bond0 is the bonded NIC and can be used like any other normal NIC.
   # bond0 is configured using static addressing.
   auto bond0
   iface bond0 inet static
   address <your static address>
   gateway <your gateway>
   # bond0 uses standard IEEE 802.3ad LACP bonding protocol
   bond-mode 4
   bond-miimon 100
   bond-lacp-rate 0 (This is on a small NAS, so no rush)
   bond-slaves none

   # eth0 is manually configured, and enslaved to the "bond0" pseudo NIC
   allow_hotplug eth0
   auto eth0
   iface eth0 inet manual
   bond-master bond0

   # eth1 ditto, thus creating a 2-link bond.
   allow_hotplug eth1
   auto eth1
   iface eth1 inet manual
   bond-master bond0

原因是什麼?

好吧,網卡會出現,綁定驅動程序會抓住它們,然後網卡會重新配置為從站,綁定驅動程序會恐慌,因為它沒有從站,並且像無頭雞一樣到處亂跑(循環)。

現在,bonding 驅動程序出現,發現它沒有從設備,所以它坐下來等待…… NIC 看到他們有一個主設備,所以他們去報告,從 bond0 獲取他們的地址,然後開始工作他們都走了。

在 debian 10 上測試(在閱讀了這個執行緒和 debian 綁定文件之後)

配置在下面(沒有編輯其他文件 - 模組或類似的東西)

auto enp4s0f2
allow-hotplug enp4s0f2
iface enp4s0f2 inet manual
       bond-master bond1
       bond-mode 4

auto enp4s0f3
allow-hotplug enp4s0f3
iface enp4s0f3 inet manual
       bond-master bond1
       bond-mode 4

auto bond1
iface bond1 inet static
       address 1.2.3.4
       netmask 255.255.255.0
       bond-mode 4
       bond-slaves none
       bond-miimon 100
       bond-lacp-rate 1
       bond-updelay 800
       bond-downdelay 400
       bond_xmit_hash_policy layer2+3    # optional, sets the bonding algorithm

什麼是新的:

  • 介面在綁定之前啟動
  • 還指定了綁定模式@介面級別
  • 債券沒有定義奴隸

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