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

DHCPv6 client: Handling of NotOnLink incorrect #20349

Open
maribu opened this issue Feb 7, 2024 · 2 comments
Open

DHCPv6 client: Handling of NotOnLink incorrect #20349

maribu opened this issue Feb 7, 2024 · 2 comments
Assignees
Labels
Area: network Area: Networking Type: bug The issue reports a bug / The PR fixes a bug (including spelling errors)

Comments

@maribu
Copy link
Member

maribu commented Feb 7, 2024

Description

From: https://www.rfc-editor.org/rfc/rfc3315#section-18.1.8

When the client receives a NotOnLink status from the server in
response to a Request, the client can either re-issue the Request
without specifying any addresses or restart the DHCP server discovery
process (see section 17).

This behavior however is not implemented.

Steps to reproduce the issue

Connect an OpenWrt router to a FritzBox and enable prefix delegation on both the FritzBox and the OpenWrt box. The OpenWrt will get /57 prefix delegated. Then, flash the gnrc_boarder_router example with UPLINK=wifi and SSID and password of the OpenWrt box.

Expected results

The ESP32 will get a prefix from the OpenWrt box.

Actual results

2024-02-07 12:12:44,243 # WiFi connected to ssid Loeffelnetz, channel 1
2024-02-07 12:12:48,108 # DHCPv6 client: resend SOLICIT
2024-02-07 12:12:48,121 # DHCPv6 client: received ADVERTISE
2024-02-07 12:12:48,122 # DHCPv6 client: scheduling REQUEST
2024-02-07 12:12:48,122 # DHCPv6 client: send REQUEST
2024-02-07 12:12:48,160 # DHCPv6 client: received REPLY
2024-02-07 12:12:48,161 # DHCPv6 client: server returned error (4) "��Py�?"
> ifconfig
2024-02-07 12:25:36,187 #      L2-PDU:249  MTU:1280  HL:64  RTR  
2024-02-07 12:25:36,187 #           6LO  Source address length: 6
2024-02-07 12:25:36,187 #           Link type: wireless
2024-02-07 12:25:36,187 #           inet6 addr: fe80::a6cf:12ff:fe44:e815  scope: link  VAL
2024-02-07 12:25:36,188 #           inet6 group: ff02::2
2024-02-07 12:25:36,188 #           inet6 group: ff02::1
2024-02-07 12:25:36,208 #           inet6 group: ff02::1:ff44:e815
2024-02-07 12:25:36,209 #           
2024-02-07 12:25:36,209 # Iface  10  HWaddr: A4:CF:12:44:E8:14  Channel: 1  Link: up 
2024-02-07 12:25:36,209 #           L2-PDU:1500  MTU:1492  HL:64  RTR  
2024-02-07 12:25:36,209 #           Source address length: 6
2024-02-07 12:25:36,210 #           Link type: wireless
2024-02-07 12:25:36,227 #           inet6 addr: fe80::a6cf:12ff:fe44:e814  scope: link  VAL
2024-02-07 12:25:36,227 #           inet6 addr: 2a01:c23:654d:3d80:a6cf:12ff:fe44:e814  scope: global  VAL
2024-02-07 12:25:36,228 #           inet6 group: ff02::2
2024-02-07 12:25:36,228 #           inet6 group: ff02::1
2024-02-07 12:25:36,228 #           inet6 group: ff02::1:ff44:e814

Versions

2024.01-branch and current master

@benpicco
Copy link
Contributor

benpicco commented Feb 7, 2024

Do you have a packet capture of what RIOT is requesting there?

@maribu
Copy link
Member Author

maribu commented Feb 7, 2024

The request from the RIOT device:

DHCPv6
    Message type: Request (3)
    Transaction ID: 0x9c58a3
    Client Identifier
        Option: Client Identifier (1)
        Length: 10
        DUID: 00030001a4cf1244e814
        DUID Type: link-layer address (3)
        Hardware type: Ethernet (1)
        Link-layer address: a4:cf:12:44:e8:14
    Server Identifier
        Option: Server Identifier (2)
        Length: 10
        DUID: 00030001c87f54e24f50
        DUID Type: link-layer address (3)
        Hardware type: Ethernet (1)
        Link-layer address: c8:7f:54:e2:4f:50
    Option Request
        Option: Option Request (6)
        Length: 2
        Requested Option code: SOL_MAX_RT (82)
    Identity Association for Prefix Delegation
        Option: Identity Association for Prefix Delegation (25)
        Length: 41
        IAID: 00190009
        T1: 0
        T2: 0
        IA Prefix
            Option: IA Prefix (26)
            Length: 25
            Preferred lifetime: 0
            Valid lifetime: 0
            Prefix length: 64
            Prefix address: ::
    Elapsed time
        Option: Elapsed time (8)
        Length: 2
        Elapsed time: 0ms

The reply from the DHCPv6 server:

DHCPv6
    Message type: Reply (7)
    Transaction ID: 0x9c58a3
    Server Identifier
        Option: Server Identifier (2)
        Length: 10
        DUID: 00030001c87f54e24f50
        DUID Type: link-layer address (3)
        Hardware type: Ethernet (1)
        Link-layer address: c8:7f:54:e2:4f:50
    Client Identifier
        Option: Client Identifier (1)
        Length: 10
        DUID: 00030001a4cf1244e814
        DUID Type: link-layer address (3)
        Hardware type: Ethernet (1)
        Link-layer address: a4:cf:12:44:e8:14
    SOL_MAX_RT
        Option: SOL_MAX_RT (82)
        Length: 4
    DNS recursive name server
        Option: DNS recursive name server (23)
        Length: 16
         1 DNS server address: fd71:af38:1d57::1
    Identity Association for Prefix Delegation
        Option: Identity Association for Prefix Delegation (25)
        Length: 18
        IAID: 00190009
        T1: 0
        T2: 0
        Status code
            Option: Status code (13)
            Length: 2
            Status Code: NotOnLink (4)

And the whole exchanged captured at the OpenWrt Box: https://mari-bu.de/capture.pcapng

@benpicco benpicco added Type: bug The issue reports a bug / The PR fixes a bug (including spelling errors) Area: network Area: Networking labels Feb 7, 2024
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

3 participants