systemd LACP bond mess up aggregation ID for NICs

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP












1















arch linux with lts kernel



systemd networkd is configured to bond two NICs into LACP trunk with smart switch (DGS-1210-28). But it fails after OS startup - only one NIC is used for bond connection. As shown in /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


notice that bond have AggregatorID=2, and unused (churned) NIC have AggregatorID=1, which is weird. I'd expect bond to have AggregatorID=1



This can be "fixed" by physical port reconnect for churned NIC. After this both NICs are used by bond. This can be seen in kernel log:



>> 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


notice that NIC "enp7s0" initialized first, but gets churned.



Config files:



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.network



[Match]
Name=Trunk0

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









share|improve this question


























    1















    arch linux with lts kernel



    systemd networkd is configured to bond two NICs into LACP trunk with smart switch (DGS-1210-28). But it fails after OS startup - only one NIC is used for bond connection. As shown in /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


    notice that bond have AggregatorID=2, and unused (churned) NIC have AggregatorID=1, which is weird. I'd expect bond to have AggregatorID=1



    This can be "fixed" by physical port reconnect for churned NIC. After this both NICs are used by bond. This can be seen in kernel log:



    >> 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


    notice that NIC "enp7s0" initialized first, but gets churned.



    Config files:



    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.network



    [Match]
    Name=Trunk0

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









    share|improve this question
























      1












      1








      1








      arch linux with lts kernel



      systemd networkd is configured to bond two NICs into LACP trunk with smart switch (DGS-1210-28). But it fails after OS startup - only one NIC is used for bond connection. As shown in /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


      notice that bond have AggregatorID=2, and unused (churned) NIC have AggregatorID=1, which is weird. I'd expect bond to have AggregatorID=1



      This can be "fixed" by physical port reconnect for churned NIC. After this both NICs are used by bond. This can be seen in kernel log:



      >> 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


      notice that NIC "enp7s0" initialized first, but gets churned.



      Config files:



      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.network



      [Match]
      Name=Trunk0

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









      share|improve this question














      arch linux with lts kernel



      systemd networkd is configured to bond two NICs into LACP trunk with smart switch (DGS-1210-28). But it fails after OS startup - only one NIC is used for bond connection. As shown in /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


      notice that bond have AggregatorID=2, and unused (churned) NIC have AggregatorID=1, which is weird. I'd expect bond to have AggregatorID=1



      This can be "fixed" by physical port reconnect for churned NIC. After this both NICs are used by bond. This can be seen in kernel log:



      >> 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


      notice that NIC "enp7s0" initialized first, but gets churned.



      Config files:



      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.network



      [Match]
      Name=Trunk0

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






      linux systemd systemd-networkd bonding lacp






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Jan 27 at 16:38









      avi9526avi9526

      927




      927




















          0






          active

          oldest

          votes











          Your Answer








          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "106"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f497037%2fsystemd-lacp-bond-mess-up-aggregation-id-for-nics%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Unix & Linux Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f497037%2fsystemd-lacp-bond-mess-up-aggregation-id-for-nics%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown






          Popular posts from this blog

          How to check contact read email or not when send email to Individual?

          Displaying single band from multi-band raster using QGIS

          How many registers does an x86_64 CPU actually have?