** Tags added: netplan patch resolute

** Description changed:

+ [ Impact ]
+ On Ubuntu 26.04 (Resolute) and any system running systemd >= 259, setting 
'dhcp-identifier: mac' in netplan YAML configuration is ignored by 
systemd-networkd.
+ 
+ The Netplan networkd backend (src/networkd.c) writes DHCP client
+ configuration under the legacy '[DHCP]' section header dating back to
+ 2017. While older systemd versions aliased '[DHCP]' to '[DHCPv4]', in
+ systemd-networkd >= 259 configuration parser precedence and modern drop-
+ ins strictly prioritize '[DHCPv4]'. Consequently, settings written under
+ '[DHCP]' (such as ClientIdentifier=mac, RouteMetric=, UseMTU=,
+ UseRoutes=) are ignored or overridden by the default networkd
+ configuration. The DHCPv4 client falls back to DUID, breaking MAC-based
+ DHCP reservations and static lease assignments in enterprise networks.
+ 
+ [ Fix ]
+ Update Netplan's networkd generator in src/networkd.c to emit canonical 
'[DHCPv4]' section headers for IPv4 DHCP settings and '[DHCPv6]' section 
headers for IPv6 DHCP settings instead of the obsolete combined '[DHCP]' 
section.
+ 
+ [ Test Plan ]
+ 1. Create a netplan configuration with dhcp4 and dhcp-identifier set to mac:
+    network:
+      version: 2
+      ethernets:
+        eth0:
+          dhcp4: true
+          dhcp-identifier: mac
+ 
+ 2. Run `netplan generate`.
+ 3. Inspect the generated systemd-networkd file in 
`/run/systemd/network/10-netplan-eth0.network`.
+    - Verify that `[DHCPv4]` is emitted instead of `[DHCP]`.
+    - Verify that `ClientIdentifier=mac` is correctly placed under `[DHCPv4]`.
+ 4. Apply network configuration (`netplan apply`) and verify via `networkctl 
status eth0` that systemd-networkd initiates DHCPv4 negotiation using the 
hardware MAC address instead of DUID.
+ 5. Verify test suite passes:
+    `pytest-3 tests/generator/test_dhcp_overrides.py`
+    All 185 networkd generator test cases pass with 0 regressions.
+ 
+ [ Where problems could occur ]
+ The change only modernizes section headers in generated systemd-networkd 
`.network` files from `[DHCP]` to `[DHCPv4]` and `[DHCPv6]`. Both sections have 
been supported in systemd since v244 (Ubuntu 20.04 LTS Focal). Therefore, 
backwards compatibility across all supported Ubuntu releases is fully 
preserved. Potential regression risk is minimal.
+ 
+ [ Other Info ]
+ - Upstream Pull Request: https://github.com/canonical/netplan/pull/617
+ - Target development release: Ubuntu 26.04 (Resolute)
+ - Patch attached: lp2167907_networkd_dhcp4_section.patch
+ 
+ --- [ Original Report ]
  Version:
  --------
  Ubuntu 26.04 Server using netplan and systemd v259'
  
  Summary:
  --------
  'dhcp-identifier: mac' is stored in the netplan YAML and shows up in netplan 
get, but it does not change the live DHCPv4 client ID on Ubuntu 26.04
  
  Root Cause:
  -----------
  Netplan 1.2 writes 'ClientIdentifier=mac' under the old [DHCP] section
  systemd 259 only reads that setting from [DHCPv4], so it keeps the default 
(use DUID)
  networkctl cat @IFACE shows an empty [DHCPv4] section and MAC-based DHCP 
reservations fail after reboot
  
  Local Workaround:
  -----------------
  I put 'ClientIdentifier=mac' in /etc/systemd/networkd.conf.d/ under [DHCPv4] 
and everything worked again

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2167907

Title:
  'dhcp-identifier: mac' in netplan .yml config is ignored by systemd

To manage notifications about this bug go to:
https://bugs.launchpad.net/netplan/+bug/2167907/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to