Decode RDNSS addresses and keep their link scope
02Type 25 carries whole 128-bit addresses and a shared lifetime; a link-local address also needs its link.
Separate received options on linkA and linkB can both name fe80::53. Store link context and use the corresponding link for a query. The zone label is local metadata, not extra address bytes.
Source for this drawing: RFC 8106 · Read RFC section 5.1 ↗
New to this? Start hereA quick picture + helpful background
A message needs an address.
Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.
Helpful first, if these ideas are unfamiliar
These pictures are analogies to help you learn. The linked RFC explains the actual rules.
Terms in this drawing
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
An RDNSS option has Type 25, an 8-bit Length measured in units of 8 octets including the header, a Reserved field, a 32-bit unsigned Lifetime in seconds, and one or more 128-bit IPv6 addresses. Reserved is zero in our chosen encoding; field widths are shown schematically (§5.1).
- An RDNSS option has Type 25, an 8-bit Length measured in units of 8 octets including the header, a Reserved field, a 32-bit unsigned Lifetime in seconds, and one or more 128-bit IPv6 addresses. Reserved is zero in our chosen encoding; field widths are shown schematically (§5.1).
- One address makes Length=3 and 24 bytes total: 8 header bytes plus 16 address bytes. Each additional address increases Length by 2; two addresses make Length=5 and 40 bytes. The receiver checks Length>=3 and (Length−1)%2==0; address count is (Length−1)/2 (§§5.1,5.3.1).
- All addresses in one option share its Lifetime. Use separate RDNSS options for different lifetimes. Invalid length cannot be repaired by silently treating bytes as another address; invalid options MUST be discarded. The addresses are checked for unicast suitability (§5.3.1). Our helper screens multicast/unspecified examples but is not a complete address or RA policy engine.
- Link-local RDNSS addresses MAY be advertised. Such entries SHOULD be registered with their receiving link’s zone index, and DNS queries to a link-local RDNSS MUST use that corresponding link (§5.1). fe80::53%linkA is a possible local text representation; %linkA is not included in the 128-bit on-wire address (RFC 4007 §11).
- Two links can have the same link-local address text while identifying different servers. The stored link distinguishes them. These codecs handle one already-framed option and selected hexadecimal IPv6 literals, not an entire RA, dotted-tail literal syntax, all special-address policy, routing or live DNS.
Fictional documentation addresses/domains and chosen seconds. The isolated-option codecs and repository snapshots are bounded teaching models; no real RA, DNS query, operating-system configuration or security validation occurs.
Read the RFC section ↗