0

I recently installed Ubuntu Server 20.04 to replace an ESXi server. During the installation, I configured a bonded interface for two ethernet interfaces. I configured the bond on my ZyXel GS1900-8 as a static LAG. During the setup process, the link came up successfully and was leased an IP via DHCP.

All subsequent boots have failed to acquire an IP address for the bonded interface. Sometimes, if I allow dhcp4 on the enslaved interfaces, and run sudo dhclient -r && sudo dhclient, the enslaved interfaces will be leased an IP address and the bond will get an IP address. I know this is not proper as dhclient and systemd-networkd do not mix.

Also, I would like to configure this as a LACP bond instead. I have enabled LACP on the switch with priority 65535 and "IP/MAC address" load balancing algorithm, switched the LAG from static to LACP, and altered netplan to use the 802.3ad bond mode.

Please let me know what, if anything, I'm doing wrong here. I've looked around at as many netplan DHCP bond posts here as I could find to no avail. See below for configuration files and command outputs.

Contents of /etc/netplan/00-bond.yaml:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: false
    eth1:
      dhcp4: false
  bonds:
    bond0:
      dhcp4: true
      interfaces:
        - eth0
        - eth1
      parameters:
        mode: 802.3ad

Output of sudo journalctl -b -u systemd-networkd

Dec 14 08:06:47 lore systemd[1]: Starting Network Service...
Dec 14 08:06:47 lore systemd-networkd[852]: bond0: netdev ready
Dec 14 08:06:47 lore systemd-networkd[852]: Enumeration completed.
Dec 14 08:06:47 lore systemd[1]: Started Network Service.
Dec 14 08:06:47 lore systemd-networkd[852]: bond0: IPv6 successfully enabled
Dec 14 08:06:47 lore systemd-networkd[852]: bond0: Link UP
Dec 14 08:08:53 lore systemd-networkd[852]: rtn1: received neighbor for link '7' we don't know about, ignoring.
Dec 14 08:08:53 lore systemd-networkd[852]: rtn1: received neighbor for link '7' we don't know about, ignoring.
Dec 14 08:08:53 lore systemd-networkd[852]: rtn1: received neighbor for link '7' we don't know about, ignoring.
Dec 14 08:08:53 lore systemd-networkd[852]: rtn1: received neighbor for link '7' we don't know about, ignoring.
Dec 14 08:08:53 lore systemd-networkd[852]: docker0: Link UP

Output of sudo ip a:

lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred lft forever
   inet6 ::1/128 scope host
      valid_lft forever preferred lft forever
eno1: <BROADCAST,MULTICAST> mtu 1500 qdisk noop state DOWN group default qlen 1000
    link/ether 0c:c4:7a:c6:c3:46 brd ff:ff:ff:ff:ff:ff
eno2: <BROADCAST,MULTICAST> mtu 1500 qdisk noop state DOWN group default qlen 1000
    link/ether 0c:c4:7a:c6:c3:47 brd ff:ff:ff:ff:ff:ff
eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 0c:c4:7a:c6:c6:a2 brd ff:ff:ff:ff:ff:ff
eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 0c:c4:7a:c6:c6:a3 brd ff:ff:ff:ff:ff:ff
bond0: <NO-CARRIER,BROADCAST,MULTICAST,MASTER,UP> mtu 1500 qdisk noqueue state DOWN group default qlen 1000
    link/ether 52:8b:2c:cc:a0:15 brd ff:ff:ff:ff:ff:ff
docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:26:1c:1b:39 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker 0
       valid_lft forever preferred_lft forever

Contents of /run/systemd/network/10-netplan-bond0.netdev

[NetDev]
Name=bond0
Kind=bond

[Bond]
Mode=802.3ad

Contents of /run/systemd/network/10-netplan-bond0.network

[Match]
Name=bond0

[Network]
DHCP=ipv4
LinkLocalAddressing=ipv6
ConfigureWithoutCarrier=yes

[DHCP]
RouteMetric=100
UseMTU=true

Contents of /run/systemd/network/10-netplan-eth0.network

[Match]
Name=eth0

[Network]
LinkLocalAddressing=no
Bond=bond0

Contents of /run/systemd/network/10-netplan-eth1.network

[Match]
Name=eth1

[Network]
LinkLocalAddressing=no
Bond=bond0

Contents of /proc/net/bonding/bond0

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

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

802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable

1 Answer 1

0

Found out this was due to a naming collision. Discovered via dmidecode -t 41 that my MOBO's BIOS improperly reported the four NICs as having only two type instances. As a result, two NICs were assigned to eno1 and two to eno2. The result is the NICs I was trying to use got dropped by udev half way through being configured.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .