NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

bin/60852: dhcpcd creates IPv6 temporary addresses without pltime/vltime



>Number:         60852
>Category:       bin
>Synopsis:       dhcpcd creates IPv6 temporary addresses without pltime/vltime
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Oct 05 20:25:00 +0000 2026
>Originator:     Taylor R Campbell
>Release:        11
>Organization:
The NetBSD<AUTOCONF,TEMPORARY> Forever, Inc.
>Environment:
nanocons$ head -1 /etc/release
NetBSD 11.0_RC5/evbarm
nanocons$ uname -a
NetBSD nanocons.local 11.0_RC5 NetBSD 11.0_RC5 (GENERIC64) #0: Mon Jun 29 03:37:04 UTC 2026  root@manticore.local:/usr/obj/11/evbarm64/sys/arch/evbarm/compile/GENERIC64 evbarm
nanocons$ dhcpcd --version
dhcpcd 10.2.3
Copyright (c) 2006-2025 Roy Marples
Compiled in features: INET ARP ARPing IPv4LL INET6 DHCPv6 AUTH PRIVSEP

>Description:

	When dhcpcd is configured with

slaac private temporary

	in dhcpcd.conf, it sometimes assigns pltime and vltime to
	temporary addresses, but it sometimes just doesn't:

$ ifconfig -L ure0 | grep TEMPORARY
        inet6 ${GUA_PREFIX_A}:bf61:cc13:4667:40f1/64 flags 0xc0<AUTOCONF,TEMPORARY>
        inet6 ${GUA_PREFIX_B}:49b7:781c:fca9:62eb/64 flags 0xc0<AUTOCONF,TEMPORARY> pltime 4353 vltime 4400
        inet6 ${ULA_PREFIX}:1611:a6b3:c9c5:531f/64 flags 0xc0<AUTOCONF,TEMPORARY>
        inet6 ${GLA_PREFIX_A}:5e38:9c1f:e37d:d4a6/64 flags 0xc0<AUTOCONF,TEMPORARY>
        inet6 ${ULA_PREFIX}:2c9d:1c40:96b:51dd/64 flags 0xc0<AUTOCONF,TEMPORARY>

	This network is configured with a combination of DHCPv6 and SLAAC:

# dhcpcd -U ure0
...
reason=ROUTERADVERT
interface=ure0
protocol=ra
nd1_from=fe80::${ROUTER_LL}
nd1_acquired=418496
nd1_now=418532
nd1_hoplimit=64
nd1_flags=MO
nd1_lifetime=1800
nd1_source_address=${ROUTER_MAC}
nd1_mtu=1500
nd1_prefix_information1_length=64
nd1_prefix_information1_flags=LA
nd1_prefix_information1_vltime=4294967295
nd1_prefix_information1_pltime=4294967295
nd1_prefix_information1_prefix=${GUA_PREFIX_A}:
nd1_prefix_information2_length=64
nd1_prefix_information2_flags=LA
nd1_prefix_information2_vltime=4264
nd1_prefix_information2_pltime=4264
nd1_prefix_information2_prefix=${GUA_PREFIX_B}:
nd1_prefix_information3_length=64
nd1_prefix_information3_flags=LA
nd1_prefix_information3_vltime=4294967295
nd1_prefix_information3_pltime=4294967295
nd1_prefix_information3_prefix=${ULA_PREFIX}
nd1_rdnss1_lifetime=1800
nd1_rdnss1_servers=fd00::1
nd1_addr1=${GUA_PREFIX_A}:bf61:cc13:4667:40f1/64
nd1_addr2=${GUA_PREFIX_B}:49b7:781c:fca9:62eb/64
nd1_addr3=${ULA_PREFIX}:1611:a6b3:c9c5:531f/64
skip_hooks=resolv.conf

>How-To-Repeat:

	Add

slaac private temp

	to /etc/dhcpcd.conf and (probably) configure your interface on
	a network that serves one prefix with pltime/vltime of
	(uint32_t)-1 and another prefix with some other pltime/vltime.

>Fix:

	Yes, please!  Also please make the same syntax Just Work if
	dhcpcd transitions from RFC 4941 (now obsolete) to its
	successor RFC 8981.




Home | Main Index | Thread Index | Old Index