@enr0n, the proposal to add: bridges: br0: interfaces: [vlan1]
To the network config defeats the purpose. The goal is to not have to do double configuration. The bridge is define in LXD, the vlan1 only in netplan. The other proposed fix of `KeepMaster=true` snippet in /etc/systemd/network/10-netplan-vlan1.network.d/keep_master.conf didn't work for me. I also tried putting it in 99-netplan-vlan1.network.d to match the name of my netplan .yaml but still didn't work. root@networkd-bug:~# cat /etc/netplan/99-vlan1.yaml network: version: 2 vlans: vlan1: id: 1 link: eth0 root@networkd-bug:~# cat /etc/systemd/network/99-netplan-vlan1.network.d/keep_master.conf [Network] KeepMaster=true root@networkd-bug:~# grep -n . /run/systemd/network/*vlan1* /run/systemd/network/10-netplan-vlan1.netdev:1:[NetDev] /run/systemd/network/10-netplan-vlan1.netdev:2:Name=vlan1 /run/systemd/network/10-netplan-vlan1.netdev:3:Kind=vlan /run/systemd/network/10-netplan-vlan1.netdev:5:[VLAN] /run/systemd/network/10-netplan-vlan1.netdev:6:Id=1 /run/systemd/network/10-netplan-vlan1.network:1:[Match] /run/systemd/network/10-netplan-vlan1.network:2:Name=vlan1 /run/systemd/network/10-netplan-vlan1.network:4:[Network] /run/systemd/network/10-netplan-vlan1.network:5:LinkLocalAddressing=ipv6 /run/systemd/network/10-netplan-vlan1.network:6:ConfigureWithoutCarrier=yes -- 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/2036127 Title: Restarting `systemd-networkd` looses unmanaged bridged parents Status in systemd package in Ubuntu: Invalid Bug description: My home network comprises many VLANs managed by `systemd- networkd`/`netplan`. Those VLANs are then used as parent interfaces for LXD networks. Whenever `systemd-networkd` is restarted (i.e: post- update), my whole network breaks because all the unmanaged bridges lose their parent devices. Another way to see it is that `systemd- networkd` undoes the `master` setting of those VLAN devices. Here is a simplified reproducer: 1. Create a `vlan1` device $ lxc launch ubuntu:22.04 networkd-bug Creating networkd-bug Starting networkd-bug $ lxc file push - networkd-bug/etc/netplan/99-vlan1.yaml << EOF network: version: 2 vlans: vlan1: id: 1 link: eth0 EOF $ lxc exec networkd-bug -- netplan apply 2. Manually create a bridge and join `vlan1` to it $ lxc exec networkd-bug -- ip link add br0 type bridge $ lxc exec networkd-bug -- ip link set vlan1 master br0 $ lxc exec networkd-bug -- ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: vlan1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP mode DEFAULT group default qlen 1000 link/ether 00:16:3e:94:6e:47 brd ff:ff:ff:ff:ff:ff 3: br0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 42:b6:31:01:47:9a brd ff:ff:ff:ff:ff:ff 164: eth0@if165: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 00:16:3e:94:6e:47 brd ff:ff:ff:ff:ff:ff link-netnsid 0 3. Restart `systemd-networkd` $ lxc exec networkd-bug -- systemctl restart systemd-networkd 4. Notice `vlan1` lost it's master config $ lxc exec networkd-bug -- ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: vlan1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 00:16:3e:94:6e:47 brd ff:ff:ff:ff:ff:ff 3: br0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 42:b6:31:01:47:9a brd ff:ff:ff:ff:ff:ff 164: eth0@if165: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 00:16:3e:94:6e:47 brd ff:ff:ff:ff:ff:ff link-netnsid 0 Ideally, `vlan1` should retain it's `master` setting and I wouldn't loose connectivity :) Additional information: # apt-cache policy systemd netplan.io iproute2 systemd: Installed: 249.11-0ubuntu3.9 Candidate: 249.11-0ubuntu3.9 Version table: *** 249.11-0ubuntu3.9 500 500 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages 100 /var/lib/dpkg/status 249.11-0ubuntu3.7 500 500 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages 249.11-0ubuntu3 500 500 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages netplan.io: Installed: 0.105-0ubuntu2~22.04.3 Candidate: 0.105-0ubuntu2~22.04.3 Version table: *** 0.105-0ubuntu2~22.04.3 500 500 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages 100 /var/lib/dpkg/status 0.104-0ubuntu2 500 500 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages iproute2: Installed: 5.15.0-1ubuntu2 Candidate: 5.15.0-1ubuntu2 Version table: *** 5.15.0-1ubuntu2 500 500 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages 100 /var/lib/dpkg/status # lsb_release -rd Description: Ubuntu 22.04.3 LTS Release: 22.04 # uname -a Linux networkd-bug 6.2.0-32-generic #32~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 18 10:40:13 UTC 2 x86_64 x86_64 x86_64 GNU/Linux To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/2036127/+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