Network Working Group | L. Howard |
Internet-Draft | Time Warner Cable |
Intended status: Standards Track | November 17, 2011 |
Expires: May 20, 2012 |
The UP PIO Field: Finding Up in an Unmanaged Network
draft-howard-up-pio-00
It is difficult to find a path through an unmanaged network with multiple routers. This document describes a new Prefix Information Option field which can provide information to routers to find a path.
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 May 20, 2012.
Copyright (c) 2011 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 document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English.
This document describes a new Prefix Information Option field to be used in unmanaged networks (such as home networks) to find a path to a given prefix. This PIO field is not intended to replace dynamic routing protocols, and will not find the best path to a given destination, though it can provide useful information to routers.
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 RFC 2119. [RFC2119].
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Prefix Length |L|A|R|U| Rsvd1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Valid Lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Preferred Lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Distance | Reserved2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Prefix + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The use of L and A bits are specified in rfc4861. The use of the R bit is specified in rfc3775.
This format represents the following changes over those RFCs:
The UP bit is used to find a path through an unmanaged network. When a router learns prefix information from a Router Advertisement with the UP bit sent, the router SHOULD add that prefix to its own RAs. When sending RAs containing the learned prefix, it MUST increment the Distance value by one.
The most common implementation of this field would be the advertisement of a default route, where Prefix Length = 0 and Prefix = 0. An Internet access provider could use Router Advertisements to customer gateways with the UP bit set, and a distance of 0, to indicate the border of the administrative domain and the default gateway for the customer access router. That customer access router, having learned the default gateway, SHOULD add the prefix to its routing table, then SHOULD include this information in its own RAs. When the router sends RAs including this prefix, it MUST increment the Distance in those RAs to indicate that it is one hop further than the origin or the prefix.
For a network provider who does not provide a default route, the UP option can be used to indicate that a prefix is available. For instance, an operator who only wanted traffic for its hosted services on 2001:db8::/32, would send an RA for that prefix to the access gateway, with Distance=0. That gateway SHOULD add the prefix to its routing table, then SHOULD include the prefix in its own RAs, and MUST increment the Distance in those RAs to indicate that it is one hop away from the border.
Unique Local Addresses may be used for a variety of reasons [RFC6204]. When a router generates a ULA prefix, it MUST include that prefix in RAs. It SHOULD include the UP option field, with a Distance = 0. When another router learns that prefix, it SHOULD add the prefix to its routing table, then SHOULD include the prefix in its own RAs, and MUST increment the Distance in those RAs to indicate that it is one hop away from the border.
In home network scenarios, routers are often also DHCPv6 servers. When a device is a DHCPv6-PD server, and receives a prefix to be used for host address assignments (regardless of setting of M-bit), if that device is also the router for that prefix, that router becomes authoritative for the prefix. "Authoritative for the prefix" is analogous to the notion of the "delegating router" responding to a request from the "requesting router" per [RFC3633]. In other words, when a router receives Prefix Delegation, it SHOULD include that prefix in its RAs, and SHOULD set the Distance to 0. Note that other values are possible, but reduce the possible diameter of the network.
Note that in this way, more specific routes may be propagated through the network via Router Advertisements. The longest match rule applies, and establishes the route preference. See Examples section.
Hosts use RAs and the PIO to find their next hop, and for address autoconfiguration. Nothing in the use of the UP bit changes these behaviors, though it is possible that hosts will learn multiple prefixes, and might have multiple paths to the same prefix. It is expected that these are harmless. Details of path selection are left to implementers.
A host MAY use the Distance metric to select a better bath for a prefix. A host might learn multiple prefixes from which SLAAC may be used. This is not a new function introduced with the UP bit, and host behavior is expected to be unchanged.
When a router learns the same prefix from two other routers, and both RAs have the same Distance, a tie-breaker mechanism is required. The tie-breaker could be arbitrary, such as the time the RA was received, or it could be based on (e.g.) the Preferred Lifetime value, the layer 2 link type, or other suitable informationr. Implementers MUST have a tie-breaker rule or rules to resolve all ties.
A router receiving multiple RAs for the same prefix may choose to discard the path not chosen, or may add the route to its routing table with a higher Administrative Distance.
As with other RAs, when an RA is received from a router with no information for a prefix, even if that router had previously provided prefix information, the receiver SHOULD remove references to that prefix from its routing table. Similarly, if no RAs are received from a router, the prefix SHOULD be removed. Further, it SHOULD send RAs without that prefix.
When the Valid Lifetime has passed, the route MUST be removed. When the Preferred Lifetime has passed, the route MAY be lowered in preference.
Consider the example in Figure 1, in which a network has two upstream ISPs, ISP A and ISP B. A different router connects to each ISP. Routers A and B connect to their respective upstream ISPs, and a Router C and Router D connect to the same link. Routers C and D share another link, causing a potential loop situation. A Host #1 connects to the shared link between Routers A, B, C, and D. A Host #2 connects to the shared link between Routers C and D.
+----+-----+ +-----+----+ \ | ISP A | | ISP B | \ | | | | | Service +----+-----+ +-----+----+ | Provider | | | Network | | / | | / +----+-----+ +-----+----+ \ | Router A | | Router B | \ | | | | | +----+-----+ +-----+----+ | | | | Home | | | Network ----+---------------------+--------------------+--- | | | | | +----+-----+ +----+-----+ +-----+----+ | |IPv6 Host | | Router C | | Router D | | | #1 | | |---+----| | / +----------+ +----------+ | +----------+ / | | +-----+----+ | IPv6 Host| | #2 | +-----+----+
Suppose ISP A and ISP B both provide a default route via Router Advertisements. Further suppose that ISP A delegates (via DHCPv6) the prefix 2001:db8:000a::/48, and ISP B delegates the prefix 2001:db8:0000:00b0::/56.
Router A sends 0::/0 with UP bit and Distance=1, and sends 2001:db8:a::/48 with UP bit and Distance=0.
Router B sends 0::/0 with UP bit and Distance=1, and sends 2001:db8:0:b0::/56 with UP bit and Distance=0.
Router C sends 0::/0 with UP bit and Distance=2, and sends 2001:db8:a::/48 with UP bit and Distance=2, and sends 2001:db8:0:b0::/56 with UP bit and Distance=2.
Router C then receives delegated prefix 2001:db8:a:c::/64. Host #2 gets an address for this prefix, either via SLAAC or DHCP. Router C sends RAs for 2001:db8:a:c::/64 with UP bit and Distance=0. The host also receives RAs for the /64 prefix.
Here follows an evaluation of whether this solution meets all of the Homenet routing requirements.
This option essentially overloads the PIO to be a lightweight distance-vector routing protocol of sorts. As such, it needs to avoid the problems of distance-vector protocols, such as the count-to-infinity problem. Several possibilities exist to mitigate this problem:
An extension of rfc4191, Default Router Preferences and More-Specific Routes, with its definition of a Route Information Option, might be a closer approximation to the distance-vector protocol described here.
A link-state protocol would solve standard problems with distance-vector protocols. However, most link-state protocols are much heavier implementations.
By using unsecured Router Advertisements, attacks that compromise RAs would have an extended effect. Use of SeND should mitigate these attacks.
There are no IANA considerations or implications that arise from this document.
[RFC2119] | Key words for use in RFCs to Indicate Requirement Levels", . | , "
[RFC3775] | Mobility Support in IPv6", . | , "
[RFC2461] | Neighbor Discovery for IP Version 6 (IPv6)", . | , "
[RFC4861] | Neighbor Discovery for IP version 6 (IPv6)", . | , "