0

Running Ubuntu 22.04 with a TrendNet 2.5Gbe PCIe card I'm binding my NIC enp3s0 to a bridge br0 to use with a KVM that I'd like to have access to my local network. Configuring the bridge with systemd-networkd works (br0 is master to enp3s0 and receives a DHCP lease) until I reboot the host. The bridge will have some self-assigned IP like 172.19.0.x in ip a. If I restart the networkd service, the bridge will properly receive a DHCP lease. The weird thing is that when checking jounralctl after boot and before resetting the networkd service it shows br0 recieving a DHCP lease. Does anyone have any idea what is going wrong? Here's my journalctl -eu systemd-networkd starting from a reboot and showing a networkd service restart

-- Boot b5d8c30dd45c4118a5532486410ae807 --
Apr 22 22:50:34 theheartofgold systemd[1]: Starting Network Configuration...
Apr 22 22:50:34 theheartofgold systemd-networkd[1898]: br0: netdev ready
Apr 22 22:50:34 theheartofgold systemd-networkd[1898]: lo: Link UP
Apr 22 22:50:34 theheartofgold systemd-networkd[1898]: lo: Gained carrier
Apr 22 22:50:34 theheartofgold systemd-networkd[1898]: Enumeration completed
Apr 22 22:50:34 theheartofgold systemd[1]: Started Network Configuration.
Apr 22 22:50:34 theheartofgold systemd-networkd[1898]: br0: Link UP
Apr 22 22:50:34 theheartofgold systemd-networkd[1898]: enp3s0: Link UP
Apr 22 22:50:38 theheartofgold systemd-networkd[1898]: enp3s0: Gained carrier
Apr 22 22:50:38 theheartofgold systemd-networkd[1898]: br0: Gained carrier
Apr 22 22:50:40 theheartofgold systemd-networkd[1898]: br0: Gained IPv6LL
Apr 22 22:50:41 theheartofgold systemd-networkd[1898]: br0: DHCPv6 address 2601:240:8100:9810::cd19/128 (valid for 1w, preferred for 1w)
Apr 22 22:50:42 theheartofgold systemd-networkd[1898]: br0: DHCPv4 address 10.0.0.172/24 via 10.0.0.1              <------ Says that br0 received a lease but "ip a" does not reflect this and no network access
Apr 22 22:50:44 theheartofgold systemd-networkd[1898]: nebula1: Link UP
Apr 22 22:50:44 theheartofgold systemd-networkd[1898]: nebula1: Gained carrier
Apr 22 22:50:44 theheartofgold systemd-networkd[1898]: nebula1: Gained IPv6LL
Apr 22 22:50:46 theheartofgold systemd-networkd[1898]: br-f1781ea40a8c: Link UP
Apr 22 22:50:46 theheartofgold systemd-networkd[1898]: br-89c82a376cdf: Link UP
Apr 22 22:50:47 theheartofgold systemd-networkd[1898]: vethb69aed5: Link UP
Apr 22 22:50:47 theheartofgold systemd-networkd[1898]: veth8dbe0f6: Link UP
Apr 22 22:50:47 theheartofgold systemd-networkd[1898]: br-89c82a376cdf: Gained carrier
Apr 22 22:50:47 theheartofgold systemd-networkd[1898]: br-89c82a376cdf: Lost carrier
Apr 22 22:50:48 theheartofgold systemd-networkd[1898]: vethb69aed5: Gained carrier
Apr 22 22:50:48 theheartofgold systemd-networkd[1898]: veth8dbe0f6: Gained carrier
Apr 22 22:50:48 theheartofgold systemd-networkd[1898]: br-89c82a376cdf: Gained carrier
Apr 22 22:50:49 theheartofgold systemd-networkd[1898]: br-89c82a376cdf: Gained IPv6LL
Apr 22 22:50:49 theheartofgold systemd-networkd[1898]: vethb69aed5: Gained IPv6LL
Apr 22 22:50:50 theheartofgold systemd-networkd[1898]: veth8dbe0f6: Gained IPv6LL
Apr 22 22:51:49 theheartofgold systemd[1]: Stopping Network Configuration...         <---- This is when I reset networkd-systemd.service
Apr 22 22:51:49 theheartofgold systemd-networkd[1898]: br0: DHCPv6 lease lost
Apr 22 22:51:49 theheartofgold systemd[1]: systemd-networkd.service: Deactivated successfully.
Apr 22 22:51:49 theheartofgold systemd[1]: Stopped Network Configuration.
Apr 22 22:51:49 theheartofgold systemd[1]: Starting Network Configuration...
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: veth8dbe0f6: Link UP
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: veth8dbe0f6: Gained carrier
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: vethb69aed5: Link UP
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: vethb69aed5: Gained carrier
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: br-89c82a376cdf: Link UP
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: br-89c82a376cdf: Gained carrier
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: br-f1781ea40a8c: Link UP
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: nebula1: Link UP
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: nebula1: Gained carrier
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: br0: netdev ready
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: br0: Link UP
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: br0: Gained carrier
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: enp3s0: Link UP
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: enp3s0: Gained carrier
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: lo: Link UP
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: lo: Gained carrier
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: veth8dbe0f6: Gained IPv6LL
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: vethb69aed5: Gained IPv6LL
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: br-89c82a376cdf: Gained IPv6LL
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: nebula1: Gained IPv6LL
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: br0: Gained IPv6LL
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: Enumeration completed
Apr 22 22:51:49 theheartofgold systemd[1]: Started Network Configuration.
Apr 22 22:51:49 theheartofgold systemd-networkd[4856]: br0: netdev exists, using existing without changing its parameters
Apr 22 22:51:50 theheartofgold systemd-networkd[4856]: br0: DHCPv4 address 10.0.0.172/24 via 10.0.0.1        <---- DHCP Lease now shows up in "ip a" and have network access
Apr 22 22:51:50 theheartofgold systemd-networkd[4856]: br0: DHCPv6 address 2601:240:8100:9810::cd19/128 (valid for 1w, preferred for 1w)

I believe those other br and veth devices are being created by docker.

Here are my networkd configs as well.

theheartofgold:/etc/systemd/network$ cat 20-wired.network
[Match]
Name=enp3s0

[Network]
DHCP=ipv4

theheartofgold:/etc/systemd/network$ cat br0.network
[Match]
Name=br0

[Network]
DHCP=ipv4

theheartofgold:/etc/systemd/network$ cat br0.netdev
[NetDev]
Name=br0
Kind=bridge

theheartofgold:/etc/systemd/network$ cat 10-bind.network
[Match]
Name=enp3s0

[Network]
Bridge=br0

  • Docker disrupts network settings when bridges are involved. You should disable Docker and reboot and see if the behavior improves. disabling means: `systemctl disable docker docker.socket` + an actual reboot. (you can use enable instead of disable to revert). – A.B Apr 23 '23 at 09:43
  • related topics: https://unix.stackexchange.com/questions/572022/linux-bridge-for-virtual-machines-not-forwarding-ip-packets-but-is-forwarding-a , https://unix.stackexchange.com/questions/719112/why-do-net-bridge-bridge-nf-call-arp-ip-ip6tables-default-to-1 – A.B Apr 23 '23 at 09:45
  • Seems you are right, but I don't think I'll need to fully remove docker for my purposes. I tried renaming the bridge to 'mybridge' to see if I could find any other 'br0' mentions in jounralctl. It turns out I made docker use br0 as its bridge sometime in the past and completely forgot about it. Reverting to the original 'docker0' bridge has fixed my issue. Lesson learned, keep track on these kind of changes. Thank you for pointing me in the right direction. – dmstanley Apr 24 '23 at 05:39

0 Answers0