systemd LACP 绑定混乱了 NIC 的聚合 ID

systemd LACP 绑定混乱了 NIC 的聚合 ID

带有 lts 内核的 arch linux

systemd networkd 配置为使用智能交换机 (DGS-1210-28) 将两个 NIC 绑定到 LACP 中继。但操作系统启动后失败——只有一个网卡用于绑定连接。如/proc/net/bonding/*所示

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer3+4 (1)
MII Status: up
MII Polling Interval (ms): 1000
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: **:**:**:**:**:ad
Active Aggregator Info:
        Aggregator ID: 2
        Number of ports: 1
        Actor Key: 9
        Partner Key: 3
        Partner Mac Address: **:**:**:**:**:6e

Slave Interface: enp7s0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: **:**:**:**:**:67
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: churned
Partner Churn State: churned
Actor Churned Count: 1
Partner Churned Count: 1
details actor lacp pdu:
    system priority: 65535
    system mac address: **:**:**:**:**:ad
    port key: 0
    port priority: 255
    port number: 1
    port state: 69
details partner lacp pdu:
    system priority: 65535
    system mac address: 00:00:00:00:00:00
    oper key: 1
    port priority: 255
    port number: 1
    port state: 1

Slave Interface: enp2s0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: **:**:**:**:**:ef
Slave queue ID: 0
Aggregator ID: 2
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
details actor lacp pdu:
    system priority: 65535
    system mac address: **:**:**:**:**:ad
    port key: 9
    port priority: 255
    port number: 2
    port state: 61
details partner lacp pdu:
    system priority: 32768
    system mac address: **:**:**:**:**:6e
    oper key: 3
    port priority: 128
    port number: 15
    port state: 61

请注意,bond 的 AggregatorID=2,而未使用(搅动的)NIC 的 AggregatorID=1,这很奇怪。我希望债券的 AggregatorID=1

这可以通过物理端口重新连接搅动的 NIC 来“修复”。此后,两个 NIC 均通过绑定使用。这可以在内核日志中看到:

>> OS startup

[   ]: r8169 0000:07:00.0 enp7s0: renamed from eth1
[   ]: r8169 0000:02:00.0 enp2s0: renamed from eth0
[   ]: Trunk0: Enslaving enp7s0 as a backup interface with a down link
[   ]: Trunk0: Enslaving enp2s0 as a backup interface with a down link
[   ]: r8169 0000:07:00.0 enp7s0: Link is Up - 1Gbps/Full - flow control off
[   ]: Trunk0: link status up again after 0 ms for interface enp7s0
[   ]: Trunk0: Warning: No 802.3ad response from the link partner for any adapters in the bond
[   ]: 8021q: adding VLAN 0 to HW filter on device Trunk0
[   ]: Trunk0: link status up again after 0 ms for interface enp7s0
[   ]: Trunk0: link status definitely down for interface enp2s0, disabling it
[   ]: Trunk0: Warning: No 802.3ad response from the link partner for any adapters in the bond
[   ]: r8169 0000:02:00.0 enp2s0: Link is Up - 1Gbps/Full - flow control off
[   ]: Trunk0: link status definitely up for interface enp2s0, 1000 Mbps full duplex
[   ]: Trunk0: first active interface up!
[   ]: Trunk0: Warning: No 802.3ad response from the link partner for any adapters in the bond

>> churned NIC physical disconnect

[   ]: r8169 0000:07:00.0 enp7s0: Link is Down
[   ]: Trunk0: link status definitely down for interface enp7s0, disabling it
[   ]: Trunk0: first active interface up!

>> churned NIC physical connect

[   ]: r8169 0000:07:00.0 enp7s0: Link is Up - 1Gbps/Full - flow control off
[   ]: Trunk0: link status definitely up for interface enp7s0, 1000 Mbps full duplex

请注意,NIC“enp7s0”首先初始化,但随后被搅动。

配置文件:

enp-any.network

[Match]
Name=enp*

[Network]
Bond=Trunk0

Trunk0.netdev

[NetDev]
Name=Trunk0
Kind=bond

[Bond]
Mode=802.3ad
TransmitHashPolicy=layer3+4
MIIMonitorSec=1s
LACPTransmitRate=slow

Trunk0.网络

[Match]
Name=Trunk0

[Network]
VLAN=***
VLAN=***
VLAN=***
LinkLocalAddressing=no
BindCarrier=enp2s0 enp7s0

相关内容