IPv6 Maintenance | F. Baker |
Internet-Draft | Cisco Systems |
Intended status: Standards Track | B. Carpenter |
Expires: February 14, 2016 | Univ. of Auckland |
August 13, 2015 |
Host routing in a multi-prefix network
draft-baker-6man-multi-homed-host-01
This note describes expected host behavior in a network that has more than one prefix, each allocated by an upstream network that implements BCP 38 filtering, when the host has multiple routers to choose from.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on February 14, 2016.
Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
This note describes the expected behavior of an IPv6 [RFC2460] host in a network that has more than one prefix, each allocated by an upstream network that implements BCP 38 [RFC2827] filtering, and in which the host is presented with a choice of routers. It expects that the network will implement some form of egress routing, so that packets sent to a host outside the local network from a given ISP's prefix will go to that ISP. If the packet is sent to the wrong egress, it is liable to be discarded by the BCP 38 filter. However, the mechanics of egress routing once the packet leaves the host are out of scope. The question here is how the host interacts with that network.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
A host receives prefixes in a Router Advertisement [RFC4861], which goes on to identify whether they are usable by SLAAC [RFC4862] [RFC4941] [RFC7217]. When no prefixes are usable for SLAAC, the Router Advertisement would normally signal the availability of DHCPv6 [RFC3315] and the host would use it to configure its addresses. In the latter case it will be generally the case that the configured addresses match one of the prefixes advertised in a Router Advertisement that are supposed to be on-link in that subnet.
The simplest multihomed network implementation in which a host makes choices among routers might be a LAN with one or more hosts on it and two or more routers, one for each upstream network, or a host that is served by disjoint networks on separate interfaces. In such a network, especially the latter, there is not necessarily a routing protocol, and the two routers may not even know that the other is a router as opposed to a host, or may be configured to ignore its presence. One might expect that the routers may or may not receive each other's RAs and form an address in the other router's prefix. However, all hosts in such a network might be expected to create an address in each prefix so advertised.
+---------+ +---------+ +---------+ +---------+ | ISP | | ISP | | ISP | | ISP | +----+----+ +----+----+ +----+----+ +----+----+ | | | | | | | | +----+----+ +----+----+ +----+----+ +----+----+ | Router | | Router | | Router | | Router | +----+----+ +----+----+ +----+----+ +----+----+ | | | | +------+------+ | +--------+ | | +--+ Host +--+ +----+----+ +--------+ | Host | +---------+ Common LAN Case Disjoint LAN Case
Figure 1: Two simple networks
Because there is no routing protocol among those routers, there is no mechanism by which packets can be deterministically forwarded between the routers (as described in BCP 84 [RFC3704]) in order to avoid BCP 38 filters. Even if there was, it would be an indirect route, rather than a direct route originating with the host; this is not "wrong", but can be inefficient and prone to failure. Therefore the host would do well to select the appropriate router itself.
Since the host derives fundamental default routing information from the Route Advertisement, this implies that, in any network with hosts using multiple prefixes, each prefix SHOULD be advertised via on-link Prefix Information Options [RFC4861] 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.
Modern hosts maintain a fair bit of history, in terms of what has historically worked or not worked for a given address or prefix and in some cases the effective window and MSS values for TCP or other protocols. This includes a next hop address for use when a packet is sent to the indicated address.
When a host makes a successful exchange with a remote address or prefix using a particular source address, and the host has received a prefix that matches that source address in an RA, then the host SHOULD include the prefix in such history. On subsequent attempts to communicate with that remote address, if it has an address in that prefix at that time, a host MAY use an address in the remembered prefix for the session.
A host SHOULD select a "default gateway" for each source prefix it uses to form an address or is assigned an address in. That router SHOULD be one of the routers advertising the prefix in its RA. As a result of doing so, when a host emits a datagram using a source address in one of those prefixes and has no history directing it otherwise, it SHOULD send it to the indicated "default gateway". In the "simplest" network described in Section 2, that would get it to the only router that is directly capable of getting it to the right ISP. This will also apply in more complex networks, even when more than one physical or virtual interface is involved.
In more complex cases, wherein routers advertise RAs for multiple prefixes whether or not they have direct or isolated upstream connectivity, the host is dependent on the routing system already. If the host gives the packet to a router advertising its source prefix, it should be able to depend on the router to do the right thing.
There is an interaction with Default Address Selection [RFC6724]. Rule 5.5 of that specification states that the source address used to send to a given destination address should if possible be chosen from a prefix known to be advertised by the next-hop router for that destination. This selection rule would be applicable in a host following the recommendation in the previous paragraph.
There is potential for adverse interaction with any off-link Redirect message sent by a router in accordance with Section 8 of [RFC4861]. Hosts SHOULD apply off-link redirects only for the specific pair of source and destination addresses concerned, so the host's Destination Cache needs to contain appropriate source-specific entries.
The direct implication of Section 2 is that routing protocols used in multihomed networks SHOULD be capable of source-prefix based egress routing, and that multihomed networks SHOULD deploy them.
In an HNCP network, in which one router on each LAN advertises all prefixes and the others do not, the assumption that packets will be forwarded to the appropriate egress by the local routing system might cause at least one extra hop in the local network (from the host to the wrong router, and from there to another router on the same LAN but in a different subnet). In some scenarios, where the local network is a highly constrained or lossy wireless network, this extra hop may be a significant performance handicap.
In a slightly more complex situation such as the disjoint LAN case of Figure 1, which happens to be one of the authors' home plus corporate home-office configuration, the two upstream routers might be on different LANs and therefore different subnets (e.g., the host is itself multi-homed). In that case, there is no way for the "wrong" router to detect the existence of the "right" router, or to route to it.
In such a case it is particularly important that hosts take the responsibility to memorize and select the best first-hop as described in Section 3.
This memo asks the IANA for no new parameters.
This document does not create any new security or privacy exposures.
There might be a small privacy improvement, however: with the current practice, a multihomed host that sends packets with the wrong address to an upstream router or network discloses the prefix of one upstream to the other upstream network. This practice reduces the probability of that occurrence.
Comments were received from Jinmei Tatuya, who has suggested important text, plus Ole Troan, Pierre Pfister, Toerless Eckert, Mikael Abrahamsson, and Juliusz Chroboczek.
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997. |
[RFC2460] | Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 2460, DOI 10.17487/RFC2460, December 1998. |