view Side-By-Side changes
ADDRCONF Working Group Susan Thomson (Bellcore) INTERNET-DRAFTJune 5,July 7, 1995<draft-ietf-addrconf-ipv6-auto-02.txt><draft-ietf-addrconf-ipv6-auto-03.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. AbstractIn 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 toThis document specifies how ahost token that is unique per link. Hosts use stateless address autoconfiguration to formnode configures a link-localunicast address and may use statelessaddressautoconfiguration to form globalper interface, andsite-local unicast addresses. This document specifieshow a hostuses stateless address autoconfiguration to formconfigures a list ofExpires December 5, 1995 [Page 1] INTERNET-DRAFT Stateless Address Configuration June 1995 unicastglobal or site- local addresses perinterface. It also specifies how a host determines whether to use the statelessinterface, without any manual configuration. Stateless address autoconfiguration is only one mechanismor theavailable to hosts; statefulmechanism. Statefuladdressautoconfigurationconfiguration is also available. While stateful address configuration is outside the scope of thisdocument.document, it is specified how hosts determine which configuration method must be used. The document also specifies a protocol for detecting whether an address is a duplicate when it is initially configured. ExpiresDecember 5,January 7, 1995 [Page2]1] INTERNET-DRAFT Stateless Address ConfigurationJuneJuly 1995 1. INTRODUCTION In IPv6,there area host has twotypes of address autoconfiguration: statelessmechanisms available to form a global or site-local addressautoconfigurationthat require no manual configuration: the state- less method and the statefuladdress configuration.method. In the statelessaddress autoconfiguration,method, no external state is maintainedbindingfor the purpose of indicating to aparticularhostinterfacethe list of addresses to use for an interface. Rather, a host forms aspecificlist ofaddresses. Rather, an interface address is formedaddresses algorithmically by concatenating each of the net- workprefixprefixes of the attached link toa hostan interface token unique per link. The interface token is defined to be link-dependent and may be the hardware address, for example. Instateful address configuration,contrast, state ismaintained, typically bymaintained in the stateful address configuration, typically in 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 notdesired.desired, e.g. plug- and-play environments. Incon- trast,contrast, stateful address configuration is designed to support flexible address assignment and is suitable for more sophisticated topologies and for environments where system administrative control isdesired. A host always usesdesired, e.g. corporate networks. Any node can use stateless address autoconfiguration to form alink-locallink- local address per interface. A hostmaycan use either stateless or stateful autoconfiguration (or both) to configure global or site- local addressesof inter-link scopefor aninterface, i.e.interface. The choice of mechanism for confi- guring global or site-local addresses is itself configurable, and requires no manual configuration per host. One of the basic assumptions of stateless autoconfiguration is that the token used to form addresses per interface is at least unique per link. However, whatever the type of tokens used, interface tokens are not guaranteed to always be unique in practice because of errors in assignment. Thus, it is possible that IPv6 addresses formed using stateless autoconfiguration are not unique among all nodes on a link. Since duplicate IPv6 addresses are very difficult to track down when they occur, this document also specifies a procedure for detecting duplicate addresses. Note that the algorithm does not only apply to addresses autoconfigured using the stateless mode. It should be used to verify the uniqueness of any address, for example, addresses con- figured using the stateful mode or manually configured addresses. Expires January 7, 1995 [Page 2] INTERNET-DRAFT Stateless Address Configuration July 1995 This document describes how a node configures a link-local address per interface using stateless address autoconfiguration, and how a hostformsconfigures global or site-local unicast addresses perinter- faceinterface using stateless address autoconfiguration.It also specifiesStateful address autocon- figuration is outside the scope of this document. However, the docu- ment does specify how a host determines whether to use the stateless mechanism or the statefulmechanism. Statefulmechanism for configuring global or site- local addresses. The document also describes the algorithm used by a node to detect if an addressautoconfigurationisoutside the scope of this document.a duplicate when initially configured. ExpiresDecember 5,January 7, 1995 [Page 3] INTERNET-DRAFT Stateless Address ConfigurationJuneJuly 1995 2.OVERVIEW AnTERMINOLOGY node - a device that implements IPv6. router - a node that forwards IPv6 packets not explicitly addressed to itself. hostmay have multiple unicast addresses per interface[1]. The addresses can have one of three scopes:- any node that is not alink-local scope,router. upper layer - asite-local scope,protocol layer immediately above IPv6. Examples are transport protocols such as TCP and UDP, control protocols such as ICMP, routing protocols such as OSPF, and internet or lower-layer protocols being "tunneled" over (i.e., encapsulated in) IPv6 such as IPX, AppleTalk, or IPv6 itself. link - aglobal scope. Addresses of all three address scopescommunication facility or medium over which nodes canbe autoconfigured. A host is ablecommunicate at the link layer, i.e., the layer immediately below IPv6. Examples are Ethernets (simple or bridged); PPP links; X.25, Frame Relay, or ATM networks; and internet (or higher) layer "tunnels", such as tunnels over IPv4 or IPv6 itself. neighbors - nodes attached toautoconfigurethe same link. interface - alink-local address completely autonomously. In particular,node's attachment to ahostlink. packet - an IPv6 header plus payload. link MTU - the maximum transmission unit, i.e., maximum packet size in octets, that canform a link-local address withoutbe conveyed in one piece over arouter present on thelink.A host is able to autoconfigure an inter-link scopetarget - a node about which addressonly whenresolution information is sought, or arouternode which ispresent on the link. The scope oftheinter-linknew first-hop when being redirected. addressformed depends on the prefix advertised on the link. On initialization- an IPv6-layer identifier for an interface or a set of interfaces. unicast address - aninterface,identifier for ahost formssingle interface. A packet sent to alink-localunicast address is delivered to the interface Expires January 7, 1995 [Page 4] INTERNET-DRAFT Stateless Address Configuration July 1995 identified byconcatenatingthat address. anycast address - an identifier for awell-known link-local prefix[1]set of interfaces (typically belonging toa token thatdifferent nodes). A packet sent to an anycast address isunique per link. The definitiondelivered to one of thetokens used are link- dependent. For example, ininterfaces identified by that address (the "nearest" one, according to thecaserouting protocols' measure of distance). multicast address - an identifier for ahost attachedset of interfaces (typically belonging to different nodes). A packet sent to alink that uses IEEE 802 addresses, the tokenmulticast address is delivered to all interfaces identified by that address. link-layer address - a link-layer identifier for an interface. Examples are IEEE 802 addresses for Ethernet links, E.164 addresses for ISDN links. link-local addressasso- ciated with the interface. A host forms or updates- aninter-link scopeaddresson hearing prefix advertisements advertised bywith arouter. A global or site-local addressscope that isformed by concatenating a network prefixlimited to the locally attached link. site-local address - an address with ahost tokenscope that isunique per link in the same way as described above. The mechanism usedlimited toadvertise network prefixes forthepurposes oflocal site. global addressconfi- guration is the same as- an address with unlimited scope. communication - any packet exchange between nodes that requires or recommends that the address of each node used inNeighbor Discovery[2] forthepurposes of prefix discovery. Rather than specify two separate mechanisms to advertiseexchange remain the sameprefix 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 usedforprefix discovery only, address autoconfiguration only or both. One ofthegoals 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 disruptionduration ofexisting communications, prefixesthe packet exchange. Examples areadvertised with two lifetimes:a TCP connection or a UDP request-response. deprecation lifetimeand an invalidation lifetime. The deprecation lifetime- indicateswhenthe time at which an addressformed 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 notshould no longer be used as a source address in new communications. The deprecation lifetime must be less than or equal to the invalidation lifetime Expires January 7, 1995 [Page 5] INTERNET-DRAFT Stateless Address Configuration July 1995 of the address. invalidation lifetime - indicateswhenthe time at which an addressformed from a prefix isno longervalid and may be reused. Invalid addresses cannot be used in any communications. By specifying two separate lifetimes, a host can gradually phase out useidentifies an interface or set ofold addresses, while beginning to use new addresses for new communica- tions (if any).interfaces. Thedeprecation andinvalidationlifetimes are con- figurable by a system administrator and so the transition from old to new addresses maylifetime must beas quick (the deprecation and invalidation life- times are the same)greater than oras slow as desired. One ofequal to thebasic assumptionsdeprecation lifetime ofstateless autoconfiguration is thatthehostaddress. valid address - an address whose deprecation lifetime has not yet expired. deprecated address - an address whose deprecation lifetime has expired, but whose invalidation lifetime has not. invalid address - an address whose invalidation lifetime has expired. interface token - a link-dependent identifier for an interface that isat least(at least) unique per link.However, in practice, host tokens are not always unique because of errors in assignment. Thus, it cannot be guaranteedAn example is an IEEE 802 address. 2.1. Requirements Throughout this document, the words thatIPv6 addresses formed from a host token are indeed unique among all hosts on a link. Since duplicate IPv6 addressesarevery difficultused totrack down and debug, we specify a procedure for detecting duplicate addressesdefine the sig- nificance of the particular requirements are capitalized. These words are: MUST This word or the adjective "REQUIRED" means thathosts should use on initialisingthe item is aninterface. Note thatabsolute requirement of thisprocedurespecification. MUST NOT This phrase means the item isnot com- pletely reliable, and so duplicate addresses may still exist. The procedure makes usean absolute prohibition ofNeighbor Solicitations and Advertisements[2]this specification. SHOULD Expires January 7, 1995 [Page 6] INTERNET-DRAFT Stateless Address Configuration July 1995 This word or the adjective "RECOMMENDED" means that there may exist valid reasons ina special-purpose way. Briefly, a host uses a Neighbor Solicita- tionparticular circumstances tosolicit for itself. If it discovers that another host hasignore this item, but theaddress through receivingfull impliciations should be understood and the case carefully weighed before choosing aNeighbor Advertisement,different course. SHOULD NOT This phrase means that there may exist valid reasons in particu- lar circumstances when thevalida- tion check failslisted behavior is acceptable or even useful, but the full implications should be understood and thehost ceases operation on that interface. Note thatcase carefully weighted before implementing any behavior described with this label. MAY This word or thehostadjective "OPTIONAL" means that this item isalready using the address (presumably leg- itimately) continues unharmed, although ittruly optional. One vendor maylog a messagechoose to include theeffect that it has receiveditem because asolicitationparticular marketplace requires it or because it enhances the product, forits own address. This document specifies router and host behavior related to stateless address configuration and duplicate address detection in more detail inexample, another vendor may omit thesections that follow.same item. ExpiresDecember 5,January 7, 1995 [Page5]7] INTERNET-DRAFT Stateless Address ConfigurationJuneJuly 1995 3.ROUTERCONCEPTUAL MODEL OF HOST BEHAVIORThe stateless address autoconfiguration mechanism relies on the pre- fix discovery mechanism specified in [2] for advertising network pre- fixes required for the formationConceptually, a host maintains three data structures: a list of addresseswith site-local or glo- bal scope. A prefixper interface and two flags. One flag, called the "address mode" flag, indicates whether the stateful protocol isadvertisedto be used for address configuration (possibly ina Prefix Information extension of a Router Advertisement.addition to the stateless proto- col). ThePrefix Information extension includesother flag, called theprefix and its length, flags indicating"other configuration mode" flag, indicates whether the stateful protocol is to be used for configura- tion of other information besides addresses. The address list always includes at least one address, the host's link-local address, which is an address that can only be used in com- munications between nodes attached to the link. In addition, the address list includes any global or site-local addresses that have been manually or automatically configured. Note that stateless address autoconfiguration applies only to the formation of unicast addresses. A node may, however, have anycast and multicast addresses associated with an interface. In particular, a host must join the all-nodes multicast address on any multicast interface, and the solicited-node multicast address corresponding to each unicast address on any multicast interface. 3.1. Address Configuration 3.1.1. Link-Local Address On initialization of an interface, a host must form a link-local address by concatenating a well-known link-local prefix[1] to an interface 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 the 48-bit IEEE 802 link-layer address of the interface. Tokens for a specific link are defined in link-specific IPv6 documents and are outside the scope of this document. Note that a host is able to autoconfigure a link-local address Expires January 7, 1995 [Page 8] INTERNET-DRAFT Stateless Address Configuration July 1995 completely autonomously. In particular, a host can form a link-local address without a router present on the link. 3.1.2. Global/Site-Local Address A host forms a new global/site-local address whenever a new prefix is advertised by a router and stateless address configuration is enabled. The address is formed by concatenating the network prefix to the interface token that is unique per link in the same way as a link-local address described above. The mechanism used to advertise network prefixes for the purposes of address configuration is the same as that used in Neighbor Discovery for the purposes of prefix discovery. A router advertises prefix information periodically and a host uses this information to config- ure and reconfigure addresses. 3.2. Address Reconfiguration One of the goals of IPv6 address autoconfiguration is not only to be able to autoconfigure a list of addresses on initialization of an interface, but to be able to change the address list dynamically. Note that the link-local address never changes (except possibly on interface re-initialization). Host addresses may need to change for a number of reasons. For example, if the address assignment scheme is provider-based, hosts may need to change addresses when hosts change provider. Hosts may also need to change addresses when they are disconnected from one link and connected to another. Reconfiguration must not only allow a host to acquire a new address, but must also allow hosts to time-out an old address. Current networking protocols have not been designed to maintain existing communications during an address change. For example, a TCP connection will no longer work if one of the hosts changes its address in the middle of a connection. Even in a UDP exchange, a host is expected to be able to identify itself using the same address for the length of the exchange. Expires January 7, 1995 [Page 9] INTERNET-DRAFT Stateless Address Configuration July 1995 To minimise disruption caused by an address change, an address is configured with two lifetimes : a deprecation lifetime and an invali- dation lifetime. The deprecation lifetime must be less than or equal to the invalidation lifetime. Before expiry of the deprecation life- time, the address is valid and may be used as the source and destina- tion in any communications. At and after expiry of the deprecation lifetime, but before the invalidation lifetime has expired, the address is considered to be deprecated. A deprecated address can still be used as the source and destination in packets legitimately, but the deprecated address should not be used as a source address in new communications if other valid addresses exist and these addresses have sufficient scope. If no valid addresses of sufficient scope exist, then the deprecated address should still be used. (Note that there will always be at least one valid address in the address list, the link-local address (see below), but this address is only useful for communications on the local link, and thus cannot be used in place of a deprecated address for non-local link communications). An address becomes invalid when the invalidation lifetime expires. Such an address must not be used as a source address in outgoing com- munications or accepted as a destination address in incoming communi- cations. An invalid address isto be used for prefix discovery orremoved from the addressconfiguration, and two lifetimes:list of the interface. Note that the deprecationlifetimelifetimes andtheinvalidationlifetime.lifetimes of the link-local address are set to infinity. Thus, the link-local address is never deprecated. TheRouter Advertisement itself includes flags indicating whether statefulintention of the two lifetimes per addressconfiguration should be used by hosts and whether other configuration information (besides an address) needsis tobe con- figured. Router Advertisement and Solicitation processingallow system administrators to specify a graceful transition period during renumbering. The purpose of the deprecation time isspecified com- pletely in [2] along withto indicate to themessage formats and configuration vari- ables. Additional configuration variables pertinenthost tostatelessstart using another (presumably longer lasting) addressconfiguration are specified below. 3.1. Router Configuration Variables In additionin new communications to minimise theconfiguration variables specified in [2], routers MUST also be configurable as follows. For eachrisk of breaking communications when theprefixesold one times out. A system administrator should set the deprecation period long enough so that most, if not all, communica- tions have switched over tobe advertised in Prefix Information extensions per interface: Autonomous Flag If set,using theprefix is being advertised fornew address by thepurposestime the old one becomes invalid. The length ofstateless address configuration. Default: TRUE Deprecation Lifetimethe deprecation period will be environment-dependent as it depends on the expected length of commun- ications. Thevaluefact that addresses have a deprecation lifetime does not need tobe placed inaffect theDeprecation Lifetime fieldimplementation of applications, i.e. an application is not expected to react when an address it is using becomes deprecated. The purpose of the deprecation lifetime is to help applications or networking software to select a sufficiently long-lasting source ExpiresDecember 5,January 7, 1995 [Page6]10] INTERNET-DRAFT Stateless Address ConfigurationJuneJuly 1995Prefix Information extensions in Router Advertisements sent fromaddress at the beginning of a new communication. The IP layer is expected to provide a means for upper layers or applications to select theinterface in seconds. Invalidation Lifetime The valuemost appropriate source address given a particular desti- nation. An application may choose tobe placed inselect theInvalidation Lifetime field of Prefix Information extensions in Router Advertisements sent fromsource address itself before starting a new communication or may leave theinterfaceaddress unspecified, inseconds. Must be no less than Deprecation Lifetime. For each advertising interface: Administered Flag If set,which case thehost must autoconfigure addresses using stateful address autoconfiguration. Default: FALSE Other Flag If set,upper networking layers will use thehost must autoconfigure other configuration infor- mation (besidesmechanism provided by theaddress) using stateful autoconfiguration. Default: FALSE NOTE: All routers advertisingIP layer to choose agiven prefixsuitable address ona link MUST set all of the configuration variables tothesame value.application's behalf. ExpiresDecember 5,January 7, 1995 [Page7]11] INTERNET-DRAFT Stateless Address ConfigurationJuneJuly 1995 4.HOST BEHAVIOR Conceptually, a host maintains a list of addresses per interface. EntriesROUTER SPECIFICATION The stateless address autoconfiguration mechanism relies on the pre- fix discovery mechanism specified in [2] for advertising network pre- fixes required for thelist are created as a resultformation offormingaddressesfrom prefixeswith site-local or glo- bal scope. A prefix is advertised in a Prefix Informationextensionsoption of a RouterAdver- tisements. Each entry inAdvertisement. Prefix Information includes 1. thelist has two associated timers,prefix itself 2. the prefix length 3. adeprecation timer and an invalidation timer, which have values set accordingflag indicating whether the prefix is tolifetimes learned frombe used for prefix discovery[2]. 4. a flag indicating whether therouter advertisement. In addition,prefix is to be used for stateless address autoconfiguration 5. the deprecation lifetime of the prefix in seconds for the pur- pose of addresslist always includesdeprecation 6 thelink-local address, whichinvalidation lifetime of thehost forms autonomously whenever an interfaceprefix for the purpose of address invalidation. This field isinitial- ised. The deprecationalso used by prefix discovery[2]. Router Advertisement processing is specified completely in [2] along with the message formats andinvalidation lifetimes of a link-local address are set to infinity.configuration variables. Expires January 7, 1995 [Page 12] INTERNET-DRAFT Stateless Address Configuration July 1995 5. HOST SPECIFICATION This section specifies host address autoconfiguration behavior oninterface initialisation and onreceiving a Router Advertisement.This section also specifies a host protocol for attempting to verify that an address is not a duplicate. 4.1.5.1. Host Configuration Variables A hostMUSTSHOULD allow the following variable to be configured perinter- face: Perform_Auto_Configmul- ticast interface: Perform_Addr_Config If set, the host MUSTperform address autoconfiguration process- ing.use either stateless or stateful mechanisms to configure global or site-local addresses and to acquire other configuration information as specified in this document. Default: TRUE4.2. Router Advertisement ProcessingAn"autoconfigurable"interfaceis one on which Router Advertisements are received andthat has thePerform_Auto_ConfigPerform_Addr_Config flag set isset.called an "autoconfigurable interface". 5.2. Message Validation A host MUSTperformsilently discard any Router Advertisement that does not specify the validity checks as specified in [2]. An advertisement that passes these validity checks is called a valid advertisement. 5.3. Router Advertisement Processing To receive a Router Advertisement, a host joins the all-nodes multi- cast address over all multicast-capable interfaces. Expires January 7, 1995 [Page 13] INTERNET-DRAFT Stateless Address Configuration July 1995 A host performs the following address configuration processing when a valid solicited or unsolicited Router Advertisement is received overExpires December 5, 1995 [Page 8] INTERNET-DRAFT Stateless Address Configuration June 1995an autoconfigurable interface: For each valid Router Advertisement:IfThe host stores the current value of the Address Mode and then sets the Address Mode to theAdministeredvalue of the Managed flag (M bit). If the new value is set, the host MUST use statefulauto- configurationaddress confi- guration to configure and maintain a list of site-local or global addresses per interface. Note that this does not mean that the stateful protocol is neces- sarily invoked each time a Router Advertisement arrives with the M bit set. The host uses the flag only to indicate whether the stateful protocol is to be used to configure addresses. The state- ful protocol is enabled as soon as the Address Mode changes from FALSE to TRUE. The protocol is disabled as soon as the flag changes from TRUE to FALSE. The actual times at which the proto- col is invoked, for example, toacquirerequest a list ofsite-local or globaladdressesper interface. Ifor renew a list of addresses, are specified by the protocol itself. The host stores the current value of the Other Configuration flag and then sets the Other Configuration Mode flag to that in the Router Advertisement (O bit). If the new value is set, the host MUST use statefulautoconfi- gurationautoconfiguration to acquire other configuration information besides the address. The above disclaimer applies here as well. The O bit indicates whether the host must use the stateful mode to acquire other con- figuration information. The stateful protocol is enabled for this purpose as soon as the Other Configuration Mode changes from FALSE to TRUE. The protocol is disabled as soon as the mode changes from TRUE to FALSE. The mode does not indicate the timing of frequency of acquiring that information. This is defined by the stateful protocol itself. For each Prefix-Information extension in the Router Advertisement that has the Autonomous flag set: - If the prefix advertised matches the prefix of anautoconfig- uredExpires January 7, 1995 [Page 14] INTERNET-DRAFT Stateless Address Configuration July 1995 autoconfigured address already in the list, then set the deprecation timer to that of the deprecation lifetimespecifiedspeci- fied in the extension and the invalidation timer to that of theinvalida- tioninvalidation lifetime. Note that this processingdoes not applyMUST NOT be applied toa link-localthe link- local address. That is, if the well-known link-local prefix is advertised for some reason (probably a configuration error), then the prefix should be ignored and a system management error logged. - If the prefix advertised does not match the prefix of an address already in the list, then form an address using this networkprefix. Appendix A specifies howprefix and the interface token. Definitions of the interface token toform an address for hosts that have IEEE 802 tokens. The extension is ignored ifbe used on a specific link are documented elsewhere. If the prefix advertised isnot valid, e.g. it is nottoo short or too long to form a 128-bit address, given theright length for forming an address withinterface token, thegiven host token.prefix is ignored and an error is logged. Add this address to the list with the deprecation timer set to that of thedeprecation lifetimedeprecation lifetime and the invalidation timer to that of the invalidation lifetime. Note: The address list should be variable-length. Hosts should be able to store the link-local address as well as all addresses configured using both the stateless and stateful modes. If theinvalidation timer to that ofimplementation cannot store all addresses, theinvalidation lifetime.host should log a system management error. 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.) If the deprecation lifetime is infinity, the address is never deprecated. Similarly, if the invalidation lifetime is infinity, the address is never invali- dated. The value of infinity is defined in [2]. An address is valid until the deprecation timer expires. A valid addressmaycan be used as a source address in all outgoing ExpiresDecember 5,January 7, 1995 [Page9]15] INTERNET-DRAFT Stateless Address ConfigurationJuneJuly 1995 communications andMUST beis 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 deprecatedthe address SHOULD continue to be used as a source address if it is in use in existingcommunications.communications, but SHOULD NOT be used in new communica- tions if a valid address is available and it has sufficient scope. The IP layer MUST continue to accept datagrams destined to a deprecatedaddress. Upper layers MAY refuse to accept new communications requests toaddress since a deprecatedaddress, however.address is still defined to identify the interface. An address remains deprecated until its invalidation timer expires at which point the address becomesinvalid.invalid and is removed from the address list. An invalid address can no longer be used as a source address in outgoing communications and is not recognised as avalid 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 notvalid destination address inuse by existingincoming communicationsshould be discarded in favorsince the address is defined to no longer identify the interface. On initialisation ofvalid addresses and deprecated addresses that are in use. Ifan interface, 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 addressesorand other configurationinformation if it is not already doing so.information. This is needed to support networks with no IPv6 routers. The hostdeter- minesdetermines 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 thatif a host does not receive Router Advertisements because of some error, e.g. all routers are down or thereit isa network partition,possible for hostswill attempttochange mode fromget address information using both stateless(assuming this was the advertised mode) to statefulandthen back again when Router Advertisements start being heard. This means that if thestateful protocols since both may be enabled at the same time. Even if only stateless address autocon- figuration mode isavailable,enabled, itshould be configured correctly to serve only theis still possible for hoststhat it should,to get information from multiple sources sincehostsmultiple routers mayattempt to use it, even if itbe advertising prefix information. The rules for handling this isnotas follows: hosts accept theintention that they do so. A host must behave reasonably when there is a change fromunion of all information received using the statelessmode to the stateful mode,andvice 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 routerstateful protocols. If different sources config- ure the same address, then the address isconnectedupdated with the most recently advertised lifetime. It is also possible for hosts to contain address information from different sources, when changing from one mechanism to the other, i.e. when changing from stateless mode toor removedstateful mode, and vice Expires January 7, 1995 [Page 16] INTERNET-DRAFT Stateless Address Configuration July 1995 versa. In this case, the rules are no different from above. If thelink. Itnewly enabled mode ispossible and quite likely that duringconfigured to hand out different addresses than the mode just disabled, then thechange-over, ahostwill havecontains the union of addressesautoconfigured usingfrom bothmechanisms. Ifsources until the addressesacquiredconfigured using thetwo mechanisms are the same, then the new addresses should replaceold protocol timeout. If both the old andthe aging semantics associated with thenewmode apply. If the addresses acquired using the two mechanismsmodes aredifferent,con- figured to hand out the same address, then theold addresses should be aged according toaddress is updated with therules specified inmost recently advertised lifetime. NOTE: The above assumes that theold configuration modestateless and stateful modes have thenew addresses should followsame life- time semantics. Expires January 7, 1995 [Page 17] INTERNET-DRAFT Stateless Address Configuration July 1995 6. NODE SPECIFICATION This section specifies the rulesoffor forming a link-local address. It also specifies thenew mode. 4.3. Host Initialisationprotocol to be used for duplicate address detec- tion. 6.1. Forming a Link-Local Address Ahostnode MUST have a link-local address. A node forms a link-local addresswhenwhenever anautoconfigurableinterface is initialised.Appendix A specifies how a host that is attached to a link that uses IEEE 802 addresses formsThe method for forming a link-localaddress. Note that anaddress is link-dependent and is outside the scope of this document. An interface may be initialised or become autoconfigurable after any of the following events: - The interface is initialized at system startup time. - The interface is reinitialized after a temporary interfaceExpires December 5, 1995 [Page 11] INTERNET-DRAFT Stateless Address Configuration June 1995failure or after being temporarily disabled by system manage- ment. - Thesystem changes from being a routernode is re-attached to a link after being detached for some time. The link-local address is highly likely to need to be one of the first events in the interface initialisation process. Clearly, it must be formed before any duplicate detection processing is performed for this address (Section 6.2). In hosts, ahost, by hav- ing its IP forwarding capability turned off by system manage- ment. - The hostlink-local address isre-attachedalso required before a sends out a Router Solicitation, assuming the node chooses to do this[2]. This is because alink after being detached for some time. - The interfacesolicitation is only sent if an advertisement hasits Perform_Auto_Config flag changed from FALSE to TRUE. 4.4.not yet been heard (and hence no non- link local address can be formed), and the unspecified address cannot be used as a source address in a Router Solicitation. 6.2. Detecting DuplicateIPv6Addresses The procedure to detect a duplicateaddressesaddress MUST beimplementedenabled by default inhostsnodes and SHOULD be used. Expires January 7, 1995 [Page 18] INTERNET-DRAFT Stateless Address Configuration July 1995 Instatelessprinciple, the duplicate addressconfiguration,detection procedure is applied to each new address configured for an interface, whether it be manually configured or configured automatically using either the stateless or stateful mode. However, if the addresses belonging to an interface are formed using the same interface token (as is the case in state- less autoconfiguration and may be the case in other forms of confi- guration), then it is only necessary to check that one of theautoconfiguredaddresses is uniquesinceon thesame token is used to form all addresses. Itlink. In the stateless mechanism, it is recommended that the link-local address be the address checked for two reasons. First, it makes the implementation simpler, since thehostlink-local address is guaranteed to alwaysforms this address.exist in all nodes, whereas global and site-local addresses are not. Second, in hosts, there will be less delay in performing duplicate address detection. Address validation can be done as soon as a link-local address is formed (this can be done immediately on initialisation of an inter- face), whereas checking a global or site-local address involves wait- ing until a host hears a Router Advertisement containing address pre- fixes, and there is the possibility that no advertisement will be heard at all. The procedure for duplicate address detection uses NeighborSolicitationSolicita- tion and Advertisement messages specified in [2] to validate an addressand isas specified below. Note that before carrying out this pro- cedure, a node joins the all-nodes multicast address. Also, this mechanism is not completely reliable, and so it is possible that duplicate addresses will still exist. If a duplicate address isdiscovered,discovered after carrying out this procedure, thehostnode 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.6.2.1. SolicitingHostNode Behavior An address is checked for uniqueness only once, when the address is initially configured. Once the address is configured, the node sends a Neighbor Solicita- tion with a target address containing the address to be validated. Thehostsource 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 (as it will be ignored by the Expires January 7, 1995 [Page 19] INTERNET-DRAFT Stateless Address Configuration July 1995 destination node[2]). Loopback of the Neighbor Solicitation MUST NOT be disabled. NOTE: If the Neighbor Solicitation is the firstdelaysmessage to be sent from an interface on interface initialisation, the node should delay a random amount of time between 0 andDUPL_ADDRESS_DELAYMAX_INITIALIZATION_DELAY seconds before sendingout a Neighbor Solicitation Expires December 5, 1995 [Page 12] INTERNET-DRAFT Stateless Address Configuration June 1995 fortheaddress.solicitation. This serves to alleviate congestion when manyhostsnodes start up on the link at the same time, such as after a power failure, and helps to avoid race conditions when more than onehostnode is trying to solicit for the same address at the same time. (It is recommended thathostsnodes include some unique value in the seed used to initialise their pseudo-random numbergenerators.gen- erators. Note that using only thehostnode token as a unique value is not sufficient to avoid race conditions since the token cannot be relied upon to be unique. Although the randomization range isspeci- fiedspecified 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, noadvertisementNeighbor Advertisement is received from the target, the node SHOULD retransmit the solicitation at most every DUPL_ADDR_RETRANS_TIMER seconds until either anadvertisementadver- tisement 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 beingvalidated,validated in the time it takes to send and wait for MAX_DUPL_ADDR_RETRANS solicitations, it mustcease operation ondisable that interface andindicate an appropriatelog a system management error. If no such advertisement is receivedin response towithin theNeighbor Solicita- tions sent,time specified, the address is considered to be valid.4.4.2.6.2.2. Solicited Node Behavior A node is in the process of validating an address when a Neighbor Solicitation has been sent for the address and no Neighbor Advertise- ment advertising that address has been received in the time it takes to send out MAX_DUPL_ADDR_RETRANS solicitations and wait for an advertisement (DUPL_ADDR_IGNORE_TIMER seconds). A node must follow special rules when it receives a Neighbor Solici- tation for an address that it is in the process of validating. This Expires January 7, 1995 [Page 20] INTERNET-DRAFT Stateless Address Configuration July 1995 is done to help avoid the race condition where more than one node is attempting to validate the address at the same time, i.e. each node sends out a Neighbor Solicitation and waits to hear a Neighbor Adver- tisement for the address, but no node actually sends an advertisement since the address has not yet been validated. The special rules are as follows: When ahostnode is in the process of validating an address and receives a Neighbor Solicitation for that address, it MUST NOT send any advertisement in response to asolicitationsolici- tation for thatExpires December 5, 1995 [Page 13] INTERNET-DRAFT Stateless Address Configuration June 1995address. Rather,all solicitations forthe node silently discards the sol- icitation unless the source addressare ignored, except whenis the unspecified address. In the latter case, the first such solicitation received isfromnoted, but otherwise silently discarded (see NOTE below). Any subsequent such solicitations cause theunspecified address i.e.node to disable theNeighbor Solicitation message hasinterface and log atargetsys- tem management error. NOTE: The above behavior is required because nodes send out Neighbor Solicitations for their own addresswhichwith loopback enabled. Thus, a node will always receive at least one solicitation for its own address. However, there is no way for thesame asnode to determine, in gen- eral, whether the solicitation comes from itself or another node since theaddress to be validated, and asourceaddress thatof the packet is the unspecified address.(Note that any solicitation that is likely to be a loopback solicitation should be ignored too as mentioned inHence, the abovesection.) Ifrules specify that asolicitationduplicate address isreceived fromdetected only if theunspecified address,node receives more than one solicitation for thehost must cease operation on that interface and indicate an appropriate error.address. Once ahostnode 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.6.2.3. ConstantsDUPL_ADDR_DELAY 4 seconds (XX) DUPL_ADDR_IGNORE_TIMER 0.1MAX_INITIALIZATION_DELAY 3 seconds DUPL_ADDR_RETRANS_TIMER43 seconds(XX)MAX_DUPL_ADDR_RETRANS 1 transmission(XX) 5. SECURITY CONSIDERATIONS To be completed.ExpiresDecember 5,January 7, 1995 [Page14]21] INTERNET-DRAFT Stateless Address ConfigurationJuneJuly 19956. 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 to7. SECURITY CONSIDERATIONS To beconfigured.completed. ExpiresDecember 5,January 7, 1995 [Page15]22] INTERNET-DRAFT Stateless Address ConfigurationJuneJuly 19957.8. 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 andNarten, E.Nordmark,Nordmark and W. A. Simpson, "IPv6 Neighbor Discovery", Internet Draft,JuneJuly 1995,<draft-ietf-ipngwg-discovery-00.txt><draft-ietf-ipngwg- discovery-01.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 ExpiresDecember 5,January 7, 1995 [Page16]23] INTERNET-DRAFT Stateless Address ConfigurationJuneJuly 1995 ExpiresDecember 5,January 7, 1995 [Page17]24] ----