DHCPv4 (IAID+DUID) networking broken in LXC containers
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
lxd (Ubuntu) |
New
|
Undecided
|
Unassigned | ||
systemd (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
DHCPv4 networking does not work in the default IAID+DUID (ClientIdentifi
Reproducer:
$ lxc launch ubuntu-daily:jammy jj
$ lxc exec jj bash
# add-apt-repository ppa:ci-
# apt install systemd # install systemd 249.5-2ubuntu1
# cat /etc/systemd/
[Match]
Name=eth0
[Network]
DHCP=ipv4
# systemctl restart systemd-
# networkctl
IDX LINK TYPE OPERATIONAL SETUP
[...]
611 eth0 ether carrier failed
A workaround is to avoid IAID+DUID mode via:
[DHCPv4]
#ClientIdentifi
ClientIdentifie
Interesting logs:
Nov 12 14:10:48 jj systemd-
Nov 12 14:10:48 jj systemd-
Nov 12 14:10:48 jj systemd-
Nov 12 14:10:48 jj systemd-
Nov 12 14:10:48 jj systemd-
CVE References
Changed in systemd (Ubuntu): | |
status: | New → Fix Committed |
Turns out dropping "debian/ patches/ units-Don- t-start- systemd- udev-trigger. service- in-a-conta. patch" (that we want to drop anyway) makes a difference here, i.e. removing the "ConditionVirtu alization= !container" line from /usr/lib/ systemd/ service/ systemd- udev-trigger. service.
# apt install systemd udev # upgrade systemd & udev to v249 udev-trigger # run the 'udevadm trigger' commands
# systemctl restart systemd-
# systemctl restart systemd-networkd # restart networkd to re-run the DHCPv4 client.
That is even though the systemd- udev-trigger. service fails to execute successfully: udev-trigger. service udev-trigger. service - Coldplug All udev Devices system/ systemd- udev-trigger. service; static)
man: systemd- udevd.service( 8)
# systemctl status systemd-
● systemd-
Loaded: loaded (/lib/systemd/
Active: active (exited) since Wed 2021-11-17 09:39:01 UTC; 37s ago
Docs: man:udev(7)
Process: 74 ExecStart=udevadm trigger --type=subsystems --action=add (code=exited, status=1/FAILURE)
Process: 101 ExecStart=udevadm trigger --type=devices --action=add (code=exited, status=1/FAILURE)
Main PID: 101 (code=exited, status=1/FAILURE)
CPU: 160ms
Nov 17 09:39:01 jj2 udevadm[101]: nvme-delete-wq: Failed to write 'add' to '/sys/devices/ virtual/ workqueue/ nvme-delete- wq/uevent' : Permission denied virtual/ workqueue/ nvme-reset- wq/uevent' : Permission denied virtual/ workqueue/ nvme-wq/ uevent' : Permission denied virtual/ workqueue/ raid5wq/ uevent' : Permission denied virtual/ workqueue/ scsi_tmf_ 0/uevent' : Permission denied virtual/ workqueue/ writeback/ uevent' : Permission denied virtual/ block/dm- 0/uevent' : Permission denied virtual/ block/dm- 1/uevent' : Permission denied virtual/ block/dm- 2/uevent' : Permission denied virtual/ block/dm- 3/uevent' : Permission denied
Nov 17 09:39:01 jj2 udevadm[101]: nvme-reset-wq: Failed to write 'add' to '/sys/devices/
Nov 17 09:39:01 jj2 udevadm[101]: nvme-wq: Failed to write 'add' to '/sys/devices/
Nov 17 09:39:01 jj2 udevadm[101]: raid5wq: Failed to write 'add' to '/sys/devices/
Nov 17 09:39:01 jj2 udevadm[101]: scsi_tmf_0: Failed to write 'add' to '/sys/devices/
Nov 17 09:39:01 jj2 udevadm[101]: writeback: Failed to write 'add' to '/sys/devices/
Nov 17 09:39:01 jj2 udevadm[101]: dm-0: Failed to write 'add' to '/sys/devices/
Nov 17 09:39:01 jj2 udevadm[101]: dm-1: Failed to write 'add' to '/sys/devices/
Nov 17 09:39:01 jj2 udevadm[101]: dm-2: Failed to write 'add' to '/sys/devices/
Nov 17 09:39:01 jj2 udevadm[101]: dm-3: Failed to write 'add' to '/sys/devices/