Internet Draft                                                P. Francis
<draft-francis-ipngwg-unique-site-local-00.txt>           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