odhcp6c: use the global DHCP DUID for DHCPv6
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run

odhcp6c already supports custom DUIDS on a per-interface basis.  When no client
identifier has been set, odhcp6c will generate one on the basis of the MAC
address of the given interface.

This is contrary to how DUIDs are meant to be used, as the client identifier
will vary from interface to interface, while it is meant to remain stable for a
given host, no matter how the network hardware changes (see RFC8415, §11).

Fix this by letting odhcp6c use the global DHCP DUID, if configured.

Signed-off-by: David Härdeman <david@hardeman.nu>
Link: https://github.com/openwrt/openwrt/pull/20359
Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit is contained in:
David Härdeman 2025-10-10 11:43:11 +02:00 committed by Robert Marko
parent 9151c7015e
commit 7dee632bee

View file

@ -2,6 +2,7 @@
. /lib/functions.sh
. ../netifd-proto.sh
. /lib/config/uci.sh
init_proto "$@"
proto_dhcpv6_init_config() {
@ -66,6 +67,7 @@ proto_dhcpv6_setup() {
[ -z "$reqprefix" -o "$reqprefix" = "auto" ] && reqprefix=0
[ "$reqprefix" != "no" ] && append opts "-P$reqprefix"
[ -z "$clientid" ] && clientid="$(uci_get network @globals[0] dhcp_default_duid)"
[ -n "$clientid" ] && append opts "-c$clientid"
[ "$defaultreqopts" = "0" ] && append opts "-R"