Network Working Group A. Matsumoto Internet-Draft J. Kato Intended status: Standards Track T. Fujisaki Expires:March 17,April 18, 2011 NTTSeptember 13,October 15, 2010Things To Be Included inUpdate to RFC 3484Revision draft-ietf-6man-rfc3484-revise-00.txtDefault Address Selection for IPv6 draft-ietf-6man-rfc3484-revise-01.txt Abstract RFC 3484has several known issues to be fixed. Deprecation of IPv6 site-local unicastdescribes algorithms for source address selection andthe coming of ULA brought some preferable changes to the rules. Additionally, the rule 9 of thefor destination addressselection rules, namely the longest matching rule, is knownselection. The algorithms specify default behavior forits adverse effect on the round robin DNS technique.all Internet Protocol version 6 (IPv6) implementations. This documentcovers these points to be fixedspecifies a set of updates that modify the algorithms andproposes possible useful changes to be included infix therevision of RFC 3484.known defects. 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 onMarch 17,April 18, 2011. Copyright Notice Copyright (c) 2010 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. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . .4 1.1. Problem Example . . . . . . . . . . . . .3 2. Specification . . . . . . . .4 2. Proposed Changes to RFC 3484. . . . . . . . . . . . . . . . .53 2.1. Changes related to the default policy table . . . . . . .5. 3 2.1.1.Arrival ofULA in the policy table . . . . . . . . . . . . . . . .. . . . 63 2.1.2.Arrival ofTeredoand harm of transitional mechanisms .in the policy table . . . . . . . . . . . . . . 4 2.1.3. Deprecated addresses in the policy table . . . . . . .6 2.1.3. Deprecated addresses4 2.1.4. Renewed default policy table . . . . . . . . . . . . . 4 2.2. The longest matching rule . . . .7 2.1.4. Renewed default policy table. . . . . . . . . . . . .7 2.2. Source5 2.3. Private IPv4 addressselection for multicast packetscope . . . . . .7 2.3. RFC 3484 Section 6 Rule 9 and DNS round robin. . . . . .8 2.4. RFC 3484 Section 6 Rule 9 and local DNS round robin. . .9 2.5.. 5 2.4. Deprecation of site-local unicast address . . . . . . . .9 2.6. Private IPv4 address scope. 6 3. Security Considerations . . . . . . . . . . . . . . .10 3. Conclusion. . . . . 6 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . .10 4. Security Considerations. 6 5. References . . . . . . . . . . . . . . . . . .10 5. IANA Considerations. . . . . . . . 6 5.1. Normative References . . . . . . . . . . . . .10 6. References. . . . . . 6 5.2. Informative References . . . . . . . . . . . . . . . . . . 7 Appendix A. Acknowledgements . .11 6.1. Normative References. . . . . . . . . . . . . . . . . 7 Appendix B. Discussion . .11 6.2. Informative References. . . . . . . . . . . . . . . . . .12 Appendix A. Acknowledgements. . 7 B.1. Centrally assigned ULA . . . . . . . . . . . . . . . . . .127 B.2. 6to4, Teredo, and IPv4 prioritization . . . . . . . . . . . 8 B.3. Deprecated address . . . . . . . . . . . . . . . . . . . . 8 B.4. The longest match rule . . . . . . . . . . . . . . . . . . 8 AppendixB.C. Revision History . . . . . . . . . . . . . . . . . .12. 9 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . .129 1. Introduction RFC 3484[RFC3484] defines defaultdescribes algorithms for source address selectionrules for IPv6andIPv4. Because of the deprecationfor destination address selection. The algorithms specify default behavior for all Internet Protocol version 6 (IPv6) implementations. RFC 3484 has several known issues to be fixed. Deprecation of IPv6 site-local unicastaddress[RFC3879]address and the coming ofULA, [RFC4193] these rules in RFC 3484 are knownULA brought some preferable changes tocause communication failures depending onthenetwork environment.rules. Additionally,there was a discussion at v6ops and ietf mailing lists thatthe rule 9 of the destination address selectionhas a seriousrules, namely the longest matching rule, is known for its adverse effect on the round robin DNS technique.[RFC1794] RFC 3484 definesThis document specifies a set of updates that modify thedestination address selection rule 9 should be applied to both IPv4algorithms andIPv6, which spoils the DNS based load balancing technique that is widely used infix theIPv4 Internet today. Remi Denis-Courmont summarized NAT related address selection problems and possible solutions in [I-D.denis-v6ops-nat-addrsel]. Problemsknown defects. 2. Specification 2.1. Changes related toIPv6 and IPv4 address selection are described in RFC 5220 [RFC5220]. Some of them can be fixed by updating RFC 3484, and some oftheothers are solved by address selection design team's proposal [I-D.chown-addr-select-considerations]. This document covers these points to be fixed and proposes possible useful changes to be included in the revision of RFC 3484. 1.1. Problem Example When an enterprise has IPv4 Internet connectivity but does not yet have IPv6 Internet connectivity, and the enterprise wants to provide site-local IPv6 connectivity, ULA is the best choice for site-local IPv6 connectivity. Each employee host will have both an IPv4 global or private address [RFC1918] and a ULA. Here, when this host tries to connect to Host-C that has registered both A and AAAA records in the DNS, the host will choose AAAA as the destination address and ULA for the source address. This will clearly result in a connection failure. +--------+ | Host-C | AAAA = 2001:db8::80 +-----+--+ A = 192.47.163.1 | ============ | Internet | ============ | no IPv6 connectivity +----+----+ | Gateway | +----+----+ | | fd01:2:3::/48 (ULA) | 192.0.2.0/24 ++--------+ | Router | +----+----+ | fd01:2:3:4::/64 (ULA) | 192.0.2.240/28 ------+---+---------- | +-+----+ fd01:2:3:4::100 (ULA) | Host | 192.0.2.245 +------+ [Fig. 1] This problem can be solved by changing the scope of ULA to site- local, or by adding one entry to the default policy table that sets lower priority for ULA than IPv4 address. This problem was mentioned at ipv6 mailing lists by Pekka Savola. 2. Proposed Changes to RFC 3484 2.1. Changes related to the default policy table The default policy table is defineddefault 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 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 manually or by using the auto-configuration mechanism proposed as a DHCP option [I-D.fujisaki-dhc-addr-select-opt]. 2.1.1.Arrival ofULA in the policy table 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,orand/or by adding an entry for default policy table entry that has its own label for ULA. In its nature, ULA has global scope. This is because ULA's scope isdefinedexpected to be defined in routingmechanism.system. It may be the case that ULA and global IPv6 address are used for source and destination addresses of communication. 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. 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.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.2.1.2.Arrival ofTeredoand harm of transitional mechanismsin 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.Discussion: Regarding the prioritization between IPv4 and these transitional mechanisms, the connectivity of them are recently known to be worse than IPv4. These mechiansms are said to be2.1.3. Deprecated addresses in thelast 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 path, and 6to4 does not need NAT traversal. 2.1.3. Deprecated addresses IPv4-compatiblepolicy 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.Discussion: These addresses was removed from the current specification. So, it 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 legitimate address blocks.2.1.4. Renewed default policy tableWhen we applyAfter applying thesechanges,updates, the default policy table will be: 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.Source address selection for multicast packet Source address selection for a multicast packet easily fails. It is suggested to add some notes describing this issue of multicast address selection. As described in RFC 5220 Section 2.1.6, by default, ULA will be chosen for a multicast packet of any scope.The longest matching rule This issuecannot be solved by changing a RFC 3484 rule. This is because, multicast and unicast have different sets of scope and itissite-dependent which unicast address scope is appropriate forrelated to thesite's multicast scope. Therefore, this issue can be solved, for example,longest matching rule, which was found byconfiguring the policy table per-site. 2.3. RFC 3484 Section 6 Rule 9 andDave Thaler. It is malfunction of DNS round robinThere wastechnique. It is common for both IPv4 and IPv6. When adiscussion at v6opsdestination address DA, DB, andietf@ietf.org mailing lists that the rule 9 ofthedestinationsource addressselection has a serious adverse effectof DA Source(DA) are on the same subnet and Source(DA) == Source(DB), DNS round robinDNS technique. RFC 3484 definesload-balancing cannot function. By considering prefix lengths that are longer than thedestination address selectionsubnet prefix, this rule9 should be applied to both IPv4 and IPv6, which spoils the DNS based load balancing techniqueestablishes preference between addresses thatis widely usedhave 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 theIPv4 Internet today. Whenround robin. By limiting thedestination address acquired from one FQDN are two or more,calculation of common prefixes to a maximum length equal to theRulelength of the subnet prefix of the source address, rule 9definescan continue to favor hosts that are nearby in the network hierarchy without arbitrarily sorting addresses within a given network. This modification could be written as follows: Rule 9: Use longest matchingdestinationprefix. When DA andsourceDB belong to the same addresspair should be chosen.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 As detailed inRFC 1794, the DNS based load balancing techniqueRemi's draft [I-D.denis-v6ops-nat-addrsel], when a host isachived by not re-ordering the destinationin NATed site, and has a private IPv4 address and transitional addressesreturned from the DNS server. The Rule 9 defines deterministic rule for re-ordering at hosts, hencelike 6to4 and Teredo, thetechniquehost chooses transitional IPv6 address to access most ofRFC 1794the dual-stack servers. This isnot available anymore. Regarding this problem, there was discussion in IETF and other places like below. http://drplokta.livejournal.com/109267.html http://www.ietf.org/mail-archive/web/ietf/current/msg51874.html http://www.ietf.org/mail-archive/web/discuss/current/msg01035.html http://www.ietf.org/mail-archive/web/dnsop/current/msg05847.html http://lists.debian.org/debian-ctte/2007/11/msg00029.html http://www.ietf.org/mail-archive/web/ietf/current/msg55991.html Discussion: The possible changesbecause private IPv4 address is defined toRFC 3484 are as follows: 1. To delete Rule 9 completely. 2. To apply Rule 9 only for IPv6be site-local scope, andnot for IPv4. In IPv6, hiearchical address assignment is general principle, hence the longest matchin rule is beneficial in many cases. In IPv4,asstated above,in RFC 3484, theDNS based load balancing technique is widely used. 3. To apply Rule 9 for IPv6 conditionally and notscope matching rules (Rule 2) set lower priority forIPv4. Whenprivate IPv4 address. By changing thelength of matching bitsaddress scope ofthe destinationprivate IPv4 addressandto global, this problem can be solved. Considering thesourcewidely deployed NAT with IPv4 private addressis longer than N, the rule 9 is applied. Otherwise, the ordermodel, this change works in most of thedestination addresses do not change. The N should be configurable and it shouldcases. If not, this behavior can be32overridden bydefault. 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 inconfiguring policy table, or by configuring routing table on a host. Moreover, someRIRs, 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.modern OSs have already implemented this change. 2.4.RFC 3484 Section 6 Rule 9Deprecation of site-local unicast address RFC3484 contains a few "site-local unicast" andlocal DNS round robin There is another issue related to the longest matching rule, which was found by Dave Thaler. It is also malfunction of 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. By limiting the calculation of common prefixes to a maximum length equal to the length of the subnet prefix of the source address, rule 9 can continue to favor hosts that are nearby in the network hierarchy without arbitrarily sorting addresses within a given network. This modification could be written as follows: 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.5. Deprecation of site-local unicast address RFC3484 contains a few "site-local unicast" and "fec::" description. It's better to remove examples"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.6. Private IPv4 address scope 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. 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. 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. Moreover, some modern OSs have already implemented this change. 3. Conclusion This document lists several issues that should be included in the revision of RFC 3484, which are useful universally and do no harm in reasonable network environments. As the deployment of IPv6 progresses, the role of the address selection mechanism is getting more important. This situation revealed several important issues about the current address selection rules. It is much anticipated to provide the solutions for these issues. Part of them, which are common issues for most of the reasonable environment, should be done by updating the default address selection rules as stated in this document, and the lest of them should be done on per site basis by configuring the policy table manually, or using the proposed policy updating mechanism. 4. Security Considerations No security risk3. Security Considerations No security risk is found that degrades RFC 3484.5.4. IANA Considerations Address type number for the policy table may have to be assigned by IANA.6.5. References6.1.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. [RFC3701] Fink, R. and R. Hinden, "6bone (IPv6 Testing Address Allocation) Phaseout", RFC 3701, March 2004. [RFC3879] Huitema, C. and B. Carpenter, "Deprecating Site Local Addresses", RFC 3879, September 2004. [RFC4193] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast Addresses", RFC 4193, October 2005. [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 4291, February 2006. [RFC4380] Huitema, C., "Teredo: Tunneling IPv6 over UDP through 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.6.2.5.2. Informative References [I-D.chown-addr-select-considerations] Chown, T., "Considerations for IPv6 Address Selection Policy Changes", draft-chown-addr-select-considerations-03 (work in progress), July 2009. [I-D.fujisaki-dhc-addr-select-opt] Fujisaki, T., Matsumoto, A., and R. Hiromi, "Distributing Address Selection Policy using DHCPv6", draft-fujisaki-dhc-addr-select-opt-09 (work in progress), March 2010. 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. Appendix B.Revision HistoryDiscussion 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 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 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, 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 legitimate address blocks. 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 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. 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 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. 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. Appendix C. Revision History 01: Re-structured 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 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 Japan Phone: +81 422 59 3334 Email: arifumi@nttv6.net Jun-ya Kato NTT SI Lab Midori-Cho 3-9-11 Musashino-shi, Tokyo 180-8585 Japan Phone: +81 422 59 2939 Email: kato@syce.net Tomohiro Fujisaki NTT PF Lab Midori-Cho 3-9-11 Musashino-shi, Tokyo 180-8585 Japan Phone: +81 422 59 7351 Email: fujisaki@syce.net