diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate index 7507aa612c..18fae054d4 100755 --- a/package/base-files/files/bin/config_generate +++ b/package/base-files/files/bin/config_generate @@ -44,14 +44,15 @@ generate_static_network() { set network.loopback.device='lo' set network.loopback.proto='static' add_list network.loopback.ipaddr='127.0.0.1/8' + delete network.globals + set network.globals='globals' + set network.globals.dhcp_default_duid='auto' EOF - [ -e /proc/sys/net/ipv6 ] && { - uci -q batch <<-EOF - delete network.globals - set network.globals='globals' - set network.globals.ula_prefix='auto' - EOF - } + [ -e /proc/sys/net/ipv6 ] && { + uci -q batch <<-EOF + set network.globals.ula_prefix='auto' + EOF + } if json_is_a dsl object; then json_select dsl diff --git a/package/base-files/files/etc/uci-defaults/14_network-generate-clientid b/package/base-files/files/etc/uci-defaults/14_network-generate-clientid new file mode 100644 index 0000000000..70da185c20 --- /dev/null +++ b/package/base-files/files/etc/uci-defaults/14_network-generate-clientid @@ -0,0 +1,9 @@ +[ "$(uci -q get network.globals.dhcp_default_duid)" != "auto" ] && exit 0 + +uci -q batch <<-EOF >/dev/null + # DUID-UUID - RFC6355 + set network.globals.dhcp_default_duid="$(hexdump -vn 16 -e '"0004" 2/2 "%x"' /dev/urandom)" + commit network +EOF + +exit 0