Internet Draft P. Francis TAHOE Networks Category: Standards Track Feb. 2001 IPv6 Near-Unique Site-Local Addresses Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. 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." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract For many or most sites, site-local addresses are used for packets between nodes within the site. The fact that site-local addresses are not globally unique makes their usage and administration more difficult than they would be if there were globally unique (or nearly globally unique). For instance, before two sites can be merged, one of them has to be renumbered. The meaning of site-local addresses becomes ambiguous when they are taken out of the immediate context of the IPv6 layer, for instance when they are conveyed in email or stored in text files. All other things being equal, it would be preferable if the prefix of addresses with site-local scope were as globally unique as possible. This draft expands the format of the site-local address to allow them to be near-unique. It does not, however, change the definition or usage of the site-local address. This draft describes the format and assignment method of near-unique site-local prefixes. It also outlines some usage scenarios. 1 Introduction One of the purposes for using site-local addresses within a site is to allow internal communications to continue while global addresses Francis Standards Track - Expires Aug. 2001 Page 1 IPv6 Near-Unique Site Local Addresses Feb 2001 are being renumbered. Site-local addresses as defined today are not globally unique --- they all share a common prefix (FEC0::/48) [1]. In other words, they are re-used addresses in much the same way that IPv4 net 10 addresses are re-used (with two key differences: First, because of the uniqueness of IPv6 interface ID field, individual addresses are less likely to be exactly identical. Second, IPv6 nodes in non-isolated sites will have global addresses in addition to the site-locals.) These differences not-with-standing, the use of site-locals creates ambiguities that can result in errors and increased administration. For instance, for two sites to merge, one of them almost certainly must be renumbered before site-local addresses may be exchanged by routing protocols. The host identified by a site-local address may not be known if that address is read out of context --- that is, in a text file or email message. All things being equal, it is better if site-local addresses are as globally unique as possible. This suggestion has been raised and discussed repeatedly on the IPv6 mailing list (in May 1997, Dec 1998, Nov 1999, Feb 2000), though never with conclusive results. In the opinion of the author, one of the reasons no conclusion has been reached is that multiple issues were often mixed together in these discussions --- whether or not to get rid of (non-unique) site- locals, whether or not to use two-faced DNS, and what the new role of site-locals should be. Another reason is that there was never a complete and concise proposal on which to base the discussion, so it was never fully clear what was being proposed. The purpose of this internet-draft is to provide that complete and concise proposal in order to allow progress to be made on this issue. In a nutshell, the proposal is this: 1. Make site-local addresses near-unique by putting allowing the current 38-bit all-zeros field of the site-local address to contain any value. This field is called the site-local identifier. The all-zeros value is used as is by sites that don't require near- uniqueness. 2. For all remaining (non-zero) values, the site-local identifier is selected randomly by each site that wants one (if necessary by literally tossing 38 coins). Thus the site-local is only statistically unique. In particular, there is no registry for site- local identifiers. 3. Make no changes to existing host or router implementations. (Assuming that existing host and router implementations correctly recognize the site-local prefix as a /10 as defined in section 2.4 of RFC 2373 [1], and not incorrectly as a /48 (as might be assumed from section 2.5.8 of RFC 2373). Francis Standards Track - Expires Aug 2001 Page 2 IPv6 Near-Unique Site Local Addresses Feb 2001 1.1 Conventions used in this document 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 [2]. 2 Terminology This document defines the following new terms: Near-unique site-local: A site-local IPv6 address with a non-zero value in the 38-bit field following the FEC0::/10 prefix. Default site-local A site-local IPv6 address with a zero value in the 38-bit field following the FEC0::/10 prefix. Site-Local Either a near-unique site-local or a default site-local. Site-Local Identifier The 38-bit field in the site-local address. Duplicate Site-Local Identifier A site-local identifier used by more than one site. Registry For the purposes of this document, a registry is defined as an entity that assigns identifiers in such a way as to guarantee uniqueness. They do this by remembering which numbers have been assigned, and checking new assignments against previous assignments to insure no duplicates. This checking may be either explicit (an actual list is kept), or implicit (by keeping a counter and assigning consecutive values). By contrast, an entity that provides a site with true random identifiers as a service is not considered a registry as defined here. 3 Goals and Non-goals The goals of this proposal are quite modest. Indeed there is only one goal: to allow a site to use site-local addresses that are globally unique with high probability. More interesting are the non-goals (and the reasons why they are non-goals). Francis Standards Track - Expires Aug 2001 Page 3 IPv6 Near-Unique Site Local Addresses Feb 2001 It is not a goal to completely obviate the need for renumbering of site-local addresses. While it will be possible for two merged sites to operate indefinitely without renumbering their near-unique site-locals, some sites may not wish to run DNS or routing in such a way that allows this. Such sites may prefer to renumber. It is not a goal to allow a host to always know if a destination host can or cannot be reached intra-site by comparing their near- unique site-local addresses. Two near-unique site-locals with the same /48 prefix may be unreachable, and two near-unique site-locals with different prefixes may be reachable. Therefore we still rely on DNS returning addresses that the requesting host can use to reach the destination. Put more succinctly, a site-local identifier does not identify a site. It is not a goal for all site-local identifiers to be absolutely 100% guaranteed to be globally unique. (Which is fortunate because it is impossible to make this guarantee even with a registry.) Rather, non-zero site-local identifiers are globally unique with high probability (as long as they have been chosen randomly). It is not a goal that an administration actually "owns", in some legal sense, the site-local identifier(s) it uses. Because near- unique site-locals are only used internally, the existence of a duplicate in another site causes no problem unless the two sites choose to merge. Once they choose to merge, the damage is done --- one or the other must renumber. Since the decision to merge implies that the two administrations are cooperating, there is little value in allowing one or the other to claim ownership on the site-local identifier. 4 Details of the Proposal RFC 2373 defines all addresses with the prefix FEC0::/10 as being a site-local [1]. It further defines the 38 bits immediately following this prefix as containing all zeros: | 10 | | bits | 38 bits | 16 bits | 64 bits | +----------+-------------+-----------+----------------------------+ |1111111011| 0 | subnet ID | interface ID | +----------+-------------+-----------+----------------------------+ This proposal expands the format but not the definition of the site- local. Specifically, the 38-bit site-local identifier field may take on any value, not only value 0. Francis Standards Track - Expires Aug 2001 Page 4 IPv6 Near-Unique Site Local Addresses Feb 2001 It is important to note that only the format and not the definition of the field is changing. The site-local address is treated the same by IPv6 nodes and by DNS whether it has zero or non-zero values in the site-local identifier field. A site-local with a 0 value site-local identifier is the default site-local. Because many sites will use the default value, this will continue to be a heavily re-used prefix. All other values are valid values. They MUST be assigned randomly. There SHOULD NOT be any large-scale attempt to insure their uniqueness other than random assignment. In particular, there MUST NOT be any notion of ownership attached to the values. Any site has as much right to use any given value as any other. A site may of course check with other sites it expects to interconnect with in the future before selecting a given value. 4.1 Choosing a random value It is in the best interests of every site to choose a number that is as random as possible. Any non-randomness in the number only increases the probability that it is a duplicate. Given that the random number generation is a one-time event per site, if a site generates its own number it is strongly advised that the number SHOULD be generated by tossing a coin 38 times. This process takes approximately 5 minutes. If a service provider wishes to provide random site-local identifiers to its customers, tossing a coin may be inconvenient. In this case, the good techniques described in RFC 1750 [3] are appropriate. In any event, the service provider MUST NOT use any method other than good random number generation, and the service provider SHOULD NOT attempt to cross-check generated numbers against previous assignments as such attempts are prone to failure and reduce the psychological importance of generating good random numbers. 4.2 Non-compliant host and router implementations Any existing IPv6 nodes that do not recognize site-local addresses with non-zero site-local identifier fields as being site-local are in violation of RFC 2373 [1]. These implementations must be fixed so that they interpret FEC0::/10, and not just FEC0::/48, as being site-local. 4.3 IPv6 routers that are not in a site All routers that are not in a site (i.e. backbone or core routers) SHOULD treat each interface as being a site boundary. In other Francis Standards Track - Expires Aug 2001 Page 5 IPv6 Near-Unique Site Local Addresses Feb 2001 words, they SHOULD NOT allow FEC0::/10 addresses to cross those interfaces. 5 Scenarios and Discussion 5.1 Why random address assignment? It is impossible to 100% guarantee global uniqueness across all site-local identifiers, so it is pointless to go through the tremendous trouble and expense of trying. The reason is simple. If a site splits, and neither half renumbers, then there will be duplicate site-local identifiers. Over time, both halves will assign duplicate SLAs, so it will be impossible to later merge the halves without renumbering. Since the number of sites that will have duplicates because of splitting is greater than the number of sites that will have duplicates because of random probabilities, attempting to assign unique numbers through a registry doesn't help. Another reason for not using a registry is that it is probable that more duplicates would result using a registry than using random numbers. This is because there is no innate mechanism of detecting errors in the assignment process. Since site-local addresses are kept local, there is no global infrastructure equivalent to the DNS or IP routing to detect duplicates. Therefore errors in the assignment process will go undetected. It is likely that errors in a registry process will produce more duplicates than random number generation. If a registry assigns numbers consecutively (the easiest thing to do), then a mistyping of an identifier during its handling is very likely to result in its duplicating a "legitimate" identifier. This is because with consecutive numbers the values are all packed together and almost any change in a digit will result in another assigned (or soon-to- be-assigned) value. (In other words, mistyping 12345 as 12344 is much more likely than mistyping 12345 as 1000002345.) Because random numbers are spread out, mistyping of a random value is much less likely to result in a duplicate. If on the other hand the registry assigns values randomly with explicit checks for duplicates, a software error could easily produce duplicates that go undetected for a long time. A final advantage for not having a registry is that it makes it harder in the future to justify making near-unique site-locals globally routable. The facts that any given site-local identifier may be a duplicate, that there is no way to know if it is a duplicate, and that no-one can claim legal ownership to it, adds weight to arguments against trying to advertise it globally. Francis Standards Track - Expires Aug 2001 Page 6 IPv6 Near-Unique Site Local Addresses Feb 2001 It is for the above reasons that we don't assign a "spare bit" in the site-local identifier. That is, define the first bit as 0 for random assignments so that later a registry can be created with jurisdiction over all values where the first bit is 1. One downside of random number assignment is that users are going to think it is weird. Some may choose not to do it, and end up with less-than-random numbers. Such people are more likely to have duplicates with each other. People that do properly select random numbers are no more likely (in fact are less likely) to have duplicates with the less-than-random numbers. 5.2 What is the probability of duplicates? The probability of a duplicate assignment somewhere is N^2/2^38, where N is the number of assigned site-local identifiers. This means that there will probably be a duplicate somewhere after 500000 assignments, and 3 or 4 duplicates after 1000000 assignments. What is important though is not the probability of a duplicate somewhere, but the probability of any given site trying to connect or merge with a site that has a duplicate. (In other words, what is interesting is not whether someone will win the lottery, but whether you will win the lottery.) If over the lifetime of a site it merges (even partially and temporarily) with as many as 10000 other sites, the probability that it will encounter a duplicate is 0.03%. The probability is correspondingly less if a site merges less. This probability is so low that it is negligible next to the probability that a site will split and then later re-merge with the split half. 5.3 Why don't near-unique site-local prefix comparisons identify sites? If prefix comparisons could determine whether two addresses were in the same site, DNS operation could be made easier. Near-unique site- locals could be stored in DNS and put in DNS answers without regard for whether the requester was inside or outside the site. Unfortunately this is not the case. Duplicate site-local identifiers in different sites are quite possible (because of splitting). So are different site-local identifiers in the same site. If two sites merge but don't renumber their near-unique site- locals, then a comparison of the two prefixes would indicate that they are in different sites when they are not. What this means is that DNS must discriminate its answers based on where its requests come from just as it must today with default Francis Standards Track - Expires Aug 2001 Page 7 IPv6 Near-Unique Site Local Addresses Feb 2001 site-locals. Requests from inside a site may be answered with near- unique site-local addresses. Requests from outside cannot. [Author's note: Could possibly benefit here from a description of how this is done, though on the other hand it could be considered outside the scope of this document.] It should be noted that implementations following the address selection rules in draft-ietf-ipngwg-default-addr-select-02.txt [4] will select site-local addresses before global addresses, regardless of whether their prefixes match. Therefore DNS can safely return both global and site-local addresses to an internal requester. 5.4 How to merge sites without renumbering near-unique site-locals When two sites merge, it is not necessary to renumber the near- unique site-locals. All that is necessary is that DNS be reconfigured so that it returns the near-unique site-local addresses of hosts in both halves for internal DNS requests. There may be other reasons, however, that renumbering is necessary when two sites merge. Specifically, if a site wishes to use RFC 2894 site-wide router renumbering [5], then all SLAs in the site must be unique. Even if two sites have different site-local identifiers, one site or the other must renumber the duplicate SLAs (without the benefit of RFC 2894) before adopting a common global address prefix. 6 Security Considerations There are no new security considerations that result from this proposal. 7 Acknowledgements There are no new ideas in this draft. The basics of this proposal have been floating around the IPv6 mailing list literally for years. Because I would inevitably get it wrong, I won't even try to give individual credit (or blame, as the case may be) for the ideas. You know who you are. The archives speak for themselves. I would like to acknowledge Robert Elz for reviewing an early version of this draft. 8 Copyright The following copyright notice is copied from RFC 2026 [Bradner, 1996], Section 10.4, and describes the applicable copyright for this Francis Standards Track - Expires Aug 2001 Page 8 IPv6 Near-Unique Site Local Addresses Feb 2001 document. Copyright (C) The Internet Society XXX 0, 0000. All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assignees. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 9 Intellectual Property The following notice is copied from RFC 2026 [Bradner, 1996], Section 10.4, and describes the position of the IETF concerning intellectual property claims made against this document. The IETF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use other technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF Secretariat. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice Francis Standards Track - Expires Aug 2001 Page 9 IPv6 Near-Unique Site Local Addresses Feb 2001 this standard. Please address the information to the IETF Executive Director. 10 References 1 S. Deering, R. Hinden, Editors, "IP Version 6 Addressing Architecture", RFC 2373, July 1998. 2 S. Bradner, "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. 3 D. Eastlake 3rd, S. Crocker, J. Schiller, "Randomness Recommendations for Security", RFC 1750, December 1994. 4 R. Draves, "Default Address Selection for IPv6", draft-ietf- ipngwg-default-addr-select-02.txt, November 2000. 5 M. Crawford, "Router Renumbering for IPv6", RFC 2894, August 2000. Author Addresses: Paul Francis TAHOE Networks paul@francis.com Francis Standards Track - Expires Aug 2001 Page 10