--- 1/draft-ietf-6man-rfc3484-revise-01.txt 2011-03-14 11:15:09.000000000 +0100 +++ 2/draft-ietf-6man-rfc3484-revise-02.txt 2011-03-14 11:15:09.000000000 +0100 @@ -1,48 +1,48 @@ Network Working Group A. Matsumoto Internet-Draft J. Kato Intended status: Standards Track T. Fujisaki -Expires: April 18, 2011 NTT - October 15, 2010 +Expires: September 15, 2011 NTT + March 14, 2011 Update to RFC 3484 Default Address Selection for IPv6 - draft-ietf-6man-rfc3484-revise-01.txt + draft-ietf-6man-rfc3484-revise-02.txt Abstract RFC 3484 describes algorithms for source address selection and for destination address selection. The algorithms specify default behavior for all Internet Protocol version 6 (IPv6) implementations. This document specifies a set of updates that modify the algorithms - and fix the known defects. + and provide fixes for the identified issues. Status of this Memo 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 April 18, 2011. + This Internet-Draft will expire on September 15, 2011. Copyright Notice - Copyright (c) 2010 IETF Trust and the persons identified as the + 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 @@ -56,140 +56,150 @@ 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. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 2. Specification . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 2.1. Changes related to the default policy table . . . . . . . . 3 - 2.1.1. ULA in the policy table . . . . . . . . . . . . . . . . 3 + 2. Specification . . . . . . . . . . . . . . . . . . . . . . . . 3 + 2.1. Changes related to the default policy table . . . . . . . 3 + 2.1.1. ULAs in the policy table . . . . . . . . . . . . . . . 4 2.1.2. Teredo in the policy table . . . . . . . . . . . . . . 4 2.1.3. Deprecated addresses in the policy table . . . . . . . 4 2.1.4. Renewed default policy table . . . . . . . . . . . . . 4 - 2.2. The longest matching rule . . . . . . . . . . . . . . . . . 5 - 2.3. Private IPv4 address scope . . . . . . . . . . . . . . . . 5 - 2.4. Deprecation of site-local unicast address . . . . . . . . . 6 - 3. Security Considerations . . . . . . . . . . . . . . . . . . . . 6 - 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6 - 5. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 5.1. Normative References . . . . . . . . . . . . . . . . . . . 6 - 5.2. Informative References . . . . . . . . . . . . . . . . . . 7 - Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . . 7 - Appendix B. Discussion . . . . . . . . . . . . . . . . . . . . . . 7 - B.1. Centrally assigned ULA . . . . . . . . . . . . . . . . . . 7 - B.2. 6to4, Teredo, and IPv4 prioritization . . . . . . . . . . . 8 - B.3. Deprecated address . . . . . . . . . . . . . . . . . . . . 8 - B.4. The longest match rule . . . . . . . . . . . . . . . . . . 8 - Appendix C. Revision History . . . . . . . . . . . . . . . . . . . 9 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 9 + 2.2. The longest matching rule . . . . . . . . . . . . . . . . 5 + 2.3. Utilize next-hop for source address selection . . . . . . 5 + 2.4. Private IPv4 address scope . . . . . . . . . . . . . . . . 6 + 2.5. Deprecation of site-local unicast address . . . . . . . . 6 + 3. Security Considerations . . . . . . . . . . . . . . . . . . . 7 + 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 + 5. References . . . . . . . . . . . . . . . . . . . . . . . . . . 7 + 5.1. Normative References . . . . . . . . . . . . . . . . . . . 7 + 5.2. Informative References . . . . . . . . . . . . . . . . . . 8 + Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 8 + Appendix B. Discussion . . . . . . . . . . . . . . . . . . . . . 8 + B.1. Centrally assigned ULA . . . . . . . . . . . . . . . . . . 8 + B.2. 6to4, Teredo, and IPv4 prioritization . . . . . . . . . . 9 + B.3. Deprecated address . . . . . . . . . . . . . . . . . . . . 9 + B.4. The longest match rule . . . . . . . . . . . . . . . . . . 9 + Appendix C. Revision History . . . . . . . . . . . . . . . . . . 10 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11 1. Introduction - RFC 3484 describes algorithms for source address selection and for - destination address selection. The algorithms specify default - behavior for all Internet Protocol version 6 (IPv6) implementations. + The IPv6 addressing architecture [RFC4291] allows multiple unicast + addresses to be assigned to interfaces. Because of this IPv6 + implementations need to handle multiple possible source and + destination addresses when initiating communication. RFC 3484 + [RFC3484] specifies the default algorithms, common across all + implementations, for selecting source and destination addresses so + that it is easier to predict the address selection behavior. - RFC 3484 has several known issues to be fixed. Deprecation of IPv6 - site-local unicast address and the coming of ULA brought some - preferable changes to the rules. Additionally, the rule 9 of the - destination address selection rules, namely the longest matching - rule, is known for its adverse effect on the round robin DNS - technique. + Since RFC 3484 was published, some issues have been identified with + the algorithm specified there. The issues are related to the longest + match algorithm used in Rule 9 of Destination address selection + breaking DNS round-robin techniques, and prioritization of poor IPv6 + connectivity using transition mechanisms over native IPv4 + connectivity. + + There have also been some significant changes to the IPv6 addressing + architecture that require changes in the RFC 3484 policy table. Such + changes include the deprecation of site-local unicast addresses + [RFC3879] and the IPv4-compatible IPv6 addresses, the introduction of + Unique Local Addresses [RFC4193] etc. This document specifies a set of updates that modify the algorithms - and fix the known defects. + and provide fixes for the identified issues. 2. Specification 2.1. Changes related to the default policy table The default policy table is defined in RFC 3484 Section 2.1 as follows: Prefix Precedence Label ::1/128 50 0 ::/0 40 1 2002::/16 30 2 ::/96 20 3 ::ffff:0:0/96 10 4 The changes that should be included into the default policy table are those rules that are universally useful and do no harm in every - reasonable network envionment. The changes we should consider for + reasonable network environment. The changes we should consider for the default policy table are listed in this sub-section. - The policy table is defined to be configurable. The changes that are - useful not universally but locally can be put into the policy table + The policy table is defined to be configurable. If the local site + policy needs to be different changes can be put into the policy table manually or by using the auto-configuration mechanism proposed as a - DHCP option [I-D.fujisaki-dhc-addr-select-opt]. - -2.1.1. ULA in the policy table + DHCP option [I-D.ietf-6man-addr-select-opt]. - RFC 5220 Section 2.1.4, 2.2.2, and 2.2.3 describes address selection - problems related to ULA. These problems can be solved by changing - the scope of ULA to site-local, and/or by adding an entry for default - policy table entry that has its own label for ULA. +2.1.1. ULAs in the policy table - In its nature, ULA has global scope. This is because ULA's scope is - expected to be defined in routing system. It may be the case that - ULA and global IPv6 address are used for source and destination - addresses of communication. + RFC 5220 [RFC5220] Section 2.1.4, 2.2.2, and 2.2.3 describes address + selection problems related to ULAs [RFC4193]. These problems can be + solved by either changing the scope of ULAs to site-local, or by + adding an entry to the default policy table entry that has its own + label for ULAs. - On the other hand, to prioritize ULA to ULA communication is - basically reasonable. ULA should not be exposed to outside of its - routable routing domain, so if ULA is given from the application as a - candidate destination address, it can be generally expected that the - ULA is within or at least close to the source host. + ULAs has been specified with a global scope because the reachability + of the ULAs was intended to be restricted by the routing system. + Since a ULA will not be exposed outside of its reachability domain, + if a ULA is available as a candidate destination address, it can be + expected to be reachable. In fact, such ULA to ULA communication is + often desired (in particular in sites where ULAs are intended to + provide stable addresses when the global prefix may be changing) and + thus needs to be prioritized. Therefore, the scope of ULA should be kept global, and prioritization - of ULA to ULA communication should be implemented in policy table, by - assigning its own label for ULA fc00::/7. + of ULA to ULA communication should be implemented in the policy + table, by assigning a specific label for ULAs using fc00::/7. 2.1.2. Teredo in the policy table Teredo [RFC4380] is defined and has been assigned 2001::/32. This address block should be assigned its own label in the policy table. - Teredo's priority should be less or equal to 6to4, considering its - characteristic of transitional tunnel mechanism. About Windows, this - is already in the implementation. + Teredo's priority should be less than or equal to 6to4, considering + its characteristic of being a transitional tunnel mechanism. Windows + already implements this. 2.1.3. Deprecated addresses in the policy table - IPv4-compatible IPv6 address is deprecated. [RFC4291] IPv6 site- - local unicast address is deprecated. [RFC3879] Moreover, 6bone - testing address was [RFC3701] The issue is how we treat these - outdated addresses. + IPv4-compatible IPv6 addresses are deprecated [RFC4291]. IPv6 site- + local unicast addresses are deprecated [RFC3879]. Moreover, the + 6bone testing address has also been phased out[RFC3701]. The issue + is how we treat these outdated addresses. 2.1.4. Renewed default policy table - After applying these updates, the default policy table will be: + After applying these updates, the default policy table becomes: Prefix Precedence Label ::1/128 60 0 fc00::/7 50 1 ::/0 40 2 ::ffff:0:0/96 30 3 2002::/16 20 4 2001::/32 10 5 ::/96 1 10 fec::/16 1 11 3ffe::/16 1 12 2.2. The longest matching rule - This issue is related to the longest matching rule, which was found - by Dave Thaler. It is malfunction of DNS round robin technique. It - is common for both IPv4 and IPv6. + This issue is related to a problem with the longest matching rule, as + reported by Dave Thaler. It is a malfunction of the DNS round-robin + technique. It is common for both IPv4 and IPv6. When a destination address DA, DB, and the source address of DA Source(DA) are on the same subnet and Source(DA) == Source(DB), DNS round robin load-balancing cannot function. By considering prefix lengths that are longer than the subnet prefix, this rule establishes preference between addresses that have no substantive differences between them. The rule functions as an arbitrary tie-breaker between the hosts in a round robin, causing a given host to always prefer a given member of the round robin. @@ -201,72 +211,93 @@ Rule 9: Use longest matching prefix. When DA and DB belong to the same address family (both are IPv6 or both are IPv4): If CommonPrefixLen(DA & Netmask(Source(DA)), Source(DA)) > CommonPrefixLen(DB & Netmask(Source(DB)), Source(DB)), then prefer DA. Similarly, if CommonPrefixLen(DA & Netmask(Source(DA)), Source(DA)) < CommonPrefixLen(DB & Netmask(Source(DB)), Source(DB)), then prefer DB. -2.3. Private IPv4 address scope +2.3. Utilize next-hop for source address selection - As detailed in Remi's draft [I-D.denis-v6ops-nat-addrsel], when a - host is in NATed site, and has a private IPv4 address and - transitional addresses like 6to4 and Teredo, the host chooses - transitional IPv6 address to access most of the dual-stack servers. + RFC 3484 source address selection rule 5 states that the address that + is attached to the outgoing interface should be preferred as the + source address. This rule is reasonable considering the prevalence + of Ingress Filtering described in BCP 38 [RFC2827]. This is because + an upstream network provider usually assumes it receives those + packets from customers that will use the delegated addresses as their + source addresses. - This is because private IPv4 address is defined to be site-local - scope, and as in RFC 3484, the scope matching rules (Rule 2) set - lower priority for private IPv4 address. + This rule, however, is not effective in an environment such as + described in RFC 5220 Section 2.1.1, where a host has multiple + upstream routers on the same link and has addresses delegated from + each upstream on single interface. - By changing the address scope of private IPv4 address to global, this - problem can be solved. Considering the widely deployed NAT with IPv4 - private address model, this change works in most of the cases. If - not, this behavior can be overridden by configuring policy table, or - by configuring routing table on a host. + So, a new rule 5.1 that utilizes next-hop information for source + address selection is inserted just after the rule 5. - Moreover, some modern OSs have already implemented this change. + Rule 5.1: Use an address assigned by the selected next-hop. -2.4. Deprecation of site-local unicast address + If SA is assigned by the selected next-hop that will be used to send + to D and SB is assigned by a different next-hop, then prefer SA. + Similarly, if SB is assigned by the next-hop that will be used to + send to D and SA is assigned by a different next-hop, then prefer SB. - RFC3484 contains a few "site-local unicast" and "fec::" description. - It's better to remove examples related to site-local unicast address, - or change examples to use ULA. Possible points to be re-written are - below. - - 2nd paragraph in RFC 3484 Section 3.1 describes scope comparison - mechanism. - - RFC 3484 Section 10 contains examples for site-local address. +2.4. Private IPv4 address scope + + When a packet goes through a NAT, its source or destination address + can get replaced with another address with a different scope. It + follows that the result of the source address selection algorithm may + be different when the original address is replaced with the NATed + address. + + The algorithm currently specified in RFC 3484 is based on the + assumption that a source address with a small scope cannot reach a + destination address with a larger scope. This assumption does not + hold if private IPv4 addresses and a NAT are used to reach public + IPv4 addresses. + + Due to this assumption, in the presence of both NATed private IPv4 + address and transitional addresses (like 6to4 and Teredo), the host + will choose the transitional IPv6 address to access dual-stack peers + [I-D.denis-v6ops-nat-addrsel]. Choosing transitional IPv6 + connectivity over native IPv4 connectivity is not desirable. + + This issue can be fixed by changing the address scope of private IPv4 + addresses to global. Such a change has already been implemented in + some OSes. + +2.5. Deprecation of site-local unicast address + + RFC 3484 contains a few "site-local unicast" and "fec::" + descriptions. It's better to remove examples related to site-local + unicast address, or change examples to use ULAs. Points that need to + be re-written are: + + - the 2nd paragraph in RFC 3484 Section 3.1 describing the scope + comparison mechanism. + - RFC 3484 Section 10 containing examples for site-local address. 3. Security Considerations No security risk is found that degrades RFC 3484. 4. IANA Considerations - Address type number for the policy table may have to be assigned by - IANA. + An address type number for the policy table may have to be assigned + by IANA. 5. References 5.1. Normative References - [I-D.denis-v6ops-nat-addrsel] - Denis-Courmont, R., "Problems with IPv6 source address - selection and IPv4 NATs", draft-denis-v6ops-nat-addrsel-00 - (work in progress), February 2009. - - [I-D.ietf-ipv6-ula-central] - Hinden, R., "Centrally Assigned Unique Local IPv6 Unicast - Addresses", draft-ietf-ipv6-ula-central-02 (work in - progress), June 2007. - [RFC1794] Brisco, T., "DNS Support for Load Balancing", RFC 1794, April 1995. [RFC1918] Rekhter, Y., Moskowitz, R., Karrenberg, D., Groot, G., and E. Lear, "Address Allocation for Private Internets", BCP 5, RFC 1918, February 1996. [RFC3484] Draves, R., "Default Address Selection for Internet Protocol version 6 (IPv6)", RFC 3484, February 2003. @@ -286,130 +317,154 @@ Network Address Translations (NATs)", RFC 4380, February 2006. [RFC5220] Matsumoto, A., Fujisaki, T., Hiromi, R., and K. Kanayama, "Problem Statement for Default Address Selection in Multi- Prefix Environments: Operational Issues of RFC 3484 Default Rules", RFC 5220, July 2008. 5.2. Informative References - [I-D.chown-addr-select-considerations] + [I-D.denis-v6ops-nat-addrsel] + Denis-Courmont, R., "Problems with IPv6 source address + selection and IPv4 NATs", draft-denis-v6ops-nat-addrsel-00 + (work in progress), February 2009. + + [I-D.ietf-6man-addr-select-considerations] Chown, T., "Considerations for IPv6 Address Selection - Policy Changes", draft-chown-addr-select-considerations-03 - (work in progress), July 2009. + Policy Changes", + draft-ietf-6man-addr-select-considerations-02 (work in + progress), July 2010. - [I-D.fujisaki-dhc-addr-select-opt] - Fujisaki, T., Matsumoto, A., and R. Hiromi, "Distributing + [I-D.ietf-6man-addr-select-opt] + Matsumoto, A., Fujisaki, T., and J. Kato, "Distributing Address Selection Policy using DHCPv6", - draft-fujisaki-dhc-addr-select-opt-09 (work in progress), - March 2010. + draft-ietf-6man-addr-select-opt-00 (work in progress), + December 2010. + + [I-D.ietf-ipv6-ula-central] + Hinden, R., "Centrally Assigned Unique Local IPv6 Unicast + Addresses", draft-ietf-ipv6-ula-central-02 (work in + progress), June 2007. + + [RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering: + Defeating Denial of Service Attacks which employ IP Source + Address Spoofing", BCP 38, RFC 2827, May 2000. Appendix A. Acknowledgements - Authors would like to thank to Dave Thaler, Pekka Savola, Remi Denis- - Courmont and the members of 6man's address selection design team for - their invaluable inputs. + The authors would like to thank to Dave Thaler, Pekka Savola, Remi + Denis-Courmont and the members of 6man's address selection design + team for their invaluable contributions to this document. Appendix B. Discussion B.1. Centrally assigned ULA Discussion: Centrally assigned ULA [I-D.ietf-ipv6-ula-central] is proposed, and assigned fc00::/8. Using the different labels for fc00::/8 and fd00::/8 makes sense if we can assume the same kind of address block is assigned in the same or adjacent network. However, the way of assignment and network adjancency may not have any relationships. B.2. 6to4, Teredo, and IPv4 prioritization Discussion: Regarding the prioritization between IPv4 and these - transitional mechanisms, the connectivity of them are recently + transitional mechanisms, their connectivity quality is recently known to be worse than IPv4. These mechiansms are said to be the - last resort access to IPv6 resources. While 6to4 should have - higher precedence over Teredo, in that 6to4 host to 6to4 host - communication can be over IPv4, which can result in more optimal + last resort access to IPv6 resources. The 6to4 should have higher + precedence over Teredo, in that 6to4 host to 6to4 host + communication runs over IPv4, which can result in a more optimal path, and 6to4 does not need NAT traversal. B.3. Deprecated address - Discussion: These addresses was removed from the current - specification. So, it should not be treated differently, + Discussion: These addresses were removed from the current + specification. So, they should not be treated differently, especially if we think about future re-use of these address blocks. - Considering the inappropriate use of these address blocks - especially in outdated implementations and bad effects brought by - them, however, it should be labeled differently from the + Considering the inappropriate use of these address blocks, + especially in outdated implementations, and bad effects caused by + them, however, they should be labeled differently from the legitimate address blocks. - keep this entry for the sake of backward compatibility ? + Or should we keep this entry for the sake of backward + compatibility? B.4. The longest match rule RFC 3484 defines that the destination address selection rule 9 should be applied to both IPv4 and IPv6, which spoils the DNS based load balancing technique that is widely used in the IPv4 Internet today. When two or more destination addresses are acquired from one FQDN, - the rule 9 defines that the longest matching destination and source - address pair should be chosen. As in RFC 1794, the DNS based load - balancing technique is achived by not re-ordering the destination - addresses returned from the DNS server. The Rule 9 defines + rule 9 states that the longest matching destination and source + address pair should be chosen. As stated in RFC 1794, the DNS based + load balancing technique is achieved by not re-ordering the + destination addresses returned from the DNS server. Rule 9 defines a deterministic rule for re-ordering at hosts, hence the technique of RFC 1794 is not available anymore. - Regarding this problem, there was discussion in IETF and other places - like below. + Regarding this problem, there was discussion in the IETF and other + places that led to some different options being suggested, as listed + below. Discussion: The possible changes to RFC 3484 are as follows: + 1. To delete Rule 9 completely. 2. To apply Rule 9 only for IPv6 and not for IPv4. In IPv6, - hiearchical address assignment is general principle, hence the - longest matchin rule is beneficial in many cases. In IPv4, as + hierarchical address assignment is a general principle, hence the + longest matching rule is beneficial in many cases. In IPv4, as stated above, the DNS based load balancing technique is widely used. 3. To apply Rule 9 for IPv6 conditionally and not for IPv4. When the length of matching bits of the destination address and the - source address is longer than N, the rule 9 is applied. - Otherwise, the order of the destination addresses do not change. - The N should be configurable and it should be 32 by default. - This is simply because the two sites whose matching bit length is - longer than 32 are probably adjacent. + source address is longer than N, rule 9 is applied. Otherwise, + the order of the destination addresses do not change. The N + should be configurable and it should be 32 by default. This is + simply because the two sites whose matching bit length is longer + than 32 are probably adjacent. - Now that IPv6 PI address is admitted in some RIRs, hierachical - address assignment is not maintained anymore. It seems that the - longest matching algorithm may not worth the adverse effect of - disalbing the DNS based load balance technique. + Now that IPv6 PI addressing is being assigned by some RIRs, + hierachical address assignment is not fully maintained anymore. It + seems that the longest matching algorithm may not be worth the + adverse effect of disalbing the DNS based load balance technique. Appendix C. Revision History + 02: + Suresh Krishnan's comments were incorporated. + A new source address selection rule that utilizes the next-hop + information is included in Section 2.3 + 01: - Re-structured to contain only the actual changes to RFC 3484. + Restructured to contain only the actual changes to RFC 3484. 00: Published as a 6man working group item. 03: Added acknowledgements. Added longest matching algorithm malfunction regarding local DNS round robin. - The proposed changes section was re-structured. + The proposed changes section was restructured. The issue of 6to4/Teredo and IPv4 prioritization was included. The issue of deprecated addresses was added. The renewed default policy table was changed accordingly. 02: Added the reference to address selection design team's proposal. 01: + The issue of private IPv4 address scope was added. The issue of ULA address scope was added. Discussion of longest matching rule was expanded. Authors' Addresses Arifumi Matsumoto NTT SI Lab Midori-Cho 3-9-11 Musashino-shi, Tokyo 180-8585