INTERNET-DRAFT                                            June 5, 1995
<draft-ietf-addrconf-ipv6-auto-02.txt>



               IPv6 Stateless Address Autoconfiguration


Status of this Memo

   This document is a submission to the ADDRCONF Working Group of the
   Internet Engineering Task Force (IETF). Comments should be submitted
   to the addrconf@cisco.com mailing list.

   This document is an Internet Draft.  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. Internet Drafts may be updated, replaced, or obsoleted by
   other documents at any time.  It is not appropriate to use Internet
   Drafts as reference material or to cite them other than as a "working
   draft" or "work in progress."

   To learn the current status of any Internet Draft.  please check the
   1id-abstracts.txt listing contained in the Internet Drafts Shadow
   Directories on ds.internic.net, nic.nordu.net, ftp.nisc.sri.com or
   munnari.oz.au.


Abstract


   In IPv6, there are two types of address autoconfiguration: stateless
   address autoconfiguration and stateful address configuration. In
   stateless address autoconfiguration, no state is maintained binding a
   particular host interface to a specific list of addresses. Rather, an
   address is formed algorithmically by concatenating the network prefix
   of the attached link to a host token that is unique per link.  Hosts
   use stateless address autoconfiguration to form a link-local unicast
   address and may use stateless address autoconfiguration to form
   global and site-local unicast addresses.  This document specifies how
   a host uses stateless address autoconfiguration to form a list of



Expires December 5, 1995                                        [Page 1]


INTERNET-DRAFT     Stateless Address Configuration            June 1995


   unicast addresses per interface. It also specifies how a host
   determines whether to use the stateless mechanism or the stateful
   mechanism.  Stateful address autoconfiguration is outside the scope
   of this document.












































Expires December 5, 1995                                        [Page 2]


INTERNET-DRAFT     Stateless Address Configuration            June 1995


1.  INTRODUCTION


   In IPv6, there are two types of address autoconfiguration: stateless
   address autoconfiguration and stateful address configuration. In
   stateless address autoconfiguration, no state is maintained binding a
   particular host interface to a specific list of addresses. Rather, an
   interface address is formed algorithmically by concatenating the net-
   work prefix of the attached link to a host token unique per link.  In
   stateful address configuration, state is maintained, typically by a
   server. For example, the IPv6 Dynamic Host Configuration Protocol is
   an example of stateful address autoconfiguration.

   Stateless autoconfiguration is designed to make address configuration
   very simple to use and implement, and is suitable for environments
   with simple topologies, e.g. routerless networks, and for environ-
   ments where system administrative control is not desired.  In con-
   trast, stateful address configuration is designed to support flexible
   address assignment and is suitable for more sophisticated topologies
   and for environments where system administrative control is desired.

   A host always uses stateless address autoconfiguration to form a
   link-local address per interface.  A host may use either stateless or
   stateful autoconfiguration to configure addresses of inter-link scope
   for an interface, i.e. global or site-local addresses.

   This document describes how a host forms unicast addresses per inter-
   face using stateless autoconfiguration.  It also specifies how a host
   determines whether to use the stateless mechanism or the stateful
   mechanism.  Stateful address autoconfiguration is outside the scope
   of this document.

















Expires December 5, 1995                                        [Page 3]


INTERNET-DRAFT     Stateless Address Configuration            June 1995


2.  OVERVIEW



   An IPv6 host may have multiple unicast addresses per interface[1].
   The addresses can have one of three scopes: a link-local scope, a
   site-local scope, or a global scope.  Addresses of all three address
   scopes can be autoconfigured. A host is able to autoconfigure a
   link-local address completely autonomously. In particular, a host can
   form a link-local address without a router present on the link. A
   host is able to autoconfigure an inter-link scope address only when a
   router is present on the link. The scope of the inter-link address
   formed depends on the prefix advertised on the link.

   On initialization of an interface, a host forms a link-local address
   by concatenating a well-known link-local prefix[1] to a token that is
   unique per link.  The definition of the tokens used are link-
   dependent.  For example, in the case of a host  attached to a link
   that uses IEEE 802 addresses, the token is an IEEE 802 address asso-
   ciated with the interface.

   A host forms or updates an inter-link scope address on hearing prefix
   advertisements advertised by a router. A global or site-local address
   is formed by concatenating a network prefix to a host token that is
   unique per link in the same way as described above.  The mechanism
   used to advertise network prefixes for the purposes of address confi-
   guration is the same as that used in Neighbor Discovery[2] for the
   purposes of prefix discovery.  Rather than specify two separate
   mechanisms to advertise the same prefix information, we use a single
   mechanism which requires hosts to perform both prefix discovery pro-
   cessing and address autoconfiguration processing on receiving a pre-
   fix advertisement. Note that, when prefixes are advertised, it is
   possible to indicate whether the prefixes are to be used for prefix
   discovery only, address autoconfiguration only or both.

   One of the goals of IPv6 address autoconfiguration is not only to be
   able to autoconfigure addresses on startup, but to be able to recon-
   figure addresses dynamically. Address reconfiguration ("renumbering")
   enables hosts to acquire new addresses and relinquish old addresses
   automatically. Old addresses may then be reused.  To enable hosts to
   renumber with minimal disruption of existing communications, prefixes
   are advertised with two lifetimes: a deprecation lifetime and an
   invalidation lifetime.  The deprecation lifetime indicates when an
   address formed from a prefix must be deprecated. A deprecated address
   may continue to be used as a source address in existing



Expires December 5, 1995                                        [Page 4]


INTERNET-DRAFT     Stateless Address Configuration            June 1995


   communications, but should not be used as a source address in new
   communications. The invalidation lifetime indicates when an address
   formed from a prefix is no longer valid and may be reused.  Invalid
   addresses cannot be used in any communications.  By specifying two
   separate lifetimes, a host can gradually phase out use of old
   addresses, while beginning to use new addresses for new communica-
   tions (if any).  The deprecation and invalidation lifetimes are con-
   figurable by a system administrator and so the transition from old to
   new addresses may be as quick (the deprecation and invalidation life-
   times are the same) or as slow as desired.

   One of the basic assumptions of stateless autoconfiguration is that
   the host token is at least unique per link.  However, in practice,
   host tokens are not always unique because of errors in assignment.
   Thus, it cannot be guaranteed that IPv6 addresses formed from a host
   token are indeed unique among all hosts on a link. Since duplicate
   IPv6 addresses are very difficult to track down and debug, we specify
   a procedure for detecting duplicate addresses that hosts should use
   on initialising an interface. Note that this procedure is not com-
   pletely reliable, and so duplicate addresses may still exist.  The
   procedure makes use of Neighbor Solicitations and Advertisements[2]
   in a special-purpose way. Briefly, a host uses a Neighbor Solicita-
   tion to solicit for itself.  If it discovers that another host has
   the address through receiving a Neighbor Advertisement, the valida-
   tion check fails and the host ceases operation on that interface.
   Note that the host that is already using the address (presumably leg-
   itimately) continues unharmed, although it may log a message to the
   effect that it has received a solicitation for its own address.

   This document specifies router and host behavior related to stateless
   address configuration and duplicate address detection in more detail
   in the sections that follow.
















Expires December 5, 1995                                        [Page 5]


INTERNET-DRAFT     Stateless Address Configuration            June 1995


3.  ROUTER BEHAVIOR


   The stateless address autoconfiguration mechanism relies on the pre-
   fix discovery mechanism specified in [2] for advertising network pre-
   fixes required for the formation of addresses with site-local or glo-
   bal scope. A prefix is advertised in a Prefix Information extension
   of a Router Advertisement. The Prefix Information extension includes
   the prefix and its length, flags indicating whether the information
   is to be used for prefix discovery or address configuration, and two
   lifetimes: the deprecation lifetime and the invalidation lifetime.
   The Router Advertisement itself includes flags indicating whether
   stateful address configuration should be used by hosts and whether
   other configuration information (besides an address) needs to be con-
   figured.

   Router Advertisement and Solicitation processing is specified com-
   pletely in [2] along with the message formats and configuration vari-
   ables. Additional configuration variables pertinent to stateless
   address configuration are specified below.



3.1.  Router Configuration Variables


   In addition to the configuration variables specified in [2], routers
   MUST also be configurable as follows.


   For each of the prefixes to be advertised in Prefix Information
   extensions per interface:


      Autonomous Flag

         If set, the prefix is being advertised for the purposes of
         stateless address configuration.

         Default: TRUE


      Deprecation Lifetime

         The value to be placed in the Deprecation Lifetime field of



Expires December 5, 1995                                        [Page 6]


INTERNET-DRAFT     Stateless Address Configuration            June 1995


         Prefix Information extensions in Router Advertisements sent
         from the interface in seconds.


      Invalidation Lifetime

         The value to be placed in the Invalidation Lifetime field of
         Prefix Information extensions in Router Advertisements sent
         from the interface in seconds. Must be no less than Deprecation
         Lifetime.


   For each advertising interface:


      Administered Flag

         If set, the host must autoconfigure addresses using stateful
         address autoconfiguration.

         Default: FALSE



      Other Flag

         If set, the host must autoconfigure other configuration infor-
         mation (besides the address) using stateful autoconfiguration.

         Default: FALSE


   NOTE: All routers advertising a given prefix on a link MUST set all
   of the configuration variables to the same value.














Expires December 5, 1995                                        [Page 7]


INTERNET-DRAFT     Stateless Address Configuration            June 1995


4.  HOST BEHAVIOR


   Conceptually, a host maintains a list of addresses per interface.
   Entries in the list are created as a result of forming addresses from
   prefixes advertised in Prefix Information extensions of Router Adver-
   tisements.  Each entry in the list has two associated timers, a
   deprecation timer and an invalidation timer, which have values set
   according to lifetimes learned from the router advertisement. In
   addition, the address list always includes the link-local address,
   which the host forms autonomously whenever an interface is initial-
   ised. The deprecation and invalidation lifetimes of a link-local
   address are set to infinity.

   This section specifies host address autoconfiguration behavior on
   interface initialisation and on receiving a Router Advertisement.
   This section also specifies a host protocol for attempting to verify
   that an address is not a duplicate.



4.1.  Host Configuration Variables


   A host MUST allow the following variable to be configured per inter-
   face:


   Perform_Auto_Config

      If set, the host MUST perform address autoconfiguration process-
      ing.

      Default: TRUE



4.2.  Router Advertisement Processing


   An "autoconfigurable" interface is one on which Router Advertisements
   are received and the Perform_Auto_Config flag is set.

   A host MUST perform the following address configuration processing
   when a solicited or unsolicited Router Advertisement is received over



Expires December 5, 1995                                        [Page 8]


INTERNET-DRAFT     Stateless Address Configuration            June 1995


   an autoconfigurable interface:

   For each valid Router Advertisement:


      If the Administered flag is set, the host MUST use stateful auto-
      configuration to acquire a list of site-local or global addresses
      per interface.

      If the Other flag is set, the host MUST use stateful autoconfi-
      guration to acquire other configuration information besides the
      address.


      For each Prefix-Information extension in the Router Advertisement
      that has the Autonomous flag set:



      -    If the prefix advertised matches the prefix of an autoconfig-
           ured address already in the list, then set the deprecation
           timer to that of the deprecation lifetime specified in the
           extension and the invalidation timer to that of the invalida-
           tion lifetime.  Note that this processing does not apply to a
           link-local address.

      -    If the prefix advertised does not match the prefix of an
           address already in the list, then form an address using this
           network prefix. Appendix A specifies how to form an address
           for hosts that have IEEE 802 tokens. The extension is ignored
           if the prefix is not valid, e.g. it is not the right length
           for forming an address with the given host token.

           Add this address to the list with the deprecation timer set
           to that of the deprecation lifetime  and the invalidation
           timer to that of the invalidation lifetime.

      Note that if the deprecation lifetime is zero, the address with
      that prefix is immediately deprecated. Similarly, if the invalida-
      tion lifetime is zero, the address with that prefix is immediately
      made invalid. (The invalidation lifetime is defined to be no less
      than the deprecation lifetime.)

      An address is valid until the deprecation timer expires. A valid
      address may be used as a source address in all outgoing



Expires December 5, 1995                                        [Page 9]


INTERNET-DRAFT     Stateless Address Configuration            June 1995


      communications and MUST be accepted as a destination address in
      all incoming communications.

      When the deprecation lifetime of an address expires, an address is
      said to be deprecated.  A deprecated address SHOULD NOT be used as
      a source address in new communications. However, a deprecated
      address SHOULD continue to be used as a source address if it is in
      use in existing communications.  The IP layer MUST continue to
      accept datagrams destined to a deprecated address. Upper layers
      MAY refuse to accept new communications requests to a deprecated
      address, however.

      An address remains deprecated until its invalidation timer expires
      at which point the address becomes invalid. An invalid address can
      no longer be used  as  a source address in outgoing communications
      and is not recognised as a valid destination address in incoming
      communications.

      Note that, when choosing a source address in outgoing communica-
      tons, a global valid address should be used in preference to a
      site-local valid address, which in turn should be used in prefer-
      ence to the link-local address. Similarly, a global deprecated
      address should also be used in preference to a site-local depre-
      cated addresses. Note that the link-local address is never depre-
      cated; it is always valid. One of the implications of these rules
      is that if there are no valid inter-link scope addresses, e.g. all
      global and site-local addresses are deprecated, then the host will
      default to using the link-local address as a source address in new
      communications.

      To limit storage space required for the address list, a host may
      choose not to store all valid and deprecated addresses. Deprecated
      addresses that are not in use by existing communications should be
      discarded in favor of valid addresses and deprecated addresses
      that are in use.

      If a host determines that there are no IPv6 routers on a link,
      either on startup or during normal processing, a host MUST attempt
      to use stateful autoconfiguration to acquire addresses or other
      configuration information if it is not already doing so. This is
      needed to support networks with no IPv6 routers. The host deter-
      mines that there are no routers on the link after startup if no
      Router Advertisements are heard in the time that it would take to
      send MAX_ROUTER_SOLICITATIONs and wait for a response[2]. During
      normal processing, it is determined that there are no routers when



Expires December 5, 1995                                       [Page 10]


INTERNET-DRAFT     Stateless Address Configuration            June 1995


      all router advertisements have timed out.  If a router comes up on
      the link and Router Advertisements begin to be received, a host
      MUST start to use Router Advertisements in the normal way, and, in
      particular, use advertisements to determine whether stateless or
      stateful address configuration should be in use. Note that if a
      host does not receive Router Advertisements because of some error,
      e.g. all routers are down or there is a network partition, hosts
      will attempt to change mode from stateless (assuming this was the
      advertised mode) to stateful and then back again when Router
      Advertisements start being heard. This means that if the stateful
      mode is available, it should be configured correctly to serve only
      the hosts that it should, since hosts may attempt to use it, even
      if it is not the intention that they do so.

      A host must behave reasonably when there is a change from the
      stateless mode to the stateful mode, and vice versa. This can hap-
      pen because routers advertise a new configuration mode due to a
      deliberate change by a system administrator, or because of a
      change in topology, e.g. an IPv6 router is connected to or removed
      from the link.  It is possible and quite likely that during the
      change-over, a host will have addresses autoconfigured using both
      mechanisms. If the addresses acquired using the two mechanisms are
      the same, then the new addresses should replace the old and the
      aging semantics associated with the new mode apply.  If the
      addresses acquired using the two mechanisms are different, then
      the old addresses should be aged according to the rules specified
      in the old configuration mode and the new addresses should follow
      the rules of the new mode.




4.3.  Host Initialisation


   A host forms a link-local address when an autoconfigurable interface
   is initialised.  Appendix A specifies how a host that is attached to
   a link that uses IEEE 802 addresses forms a link-local address.

   Note that an interface may be initialised after any of the following
   events:

   -    The interface is initialized at system startup time.

   -    The interface is reinitialized after a temporary interface



Expires December 5, 1995                                       [Page 11]


INTERNET-DRAFT     Stateless Address Configuration            June 1995


        failure or after being temporarily disabled by system manage-
        ment.

   -    The system changes from being a router to being a host, by hav-
        ing its IP forwarding capability turned off by system manage-
        ment.

   -    The host is re-attached to a link after being detached for some
        time.

   -    The interface has its Perform_Auto_Config flag changed from
        FALSE to TRUE.




4.4.  Detecting Duplicate IPv6 Addresses


   The procedure to detect duplicate addresses MUST be implemented in
   hosts and SHOULD be used.

   In stateless address configuration, it is only necessary to check
   that one of the autoconfigured addresses is unique since the same
   token is used to form all addresses.  It is recommended that the
   link-local address be the address checked since the host always forms
   this address.

   The procedure uses Neighbor Solicitation and Advertisement messages
   specified in [2] to validate an address and is specified below.

   Note that this mechanism is not completely reliable, and so it is
   possible that duplicate addresses will still exist. If a duplicate
   address is discovered, the host will need to be configured with a new
   token, or if this is not possible, the IPv6 addresses will need to be
   manually configured.




4.4.1.  Soliciting Host Behavior


   The host first delays a random amount of time between 0 and
   DUPL_ADDRESS_DELAY seconds before sending out a Neighbor Solicitation



Expires December 5, 1995                                       [Page 12]


INTERNET-DRAFT     Stateless Address Configuration            June 1995


   for the address. This serves to alleviate congestion when many hosts
   start up on the link at the same time, such as after a power failure,
   and helps to avoid race conditions when more than one host is trying
   to solicit for the same address at the same time. (It is recommended
   that hosts include some unique value in the seed used to initialise
   their pseudo-random number generators. Note that using only the host
   token as a unique value is not sufficient since the token cannot be
   relied upon to be unique. Although the randomization range is speci-
   fied in units of seconds, the actual randomly-chosen value should not
   be in units of whole seconds, but rather in units of the highest
   available timer resolution.)

   The node then sends a Neighbor Solicitation with a target address
   containing the address to be validated. The source is set to the
   unspecified address and the destination is set to the solicited-node
   multicast address.  The Source Link Layer Address extension SHOULD
   NOT be sent.

   NOTE: There SHOULD be some way to inhibit local delivery of the soli-
   citation since, in general, it will not be possible for a host to
   determine whether a solicitation is from itself or from another host
   with a duplicate address. If local delivery cannot be inhibited, then
   the host should ignore the first Neighbor Solicitation with an
   unspecified source address or wait for a period of
   DUPL_ADDR_IGNORE_TIMER seconds after sending a Neighbor Solicitation
   before beginning to process solicitations again.


   If after sending a solicitation, no advertisement is received from
   the target, the node SHOULD retransmit the solicitation every
   DUPL_ADDR_RETRANS_TIMER seconds until either an advertisement is
   received or the solicitation has been retransmitted
   MAX_DUPL_ADDR_RETRANS times. If an advertisement is received with a
   target address the same as the address being validated, it must cease
   operation on that interface and indicate an appropriate error.  If no
   such advertisement is received in response to the Neighbor Solicita-
   tions sent, the address is considered to be valid.



4.4.2.  Solicited Node Behavior


   When a host is in the process of validating an address, it MUST NOT
   send any advertisement in response to a solicitation for that



Expires December 5, 1995                                       [Page 13]


INTERNET-DRAFT     Stateless Address Configuration            June 1995


   address. Rather, all solicitations for the address are ignored,
   except when the solicitation is from the unspecified address i.e.
   the Neighbor Solicitation message has a target address which is the
   same as the address to be validated, and a source address that is the
   unspecified address. (Note that any solicitation that is likely to be
   a loopback solicitation should be ignored too as mentioned in the
   above section.) If a solicitation is received from the unspecified
   address, the host must cease operation on that interface and indicate
   an appropriate error.

   Once a host has validated its address, it responds to a Neighbor Sol-
   icitation with a Neighbor Advertisement as specified in [2]. However,
   the processing of the solicitation is somewhat different from that in
   [2] when a solicitation is received from the unspecified address.  In
   this case, the host MUST ignore any Link Layer Address Extension in
   the solicitation and MUST NOT perform any link-layer address resolu-
   tion processing before sending a Neighbor Advertisement.  The host
   sends the Neighbor Advertisement to the all-nodes multicast address
   of the soliciting host. The target address is copied from the solici-
   tation message. The source address MUST be set to the address of the
   target field.  The Target Link Layer Address extension need not be
   filled in.





4.4.3.  Constants


   DUPL_ADDR_DELAY                     4 seconds (XX)
   DUPL_ADDR_IGNORE_TIMER              0.1 seconds
   DUPL_ADDR_RETRANS_TIMER             4 seconds  (XX)
   MAX_DUPL_ADDR_RETRANS               1 transmission (XX)





5.  SECURITY CONSIDERATIONS


   To be completed.





Expires December 5, 1995                                       [Page 14]


INTERNET-DRAFT     Stateless Address Configuration            June 1995


6.  APPENDIX A: FORMING AN IPv6 ADDRESS FOR IEEE 802 LINKS


   The token for an interface on an IEEE 802 link or any link that uses
   IEEE 802 addressing, such as FDDI, is the 48-bit IEEE 802 address in
   canonical format, i.e. the Individual/Group  bit is the low-order bit
   of the furst byte.

   A host forms an IPv6 address per link by concatenating an 80-bit pre-
   fix with the IEEE 802 address as follows:



      |              80 bits                  |      48 bits           |
      +---------------------------------------+------------------------+
      |              prefix                   |    IEEE 802 address    |
      +----------------------------------------------------------------+



   In the case of a link-local prefix, the prefix is well-defined[1].

   The prefixes of other types of addresses need to be configured.

























Expires December 5, 1995                                       [Page 15]


INTERNET-DRAFT     Stateless Address Configuration            June 1995


7.  REFERENCES



   [1]  R. Hinden and S. Deering, "Internet Protocol Version (IPv6)
        Addressing Architecture", Internet Draft, May 1995, draft-ietf-
        ipngwg-addr-arch-02.txt

   [2]  T. Narten and E. Nordmark, "IPv6 Neighbor Discovery", Internet
        Draft, June 1995, <draft-ietf-ipngwg-discovery-00.txt>


Acknowledgements


The author would like to thank the members of both the IPNG and ADDRCONF
working groups for their input. In particular, thanks to Jim Bound,
Steve Deering, Erik Nordmark and Bill Simpson.


Author's Addresses


   Susan Thomson
   Bellcore
   445 South Street
   Morristown, NJ 07960
   U.S.A.

   Phone: +1 201-829-4514
   Email: set@thumper.bellcore.com

















Expires December 5, 1995                                       [Page 16]


INTERNET-DRAFT     Stateless Address Configuration            June 1995


















































Expires December 5, 1995                                       [Page 17]