Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Global IPv6 addresses remain deprecated after receiving RA #19846

Open
LP-HAW opened this issue Jul 24, 2023 · 1 comment
Open

Global IPv6 addresses remain deprecated after receiving RA #19846

LP-HAW opened this issue Jul 24, 2023 · 1 comment
Assignees
Labels
Area: network Area: Networking Type: bug The issue reports a bug / The PR fixes a bug (including spelling errors)

Comments

@LP-HAW
Copy link
Contributor

LP-HAW commented Jul 24, 2023

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

  1. Compile and launch RIOT's gnrc_networking example:
$ sudo ./dist/tools/tapsetup/tapsetup
$ make -C examples/gnrc_networking all term
  1. Start radvd:
$ sudo ./dist/tools/radvd/radvd.sh -c tapbr0 2001:db8::/64
  1. 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
@miri64 miri64 added Type: bug The issue reports a bug / The PR fixes a bug (including spelling errors) Area: network Area: Networking labels Jul 25, 2023
@miri64
Copy link
Member

miri64 commented Jul 25, 2023

Thanks for the report! I will try to find some time to look into this. If someone else finds a fix earlier, please go ahead with it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: network Area: Networking Type: bug The issue reports a bug / The PR fixes a bug (including spelling errors)
Projects
None yet
Development

No branches or pull requests

4 participants