openwrt/package/base-files/files/etc
David Härdeman a660a076db base-files: generate a global DHCP DUID
odhcp6c and odhcpd currently generate custom DUIDS on a per-interface basis
using 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).

The same problem exists in odhcpd, which also generates server-side DUIDs on a
per-interface basis.

In order to support a stable per-device DUID, generate one on first boot and
store it via uci.

Currently, a DUID-UUID style clientid is generated. This is mostly meant as an
RFC, and we might consider using a different kind of DUID instead (DUID-LLT,
DUID-EN).

One drawback is that this will typically change the DUID used on existing
OpenWrt devices when upgrading to a new release. However, that seems
unavoidable and is a one-time pain in order to have stable DUIDs (and in many
cases, it shouldn't cause any issues).

v2: move the uci cfg generation outside of an IPv6-only block since this
is relevant to the DHCPv4 client as well

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>
2025-10-19 19:46:22 +02:00
..
board.d treewide: remove execute bit and shebang from board.d files 2021-03-06 11:30:06 +01:00
hotplug.d base-files: configure LED when added 2024-10-03 23:05:24 +01:00
init.d base-files: commit and sync before removing defaults script. 2025-10-04 20:49:21 +02:00
iproute2 base-files: install missing /etc/iproute2/ematch_map 2018-12-19 07:33:35 +01:00
rc.button fstools: update to latest HEAD 2024-12-02 14:43:09 +01:00
sysctl.d base-files: enable BPF JIT kallsyms by default 2023-06-02 20:53:49 +02:00
uci-defaults base-files: generate a global DHCP DUID 2025-10-19 19:46:22 +02:00
banner merge: release/banner: drop release name and update banner 2017-12-08 19:41:18 +01:00
banner.failsafe base-files: fix links in banner.failsafe 2018-06-18 07:10:15 +02:00
device_info base-files: add URL option for OEM manufacturer info 2015-10-05 10:28:53 +00:00
diag.sh base-files: diag: restore default trigger for 'boot' LED 2020-02-24 23:27:50 +01:00
ethers base-files: create /etc/ethers by default 2018-08-21 15:55:00 +02:00
fstab base-files: remove fstab symlink 2016-06-17 04:13:07 +02:00
group base-files/hotplug: fix dedicated group for tty devices 2019-04-04 17:09:40 +02:00
hosts base-files: add /etc/hosts entries for ::1, ff02::1 and ff02::2 2015-09-02 11:54:03 +00:00
inittab image / basefiles: make console password configurable 2016-04-18 21:53:07 +02:00
openwrt_release merge: properly remove %n / %N references 2017-12-09 16:01:14 +01:00
openwrt_version build: adjust version number handling 2016-12-02 16:02:02 +01:00
os-release base-files: Add standard os-release file 2016-06-24 13:52:53 +02:00
passwd base-files: prime root password with "x" to notify programs that there is a shadow record, fix /bin/login.sh password detection accordingly. Solves broken key based dropbear login with empty password after r28935. 2011-11-14 19:02:01 +00:00
preinit preinit: use only the image config options 2016-08-10 03:04:08 +02:00
profile base-files: fix manger->manager typo 2024-11-28 08:10:44 +00:00
protocols base-files: add DCCP to /etc/protocols 2015-11-15 22:09:13 +00:00
rc.common procd: do not overwrite service data by default 2024-12-17 21:54:54 +01:00
rc.local base-files: introduce a ready-to-use /etc/rc.local to let users run custom commands on init without creating custom init scripts 2009-09-11 21:35:03 +00:00
services base-files: /etc/services: add missing 'rpcbind' alias 2018-09-10 10:44:03 +02:00
shadow base-file: remove password aging feature form /etc/shadow 2022-02-24 18:10:30 +01:00
shells rename default/ to files/ 2006-11-22 23:30:57 +00:00
shinit procd: move service command to procd 2022-03-19 16:13:58 +01:00
sysctl.conf base-files: /etc/sysctl.conf: clarity in comment 2024-10-03 17:29:02 +02:00
sysupgrade.conf base-files: - add sysupgrade support for keepfile hints * introduces /lib/upgrade/keep.d/ for per-package keepfile lists * introduces /etc/sysupgrade.conf for user defined keepfile hints - prime /lib/upgrade/keep.d/base-files-essential to keep sysupgrade usable for images without opkg - change sysupgrade to build the keepfile list from /lib/upgrade/keep.d/, /etc/sysupgrade.conf and opkg list-changed-conffiles 2010-10-05 19:24:12 +00:00