-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Open
Labels
Area: networkArea: NetworkingArea: NetworkingType: bugThe issue reports a bug / The PR fixes a bug (including spelling errors)The issue reports a bug / The PR fixes a bug (including spelling errors)
Description
Description
SLAAC-configured global IPv6 addresses, once deprecated, do not become valid again after receiving a new router advertisement.
This is a problem when the router advertisement daemon goes offline for a time period between the preferred lifetime and the valid lifetime (e.g. due to maintenance).
Steps to reproduce the issue
- Compile and launch RIOT's gnrc_networking example:
$ sudo ./dist/tools/tapsetup/tapsetup
$ make -C examples/gnrc_networking all term
- Start radvd:
$ sudo ./dist/tools/radvd/radvd.sh -c tapbr0 2001:db8::/64
- Either stop radvd until the preferred lifetime expires:
$ sudo ./dist/tools/radvd/radvd.sh -d
$ sleep 14400
$ sudo ./dist/tools/radvd/radvd.sh -c tapbr0 2001:db8::/64
...or if you don't want to wait for 4 hours, just send a router advertisement to the node with a preferred lifetime of 1 using a link-local source address:
$ sudo scapy
>>> send(IPv6(dst='2001:db8::343f:a7ff:fecf:48aa', src='fe80::cde:52ff:feae:c1c6')/ICMPv6ND_RA()/ICMPv6NDOptPrefixInfo(prefix='2001:db8::', validlifetime=86400, preferredlifetime=1))
Expected results
The global address should become valid again after receiving a new router advertisement.
Actual results
The valid lifetime and preferred lifetime are updated by new router advertisements. However the address remains deprecated:
> nib prefix
nib prefix
2001:db8::/64 dev #6 expires 86363 sec deprecates 14363 sec
> ifconfig
ifconfig
Iface 6 HWaddr: 36:3F:A7:CF:48:AA
L2-PDU:1500 MTU:1500 HL:64 RTR
RTR_ADV
Source address length: 6
Link type: wired
inet6 addr: fe80::343f:a7ff:fecf:48aa scope: link VAL
inet6 addr: 2001:db8::343f:a7ff:fecf:48aa scope: global DPR
Metadata
Metadata
Labels
Area: networkArea: NetworkingArea: NetworkingType: bugThe issue reports a bug / The PR fixes a bug (including spelling errors)The issue reports a bug / The PR fixes a bug (including spelling errors)