Ubuntu released an update for systemd , (237-3ubuntu10.44) which triggered a restart of networkd.service.
Jan 19 06:02:16 core01 systemd[1]: Stopped Network Service.
Jan 19 06:02:16 core01 systemd[1]: Starting Network Service...
Jan 19 06:02:16 core01 systemd-timesyncd[620]: Synchronized to time server 91.189.89.199:123 (ntp.ubuntu.com).
Jan 19 06:02:16 core01 systemd-networkd[2650]: ens4: Gained IPv6LL
Jan 19 06:02:16 core01 systemd-networkd[2650]: ens3: Gained IPv6LL
Jan 19 06:02:16 core01 systemd-timesyncd[620]: Network configuration changed, trying to establish connection.
Jan 19 06:02:16 core01 systemd-networkd[2650]: Enumeration completed
Jan 19 06:02:16 core01 systemd[1]: Started Network Service.
Jan 19 06:02:16 core01 systemd[1]: Starting Wait for Network to be Configured...
Jan 19 06:02:16 core01 systemd-networkd[2650]: ens4: IPv6 successfully enabled
Jan 19 06:02:16 core01 systemd-networkd[2650]: veth8222ae36: Link is not managed by us
Jan 19 06:02:16 core01 systemd-networkd[2650]: ens3: Link is not managed by us
Jan 19 06:02:16 core01 systemd-networkd[2650]: vethfdef6896: Link is not managed by us
Jan 19 06:02:16 core01 systemd-networkd[2650]: vethbbe48b6e: Link is not managed by us
Jan 19 06:02:16 core01 systemd-networkd[2650]: veth53f3592c: Link is not managed by us
Jan 19 06:02:16 core01 systemd-networkd[2650]: veth1ab77c6b: Link is not managed by us
Jan 19 06:02:16 core01 systemd-networkd[2650]: lo: Link is not managed by us
Jan 19 06:02:16 core01 systemd-networkd-wait-online[2651]: ignoring: lo
....
Restarting systemd-networkd.service effectively breaks all routed containers (tested and verified this is reproducible). The veth devices remained the same both pre/post restart as did the routing table, but no traffic hits the containers until they’re restarted.
This happened a few months ago as well, we weren’t able to isolate the cause at that time.
Restarting systemd-networkd.service on the LXD host results in the logs above, and all traffic to the containers ceasing.
The containers do not lose their IPs, they are statically assigned via container config. However, they do stop receiving traffic until they are restarted. I will verify after hours if the traffic makes it to the LXD host or not - it might be an arp issue.
It would be useful to post your networkd config too as certainly with a default networkd config on an ubuntu focal system the IP neighbour entries are not being cleaned on restart. But perhaps something in your config is causing it to.
# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
version: 2
ethernets:
ens3:
dhcp4: true
match:
macaddress: fa:16:3e:4c:85:47
set-name: ens3
ens4:
dhcp4: true
ip neigh show proxy
169.254.0.1 dev vethea039440 proxy
192.168.1.201 dev enp1s0f0 proxy
ip r
default via 192.168.1.2 dev enp1s0f0 proto static
192.168.1.0/24 dev enp1s0f0 proto kernel scope link src 192.168.1.1
192.168.1.201 dev vethea039440 scope link
Now restart systemd-networkd:
sudo systemctl restart systemd-network
Check routes and neighbour proxy entries are present:
ip neigh show proxy
169.254.0.1 dev vethea039440 proxy
192.168.1.201 dev enp1s0f0 proxy
ip r
default via 192.168.1.2 dev enp1s0f0 proto static
192.168.1.0/24 dev enp1s0f0 proto kernel scope link src 192.168.1.1
192.168.1.201 dev vethea039440 scope link