← Back to team overview

debcrafters-packages team mailing list archive

[Bug 2098183] Re: Preserve IPv6 configurations when `KeepConfiguration=dhcp-on-stop` is set

 

Thanks, Chris!

First, regarding libsystemd-shared: you're understanding is correct.
This is a library for sharing common code within systemd only, and
components which use it are required to have the strict version
dependency as you noted. Changes to libsystemd-shared are routine, and
the packaging is already setup to accommodate this.

Second, regarding 0003-network-process-queued-remove-requests-before-
networ.patch in orcaular: the patch is upstream commit [1], which itself
fixes upstream commit [2]. The latter was never present in noble, and
hence the former does not apply.

[1] https://github.com/systemd/systemd/commit/db68e990467ffea2b6655e4726856ca7eb32b38d
[2] https://github.com/systemd/systemd/commit/85a6f300c14d75d161cbfdb3eaf5af9594400ecd

-- 
You received this bug notification because you are a member of
Debcrafters packages, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/2098183

Title:
  Preserve IPv6 configurations when `KeepConfiguration=dhcp-on-stop` is
  set

Status in systemd package in Ubuntu:
  Fix Released
Status in systemd source package in Focal:
  Won't Fix
Status in systemd source package in Jammy:
  Won't Fix
Status in systemd source package in Noble:
  In Progress
Status in systemd source package in Oracular:
  In Progress
Status in systemd source package in Plucky:
  Fix Released

Bug description:
  [Impact]
  The IPv6 configuration is being cleared even though `KeepConfiguration` is set to `yes`, causing the iSCSI backend system to hang during shutdown.

  [Fix]
  Systemd upstream has addressed this issue.
  https://github.com/systemd/systemd/pull/34989

  [Test Plan]
  <Verify the functionality of KeepConfiguration in preserving IPv6 configurations>
  1. Set up a machine with an iSCSI backend in an IPv6-only environment.
  2. Configure the `KeepConfiguration` option for each network device individually using drop-in configuration files (e.g., `/etc/systemd/network/*.network.d/*.conf`) or set the `"critical"` option to `true` in the Netplan configuration.
  3. Power off the machine and verify that the system does not hang.

  <Verify the serialization and deserialization functionality in the systemd-networkd service>
  1. Enable debugging for systemd-networkd
  > mkdir -p /etc/systemd/system/systemd-networkd.service.d/
  > vim /etc/systemd/system/systemd-networkd.service.d/10-debug.conf
  ===
  [Service]
  Environment=SYSTEMD_LOG_LEVEL=debug
  ===
  systemctl daemon-reload
  2. Restart the systemd-networkd service twice using the `systemctl restart systemd-networkd` command.
  3. Confirm that serialization and deserialization are functioning correctly by checking `/var/log/syslog`
  2025-03-13T00:35:01.540134+00:00 oracular systemd-networkd[2998]: Serializing...
  2025-03-13T00:35:01.540165+00:00 oracular systemd-networkd[2998]: enp0s9: Serializing DHCPv4 address (configured): 10.0.2.100/24 broadcast 10.0.2.255 (valid forever, preferred forever), flags: permanent, scope: global, label: n/a
  2025-03-13T00:35:01.540193+00:00 oracular systemd-networkd[2998]: enp0s9: Serializing DHCPv6 address (configured): 2603:c020:4016:8201:48ee:6b22:d3e4:2e8/128 (valid for 1d 56min 49s, preferred for 23h 56min 49s), flags: no-prefixroute, scope: global
  2025-03-13T00:35:01.540218+00:00 oracular systemd-networkd[2998]: Serialization completed.
  ...
  2025-03-13T00:35:01.596591+00:00 oracular systemd-networkd[3029]: Deserializing...
  2025-03-13T00:35:01.596612+00:00 oracular systemd-networkd[3029]: enp0s9: Deserialized DHCPv4 address (configured): 10.0.2.100/24 broadcast 10.0.2.255 (valid forever, preferred forever), flags: permanent, scope: global, label: n/a
  2025-03-13T00:35:01.596635+00:00 oracular systemd-networkd[3029]: enp0s9: Deserialized DHCPv6 address (configured): 2603:c020:4016:8201:48ee:6b22:d3e4:2e8/128 (valid for 1d 56min 49s, preferred for 23h 56min 49s), flags: no-prefixroute, scope: global
  2025-03-13T00:35:01.596662+00:00 oracular systemd-networkd[3029]: Deserialization completed.

  <Verify that the IP address is removed when KeepConfiguration=no is set>
  1. Check the name of the current network configuration file:
  > ls /run/systemd/network/
  10-netplan-enp0s9.link 10-netplan-enp0s9.network
  2. Create a drop-in directory and override the KeepConfiguration setting:
  > mkdir -p /etc/systemd/network/10-netplan-enp0s9.network.d
  > vim /etc/systemd/network/10-netplan-enp0s9.network.d/10-netplan-enp0s9.network.conf
  ===
  [Network]
  KeepConfiguration=no
  ===
  3. Restart the systemd-networkd service to apply the changes:
  > systemctl restart systemd-networkd
  4. Stop the systemd-networkd service and verify the IP address is dropped:
  > systemctl stop systemd-networkd
  > ip a

  [Where problems could occur]
  The patches introduce network serialization and deserialization behavior, ensuring that DHCPv6 addresses are preserved when `KeepConfiguration=yes` is set. If any regressions occur, error messages may appear when restarting `systemd-networkd`, but they will be ignored. Both IPv4/IPv6 configuration and the IPv6 connection may be affected.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/2098183/+subscriptions