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

[dns] OTBR not correctly parsing the RDNSS Option in RA message? #2685

Open
EskoDijk opened this issue Jan 24, 2025 · 0 comments
Open

[dns] OTBR not correctly parsing the RDNSS Option in RA message? #2685

EskoDijk opened this issue Jan 24, 2025 · 0 comments
Assignees

Comments

@EskoDijk
Copy link

Describe the bug

If a DNS server is advertised on the AIL using the RDNSS Option in an RA message, it looks like this is not (always?) correctly parsed by OTBR as the upstream DNS server.

To Reproduce

  1. Git commit id: tbd (a version of ot-reference-release, not sure exactly which one was used)
  2. IEEE 802.15.4 hardware platform: tbd
  3. Build steps: tbd (most likely ot-reference-release)
  4. Network topology: test PIC-11.3 in v1.4 R9 cert plan, OTBR as DUT

Expected behavior

OTBR forwards a DNS query e.g. for AAAA "threadgroup1.org" to the upstream DNS server advertised via RDNSS Option.
See 1.4.0 spec Section 14.3.6.2.

Console/log output

May 10 16:47:13 raspberrypi otbr-agent[2337]: 00:01:31.157 [I] DnssdServer---: Received query from fd00:db9:0:0:6296:678:3037:3f4c
May 10 16:47:13 raspberrypi otbr-agent[2337]: 00:01:31.157 [I] DnssdServer---: Upstream query transaction 0 initialized.
May 10 16:47:13 raspberrypi otbr-agent[2337]: 00:01:31.157 [C] P-Resolver----: No domain name servers found in /etc/resolv.conf, default to 127.0.0.1
May 10 16:47:13 raspberrypi otbr-agent[2337]: 00:01:31.158 [I] P-Resolver----: Forwarded DNS query 0x589730 to 0 server(s).

In Wireshark, the dissect of the RA with the DNS server indicated looks as follows:

Frame 379: 134 bytes on wire (1072 bits), 134 bytes captured (1072 bits) on interface \Device\NPF_{F6FF1A6B-E5AC-472D-B3E9-4A8DAEEDE5EF}, id 1
Ethernet II, Src: RaspberryPiF_76:ad:4c (b8:27:eb:76:ad:4c), Dst: IPv6mcast_01 (33:33:00:00:00:01)
Internet Protocol Version 6, Src: fe80::ba27:ebff:fe76:ad4c, Dst: ff02::1
Internet Control Message Protocol v6
    Type: Router Advertisement (134)
    Code: 0
    Checksum: 0x213e [correct]
    [Checksum Status: Good]
    Cur hop limit: 64
    Flags: 0x18, Prf (Default Router Preference): Low
    Router lifetime (s): 0
    Reachable time (ms): 0
    Retrans timer (ms): 0
    ICMPv6 Option (Prefix information : 2005:1234:abcd:100::/64)
    ICMPv6 Option (Recursive DNS Server 2005:1234:abcd:100:e65f:1ff:fed5:eab8)
        Type: Recursive DNS Server (25)
        Length: 3 (24 bytes)
        Reserved
        Lifetime: 30 (30 seconds)
        Recursive DNS Servers: 2005:1234:abcd:100:e65f:1ff:fed5:eab8
    ICMPv6 Option (Source link-layer address : b8:27:eb:76:ad:4c)

The OTBR's processing of that received RA doesn't mention parsing of the RDNSS Option:

May 10 16:46:42 raspberrypi otbr-agent[2337]: 00:00:59.933 [I] RoutingManager: Received RA from fe80:0:0:0:ba27:ebff:fe76:ad4c on infra netif 2 
May 10 16:46:42 raspberrypi otbr-agent[2337]: 00:00:59.933 [I] RoutingManager: - RA Header - flags - M:0 O:0 S:0
May 10 16:46:42 raspberrypi otbr-agent[2337]: 00:00:59.933 [I] RoutingManager: - RA Header - default route - lifetime:0
May 10 16:46:42 raspberrypi otbr-agent[2337]: 00:00:59.933 [I] RoutingManager: - RA Header - default route - lifetime:0
May 10 16:46:42 raspberrypi otbr-agent[2337]: 00:00:59.933 [I] RoutingManager: - PIO 2005:1234:abcd:100::/64 (valid:86400, preferred:14400)

Additional context
Test cases PIC-10.x and DNS-11.3 rely on parsing of the RDNSS Option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants