Public bug reported:

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. I cannot
give you the output of `lsb_release -rd` as the package is not installed
and there's no connection to install it.

$ cat /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

$ 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

$ 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

$ cat /run/systemd/network/10-netplan-bond0.netdev
[NetDev]
Name=bond0
Kind=bond

[Bond]
Mode=802.3ad

$ cat /run/systemd/network/10-netplan-bond0.network
[Match]
Name=bond0

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

[DHCP]
RouteMetric=100
UseMTU=true

$ cat /run/systemd/network/10-netplan-eth0.network
[Match]
Name=eth0

[Network]
LinkLocalAddressing=no
Bond=bond0

$ cat /run/systemd/network/10-netplan-eth1.network
[Match]
Name=eth1

[Network]
LinkLocalAddressing=no
Bond=bond0

$ cat /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

** Affects: systemd (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1908140

Title:
  Bond DHCP fails on Ubuntu Server 20.04 netplan

Status in systemd package in Ubuntu:
  New

Bug description:
  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. I
  cannot give you the output of `lsb_release -rd` as the package is not
  installed and there's no connection to install it.

  $ cat /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

  $ 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

  $ 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

  $ cat /run/systemd/network/10-netplan-bond0.netdev
  [NetDev]
  Name=bond0
  Kind=bond

  [Bond]
  Mode=802.3ad

  $ cat /run/systemd/network/10-netplan-bond0.network
  [Match]
  Name=bond0

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

  [DHCP]
  RouteMetric=100
  UseMTU=true

  $ cat /run/systemd/network/10-netplan-eth0.network
  [Match]
  Name=eth0

  [Network]
  LinkLocalAddressing=no
  Bond=bond0

  $ cat /run/systemd/network/10-netplan-eth1.network
  [Match]
  Name=eth1

  [Network]
  LinkLocalAddressing=no
  Bond=bond0

  $ cat /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

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1908140/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to