[Bug 1860926] Re: Ubuntu 20.04 Systemd fails to configure bridged network

Lithi 1860926 at bugs.launchpad.net
Fri May 29 23:58:34 UTC 2020


Yes systemd is now at 245.4-4ubuntu3.1  and the interface does come up
at boot.

Note my config is also now using the macaddress parameter as mentioned
by another commenter above, which may have effected the result.


Thank you very much!

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1860926

Title:
  Ubuntu 20.04  Systemd fails to configure bridged network

Status in systemd package in Ubuntu:
  Fix Released
Status in systemd source package in Bionic:
  In Progress
Status in systemd source package in Eoan:
  Fix Released
Status in systemd source package in Focal:
  Fix Released
Status in systemd source package in Groovy:
  Fix Released

Bug description:
  [impact]

  A bridged interface with static ipv4 address and gateway configuration
  will fail to properly add the route via the gateway, leaving the
  system without a globally working network.

  [test case]

  On a Focal system, remove all network configuration and create this
  netplan:

  network:
    version: 2
    renderer: networkd
    ethernets:
      enp4s0:
        dhcp4: false
    bridges:
      br0:
        interfaces: [enp4s0]
        dhcp4: no
        addresses: [192.168.0.4/24]
        gateway4: 192.168.0.1
        nameservers:
          search: [mydomain]
          addresses: [192.168.0.1,192.168.0.2,192.168.0.3]

  Replace the interface name 'enp4s0' with the actual interface name on
  the test system.

  Reboot the system, and check the route to the gateway, which will be
  missing:

  root at lp1860926-f:~# ip r
  192.168.0.0/24 dev br0 proto kernel scope link src 192.168.0.4

  The route is expected to be present, e.g.:

  ubuntu at lp1860926-e:~$ ip r
  default via 192.168.0.1 dev br0 proto static
  192.168.0.0/24 dev br0 proto kernel scope link src 192.168.0.4

  [test case, pre-focal]

  same netplan as above, but remove ethernets: section.  Reboot, and the
  bridge should have its address and route:

  ubuntu at test-e:~$ ip a show br0
  3: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
      link/ether 56:11:da:23:bb:93 brd ff:ff:ff:ff:ff:ff
      inet 192.168.0.4/24 brd 192.168.0.255 scope global br0
         valid_lft forever preferred_lft forever
  ubuntu at test-e:~$ ip r
  default via 192.168.0.1 dev br0 proto static linkdown 
  192.168.0.0/24 dev br0 proto kernel scope link src 192.168.0.4 linkdown 

  
  add and remove carrier, by adding and removing a slave interface:

  ubuntu at test-e:~$ sudo ip l set dev ens3 master br0 up
  ubuntu at test-e:~$ ip a show br0
  3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
      link/ether 56:11:da:23:bb:93 brd ff:ff:ff:ff:ff:ff
      inet 192.168.0.4/24 brd 192.168.0.255 scope global br0
         valid_lft forever preferred_lft forever
      inet6 fe80::5411:daff:fe23:bb93/64 scope link 
         valid_lft forever preferred_lft forever
  ubuntu at test-e:~$ sudo ip l set dev ens3 nomaster

  
  the bridge no longer has its address after losing carrier:

  ubuntu at test-e:~$ ip a show br0
  3: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
      link/ether 56:11:da:23:bb:93 brd ff:ff:ff:ff:ff:ff
      inet6 fe80::5411:daff:fe23:bb93/64 scope link 
         valid_lft forever preferred_lft forever


  [regression potential]

  Any regression would likely involve incorrectly configured network
  after an interface carrier gain/loss.

  [scope]

  This is needed for Focal, Eoan, and Bionic.

  While this only reproduces at boot for Focal, the general loss of
  configuration on carrier loss even when ConfigureWithoutCarrier=true
  is reproducable on all releases except Xenial, which does not have the
  ConfigureWithoutCarrier= parameter.

  [original description]

  Freshly installed Ubuntu 20.04 fully patched to days date with static
  IP address works fine and survives a reboot

  network:
    version: 2
    renderer: networkd
    ethernets:
      enp4s0:
        dhcp4: false
        addresses: [192.168.0.4/24]
        gateway4: 192.168.0.1
        nameservers:
          search: [mydomain]
          addresses: [192.168.0.1,192.168.0.2,192.168.0.3]

  however when converted to a bridged network for kvm

  network:
    version: 2
    renderer: networkd
    ethernets:
      enp4s0:
        dhcp4: false
    bridges:
      br0:
        interfaces: [enp4s0]
        dhcp4: no
        addresses: [192.168.0.4/24]
        gateway4: 192.168.0.1
        nameservers:
          search: [mydomain]
          addresses: [192.168.0.1,192.168.0.2,192.168.0.3]

  will not survive a reboot and required systemd-network to be restarted or
  @reboot /usr/sbin/netplan apply
  added to the crontab

  after a reboot the network can not b eaccseed and a
  systemctl status systemd-networkd produces

  systemd-networkd.service - Network Service
       Loaded: loaded (/lib/systemd/system/systemd-networkd.service; enabled; vendor preset: enabled)
       Active: active (running) since Sun 2020-01-26 16:36:28 UTC; 2min 27s ago
  TriggeredBy: ● systemd-networkd.socket
         Docs: man:systemd-networkd.service(8)
     Main PID: 979 (systemd-network)
       Status: "Processing requests..."
        Tasks: 1 (limit: 57662)
       Memory: 4.1M
       CGroup: /system.slice/systemd-networkd.service
               └─979 /lib/systemd/systemd-networkd

  Jan 26 16:38:02 firebolt systemd-networkd[979]: rtnl: received neighbor for link '5' we don't know about, ignoring.
  Jan 26 16:38:02 firebolt systemd-networkd[979]: virbr0-nic: rtnl: received neighbor message with invalid family, ignoring.
  Jan 26 16:38:02 firebolt systemd-networkd[979]: virbr0-nic: rtnl: received neighbor message with invalid family, ignoring.
  Jan 26 16:38:02 firebolt systemd-networkd[979]: virbr0: rtnl: received neighbor message with invalid family, ignoring.
  Jan 26 16:38:02 firebolt systemd-networkd[979]: virbr0-nic: Link UP
  Jan 26 16:38:02 firebolt systemd-networkd[979]: virbr0-nic: Gained carrier
  Jan 26 16:38:02 firebolt systemd-networkd[979]: virbr0: Link UP
  Jan 26 16:38:02 firebolt systemd-networkd[979]: virbr0-nic: Link DOWN
  Jan 26 16:38:02 firebolt systemd-networkd[979]: virbr0-nic: Lost carrier
  Jan 26 16:38:02 firebolt systemd-networkd[979]: virbr0-nic: Kernel removed an address we don't remember: fe80::5054:ff:fed9:7e26/64 (valid forever), ignoring.

  systemctl restart systemd-networkd resolved the issue and a

  systemctl status systemd-network producessystemd-networkd.service - Network Service
       Loaded: loaded (/lib/systemd/system/systemd-networkd.service; enabled; vendor preset: enabled)
       Active: active (running) since Sun 2020-01-26 16:39:28 UTC; 41s ago
  TriggeredBy: ● systemd-networkd.socket
         Docs: man:systemd-networkd.service(8)
     Main PID: 1650 (systemd-network)
       Status: "Processing requests..."
        Tasks: 1 (limit: 57662)
       Memory: 1.6M
       CGroup: /system.slice/systemd-networkd.service
               └─1650 /lib/systemd/systemd-networkd

  Jan 26 16:39:28 firebolt systemd[1]: Starting Network Service...
  Jan 26 16:39:28 firebolt systemd-networkd[1650]: br0: netdev ready
  Jan 26 16:39:28 firebolt systemd-networkd[1650]: br0: Gained IPv6LL
  Jan 26 16:39:28 firebolt systemd-networkd[1650]: Enumeration completed
  Jan 26 16:39:28 firebolt systemd[1]: Started Network Service.
  Jan 26 16:39:28 firebolt systemd-networkd[1650]: br0: netdev exists, using existing without changing its parameters
  Jan 26 16:39:28 firebolt systemd-networkd[1650]: br0: IPv6 successfully enabled

  a journalctl -u systemd-network produces

  Jan 26 16:36:28 firebolt systemd[1]: Starting Network Service...
  Jan 26 16:36:28 firebolt systemd-networkd[979]: br0: netdev ready
  Jan 26 16:36:28 firebolt systemd-networkd[979]: Enumeration completed
  Jan 26 16:36:28 firebolt systemd-networkd[979]: wlp3s0: Interface name change detected, wlp3s0 has been renamed to wlan0.
  Jan 26 16:36:28 firebolt systemd[1]: Started Network Service.
  Jan 26 16:36:28 firebolt systemd-networkd[979]: wlan0: Interface name change detected, wlan0 has been renamed to wlp3s0.
  Jan 26 16:36:28 firebolt systemd-networkd[979]: br0: rtnl: received neighbor message with invalid family, ignoring.
  Jan 26 16:36:28 firebolt systemd-networkd[979]: br0: IPv6 successfully enabled
  Jan 26 16:36:28 firebolt systemd-networkd[979]: br0: Link UP
  Jan 26 16:36:28 firebolt systemd-networkd[979]: br0: Gained carrier
  Jan 26 16:36:28 firebolt systemd-networkd[979]: enp4s0: rtnl: received neighbor message with invalid family, ignoring.
  Jan 26 16:36:28 firebolt systemd-networkd[979]: enp4s0: rtnl: received neighbor message with invalid family, ignoring.
  Jan 26 16:36:28 firebolt systemd-networkd[979]: br0: rtnl: received neighbor message with invalid family, ignoring.
  Jan 26 16:36:28 firebolt systemd-networkd[979]: br0: Lost carrier
  Jan 26 16:36:28 firebolt systemd-networkd[979]: enp4s0: Link UP
  Jan 26 16:36:28 firebolt systemd-networkd[979]: br0: Gained carrier
  Jan 26 16:36:28 firebolt systemd-networkd[979]: br0: Could not set route: Network is unreachable
  Jan 26 16:36:28 firebolt systemd-networkd[979]: br0: Failed
  Jan 26 16:36:30 firebolt systemd-networkd[979]: br0: Lost carrier
  Jan 26 16:36:31 firebolt systemd-networkd[979]: enp4s0: Gained carrier
  Jan 26 16:36:31 firebolt systemd-networkd[979]: br0: Gained carrier
  Jan 26 16:38:02 firebolt systemd-networkd[979]: rtnl: received neighbor for link '5' we don't know about, ignoring.
  Jan 26 16:38:02 firebolt systemd-networkd[979]: virbr0-nic: rtnl: received neighbor message with invalid family, ignoring.
  Jan 26 16:38:02 firebolt systemd-networkd[979]: virbr0-nic: rtnl: received neighbor message with invalid family, ignoring.
  Jan 26 16:38:02 firebolt systemd-networkd[979]: virbr0: rtnl: received neighbor message with invalid family, ignoring.
  Jan 26 16:38:02 firebolt systemd-networkd[979]: virbr0-nic: Link UP
  Jan 26 16:38:02 firebolt systemd-networkd[979]: virbr0-nic: Gained carrier
  Jan 26 16:38:02 firebolt systemd-networkd[979]: virbr0: Link UP
  Jan 26 16:38:02 firebolt systemd-networkd[979]: virbr0-nic: Link DOWN
  Jan 26 16:38:02 firebolt systemd-networkd[979]: virbr0-nic: Lost carrier
  Jan 26 16:38:02 firebolt systemd-networkd[979]: virbr0-nic: Kernel removed an address we don't remember: fe80::5054:ff:fed9:7e26/64 (valid forever), ignoring.
  Jan 26 16:39:28 firebolt systemd[1]: Stopping Network Service...
  Jan 26 16:39:28 firebolt systemd[1]: systemd-networkd.service: Succeeded.
  Jan 26 16:39:28 firebolt systemd[1]: Stopped Network Service.
  Jan 26 16:39:28 firebolt systemd[1]: Starting Network Service...
  Jan 26 16:39:28 firebolt systemd-networkd[1650]: br0: netdev ready
  Jan 26 16:39:28 firebolt systemd-networkd[1650]: br0: Gained IPv6LL
  Jan 26 16:39:28 firebolt systemd-networkd[1650]: Enumeration completed
  Jan 26 16:39:28 firebolt systemd[1]: Started Network Service.
  Jan 26 16:39:28 firebolt systemd-networkd[1650]: br0: netdev exists, using existing without changing its parameters
  Jan 26 16:39:28 firebolt systemd-networkd[1650]: br0: IPv6 successfully enabled

  the network should restart properly after a reboot liek in earlier
  version of ubuntu 18.04 for example

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



More information about the foundations-bugs mailing list