Default Router Preferences and More-Specific Routes
Extracted elements (27)
A new Route Information Option is defined rather than overloading the existing Prefix Information Option because: prefixes typically appear in only one option; the new option is 16 octets vs. 32 for PIO; and a new option may improve backwards-compatibility.
Only three preference values (High, Medium, Low) are defined, encoded as a 2-bit signed integer, to reinforce that these are not metrics; more values were not deemed necessary for reasonable scenarios.
Router Advertisement messages are used instead of RIP because RAs are an existing stable protocol for router-to-host communication, piggyback on existing traffic to reduce overhead, and RIP is unsuitable because it carries no route lifetimes and requires frequent high-overhead messages.
The Default Router Preference is encoded in the RA message header (in addition to allowing a ::/0 Route Information Option) to distinguish 'best router for default route' from 'router least likely to redirect,' and for efficiency when both roles coincide.
The extension is backwards-compatible: Type A hosts (implementing only RFC 2461) ignore the new Prf field and Route Information Options and continue to function as before. Routers advertising preferences must configure settings that work optimally for all host types (A, B, and C) simultaneously.
A host MUST NOT probe a router's reachability in the absence of useful traffic that the host would have sent to the router if it were reachable.
Bits in the Prefix field of a Route Information Option after the prefix length MUST be initialized to zero by the sender and ignored by the receiver.
If a Type C host finds no routes matching a destination (no default and no more-specific routes), it SHOULD discard the packet and report a Destination Unreachable/No Route To Destination error to the upper layer.
If the Reserved (10) preference value is received in the RA header, the receiver MUST treat it as Medium (00). If received in a Route Information Option, the option MUST be ignored.
If the Router Lifetime in a Router Advertisement is zero, the Default Router Preference (Prf) field MUST be set to (00) by the sender and MUST be ignored by the receiver.
Preference values (Default Router Preference and Route Preference) SHOULD NOT be routing metrics or automatically derived from metrics; they SHOULD be administratively configured.
Routers MUST NOT include two Route Information Options with the same Prefix and Prefix Length in the same Router Advertisement.
Routers SHOULD NOT advertise preferences or routes by default, and in particular SHOULD NOT dump their entire routing table to hosts.
Routers SHOULD NOT send more than 17 Route Information Options in Router Advertisements per link, reinforcing that relatively few and carefully selected routes should be advertised.
The Reserved (Resvd) 3-bit field in the RA header MUST be initialized to zero by the sender and MUST be ignored by the receiver.
Unstable routes SHOULD NOT be announced to hosts until their stability has improved, to prevent excessive load on hosts during periods of routing instability.
When a host avoids a non-reachable preferred router X and uses router Y instead, the host SHOULD probe router X's reachability by sending a single Neighbor Solicitation. Such probes MUST be rate-limited to no more than one per minute per router.
When a Type C host updates its Routing Table after processing a Router Advertisement, it MUST invalidate or remove Destination Cache Entries and redo next-hop determination for affected destinations.
When ceasing to be an advertising interface (Router Lifetime = 0), the Router Advertisement SHOULD also set Route Lifetime to zero in all Route Information Options.
Three host implementation types are defined: Type A ignores preferences and more-specific routes (RFC 2461 behavior); Type B uses Default Router Preference but ignores Route Information Options; Type C uses a full Routing Table with both Default Router Preference and Route Information Options.
Type C host routing table entries contain: prefix, prefix length, preference value, lifetime, and next-hop router. A ::/0 route is updated from the RA header; Route Information Options override header preference/lifetime for ::/0.
Type C host sending algorithm performs longest-prefix match in the Routing Table, using route preference as a tie-breaker. Non-reachable routers are skipped and the next best route is consulted iteratively.
The Route Information Option is assigned Type value 24 within the IPv6 Neighbor Discovery Option Formats numbering space (IANA registry).
A malicious node could overload hosts with a large number of routes in Route Information Options or very frequent Router Advertisements. The same attack already exists with Prefix Information Options, and SEND WG work on securing router discovery messages is intended to address these threats.
A malicious node could send Router Advertisements with High Default Router Preference or specific routes to divert traffic from legitimate routers, or include infinite Route Information Option lifetimes causing routes to linger indefinitely. These attacks mirror existing Prefix Information Option attacks but cause continued reachability probing rather than loss of connectivity.
The Default Router Preference (Prf) field is a 2-bit signed integer added to the Router Advertisement message header, occupying bits formerly reserved. Values are: 01=High, 00=Medium (default), 11=Low, 10=Reserved (MUST NOT be sent).
The Route Information Option (Type=24) carries a Prefix Length (8-bit), a 2-bit Route Preference (Prf), a 32-bit Route Lifetime, and a variable-length Prefix field. Length field is 1, 2, or 3 units of 8 octets depending on Prefix Length.