0

I use 2 of the 4 ethernet sockets as a bridge, which I configure with netplan:

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: no
    eno2:
      dhcp4: no
    eno3:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.0.23/24]
    eno4:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.0.24/24]

  bridges:
    br0:
      interfaces: [eno1, eno2]
      addresses: [192.168.0.4/24]
      gateway4: 192.168.0.1
      link-local: []
      nameservers:
        search: []
        addresses: [8.8.8.8]

There is no problem when I run sudo netplan apply, but the connection is lost when I reboot (eno1 is linked to the internet router, eno2 to another server without internet access, eno3 and eno4 are not plugged). It works again after I run sudo netplan apply.

I set the SYSTEMD_LOG_LEVEL=debug environment variable and found these puzzling entries:

May 24 19:08:00 dave systemd-networkd[2900]: eno2: Joined netdev
May 24 19:08:00 dave systemd-networkd[2900]: eno2: Bringing link up
May 24 19:08:01 dave systemd-networkd[2900]: eno1: rtnl: received neighbor message with invalid family '7', ignoring.
May 24 19:08:01 dave systemd-networkd[2900]: eno1: rtnl: received neighbor message with invalid family '7', ignoring.
May 24 19:08:01 dave systemd-networkd[2900]: br0: MAC address: 00:22:19:cc:db:0c
May 24 19:08:01 dave systemd-networkd[2900]: eno1: Joined netdev
May 24 19:08:01 dave systemd-networkd[2900]: eno1: Bringing link up
May 24 19:08:01 dave systemd-networkd[2900]: br0: Remembering updated address: 192.168.0.4/24 (valid forever)
May 24 19:08:01 dave systemd-networkd[2900]: br0: Addresses set
May 24 19:08:01 dave systemd-networkd[2900]: br0: Configuring route: dst: n/a, src: n/a, gw: 192.168.0.1, prefsrc: n/a, scope: global, table: main, proto: static, type: unicast
May 24 19:08:01 dave systemd-networkd[2900]: br0: Setting routes
May 24 19:08:01 dave systemd-networkd[2900]: br0: Forgetting address: 192.168.0.4/24 (valid forever)
May 24 19:08:01 dave systemd-networkd[2900]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_36 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=25 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a
May 24 19:08:01 dave systemd-networkd[2900]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=26 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a
May 24 19:08:01 dave systemd-networkd[2900]: br0: Forgetting route: dst: 192.168.0.0/24, src: n/a, gw: n/a, prefsrc: 192.168.0.4, scope: link, table: main, proto: kernel, type: unicast
May 24 19:08:01 dave systemd-networkd[2900]: br0: Forgetting route: dst: 192.168.0.255/32, src: n/a, gw: n/a, prefsrc: 192.168.0.4, scope: link, table: local, proto: kernel, type: broadcast
May 24 19:08:01 dave systemd-networkd[2900]: br0: Forgetting route: dst: 192.168.0.0/32, src: n/a, gw: n/a, prefsrc: 192.168.0.4, scope: link, table: local, proto: kernel, type: broadcast
May 24 19:08:01 dave systemd-networkd[2900]: br0: Forgetting route: dst: 192.168.0.4/32, src: n/a, gw: n/a, prefsrc: 192.168.0.4, scope: host, table: local, proto: kernel, type: local
May 24 19:08:01 dave systemd-networkd[2900]: eno2: Flags change: +UP +RUNNING
May 24 19:08:01 dave systemd-networkd[2900]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_33 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=27 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a
May 24 19:08:01 dave systemd-networkd[2900]: eno2: Link UP
May 24 19:08:01 dave systemd-networkd[2900]: LLDP: Started LLDP client
May 24 19:08:01 dave systemd-networkd[2900]: eno2: Started LLDP.
May 24 19:08:01 dave systemd-networkd[2900]: eno1: Flags change: +UP +RUNNING
May 24 19:08:01 dave systemd-networkd[2900]: Sent message type=signal sender=n/a destination=n/a path=/org/freedesktop/network1/link/_32 interface=org.freedesktop.DBus.Properties member=PropertiesChanged cookie=28 reply_cookie=0 signature=sa{sv}as error-name=n/a error-message=n/a
May 24 19:08:01 dave systemd-networkd[2900]: eno1: Link UP
May 24 19:08:01 dave systemd-networkd[2900]: LLDP: Started LLDP client
May 24 19:08:01 dave systemd-networkd[2900]: eno1: Started LLDP.
May 24 19:08:01 dave systemd-networkd[2900]: br0: Could not set route: Nexthop has invalid gateway. Network is unreachable
May 24 19:08:01 dave systemd-networkd[2900]: br0: Failed
May 24 19:08:01 dave systemd-networkd[2900]: br0: State changed: configuring -> failed

What I get from these logs is that networkd remembers the correct configuration of the bridge (192.168.0.4/24), then forgets it, then complains about the gateway (192.168.0.1) not being accessible... Any idea why networkd forgets the configuration, or how to fix this ?

I haven't tried a work around like calling netplan apply at boot.

1 Answers1

1

Not exactly an answer, but a workaround worked for me:

sudo crontab -e
@reboot /usr/sbin/netplan apply