rfc-8028

First-Hop Router Selection by Hosts in a Multi-Prefix Network

F. Baker, B. Carpenter
date2016-11 streamIETF areaint wg6man statusPROPOSED STANDARD pages13 canonicalhttps://www.rfc-editor.org/rfc/rfc8028 doi10.17487/RFC8028 errataview
This document describes expected IPv6 host behavior in a scenario that has more than one prefix, each allocated by an upstream network that is assumed to implement BCP 38 ingress filtering, when the host has multiple routers to choose from. It also applies to other scenarios such as the usage of stateful firewalls that effectively act as address-based filters. Host behavior in choosing a first-hop router may interact with source address selection in a given implementation. However, the selection of the source address for a packet is done before the first-hop router for that packet is chosen. Given that the network or host is, or appears to be, multihomed with multiple provider-allocated addresses, that the host has elected to use a source address in a given prefix, and that some but not all neighboring routers are advertising that prefix in their Router Advertisement Prefix Information Options, this document specifies to which router a host should present its transmission. It updates RFC 4861.

updates

Extracted elements (23)

design-rationale §2.1

A PIO with A=0 and L=0 was previously uncommon but is needed to signal to hosts which router to use as first hop for a given source prefix without triggering SLAAC or announcing an on-link prefix. The MIF router scenario in Figure 1 is the motivating example.

ip, v6ops

design-rationale §1

Source address selection (RFC 6724) precedes first-hop router selection. The document builds on RFC 6724 Rule 5.5 to ensure that, once a source address is chosen, the packet is sent to a router known to advertise that source prefix, avoiding BCP 38 discards.

ip, v6ops

design-rationale §1.1

The proposal is most similar to the Strong Host model (RFC 1122): routing is keyed on (src IP addr, dest IP addr, TOS) rather than just (dest IP addr, TOS). However, it differs slightly in that the packet goes to a router that advertised the prefix without specifying which interface, so a MIF router spanning two LANs could be reached via either LAN.

ip, v6ops

design-rationale §2.1

Without a routing protocol among multihomed routers, there is no mechanism for deterministic inter-router forwarding to avoid BCP 38 filters. Even if routing existed, it would produce an indirect path. Therefore, the host itself must select the appropriate first-hop router.

ip, v6ops

interoperability-note §2.1

Existing host implementations may ignore a PIO with both L and A flags cleared, and existing router implementations may be incapable of sending such a PIO. Newer implementations supporting this mechanism should be updated to handle A=L=0 PIOs correctly.

ip, v6ops

interoperability-note §1

This specification is fully consistent with RFC 6724 and depends on support for Rule 5.5. Hosts that do not support RFC 6724 Rule 5.5 may fail to communicate in the presence of BCP 38 ingress filters or stateful firewalls in multihomed networks.

ip, v6ops

interoperability-note §4

When all routers on a link advertise all prefixes (e.g., because they run a routing protocol and share configuration), the host may deliver packets to a suboptimal router, incurring an extra local hop. This is a residual issue not resolved by this specification.

ip, v6ops, routing

normative-requirement §2.1 SHOULD NOT

A host SHOULD NOT ignore a PIO simply because both L and A flags are cleared, extending Section 6.3.4 of RFC 4861.

ip, v6ops

normative-requirement §3.2 SHOULD

A host SHOULD select default routers for each prefix it is assigned an address in. Routers that have advertised the prefix in their RA SHOULD be preferred over routers that do not advertise the prefix, regardless of Default Router Preference. This extends Section 6.3.6 of RFC 4861.

ip, v6ops

normative-requirement §2.1 SHOULD

A PIO with both L and A flags cleared SHOULD be sent to inform hosts that they should use the advertising router as the first hop for packets with source addresses in the PIO prefix. This extends Section 6.2.3 of RFC 4861.

ip, v6ops

normative-requirement §2.1 SHOULD

Each prefix SHOULD be advertised via a Prefix Information Option (PIO) by one of the attached routers, even if addresses are being assigned using DHCPv6. A router that advertises a prefix indicates that it is able to appropriately route packets with source addresses within that prefix, regardless of the L and A flag settings.

ip, v6ops

normative-requirement §3.4 SHOULD

Hosts SHOULD apply off-link redirects only for the specific pair of source and destination addresses concerned, so the host's Destination Cache might need source-specific entries. This extends the validity check in Section 8.1 of RFC 4861.

ip, v6ops

normative-requirement §3.1 SHOULD

In a multi-prefix network with multiple exits, the host's characterization of each default router SHOULD include the prefixes it has announced, extending Section 6.3.4 of RFC 4861. The PIO is reinterpreted to imply the advertising router is a reasonable first hop for any packet using a source address in any advertised prefix.

ip, v6ops

normative-requirement §3.5 MAY

On subsequent attempts to communicate with a destination, if the host has an address in a remembered prefix at that time, it MAY use an address in the remembered prefix for the session.

ip, v6ops

normative-requirement §3.3 SHOULD

RFC 6724 Rule 5.5 SHOULD be implemented: the source address used to send to a given destination should, if possible, be chosen from a prefix known to be advertised by the next-hop router for that destination.

ip, v6ops

normative-requirement §3.5 SHOULD

When a host makes a successful exchange with a remote destination using a particular address pair, and has previously received a PIO matching the source address, the host SHOULD include the prefix in its history regardless of the L and A flag settings in the PIO.

ip, v6ops

normative-requirement §3.2 SHOULD

When a host sends a packet using a source address in a given prefix and has no history directing it otherwise, it SHOULD send it to the indicated default router (the one that advertised that prefix).

ip, v6ops

normative-requirement §3.1 MAY

When Bob is initiating a conversation, if Bob-B has advertised an RIO for the destination prefix and Bob-A has not, Bob MAY take that fact into account in address selection, choosing an address that would allow use of the RIO.

ip, v6ops

privacy-consideration §6

There is a small privacy improvement: the current practice of sending packets with the wrong source address to an upstream router can disclose one upstream prefix to a different upstream network. Correct first-hop router selection reduces the probability of this cross-ISP prefix disclosure.

privacy, ip, v6ops

protocol-element §2.2

Multihomed network routers must support source/destination routing for at least some FIB routes, such as default egress routes differentiated by source prefix. Installation may use static routes, SDN technologies, or dynamic routing protocols.

ip, routing, v6ops

protocol-element §3.4

The host Destination Cache should contain source-specific entries to correctly handle off-link Redirect messages, associating redirects with specific source-destination address pairs rather than applying them globally.

ip, v6ops

protocol-element §3.1

The Prefix Information Option (PIO) in Router Advertisements is reinterpreted under this specification: it implies not only address autoconfiguration eligibility but also that the advertising router is a reasonable first hop for packets sourced from that prefix, regardless of L and A flag values.

ip, v6ops

security-consideration §6

The specification does not in itself create new security or privacy exposures, but by ensuring routing succeeds in scenarios where it previously failed, it may result in unexpected exposure of networks that were previously unreachable due to misconfigured or filtered paths.

security, ip, v6ops