view Side-By-Side changes
Internet Engineering Task Force J. Bound INTERNET DRAFT Compaq Computer Corp. DHC Working GroupC. PerkinsM. Carney Obsoletes:draft-ietf-dhc-dhcpv6-13.txtdraft-ietf-dhc-dhcpv6-14.txt SunMicrosystems Laboratories 25 February 1999Microsystems, Inc C. Perkins Nokia Research Center 5 May 2000 Dynamic Host Configuration Protocol for IPv6 (DHCPv6)draft-ietf-dhc-dhcpv6-14.txtdraft-ietf-dhc-dhcpv6-15.txt Status of This Memo This document is a submission by the Dynamic Host Configuration Working Group of the Internet Engineering Task Force (IETF). Comments should be submitted to the dhcp-v6@bucknell.edu mailing list. Distribution of this memo is unlimited. 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 The Dynamic Host Configuration Protocol(DHCPv6)for IPv6 (DHCP) enables DHCP servers to pass configurationinformation, via extensions,parameters using extensions to IPv6 nodes. It offers the capability of automatic allocation of reusable network addresses and additional configuration flexibility. This protocol is a stateful counterpart tothe IPv6``IPv6 Stateless AddressAutoconfiguration protocol,Autoconfiguration'' [15], and can be used separately ortogetherconcurrently with the latter to obtain configurationinformation.parameters. Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page i] Internet Draft DHCPVersion 6 25 February 1999for IPv6 5 May 2000 Contents Status of This Memo i Abstract i 1. Introduction 1 2. Terminologyand Definitions2 2.1. IPv6 Terminology . . . . . . . . . . . . . . . . . . . . 2 2.2.DHCPv6DHCP Terminology . . . . . . . . . . . . . . . . . . .3 2.3. Specification Language .. 3 3. DHCP Constants 5 3.1. Multicast Addresses . . . . . . . . . . . . . . .4 2.4. Error Values. . . . 5 3.2. UDP ports . . . . . . . . . . . . . . . . . .4 3. Protocol Design Model 4 3.1. Design Goals. . . . . . 5 3.3. DHCP message types . . . . . . . . . . . . . . . .4 3.2. DHCP Messages. . . 6 3.4. Error Values . . . . . . . . . . . . . . . . . . .5 3.3. Request/Response Processing Model. . . 8 3.4.1. Generic Error Values . . . . . . . . .7 4. DHCP Message Formats and Field Definitions 8 4.1. DHCP Solicit Message Format. . . . . 8 3.4.2. Server-specific Error Values . . . . . . . . . . 84.2. DHCP Advertise Message Format3.5. Configuration Variables . . . . . . . . . . . . . .9 4.3. DHCP Request Message Format. . . 8 4. Requirements 9 5. Background 9 6. Design Goals 11 7. Non-Goals 11 8. Overview 12 8.1. How does a node know to use DHCP? . . . . . . . . . . . .10 4.4.12 8.2. How does a client find out about DHCPReply Message Format .agents? . . . . . . 12 8.3. What if the client and server(s) are on different links? 12 8.4. How does a client request configuration parameters from servers? . . . . . . . . .12 4.5. DHCP Release Message Format. . . . . . . . . . . . . . 13 8.5. What are releasable resources, and when are they used? . 134.6. DHCP Reconfigure Message Format8.6. Can a client release its releasable resources before the lease expires? . . . . . . . . . . . . . .15 5. DHCP Client Considerations 16 5.1. Verifying Resource Allocations After Restarts. . . . . .16 5.2. Sending DHCP Solicit Messages. . . 14 8.7. What if the client determines its releasable resource is already being used by another client? . . . . . . . . 14 8.8. How are clients notified of server configuration changes? 14 9. Message Formats 15 9.1. DHCP Solicit Message Format . . .16 5.3. Receiving DHCP Advertise Messages. . . . . . . . . . . .17 5.4. Sending15 9.2. DHCPRequest MessagesAdvertise Message Format . . . . . . . . . . . . . .18 5.5. Receiving16 9.3. DHCPReply MessagesRequest Message Format . . . . . . . . . . . . . .20 5.6. Sending. 18 Bound, Carney, Perkins Expires 1 November 2000 [Page ii] Internet Draft DHCPRelease Messagesfor IPv6 5 May 2000 9.4. DHCP Reply Message Format . . . . . . . . . . . . . .20 5.7. Receiving. . 19 9.5. DHCPReconfigure MessagesRelease Message Format . . . . . . . . . . .21 5.8. Interaction with Stateless Address Autoconfiguration. .22 6. DHCP Server Considerations 23 6.1. Receiving. . 20 9.6. DHCPSolicit MessagesReconfigure Message Format . . . . . . . . . . . . .23 6.2. Sending22 9.7. DHCPAdvertise MessagesReconfigure-reply Message Format . . . . . . . . . . 23 9.8. DHCP Reconfigure-init Message Format . . . . . . . . . . 246.3.10. DHCPRequestServer Solicitation andReplySubnet Prefix Discovery 25 10.1. Solicit MessageProcessingValidation . . . . . . . . .24 6.3.1. Processing for Extensions to DHCP Request and Reply Messages. . . . . . 25 10.2. Advertise Message Validation . . . . . . . . . . . . . . 256.3.2.10.3. ClientRequests to Deallocate Unknown ResourcesBehavior . . . . . . . .26 6.4. Receiving DHCP Release Messages. . . . . . . . . . . . . 266.5. Sending DHCP Reconfigure Messages10.3.1. Creation and sending of the Solicit message . . . 26 10.3.2. Time out and retransmission of Solicit Messages . 27 10.3.3. Receipt of Advertise messages . . . . . . . . . . 27Bound, Perkins Expires 25 August 1999 [Page ii] Internet Draft DHCP Version 6 25 February 1999 6.6. Client-Resource timeouts10.4. Relay Behavior . . . . . . . . . . . . . . . . . . . . . 287. DHCP Relay Considerations10.4.1. Relaying of Solicit messages . . . . . . . . . . 287.1. DHCP10.4.2. Relaying of Advertise messages . . . . . . . . . 28 10.5. Server Behavior . . . . . . . . . . . . . . . . . . . . . 28 10.5.1. Receipt of Solicit messages . . . . . . . . . . . 28 10.5.2. Creation andDHCPsending of AdvertiseMessage Processingmessages . . .28 7.2.29 11. DHCP Client-Initiated Configuration Exchange 29 11.1. Request MessageProcessingValidation . . . . . . . . . . . . . . . 297.3. DHCP11.2. Reply MessageProcessingValidation . . . . . . . . . . . . . . . . 308. Retransmission11.3. Release Message Validation . . . . . . . . . . . . . . . 31 11.4. Client Behavior . . . . . . . . . . . . . . . . . . . . . 31 11.4.1. Creation andConfiguration Variables 30 9. Security Considerationssending of Request messages . . . . 32 11.4.2. Time out and retransmission of Request Messages . 3310. Year 2000 considerations11.4.3. Receipt of Reply message in response to a Request 3311. IANA Considerations11.4.4. Creation and sending of Release messages . . . . 33 11.4.5. Time out and retransmission of Release Messages . 34 11.4.6. Receipt of Reply message in response to a Release 35 11.5. Relay Behavior . . . . . . . . . . . . . . . . . . . . . 35 11.5.1. Relaying of Request or Release messages . . . . . 35 11.6. Server Behavior . . . . . . . . . . . . . . . . . . . . . 35 11.6.1. Receipt of Request messages . . . . . . . . . . . 35 11.6.2. Receipt of Release messages . . . . . . . . . . . 36 11.6.3. Creation and sending of Reply messages . . . . . 36 12.Acknowledgements 34 A. ChangesDHCP Server-Initiated Configuration Exchange 37 12.1. Reconfigure Message Validation . . . . . . . . . . . . . 37 12.2. Reconfigure-reply Message Validation . . . . . . . . . . 38 12.3. Reconfigure-init Message Validation . . . . . . . . . . . 38 12.4. Server Behavior . . . . . . . . . . . . . . . . . . . . . 38 12.4.1. Creation and sending of Reconfigure messages . . 39 12.4.2. Time out and retransmission of Reconfigure messages . . . . . . . . . . . . . . . . . 40 12.4.3. Receipt of Reconfigure-reply messages . . . . . . 40 12.4.4. Creation and sending of Reconfigure-init messages 40 Bound, Carney, Perkins Expires 1 November 2000 [Page iii] Internet Draft DHCP for IPv6 5 May 2000 12.4.5. Time out and retransmission of Reconfigure-init messages . . . . . . . . . . . . . . . . . 41 12.4.6. Receipt of Request messages . . . . . . . . . . . 41 12.5. Client Behavior . . . . . . . . . . . . . . . . . . . . . 41 12.5.1. Receipt of Reconfigure messages . . . . . . . . . 42 12.5.2. Creation and sending of Reconfigure-reply messages 42 12.5.3. Receipt of Reconfigure-init messages . . . . . . 43 12.5.4. Creation and sending of Request messages . . . . 43 12.5.5. Time out and retransmission of Request messages . 43 12.5.6. Receipt of Reply messages . . . . . . . . . . . . 43 13. Using DHCP for network renumbering 43 13.1. Passive Renumbering . . . . . . . . . . . . . . . . . . . 44 13.2. Active Renumbering . . . . . . . . . . . . . . . . . . . 44 14. DHCP Client Implementator Notes 44 14.1. Primary Interface . . . . . . . . . . . . . . . . . . . . 45 14.2. Advertise Message and Configuration Parameter Caching . . 45 14.3. Time out and retransmission variables . . . . . . . . . . 45 14.4. Server Preference . . . . . . . . . . . . . . . . . . . . 45 15. DHCP Server Implementator Notes 46 15.1. Client Bindings . . . . . . . . . . . . . . . . . . . . . 46 15.2. Reconfigure Considerations . . . . . . . . . . . . . . . 46 15.3. Server Preference . . . . . . . . . . . . . . . . . . . . 46 15.4. Request Message Transaction-ID Cache . . . . . . . . . . 47 16. DHCP Relay Implementator Notes 47 17. Open Issues for Working Group Discussion 47 17.1. Trade-offs: Optional fields in DHCP messages . . . . . . 47 17.2. Use DHCPv4 authentication or the current DHCPv6 method? . 48 17.3. The Reconfigure Message and Subnet Prefix Extensions . . 48 17.4. ``R'' bit in Request message not needed? . . . . . . . . 48 18. Security Considerations 48 19. Year 2000 considerations 49 20. IANA Considerations 49 21. Acknowledgements 50 A. Comparison between DHCPv4 and DHCPv6 50 B. Full Copyright Statement 52 Chair's Address 55 Bound, Carney, Perkins Expires 1 November 2000 [Page iv] Internet Draft DHCP for IPv6 5 May 2000 Author's Address 55 Bound, Carney, Perkins Expires 1 November 2000 [Page v] Internet Draft DHCP for IPv6 5 May 2000 1. Introduction This document describes DHCP for IPv6 (DHCP), a UDP [14] client / server protocol designed to reduce the cost of management of IPv6 nodes in environments where network managers require more control over the allocation of network resources more varied than that offered by ``IPv6 Stateless Autoconfiguration'' [15]. The DHCP is a stateful counterpart to stateless autoconfiguration. Note that both stateful and stateless autoconfiguration can be used concurrently in the same environment, leveraging the strengths of both mechanisms in order to reduce the cost of ownership and management of network nodes. The DHCP reduces the cost of ownership by centralizing the management of network resources such as IP addresses, routing information, OS installation information, directory service information, and other such information on a few DHCP servers, rather than distributing such information in local configuration files among each network node. The DHCP is designed to be easily extended to carry new configuration parameters through the addition of new DHCP ``extensions'' defined to carry this information. See this document's companion specification, ``Extensions for the Dynamic Host Configuration Protocol for IPv6'' [2] for specifications of existing extensions as well as information on the process by which an interested party might specify new extensions. Those readers familiar with DHCP for IPv4 [7] will find DHCP for IPv6 provides a superset of features, and benefits from the additional features of IPv6 and freedom from BOOTP [5]-backward compatibility constraints. For more information about the differences between DHCP for IPv6 and DHCP for IPv4, see Appendix A. This document is organized as follows. Section 2 defines terminology used throughout this document. Section 3 defines constant values used by DHCP. Section 4 briefly discusses requirement levels. Section 5 points the reader to helpful background specifications covering related IPv6 protocols. Section 6 discusses the design goals that influenced DHCP. Section 7 identifies some of the non-goals of this specification. Section 8 gives a high level overview of DHCP, its message types, and identifies DHCP functional entities (client, relay, server). Section 9 describes in detail the format of each DHCP message type. Section 10 discusses DHCP server solicitation and subnet prefix discovery. Section 11 discusses DHCP client-initiated configuration information exchange. Section 12 discusses DHCP server-initiated configuration information exchange. Section 13 describes how DHCP can be used to renumber networks. Section 14 presents helpful notes for DHCP client implementators. Section 15 presents helpful notes for DHCP server implementors. Bound, Carney, Perkins Expires 1 November 2000 [Page 1] Internet Draft DHCP for IPv6 5 May 2000 Section 16 presents helpful notes for DHCP relay implementors. Section 18 discusses security considerations for DHCP. 2. Terminology 2.1. IPv6 Terminology IPv6 terminology relevant to this specification from the IPv6 Protocol [6], IPv6 Addressing Architecture [8], and IPv6 Stateless Address Autoconfiguration [15] is included below. address An IP layer identifier for an interface or a set of interfaces. unicast address An identifier forthis revision 34 B. Relateda single interface. A packet sent to a unicast address is delivered to the interface identified by that address. multicast address An identifier for a set of interfaces (typically belonging to different nodes). A packet sent to a multicast address is delivered to all interfaces identified by that address. host Any node that is not a router. IP Internet ProtocolSpecifications 35 C. Comparison between DHCPv4Version 6 (IPv6). The terms IPv4 andDHCPv6 37 D. Full Copyright Statement 40 Chair's Address 43 Author's Address 43IPv6 are used only in contexts where it is necessary to avoid ambiguity. interface A node's attachment to a link. link A communication facility or medium over which nodes can communicate at the link layer, i.e., the layer immediately below IP. Examples are Ethernet (simple or bridged); Token Ring; PPP links, X.25, Frame Relay, or ATM networks; and Internet (or higher) layer "tunnels", such as tunnels over IPv4 or IPv6 itself. link-layer identifier a link-layer identifier for an interface. Examples include IEEE 802 addresses for Ethernet or Token Ring network interfaces, and E.164 addresses for ISDN links. link-local address An IP address having link-only scope, indicated by Bound, Carney, Perkins Expires25 August 19991 November 2000 [Pageiii]2] Internet Draft DHCPVersion 6 25 February 1999 1. Introduction The Dynamic Host Configuration Protocol (DHCPv6, or in this document usually DHCP) provides configuration parametersfor IPv6 5 May 2000 having the subnet prefix (FE80::0000/64), that can be used toInternet nodes. DHCP consists ofreach neighboring nodes attached to the same link. Every interface has aprotocol for delivering node-specific configuration parameters fromlink-local address. message A unit of data carried in a packet, exchanged between DHCPserver to a client,agents andextensions for allocationclients. neighbor A node attached to the same link. node A device that implements IP. packet An IP header plus payload. prefix A bit string that consists ofnetwork addresses and other related parameterssome number of initial bits of an address. router A node that forwards IP packets not explicitly addressed toIPv6 [7] nodes.itself. 2.2. DHCPuses a client-server model, where designatedTerminology Terminology specific to DHCPservers automatically allocate network addresses and deliver configuration parameterscan be found below. abort status A status value returned todynamically configurable clients. Throughouttheremainderapplication that has invoked a DHCP client operation, indicating anything other than success. agent address The address ofthis document,a neighboring DHCP Agent on theterm "server" refers tosame link as the DHCP client. binding A binding (or, client binding) is anode providing initialization parameters by waygroup of server data records indexed by <client's link-local address, subnet prefix> containing the releasable resource data which a DHCPprotocol, and the term "client" refersserver has assigned to anode requesting initialization parametersclient. Note that the transaction-ID froma DHCP server. DHCPv6 usesthe Requestand Reply messages to support a client/server processing model whereby both client and server are assuredmessage thatrequested configuration parameters have been received and accepted byproduced theclient. DHCP supports optional configuration parameters and processing for nodes through extensions describedassignment of the releasable resource is also stored inits companion document ``Extensions forthe server data record including the releasable resource identifier. DHCP Dynamic Host Configuration Protocol forIPv6'' [15].IPv6. TheIPv6 Addressing Architecture [9]terms DHCPv4 andIPv6 Stateless Address Autoconfiguration [20] specifications provide new features not available in IP version 4 (IPv4) [18], whichDHCPv6 are usedto simplify and generalize the operation of DHCP clients. This documentonly in contexts where it isintended to complement those specifications for clients attachednecessary tothe kinds ofavoid ambiguity. Bound, Carney, Perkins Expires 1 November 2000 [Page 3] InternetmediaDraft DHCP forwhich those specifications apply. In particular,IPv6 5 May 2000 configuration parameter An element of thespecification in this document does not necessarily applyconfiguration information set on the server and delivered tonodes which do not enjoythe client using DHCP. Such parameters may be used to carry information to be used by abidirectional linknode tothe Internet. Section 2 provides definitionsconfigure its network subsystem and enable communication on a link or internetwork, forterminology used throughout this document. Section 3 provides an overviewexample. DHCP client (or client) A node that initiates requests on a link to obtain configuration parameters from one or more DHCP servers. DHCP domain A chunk ofthe protocol design modelnetwork topology managed by DHCP and operated by a single administrative entity. DHCP server (or server) A server is a node thatguided the design choices inresponds to requests from clients, and may or may not be on thespecification; section 3.2 briefly describessame link as theprotocolclient(s). DHCP relay (or relay) A node that acts as an intermediary to deliver DHCP messages between clients andtheir semantics. Section 4 provides the message formats and field definitions used for each message. Sections 5, 6, and 7 specify how clients,servers, andrelays respectively interact. The timeout and retransmission guidelinesis on the same link aswella client. DHCP agent (or agent) Either a DHCP server on the same link as a client, or a DHCP relay. Releasable resource Any configurationvariablesresource allocated by a server forDHCP protocol operationsa finite period of time. As of this writing, the only example of such a resource is the IP address. Releasable resources arediscussed in Section 8. Appendix B summarizes related workcarried inIPv6 that will provide helpful context; it is not partextensions allocated out ofthis specification, but included for informational purposes. Appendix C discussesthedifferences between DHCPv41--8192 range. solicit-ID An unsigned integer generated by the client andDHCPv6.inserted into its DHCP Solicit messages, and echoed back to the client by the server in its resultant DHCP Advertise message(s). The client uses the solicit-ID to match received Advertise messages to Solicit messages it has generated. transaction-ID An unsigned integer to match responses with replies initiated either by a client or server. Servers Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page1]4] Internet Draft DHCPVersion 6 25 February 1999 2. Terminologyfor IPv6 5 May 2000 allocate their transaction-IDs from the range of 0--1023, andDefinitions Relevant terminologyclients allocate their transaction-IDs from theIPv6 Protocol [7], IPv6 Addressing Architecture [9],range of 1024--65535. Limiting clients andIPv6 Stateless Address Autoconfiguration [20]servers to different ranges prevents transaction-ID collisions (e.g. client and server happen to use the same transaction-ID for unrelated transactions (e.g. client Request, server Reconfigure-init). 3. DHCP Constants This section describes various program and networking constants used by DHCP. 3.1. Multicast Addresses The DHCP makes use of the following multicast addresses: All DHCP Agents address: FF02::1:2 This link-local multicast address isgiven, followedused byDHCPv6 terminology. 2.1. IPv6 Terminologyclients to communicate with the on-link agent(s) when they do not know those agents' link-local address(es). All agents (servers and relays) are members of this multicast group. All DHCP Servers address: FF05::1:3 This site-local multicast addressAn IP layer identifier for an interfaceis used by clients ora set of interfaces.relays to communicate with server(s), either because they want to send messages to all servers or because they do not know the server(s) unicastaddress An identifieraddress(es). Note that in order for asingle interface. A packet sentclient toa unicastuse this address, it must have an addressis deliveredof sufficient scope tothe interface identifiedbe reachable bythat address.the server(s). All servers within the site are members of this multicastaddress An identifier forgroup. 3.2. UDP ports The DHCP uses the following destination UDP [14] port numbers. While source ports MAY be arbitrary, client implementations SHOULD permit their specification through aset of interfaces (typically belonginglocal configuration parameter todifferent nodes). A packet sentfacilitate the use of DHCP through firewalls. 546 Client port. Used by agents toa multicast address is deliveredsend messages toall interfaces identifiedclients. Also used bythat address. host Any node that is not a router. IPservers to send messages to relays. Bound, Carney, Perkins Expires 1 November 2000 [Page 5] InternetProtocol Version 6 (IPv6). The terms IPv4 andDraft DHCP for IPv6are5 May 2000 547 Agent port. Used by clients to send messages to agents. Also usedonly in contexts where it is necessaryby relays toavoid ambiguity. interface A node's attachmentsend messages toa link. link A communication facility or medium over which nodes can communicate at the link layer, i.e.,servers. 3.3. DHCP message types The DHCP defines thelayer immediately below IP. Examples are Ethernet (simple or bridged); Token Ring; PPP links, X.25, Frame Relay, or ATM networks; and internet (or higher) layer "tunnels", such as tunnels over IPv4 or IPv6 itself. link-layer identifier a link-layer identifier for an interface. Examples include IEEE 802 addresses for Ethernet or Token Ring network interfaces,following message types. More detail on these message types can be found in Section 9. Message types 0 andE.164 addresses for ISDN links. link-local address An IP address having link-only scope, indicated9--255 are reserved and MUST be silently ignored. 01 DHCP Solicit The DHCP Solicit (or Solicit) message is used byhavingclients to locate servers and (optionally) learn about therouting prefix (FE80::0000/64),subnet prefixes on the client's link for networks thatcan beare managed by DHCP. This message is multicast using the All-DHCP-Agents address. Relay(s) forward Solicits as necessary to off-link servers. Section 9.1 contains more details about the Solicit message. 02 DHCP Advertise The DHCP Advertise (or Advertise) message is used by servers responding toreach neighboring nodes attachedSolicits. This message is unicast to thesame link. Every interface has aclient's link-localaddress. Bound, Perkins Expires 25 August 1999 [Page 2] Internet Draftaddress (if the server and client are on the same link) or unicast to the relay through which the Solicit was sent for final delivery to the client. Section 9.2 contains more details about the Advertise message. 03 DHCPVersion 6 25 February 1999 message A unit of data carried in a packet, exchanged betweenRequest The DHCPagents and clients. neighbor A node attachedRequest (or Request) message is used by clients to request configuration parameters from servers. This message is unicast to thesame link. node A device that implements IP. packet An IP header plus payload. prefix A bit string that consists of some number of initial bits ofserver if the client has anaddress. router A node that forwards IP packets not explicitly addressed to itself. 2.2. DHCPv6 Terminology agentaddress with sufficient scope to be reachable by the server, otherwise it is unicast to the on-link relay through which the Advertise message was relayed. Section 9.3 contains more details about the Request message. 04 DHCP Reply TheaddressDHCP Reply (or Reply) message is used by servers responding to Request and Release messages. In the case of responding to aneighboring DHCP Agent onRequest message, thesame link asReply contains configuration parameters destined for theDHCPclient.binding A binding (or,This message is unicast to the clientbinding) containingif thedata which a DHCP server maintains for eachclient has an address ofits clients (see Section 6). resource-server association An association between a resource and asufficient scope that is Bound, Carney, Perkins Expires 1 November 2000 [Page 6] Internet Draft DHCPserver, maintainedfor IPv6 5 May 2000 reachable by theclientserver. Otherwise, it is unicast to the relay through whichreceived that resource from thatthe Request or Release message was sent for final delivery to the client. Section 9.4 contains more details about the Reply message. 05 DHCPserver. configuration parameter Any parameter that can beRelease The DHCP Release (or Release) message is used bya nodeclients toconfigure its network subsystem and enable communication on a linkreturn one orinternetwork. DHCPmore instances of releasable resources (e.g. IP addresses) to servers. This message is unicast to the server if the client(or client) A node that initiates requests on a linkwill have an address of sufficient scope after the Release operation toobtain configuration parameters. DHCPreceive a Reply message. Otherwise, the Release message is sent through the relay. The server will acknowledge the receipt of the Release message by sending the client a Reply message. Section 9.5 contains more details about the Release message. 06 DHCP Reconfigure The DHCP Reconfigure (orserver) A serverReconfigure) message isa node that respondssent by servers torequests from clients, and mayclient(s). It contains new or updated configuration parameters for use by the client(s). This message maynotbeonunicast or multicast to thesame link as asclient(s). Section 9.6 contains more details about theclient.Reconfigure message. 07 DHCPrelay (or relay) A node that acts as an intermediary to deliverReconfigure-reply The DHCPmessages between clients and servers, andReconfigure-reply (or Reconfigure-reply) message isonunicast by client(s) to thesame link as a client. Bound, Perkins Expires 25 August 1999 [Page 3] Internet Draft DHCP Version 6 25 February 1999 DHCP agent (or agent) Either a DHCPserveronto acknowledge thesame link as a client, orreceipt of a Reconfigure message. Section 9.7 contains more details about the Reconfigure-reply message. 08 DHCPrelay. transaction-ID An unsigned integer to match responses with replies initiated eitherReconfigure-init The DHCP Reconfigure-init (or Reconfigure-init) message is set bya client or server. Clients MUST use integers from 1server(s) to1000, and servers use integers greater than 1000 for transaction-ID's. 2.3. Specification Language In this document,inform client(s) that thewords MUST, MUST NOT, SHOULD, SHOULD NOT,server(s) has new or updated configuration parameters, andMAYthat the client(s) areusedtosignify the requirements ofinitiate a Request/Reply transaction with thespecification,server(s) inaccordance with RFC 2119 [2]. 2.4.order to receive the updated information. Section 9.8 contains more details about the Reconfigure-init message. Bound, Carney, Perkins Expires 1 November 2000 [Page 7] Internet Draft DHCP for IPv6 5 May 2000 3.4. Error Values Thisspecification document usessection describes error values exchanged between DHCP implementations. 3.4.1. Generic Error Values The following symbolic names are used between client and server implementations to convey error conditions. The following table contains the actual numeric values for each name. Note that the numeric values do not start at 1, nor are they consecutive. The errorsknown to DHCP clients and servers, as used for instanceare organized inthe status field of the DHCP Reply message (see section 4.4).logical groups. _______________________________________________________________ |_Error_Name___|Error_ID_|Description__________________________| |_Success______|00_______|Success______________________________| |_UnspecFail___|16_______|Failure,_reason_unspecified__________| |_AuthFailed___|17_______|Authentication_failed_or_nonexistent_| |_PoorlyFormed_|18_______|Poorly_formed_message________________| |_Unavail______|19_______|Resources_unavailable________________| 3.4.2. Server-specific Error Values The following symbolic nameshaveare used by server implementations to convey error conditions to clients. The following table contains the actual numeric valueslisted below: Error Name ErrorID ================================ PoorlyFormed 18 Unavail 19 NoBinding 20 InvalidSource 21 NoServer 23 ICMPError 64 3. Protocol Design Modelfor each name. _______________________________________________________________ |_Error_Name____|Error_ID_|Description_________________________| |_NoBinding_____|20_______|Client_record_(binding)_unavailable_| |_InvalidSource_|21_______|Invalid_Client_IP_address___________| |_NoServer______|23_______|Relay_cannot_find_Server_Address____| |_ICMPError_____|64_______|Server_unreachable_(ICMP_error)_____| 3.5. Configuration Variables This sectionis providedpresents a table of client and server configuration variables and the default or initial values forimplementors to understandthese variables. The client-specific variables MAY be configured on theDHCPv6 protocol design model from an architectural perspective. Goalsserver andconceptual models are presentedMAY be delivered to the client through the ``DHCP Retransmission Parameter Extension''carried inthis section. 3.1. Design Goals The following list gives general design goals for this DHCP specification.a Reply message. This extension is documented in the ``extensions document'' [2]. Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page4]8] Internet Draft DHCPVersion 6 25 February 1999 - DHCP should be a mechanism rather than a policy. DHCP must allow local system administrators control over configuration parameters where desired; e.g., local system administrators should be able to enforce local policies concerning allocation and access to local resources where desired. - DHCP must not require manual configuration of DHCP clients, except as dictated by security requirements. Each node should be able to obtain appropriate local configuration parameters without user intervention. - DHCP must not require a server on each link. To allowforscaleIPv6 5 May 2000 ______________________________________________________________ |_Parameter__________|Default_|Description____________________| |_MIN_SOL_DELAY______|1_______|MIN_(secs)_to_delay_1st_mesg___| |_MAX_SOL_DELAY______|5_______|MAX_(secs)_to_delay_1st_mesg___| |_ADV_MSG_TIMEOUT____|500_____|SOL_Retrans_timer_(msecs)______| |_ADV_MSG_MAX________|30______|MAX_timer_value_(secs)_________| |_SOL_MAX_ATTEMPTS___|-1______|MAX_attempts_(-1_=_infinite)___| |_REP_MSG_TIMEOUT____|250_____|REQ_Retrans_timer_(msecs)______| |_REQ_MSG_ATTEMPTS___|10______|MAX_Request_attempts___________| |_REL_MSG_ATTEMPTS___|5_______|MAX_Release_attempts___________| |_RECREP_MSG_TIMEOUT_|2000____|Retrans_timer_(msecs)__________| |_REC_MSG_ATTEMPTS___|10______|Reconfigure_attempts___________| |_REC_REP_MIN________|5_______|Minimum_pause_interval_(secs)__| |_REC_REP_MAX________|7200____|Maximum_pause_interval_(secs)__| |_REC_THRESHOLD______|100_____|%_of_required_clients__________| |_SRVR_PREF_WAIT_____|2_______|Advertise_Collect_timer_(secs)_| 4. Requirements The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, andeconomy, DHCP must work across DHCP relays. - In some installations, clients on certain subnets can be served by more than one DHCP server, improving reliability and/or performance. Therefore, a DHCP client must be prepared to receive multiple (possibly different) responsesOPTIONAL, when they appear in this document, are toa DHCP Solicit message. - DHCPbe interpreted as described in [3]. This document also makes use of internal conceptual variables to describe protocol behavior and external variables that an implementation mustcoexist with statically configured, non-participating nodesallow system administrators to change. The specific variable names, how their values change, andwith existing networkhow their settings influence protocolimplementations. - DHCPv6 must be compatiblebehavior are provided to demostrate protocol behavior. An implementation is not required to have them in the exact form described here, so long as its external behavior is consistent with that described in this document. 5. Background Related work in IPv6 that would best serve an implementor to study is the IPv6 Specification [6], the IPv6 Addressing Architecture [8], IPv6 Stateless Address Autoconfiguration[20]. - A DHCPv6 Client implementation may be started in[15], IPv6 Neighbor Discovery Processing [12], and Dynamic Updates to DNS [17]. These specifications enable DHCP to build upon theabsenceIPv6 work to provide both robust stateful autoconfiguration and autoregistration ofanyDNS Host Names. The IPv6routers onSpecification provides theclient's link. - DHCPbase architecturemust support automated renumberingand design ofIP addresses [3]. -IPv6. A key point for DHCPservers should be able to support Dynamic Updatesimplementors toDNS [22]. -understand is that IPv6 requires that every link in the Internet have an MTU of 1280 octets or greater (in IPv4 the requirement is 68 octets). This means that a UDP packet of 536 octets will always pass through an internetwork Bound, Carney, Perkins Expires 1 November 2000 [Page 9] Internet Draft DHCPservers must be able to support multiplefor IPv6addresses5 May 2000 (less 40 octets foreach client. Ontheother hand,IPv6 header), as long as there are no IP options prior to the UDP header in the packet. But, IPv6 does not support fragmentation at routers, so that fragmentation takes place end-to-end between hosts. If a DHCPserverimplementation needs toserver protocol is NOT part of this specification. Furthermore, it is NOTsend adesign goalpacket greater than 1500 octets it can either fragment the UDP packet into fragments ofDHCP to specify how a server configuration parameter database is maintained1500 octets ordetermined. Methods for configuring DHCP servers are outsideless, or use Path MTU Discovery [10] to determine thescopesize ofthis document. 3.2.the packet that will traverse a network path. DHCPMessages Eachclients use Path MTU discovery when they have an address of sufficient scope to reach the DHCPmessage containsserver. If atype, which definesDHCP client does not have such an address, that client MUST fragment itsfunction withinpackets if theprotocol. Formatsresultant message size is greater than the minimum 1280 octets. Path MTU Discovery for IPv6 is supported for both UDP and TCP and can cause end-to-end fragmentation when themessages are foundPMTU changes for a destination. The IPv6 Addressing Architecture specification [8] defines the address scope that can be used insection 4, with Bound, Perkins Expires 25 August 1999 [Page 5] Internet Draft DHCP Version 6 25 February 1999aninitial descriptionIPv6 implementation, anddiscussion. Processing detailsthe various configuration architecture guidelines forthese DHCP messagesnetwork designers of the IPv6 address space. Two advantages of IPv6 arespecified in Sections 5, 6,that support for multicast is required, and7. The message types are as follows: 01 DHCP Solicit The DHCPnodes can create link-local addresses during initialization. This means that a client can immediately use its link-local address and a well-known multicast address to begin communications to discover neighbors on the link. For instance, a client can send a Solicit messageis an IP multicast message sent byand locate aclient to one or more agents,server orforwardedrelay. IPv6 Stateless Address Autoconfiguration [15] (Addrconf) specifies procedures by which arelaynode may autoconfigure addresses based on router advertisements [12], and the use of a valid lifetime toonesupport renumbering of addresses on the Internet. In addition the protocol interaction by which a node begins stateless ormore servers. 02 DHCP Advertisestateful autoconfiguration is specified. The DHCPAdvertiseisan IP unicast message sent byone vehicle to perform stateful autoconfiguration. Compatibility with addrconf is a design requirement of DHCPAgent(see Section 6). IPv6 Neighbor Discovery [12] is the node discovery protocol inresponseIPv6 which replaces and enhances functions of ARP [13]. To understand IPv6 and Addrconf it is strongly recommended that implementors understand IPv6 Neighbor Discovery. Dynamic Updates to DNS [17] is aclient's DHCP Solicit message. 03specification that supports the dynamic update of DNS records for both IPv4 and IPv6. DHCPRequestcan use the dynamic updates to DNS to integrate addresses and name space to not only support autoconfiguration, but also autoregistration in IPv6. TheDHCP Request is an IP unicast message sent by a clientsecurity model toa serverbe used with DHCPv6 should conform as closely as possible torequest configuration parameters on a network. 04the authentication model outlined in RFC2402 [9]. Bound, Carney, Perkins Expires 1 November 2000 [Page 10] Internet Draft DHCPReply Thefor IPv6 5 May 2000 6. Design Goals - DHCPReplyisan IP unicast message sent byaserver in response tomechanism rather than aclient's DHCP Request, or bypolicy. Network administrators set their administrative policies through therelay that relayed that client's DHCP Request. Extensions [15] toconfiguration parameters they place upon the DHCPReply describe the resources thatservers in theserver has committed and allocated to this client, and may contain other information for use by this client. 05DHCPRelease Thedomain they're managing. DHCPReleaseisan IP unicast message sent by a clientsimply used to deliver parameters according toinform the serverthat policy to each of theclient is releasing resources. 06 DHCP Reconfigure TheDHCPReconfigure is an IP unicast or multicast message sent by a server to inform one or moreclientsthatwithin theserver has newdomain. - DHCP is compatible with IPv6 stateless autoconf [15]. - DHCP does not require manual configurationinformationofimportance to the client. Each client is expected to initiate a newnetwork parameters on DHCPRequestclients, except inresponse to the Reconfiure message.cases where such configuration is needed for security reasons. A node configuring itself using DHCPmessage typesshould require no user intervention. - DHCP does notdefined here (msg-types 0 and 7-255) are reservedrequire a server on each link. To allow for scale andSHOULD be silently ignored. Bound, Perkins Expires 25 August 1999 [Page 6] Internet Drafteconomy, DHCPVersion 6 25 February 1999 3.3. Request/Response Processing Model The request/response processing for DHCPv6 is transaction basedmust work across DHCP relays. - DHCP coexists with statically configured, non-participating nodes anduseswith existing network protocol implementations. - DHCP clients can operate on aset of best-effort messages to completelink without IPv6 routers present. - DHCP will provide thetransaction. To find a server, a client sends aability to renumber network(s) when required by network administrators [4]. - A DHCPSolicitclient can make multiple, different requests for configuration parameters when necessary fromthe interface which it wishesone or more DHCP servers at any time. DHCP will provide enough information toconfigure. The client then awaitsenable a DHCPAdvertise message containing an IP addressserver to keep track of a DHCPserver. Transactions are started by a client with aclient's configuration state. - DHCPRequest, which may be issued afterwill contain theclient knowsappropriate time out and retransmission mechanisms to efficiently operate in environments with high latency and low bandwidth characteristics. 7. Non-Goals This specification explicitly does not cover theserver's address. The server then unicastsfollowing: - Specification of a DHCPReply, possibly via a relay. At this point in the flow all data has been transmitted and is presumedserver tohave been received. To provideserver protocol. - How amethod of recovery if either the client orDHCP serverdoes not receivestores itsmessages, the client retransmits eachDHCPRequest message until it elicits the correspondingdata. - How to manage a DHCPReply,domain oruntil it can be reasonably certain that the desiredDHCPserverserver. Bound, Carney, Perkins Expires 1 November 2000 [Page 11] Internet Draft DHCP for IPv6 5 May 2000 - How a DHCP relay isunavailable,configured or what sort of information itdetermines that it does not wantmay log. 8. Overview This section provides aresponse (i.e., it MAY abortgeneral overview of thetransaction). The timeout and retransmission guidelines and configuration variables are discussed in Section 8. DHCP uses UDP [17] to communicateinteraction betweenclients and servers. UDP is not reliable, buttheDHCP retransmission scheme just described provides reliability between clients and servers.functional entities of DHCP. Thefollowing well-known multicast addresses are used byoverview is organized as a series of questions and answers. Details of DHCPagentssuch as message formats andclients: FF02:0:0:0:0:0:1:2 Allretransmissions are left to sections 9, 10, 11, 12, 14, 15, and 16. 8.1. How does a node know to use DHCP? An unconfigured node determines that it is to use DHCPAgents (servers and relays) MUST join the link-local All-DHCP-Agents multicast group atfor configuration of an interface by detecting theaddress FF02:0:0:0:0:0:1:2. FF05:0:0:0:0:0:1:3 All DHCP servers MUST joinpresence (or absence) of routers on thesite-local All-DHCP-Servers multicast group atlink. If router(s) are present, theaddress FF05:0:0:0:0:0:1:3. FF05:0:0:0:0:0:1:4 Allnode examines router advertisements to determine if DHCPrelays MUST joinshould be used to configure thesite-local All-DHCP-Relays multicast group atinterface. If there are no routers present, then theaddress FF05:0:0:0:0:0:1:4. A DHCP server or agentnode MUSTtransmit all messages touse DHCPclientsto configure the interface. Detail onUDP port 546. Athis process can be found in neighbor discovery [12] and stateless autoconfiguration [15]. 8.2. How does a client find out about DHCP agents? The clientMUST transmit all messages toforms aDHCP agent over UDP using port 547. A DHCP server MUST transmit all messagesSolicit message, and multicasts it to the FF02::1:2(All DHCPrelays over UDP on port 546. The source port for DHCP messages is arbitrary. ForAgents) address. Server(s) receiving theproper operation ofSolicit respond with Advertise message(s). If requested in theDHCP protocol to operate within a network whereclient's Solicit message, the Advertise message(s) can include one or morefirewallsare used, DHCP transactions sent tosubnet prefix extensions [2], informing the client of subnet prefixes for the networks(s) managed by the server(s) on the client's link. Now that the client knows the IPaddressesaddress(es) ofDHCP servers at UDP destination ports 546agents(s) on the link, it can request configuration parameters from servers. 8.3. What if the client and547 will need to be permitted. Bound, Perkins Expires 25 August 1999 [Page 7] Internet Draft DHCP Version 6 25 February 1999 4.server(s) are on different links? Use of DHCPMessage Formats and Field Definitions All reserved fieldsin such environments requires one or more DHCP relays be set up on the client's link, because amessage MUST be transmitted as zeroesclient may only have a link-local address. Relays pick up the Solicit andignored byRequest messages from thereceiverclient and forward them to some set of servers within themessage. 4.1.DHCPSolicit Message Formatdomain. Aclient transmits a DHCP Solicit message overrelay will include one of its own addresses (of sufficient scope) of the interfaceto be configured, to obtain one or more server addresses. Unless otherwise noted,on thevalue of all fields are set bysame link as the client.0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type = 1 |C| reserved | prefix-size | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | client's link-local address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | relay-address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | saved agent-address | | (if present, 16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ C If set,The relay also includes theclient requestssubnet prefix length of thatall serversaddress in the client's messages. Servers receiving themessage deallocateforwarded traffic use this information to aid in selecting configuration parameters appropriate to theresources associated withclient's link. The servers also use theclient. If set,relay's Bound, Carney, Perkins Expires 1 November 2000 [Page 12] Internet Draft DHCP for IPv6 5 May 2000 address as theclient SHOULD provide a saved agent-addressdestination tolocate the clients bindingforward client-destined messages for final delivery bya server. prefix-size A nonzero prefix-size isthenumber of leftmost bitsrelay. Relays forward client messages to servers using some combination of theagent's IPv6 address which make up the routing prefix. The prefix-size field isFF05::1:3(All Servers) site-local multicast address, some other (perhaps a combination) of site-local multicast addresses setbyup within the DHCPrelay if the relay receives the solicitation and forwards itdomain tooneinclude the servers in that domain, ormore DHCP Servers. reserved 0 client's link-local address The IP link-local addressa list of unicast addresses for servers. The network administrator makes relay configuration decisions based upon theclient interface from whichtopological requirements (scope) of theclient issuedDHCP domain they are managing. Note that if the DHCPRequest message relay-address Set bydomain spans more than theclientsite-local scope, then the relays MUST be configured with global addresses for the client's link so as to bezero. If receivedreachable by servers outside the relays' site-local environment. 8.4. How does aDHCP relay, set byclient request configuration parameters from servers? To request configuration parameters, therelayclient forms a Request message, and sends it to theIPserver either directly (client has an address of sufficient scope) or indirectly (through theBound, Perkins Expires 25 August 1999 [Page 8] Internet Draft DHCP Version 6 25 February 1999 interface on which the relay receivedon-link relay). The client MAY include a Extension Request Extension [2] along with other extensions to request specific information from theclient's DHCP Solicit message saved agent-address If present,server. Note that theIP addressclient MAY form multiple Request messages and send each of them to different servers to request potentially different information (perhaps based upon what was advertised) in order to satisfy its needs. As a client's needs may change over time (perhaps based upon anagent's interface retained byapplication's requirements), the clientfrom a previous DHCP transaction. A client SHOULD send a DHCP Solicit messagemay form additional Request messages to request additional information as it is needed. The server(s) respond with Reply messages containing the requested configuration parameters, which can include status information regarding the information requested by theAll-DHCP-Agentsclient. The Reply MAY also include additional information, such as a reconfiguration event multicast group(see section 3.3), settingfor therelay-addressclient tozero. Any relay receiving the solicitation MUST forward itjoin tothe All-DHCP-Servers multicast group. In that case, the relay MUST copy a non-link-local addressmonitor reconfiguration events, as described in section 8.8. The receipt ofits interfacea Reply fromwhich the client's solicitation was received into the relay-address field. Servers receivinga server concludes thesolicitation then send their advertisements tobasic request/reply transaction of theprospective client. 4.2. DHCP Advertise Message Formatprotocol. 8.5. What are releasable resources, and when are they used? ADHCP agent sends a DHCP Advertise messagereleasable resource is configuration information leased toinformaprospectiveclientabout the IP address ofby a serverto which a DHCP Request message may be sent.for some finite period of time. When negotiating for a releasable resource, the client and serverare on different links, the server sends the advertisement back throughagree upon a finite period of time therelay whenceclient may use thesolicitation came.resource. Thevalueclient MAY request a renewal ofall fields intheDHCP Adverstise message are filled in bylease on theDHCP Server and not changed byresource at anyDHCP Relay. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type = 2 |S| reserved | preference | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | client's link-local address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | agent-address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | server-address | | (16 octets, if present) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | extensions (variable number and length) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ S If set,time. The length of time of theserver-addresslease (and whether it ispresent. reserved 0renewable) are server-based policy tunables. The client MUST stop using the resource when the lease on Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page9]13] Internet Draft DHCPVersion 6 25 February 1999 preference An octet (unsigned) indicating a server's willingness to provide service tofor IPv6 5 May 2000 theclient (see Section 5.3). client's link-local addressresource expires. TheIP link-local address ofserver MUST NOT reallocate an assigned resource before either its lease expires or the clientinterface from whichreleases theclient issuedresource. See theDHCP Request message agent-address The IP address of``extensions document'' [2] for more information about releasable resources. 8.6. Can aDHCP Agent interface onclient release its releasable resources before thesame link aslease expires? A client forms a Release message, including extensions carrying theclient. server-address If present,resource(s) to be released. The client sends theIP address ofRelease to theDHCPserverextensions See [15]. Supposewhich leased the resource(s) to the client initially. If thataserveron the same link ascannot be reached after aclient issuescertain number of attempts (see section 3.5), theDHCP Advertise in response to a DHCP Solicit message sent toclient can abandon theAll-DHCP-Agents multicast address. ThenRelease attempt. In this case, theagent-addressresource(s) will bean IP address of one ofreclaimed by theserver's interfaces onserver(s) when thesame link asclient's lease(s) expire. 8.7. What if the client determines its releasable resource is already being used by another client? If the client determines through a releasable resource-specific manner that the resource it was assigned by the server is already in use by another client,andthe`S' bitclient will form a Release message, including the extension carrying the in-use resource. The extension's status field MUST be set tozero, indicatingtheabsenceextension-specific value reflecting the ``in use'' status of theserver-address inresource. For example, if theDHCP Advertise message. See section 5.3 for information about how clients handlereleasable resource is an IP address, thepreference field. The server MUST copyclient uses Duplicate Address Detection (DAD) to verify that theclient's link-localIP addressintois not in use. If theadvertisement whichclient determines that the IP address issentalready inresponse touse, it forms aDHCP Solicit. Both server-address (if present) and agent-address of the DHCP AdvertiseRelease messageMUST have sufficient scopeincluding the IP address extension containing the appropriate status value and sends it tobe reachable bytheclient. Moreover,server. See theagent-address of any DHCP Advertise message sent by a relay MUST NOT be a link-local address. In situations where there``extensions document''for details on the IP address extension. [2]. 8.8. How areno routers sending Router Advertisements, then a DHCPclients notified of serverMUST be configured onconfiguration changes? There are two possibilities. Either thesame link as prospective clients. The DHCPv6 protocol design does not apply to situations whereclients discover theclient is unable to route messages to a server not onnew information when they revisit thesame link. 4.3. DHCP Request Message Format In orderserver(s) to request additional configurationparameters frominformation / renew the lease on aserver,releasable resource, or through aclient sendsserver-initiated event known as a reconfigure event. The reconfiguration feature of DHCPRequest message, and MAY append extensions [15].offers network administrators the opportunity to update configuration information on DHCP clients whenever necessary. If theclient doesinformation to be updated is notknow any server address, it MUST first obtain one by multicasting aBound, Carney, Perkins Expires 1 November 2000 [Page 14] Internet Draft DHCPSolicit message (see Section 4.1). Typically, when a client reboots, it does not have a valid IP address of sufficient scopefor IPv6 5 May 2000 client-specific, the serverto communicate with the client. In such cases,will form a Reconfigure message and add theclient MUST NOT sendnew or changed configuration information to it. The Reconfigure may be unicast or multicast (to a preassigned multicast address for this purpose) to one or more client(s) to which themessage directlynew or updated information needs to be directed. The client(s) will acknowledge theserver becausereceipt of theserver could not return any responseReconfigure message by forming a Reconfigure-reply message and unicasting it to theclient;server. If the configuration information change is different for each clientMUST send(e.g. a change in subnet prefix, perhaps, which would affect themessage toIP address releasable resource(s)), thelocal relayserver will form a Reconfigure-init message andinsert the relay-addressunicast / multicast as needed to theagent-address in the message header. Bound, Perkins Expires 25 August 1999 [Page 10] Internet Draft DHCP Version 6 25 February 1999 Otherwise,client(s). A Reconfigure-init is a trigger which will cause theclient MAY omitclient(s) to initiate a standard Request/Reply exchange with theserver-addressserver in order to acquire theDHCP Request message;new or updated resources. 9. Message Formats All reserved fields inthis case, the clienta message MUSTclear the S-bitbe transmitted as zeroes andsendignored by the receiver of the message. 9.1. DHCP Solicit Message Format A client multicasts a DHCP Solicit messagedirectlyto theserver, using the server'sFF02::1:2(All DHCP agents) addressasover theIP destination address ininterface to be configured to locate one or more servers which are configured to provide configuration parameters to nodes on theIP header. In either case,client's link. Unless otherwise noted, the value of all fieldsin the DHCP Request messageareenteredset by the client. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type =3 |C|S|R| rsvd1 |C|P| reserved |transaction-IDprefix-len | solicit-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | client's link-local address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |agent-addressrelay-address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| server-address | | (16 octets, if present) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | extensions (variable number and length) .... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+C If set, the client requeststhe server to removethat all servers receiving the message deallocate the releasable resources (e.g. IP addresses) associated with theclient binding, except those resources provided as extensions. S If set, the server-address is present Rclient's binding. Bound, Carney, Perkins Expires 1 November 2000 [Page 15] Internet Draft DHCP for IPv6 5 May 2000 P If set, the clienthas rebooted andrequests that all servers receiving the message SHOULD return a list ofits previous transaction-IDs be expunged and made available for re-use. rsvdsubnet prefix extensions identifying the networks on the client's link that the server(s) are configured to manage. reserved 0transaction-ID Aprefix-len An unsignedinteger identifier7 bit number (0-127) non-zero prefix-len is the number of leftmost bits of the agent's IPv6 address which make up the subnet prefix. The prefix-len field is set by the relay if the relay receives the Solicit message and forwards it to one or more servers. solicit-ID An unsigned 9 bit number (0-511) generated by the client used to identify thisRequest.Solicit message. client's link-local address The IP link-local address of the client interfacefromthrough which the clientissuedwill issue theDHCP Request message agent-address The IP address of an agent's interface, copied from a DHCP AdvertisementSolicit message.Bound, Perkins Expires 25 August 1999 [Page 11] Internet Draft DHCP Version 6 25 February 1999 server-addressrelay-address Set by the client to be zero. Ifpresent,received by a relay, set by the relay to the site-local IP address of theserverinterface on whichshould receivethe relay received the client'sDHCP RequestSolicit message.extensions See [15]. When the client sets the `C' bit and adds extensions,Note that if theserver is expected to deallocate all other resources not listed inDHCP domain crosses site boundaries, theextension. The resources explicitly requestedrelay MUST place a globally-scoped address inextensions to the Request message SHOULD be reallocated by the server to the client, assuming the client is still authorized to receive them. The transaction-ID is selected by thethis field. A clientto be greater than or equal to 1024, unless the DHCP Request is sent in response to a Reconfigure msg (see section 4.6). In that case,MUST send thetransaction-ID is copied fromSolicit message to thetransaction-ID inAll-DHCP-Agents multicast group (see section 3.1), setting theReconfigure message. 4.4.relay-address to zero. 9.2. DHCPReplyAdvertise Message FormatTheA server sendsone DHCP Replyan Advertise message in response toevery DHCP Request or DHCP Release received.a client's Solicit message. The Advertise message notifies the client of the server's IP address. If therequest comes withserver is so configured by the`S' bit set,network administrator and the clientcould not directly sendrequests it through theRequest to``P'' bit in its Solicit message, the serverand had to useSHOULD add aneighboring relay agent. In that case,list of subnet prefix extensions to the Advertise message to notify the client of the networks it manages on the client's link. When the client and server are on different links, the server sendsbacktheDHCP Reply withAdvertise message back through the`L' bit set, andrelay whence theDHCP Replycorresponding Solicit came. The solicit-ID isaddressed to the agent-address found incopied from the client's Solicit Bound, Carney, Perkins Expires 1 November 2000 [Page 16] Internet Draft DHCPRequest message. ALl thefor IPv6 5 May 2000 Message. The value of all fields in theDHCP ReplyAdvertise message aresetfilled in by theDHCP server.server and not changed in any way by any intervening relay. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type =4 |L| status2 |transaction-IDreserved | solicit-ID | preference | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | client's link-local address | | (16octets, if present)octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | relay-address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | server-address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | extensions (variable numberand length) .... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ L If set, the client's link-local address is present Bound, Perkins Expires 25 August 1999 [Page 12] Internet Draft DHCP Version 6 25 February 1999 status One of the following decimal values: 0 Success 16 Failure, reason unspecified 17 Authentication failed or nonexistent 18 Poorly formed Request or Release 19 Resources unavailable 20 Client record unavailable 21 Invalid client IP address in Release 23 Relay cannot find Server Address 64 Server unreachable (ICMP error) transaction-IDand length) ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ reserved 0 solicit-ID An unsignedinteger identifier9 bit number (0-511) used to identify thisReply, and copiedAdvertise message. Copied from the client'sRequest.Solicit message. preference An octet (unsigned) indicating a server's willingness to provide service to the client. client's link-local addressIf present, theThe IP link-local address of the client interface from which the client issued thecorresponding DHCP RequestSolicit message.extensions See [15]. Ifrelay-address The IP address of the`L' bit is set,relay interface on theclient's link-local address is present insame link as theReply message. Thenclient. Copied from theReply is sent byclient's Solicit. If the servertois on therelay's address which was specifiedsame link as theagent-address in the DHCP Request message, and the relay uses the link-localclient, then this field MUST be zero. server-address The site-local IP addressto deliver the Reply message toof theclient. The transaction-ID inserver. If the DHCPReply is copied bydomain crosses site boundaries, then this address MUST be globally-scoped. extensions See theserver from``extensions document'' for details [2]. See Sections 14.4 and 15.3 for information about how clients and servers handle theclient Request message. 4.5.preference field. Bound, Carney, Perkins Expires 1 November 2000 [Page 17] Internet Draft DHCPReleasefor IPv6 5 May 2000 9.3. DHCP Request Message FormatThe DHCP ReleaseA client sends a Request messageis sent without the assistance of any DHCP relay.to request configuration parameters from a server. It MAY append appropriate extensions [2]. When a clientsends a Release message,reboots, itis assumed tooften does not have a valid IP address of sufficient scope for the server to communicate with the client. In such cases, the client MUST NOT unicast the message to the server because the server could not return a response to the client. The client MUST send the message to the server indirectly, by using the on-link relay. The client MUST fill in the relay address field withsufficient scope to allow access tothetarget server.on-link relay's IP address. Ifparameters are specifiedthe Request message is being formed in response to a Reconfigure-init message from theextensions, only those parameters are released. The values of allserver, then the transaction ID used must be copied from the Reconfigure-init. All fieldsofin the DHCPReleaseRequest message are entered by theClient. The DHCP server acknowledges the Release message by sending a DHCP Reply (Sections 4.4, 6.3). Bound, Perkins Expires 25 August 1999 [Page 13] Internet Draft DHCP Version 6 25 February 1999client. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type =1 |D|3 |C|R| reserved | transaction-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | client's link-local address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |agent-addressrelay-address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |client-addressserver-address | | (16octets, if present)octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | extensions (variable number and length) .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+msg-type 5 DC Ifthe `D' flag isset, the clientinstructsrequests the server tosend the DHCP Reply directly back toremove all releasable resources associated with theclient, instead of usingclient binding, except those releasable resources provided as extensions. R If set, thegiven agent-addressclient has rebooted andlink-local address to relayrequests that theReply message.server clear any transaction-ID cache entries for the client. reserved 0 Bound, Carney, Perkins Expires 1 November 2000 [Page 18] Internet Draft DHCP for IPv6 5 May 2000 transaction-IDAAn unsigned integer identifier used to identify thisRelease, and copied into the Reply.request. client's link-local address TheIPlink-local address of the client interface from which thetheclientissuedwill issue theDHCP Release message agent-addressRequest message. relay-address The IP address of a relay's interface, copied from an Advertise message. If the server is on the same link as the client, then this field MUST BE zero. server-address The IP address of theagent interface forserver to which the the client's Request message is directed, copied from an Advertise message. extensions See the ``extensions document'' [2]. A DHCP client selects the transaction-ID from the range of 1024--65535 used to identify its Request. In contrast, a transaction-ID from theIP address to be released. client-address The IP addressrange of 0--1023is selected by a DHCP server to identify a Reconfigure-init. In theclient interfacelatter case, the transaction ID fromwhichthe Reconfigure-init is copied by the clientissued the DHCP Releaseinto its Request message.The client-address field is present wheneverWhen the`D'client sets the `C' bit and adds extensions documenting the releasable resources the client wishes to keep, the server isset, even if it is equalexpected to deallocate all other releasable resources not listed. The server SHOULD examine thelink-local address.included extensionsSee [15] It is an error (status code ``InvalidSource'' (see Section 2.4))toinclude withincheck whether the client is still authorized to use them. 9.4. DHCP Reply Message Format A server sends a Reply message in response to a client's Request message or Release message. If a Request messageboth the `D' bit and an IP Bound, Perkins Expires 25 August 1999 [Page 14] Internet Draft DHCP Version 6 25 February 1999 address extensionis received whichhas the IPcontains a non-zero relay addressused asfield, then theclient-address field ofclient could not unicast theDHCP ReleaseRequest messageheader. 4.6. DHCP Reconfigure Message Format DHCP Reconfigure messages can only be senttoclients which have established an IP address which routesthe server and thus had to use a on-link relay. In that case, thelink at which they are reachable, henceserver unicasts theDHCP ReconfigureReply messageis sent withoutto theassistance of any DHCP relay. Whenrelay address found in the Request message. If aserver sendsRelease message is received which contains aReconfigure message,non-zero relay address field, then thereceivers are assumed toclient will not havea validan IP addresswithof sufficient scopeto be accessible by the server. Only the parameters which are specified inafter theextensionsRelease to receive theReconfigure message need be requested again byReply message. In Bound, Carney, Perkins Expires 1 November 2000 [Page 19] Internet Draft DHCP for IPv6 5 May 2000 this case, theclient. A Reconfigureserver unicasts the Reply messagecan either be unicast or multicast byto theserver. The client will extractrelay address found in theextensions provided byRelease message. All the fields in theserver and send aDHCPRequestReply messagetoare set by theserver using those extensions (see section 5.7).DHCP server. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type =6 |N| reserved4 |R| status | transaction-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |server-addressclient's link-local address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |extensions (variable number and length) ....relay-address (if present) | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+N The `N' flag indicates that the client should not expect a DHCP Reply in response to the DHCP Request it sends as a result of the DHCP Reconfigure message. reserved 0 transaction-ID A unsigned integer identifier used to identify this Reconfigure, to by copied into the following DHCP Request message that will be transmitted by the client. server-address The IP address of the DHCP server issuing the DHCP Reconfigure message. extensions See [15] Bound, Perkins Expires 25 August 1999 [Page 15] Internet Draft DHCP Version 6 25 February 1999 5. DHCP Client Considerations A node which is not a DHCP agent MUST silently discard any DHCP Solicit, DHCP Request, or DHCP Release message it receives. 5.1. Verifying Resource Allocations After Restarts A client MAY retain its configured parameters and resources across client system reboots and program restarts. Any client wishing to use this feature MUST also maintain state for the address of its DHCP agent address. When the client restarts, the client MUST also formulate a DHCP Request message to verify that its configured parameters| extensions (variable number andresources are still valid. This Request message MUST have the `C' bitlength) .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ R If set,to clean up stale client binding information at the server which may no longer be in use bytheclient; stale information``relay-address'' field isthat whichpresent. status This 7-bit field contains one of theclient does not includevalues inextensions to such request messages. If the server does not respond totheDHCP Request message after REQUEST_MSG_MIN_RETRANS (seeerrors table in section8), the client may still use any resources whose lifetimes have not yet expired. In such cases, however,3.4. transaction-ID Copied from theclient MUST begin to search for another server by multicasting a DHCP Solicit message withclient's Request or Release. client's link-local address Copied from the`C' bit set (see section 5.2).client's Request or Release message. relay-address Theclient SHOULD log a DHCP System Error. This also handles the case wherein a client restarts on a new network, where itsIP addressis no longer valid. In this situation, when the client receivesof anew IP address and the old IP address is no longer needed,relay's interface, copied from theclient MUST release its old IP address by issuing a DHCPRequest or Releasemessage withmessage. If theappropriate extension if it can communicate with its previous server. A mobile client (thatserver isnot stationaryona network) SHOULD keep its agent-address, and possiblytherelevant server address, along with all resource-server associations [15] on non-volatile storage. This will allowsame link as theclient to release resources withclient, then the ``R'' bit is not set and this field is not present. extensions See the ``extensions document'' [2]. 9.5. DHCPSolicit or Release messages if it enters a different network location before releasing its resources. 5.2. Sending DHCP Solicit MessagesRelease Message Format A clientMUST have the address ofsends aserverRelease message tosend a Request message. The client SHOULD locateaDHCPserverby multicasting a DHCP Solicit messagewhen it wishes to return one or more releasable resources to theAll-DHCP-Agents link-local multicast address (see Section 3.3), settingserver which allocated them. This can occur either because theHop Limit == 1. If there areclient noDHCP servers onlonger needs thesame link asresource(s) or thenode, thenclient has determined through aDHCP relay MUST beresource-specific manner that the resource(s) are already in use by different Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page16]20] Internet Draft DHCPVersion 6 25 February 1999 present if solicitations sent fromfor IPv6 5 May 2000 client(s). The client communicates the reason for the premature release of the resource in the status field of the resource's extension. See ``extensions document'' [2] for more details. When aclient's link-localclient sends a Release message, it needs to have a valid IP address with sufficient scope to allow access by the target server. If such an address is not available, a relay is used. Only those releasable resources identified by extensions are released. If no extensions are included in the Release message, then all releasable resources associated with the client's binding are to behandled. When sending areleased. The values of all fields of the Release message are set by the client. The DHCPSolicit message,server acknowledges the Release message by sending aclient MUST setReply message. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type = 5 |R| reserved | transaction-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | client's link-local address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | server-address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | X-address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | extensions (variable number and length) .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ R If set, theRelay Address``X-address'' fieldto 16 octets of zeros, and zerocontains theprefix-size field.address of relay. Ifa client reboots and doesnothave a valid IP address, it SHOULD set the `C' bit in the DHCP Solicit message it sends when restarting. By setting the `C' bit inset, thesolicitation,``X-address'' field contains a non-local scope clientrequests that alladdress. reserved 0 transaction-ID An unsigned integer identifier used to identify this Release message. client's link-local address The client's link-local address for theDHCP servers that receiveinterface from which thesolicitation should clean up their client records that match its link-local address. If aclientsends a DHCP Solicit message after it reboots, the solicitation SHOULD be delayed after reception ofissued thefirst Router Advertisement [14]Release message(see section 5.8), by at least some random amount of time between MIN_SOLICIT_DELAY and MAX_SOLICIT_DELAY (see section 8). This delay is intended to help stagger requests to DHCP servers(andavoid link-layer collisions) after a power outage causes many nodestoreboot all at once. Each subsequent DHCP Solicit message that is issued before receiving an advertisement MUST be delayed by twice the amount bywhich theprevious DHCP Solicit message was delayed, plus a small random delay between MIN_SOLICIT_DELAY and MAX_SOLICIT_DELAY seconds. 5.3. Receiving DHCP Advertise Messages After a client has received a DHCP Advertise message, it hasreleasable resources are bound at theaddress of a server for subsequentserver). Bound, Carney, Perkins Expires 1 November 2000 [Page 21] Internet Draft DHCPRequest messages.for IPv6 5 May 2000 server-address The IP address of the server which allocated the resource. X-address If the`S'``R'' bit iszero,set, theDHCP Advertise message was transmitted by a server``X-address'' field contains the IP address of the relay interface on the same link as theclient, andclient. If the ``R'' bit is not set, this field contains a non-link-local IP address of the clientusesinterface from which theagent-address astheserver's address; otherwise,client issued theserver'sRelease message. extensions See the ``extensions document'' [2]. A client selects the transaction-ID from the range of 1024--65535 used to identify the Release message. A client MUST NOT specify an IP addressis locatedin theserver-address field. If the server-addressclient-address field that it isa multicast address,releasing in theadvertisement MUST be silently discarded.extensions field. 9.6. DHCP Reconfigure Message Format A serverMAY append extensionssends a Reconfigure message when it wishes toits advertisements; this might allowinform one or more clients of new or updated values for configuration parameters. The new configuration parameters are carried in theclient to selectextensions portion of theconfigurationReconfigure message. Note thatbest meets its needs from among several prospective servers. Unless a DHCP Advertisement is received withapreference equal to 255 (see Section 4.2), the clientReconfigure message MUSTwait CLIENT_ADV_WAIT seconds after issuingNOT carry releasable resource extensions. Reconfigure messages can ONLY be sent to clients which have established an IP address of sufficient scope as to be directly reachable by the server. Clients acknowledge Reconfigure messages with Reconfigure-reply messages. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type = 6 | reserved | transaction-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | server-address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | extensions (variable number and length) .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ reserved 0 Bound, Carney, Perkins Expires 1 November 2000 [Page 22] Internet Draft DHCPSolicit messagefor IPv6 5 May 2000 transaction-ID An unsigned integer identifier inorder to receivetheAdvertisement with the highest preference. After waiting for that periodrange oftime, a client MUST select0--1023 chosen by thehighest preferenceserveras the targetto identify this Reconfigure message. server-address The IP address ofitsthe DHCPrequest. If a client receives an advertisement with a preferenceserver issuing the Reconfigure message. MUST be of255, it does not havesufficient scope towait for any more advertisements. Bound, Perkins Expires 25 August 1999 [Page 17] Internet Draftbe reachable by all clients. extensions See the ``extensions document'' [2]. 9.7. DHCPVersion 6 25 February 1999 If aReconfigure-reply Message Format A client sends aDHCP Request to a highly preferred server but failsReconfigure-reply message toreceiveacknowledge receipt of aDHCP replyReconfigure message fromthat server after following the retransmission algorithm in section 8, the client MUST then try to sendaDHCP Request to a less preferredserver. A Reconfigure-reply message can only be sent if the clientis freehas an IP address of sufficient scope tocachecontact the server. No interaction with a relay is possible. All fields in theresult of anyDHCPAdvertisement it receives.Reconfigure-reply message are entered by the client. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type = 7 |r| status | transaction-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | client's link-local address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | server-address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ r reserved (0) status Thisis purely a potential performance enhancement, because7-bit field contains one of theresults might change over time. A client may not get a DHCP Reply if it uses a cached server-address, andvalues from the errors table inthat case SHOULD multicast another DHCP Solicit message. 5.4. Sending DHCP Request Messages A client obtains configuration informationsection 3.4. transaction-ID An unsigned integer identifier copied froma server by sending a DHCP Request message. The client MUST knowthe server'saddress before sending the Request message, and the client MUST have acquired a (possibly identical)Reconfigure message. Bound, Carney, Perkins Expires 1 November 2000 [Page 23] Internet Draft DHCPagent address. If the client and server are on the same link,for IPv6 5 May 2000 client's link-local address The client's link-local address for theagent-address used byinterface from which the clientMUST beissued thesame asReconfigure-reply message. server-address Copied from the Reconfigure message. 9.8. DHCPserver's address.Reconfigure-init Message Format ADHCP Requestserver sends a Reconfigure-init messageMUST NOTwhen it wishes to notify one or more clients of new or updated values for configuration parameters available on the server. Reconfigure-init messages can ONLY be sent toany multicast address, since otherwise multiple DHCP servers would possibly allocate resourcesclients which have established an IP address of sufficient scope as to be directly reachable by theclientserver. A ``Reconfigure-init'' serves as a trigger which will cause the clients to initiate a Request/Reply exchange with the server inresponseorder to receive thesame Request,new information. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type = 8 | reserved | transaction-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | server-address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | extensions (variable number and length) .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ reserved 0 transaction-ID An unsigned integer identifier in theclient would have no way to know which servers had made the allocations, if any packets were lost due to collisions, etc. Ifrange of 0--1023 chosen by theDHCPserveris off-link, and the client has no validto identify this Reconfigure-init message. server-address The IP address ofsufficient scope, then the client MUST include the server-address and set the `S' bit inthe DHCPRequest message. In this case, the IP destination address inserver issuing theIP header willReconfigure-init message. MUST bea DHCP relay address. Otherwise, if the client has a valid IP addressof sufficient scopeand knows the IP address of a candidate server, it MUST send the Request message directlyto be reachable by all clients. extensions SHOULD only include an ERE and/or authentication extensions. No configuration information SHOULD be Bound, Carney, Perkins Expires 1 November 2000 [Page 24] Internet Draft DHCP for IPv6 5 May 2000 included. See theserver without requiring the services of the local``extensions document'' [2] for more information about extensions. 10. DHCPrelay. IfServer Solicitation and Subnet Prefix Discovery This section describes how a clientwishes to instruct a server to deallocate all unknown previous resources, configuration information,locates agents (relays andbindings associated with its agent-addressservers) andlink-local address,how itsets the `C' bit incan learn about theDHCP Request. A client MAY send in such a Request even when itnetworks on its link that are managed by these servers. The behavior of client, server, and relay implementations isno longer attached todiscussed, along with the messages they use. 10.1. Solicit Message Validation Clients MUST silently discard any received Solicit messages. Agents MUST discard any received Solicit messages if thelink on``client's link-local address'' field does not contain a valid link-local address. Servers MUST discard each received Solicit message which meet therelay-addressfollowing criteria: o The ``relay-address'' field does not contain an address of sufficient scope that isattached.reachable by the server. o The`C' bit allows better reclamation``relay-address'' field is non-zero, but prefix-len is zero. An error message MAY be logged by the agent. The logging ofavailable resources when a client lost records for its resource-server associations and might not otherwisesuch messages SHOULD beable to releasecontrolled by an agent implementation configuration flag. 10.2. Advertise Message Validation Servers MUST silently discard any received Advertise messages. Clients MUST discard any Advertise messages that meet any of the following criteria: o The ``Solicit-ID'' field value does not match the value theassociated resources. When aclientreboots and losesused in itsprevious state,Solicit message. o The ``client's link-local address'' field value does not match theserver should no longer keep tracklink-local address of the interface upon which theXID-TIMEOUT binding cacheclient sent the Solicit message. Relays MUST discard any Advertise messages that meet any of the following criteria: Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page18]25] Internet Draft DHCPVersion 6 25 February 1999 transaction IDs (see section 6) associated with that previous state. In order to informfor IPv6 5 May 2000 o The ``relay-address'' field does not contain theserver thatrelay's address on theclient no longer wishes any association to be maintained between used transaction-IDs and previous transactions,same link as theclient SHOULD setclient. o The ``client's link-local address'' field does not contain a valid link-local address. 10.3. Client Behavior Clients use the`R' bit in itsSolicit message primarily to discover DHCPRequest. In any case, after choosing a transaction-ID which is numerically greater than its last recorded transaction-ID, and filling inservers configured to serve networks on theappropriate fields oflink containing theDHCP Request message,client. Optionally, the client MAYappend various DHCP Extensions toset themessage. These extensions denote specific requests by``P'' bit which has theclient; for example, a client may request a particular IP address, or requesteffect of requesting that the serversend an update containing the client's new IP address to a Domain Name Server. When all desiredreturn subnet prefix extensionshave been applied,identifying theclient sendsnetworks on theDHCP Requestclient's link the server is configured to manage. 10.3.1. Creation and sending of theappropriate agent. For each pending DHCP RequestSolicit message When creating a Solicit message, the client SHOULD start out with a buffer initialized with zeroed octets. The clientMUST maintainsets thefollowing information: - The transaction-ID``msg-type'' field to 1, and places the link-local address of therequest message, - The server-address, - The agent-address (which can beinterface it wishes to configure in thesame aslink-local address field. If theserver-address), - The time at whichclient is prepared to process multiple Advertise messages in response to its Solicit message, thenext retransmissionclient willbe attempted, and - All extensions appendedset the Solicit-ID field to 1. Every time therequest message. If aclientdoes not receive a DHCP Reply message (Section 5.5) with the same transaction-ID asinitiates apending DHCP Request message within REPLY_MSG_TIMEOUT (see section 8) seconds, or if the received DHCP Reply message containsnew server solicitation attempt (not aDHCP Authentication extension which fails to provide the correct authentication information,retransmission), the clientMUST retransmitincrements theRequest withSolicit-ID by one. If thesame transaction-ID and continue to retransmit according9-bit field rolls over to 0, then therules in Section 8. If (after following those rules)client sets the Solicit-ID to 1. A clienthas not received a Reply message,which will only accept the first Advertise message itSHOULD start over again by multicasting a new DHCPreceives leaves the Solicit-ID field initialized to zero. The ``C'' bit of the Solicit messageto find a different server. Ifis set by the clientreceives an ICMP error message in response to such a DHCP Request, it likewise SHOULD start over again by multicasting a newwhen the client has no cached knowledge of previous DHCPSolicit message,configuration for the interface. Setting this bit requests that the server release any information assigned tofind a different server.the client for the networks on the client's link. If the clienttransmits a DHCP Request in responsedesires toalearn of the networks managed by DHCPReconfigure message, further processingon the link its interface isas specifiedattached to, it sets the ``P'' bit inSection 5.7.the Solicit message. The clientcan continuetransmits the Solicit message tooperate with its existing configuration information and resources until it receivesthecorrespondingFF02::1:2 (All DHCPReply from the server.Agents) multicast address, destination port 547. Thesame retransmission rules apply as for any other DHCP Request message from the client. When the `N' bit is set,source port selection can be arbitrary, although it SHOULD be possible using aDHCP Request sent in responseclient configuration facility to set aDHCP Reconfigure message will not elicit a DHCP Reply message from the server.specific source port value. Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page19]26] Internet Draft DHCPVersion 6 25 February 1999 5.5. Receiving DHCP Replyfor IPv6 5 May 2000 10.3.2. Time out and retransmission of Solicit MessagesWhenThe client's first Solicit message on the interface MUST be delayed by a random amount of time between the interval of MIN_SOL_DELAY and MAX_SOL_DELAY. This random delay desynchronizes clients which start at the same time (e.g., after a power outage). The client waits ADV_MSG_TIMEOUT, collecting Advertise messages. If no Advertise messages are received, the client retransmits the Solicit, and doubles the ADV_MSG_TIMEOUT value. This process continues until either one or more Advertise messages are received or ADV_MSG_TIMEOUT reaches the ADV_MSG_MAX value. Thereafter, Solicits are retransmitted every ADV_MSG_MAX until SOL_MAX_ATTEMPTS have been made, at which time the clientreceives astops trying to DHCPReply message, it MUST check whetherconfigure thetransaction-IDinterface. An event external to DHCP is required to restart the DHCP configuration process. Default and initial values for MIN_SOL_DELAY, MAX_SOL_DELAY, ADV_MSG_TIMEOUT, AND ADV_MSG_MAX are documented in section 3.5. 10.3.3. Receipt of Advertise messages Upon receipt of one or more validated Advertise messages, theReply message matchesclient selects one or more Advertise messages based upon thetransaction-IDfollowing criteria. - Those Advertise messages with the highest server preference value (see section 14.4) are preferred over all other Advertise messages. - Within a group of Advertise messages with the same server preference value, apending DHCP Request message. If no match is found,client MAY select those servers whose Advertise messages advertise information of interest to theReply message MUSTclient. For example, one server may besilently discarded. Ifadvertising theReply message is acceptable,availability of IP addresses on networks which have an address scope of interest to the client. Once a clientprocesses each Extension [15], extractinghas selected Advertise message(s), therelevant configurationclient will typically store information about each server, such as relay address andparameters for its network operation. The client can determineprefix length, server preference value, networks advertised, whenall extensions intheReply have been processed by usingadvertisement was received, and so on. Depending on theUDP Length fieldrequirements of theReply. Some extensions in the Reply may have status codes, which indicate toclient's invoking user, the client MAY initiate a configuration exchange with thereasonserver(s) immediately, or MAY defer this exchange until later. Bound, Carney, Perkins Expires 1 November 2000 [Page 27] Internet Draft DHCP forfailure whenIPv6 5 May 2000 10.4. Relay Behavior For this discussion, theserver was unableRelay is assumed tohonorhave been configured with some list of server destination addresses, which may be unicast, the FF05::1:3 (All DHCP Servers) multicast address, or some other multicast address selected by therequest. Ifnetwork administrator. 10.4.1. Relaying of Solicit messages When a Relay receives a valid Solicit message, it places theserver is unable to honorIP address of therequestinterface upon which it received the Solicit message inan extension included bytheclient, that extension may simply be omitted from``relay-address'' field of theReply.Solicit. Theserver MAYRelay alsoprovideplaces theclient with configuration parametersnumber of bits of that make up theclient did not specifically request. Some configuration information extracted fromsubnet prefix for this address in theextensions to``prefix-len'' field of theDHCP Reply message MUST remain associated withSolicit. The Relay then forwards this Solicit to the list of server destination addresses thatsent the message. The particular extensions that require this extra measureit has been configured with. 10.4.2. Relaying ofassociation withAdvertise messages When a Relay receives a valid Advertise message, it unicasts theserver are indicatedmessage to the link-local address found in theDHCP Extensions document [15]. These "resource-server" associations are used when sending DHCP Release messages. 5.6. Sending DHCP Release Messages If a client wishes to ask``client's link-local address'' field by way of theserverappropriate network interface. 10.5. Server Behavior For this discussion, the Server is assumed toreleasehave been configured in an implementation specific manner. This configuration is assumed to contain all network topology informationand resources relevant to the client,for theclient SHOULD send aDHCPRelease message withoutdomain, as well as anyextensions; this is preferable to sending a DHCP Request message with the `C' bit set and no extensions. If a client wishes to retain somenecessary authentication information. 10.5.1. Receipt ofits network configuration parameters, but determines that others are no longer needed, it SHOULD enableSolicit messages Upon theserver to release allocated resources which are no longer in use by sendingreceipt of a valid Solicit message, the server first identifies the client's location within the DHCPRelease message todomain. If theserver,``relay-address'' andincluding extensions to identify/ or ``prefix-len'' fields of the Solicit are zeroed, then theunneeded items. Theclientconsults its list of resource-server associations in orderis attached todetermine which server should receivethedesired Release message. The Release MUST be transmitted tosame link as theserver that providedserver. If these fields are non-zero, then theconfiguration parameters. Suppose aclientwishesexists on the same link as the network identified by these two fields. If administrative policy permits the server torelease resources which were grantedrespond toit at another IP address. Further, suppose that thea clienthas an IP addresson thatwill still be valid afterlink, the serverperforms the operations requested in the extensions to the DHCP Release message,will generate andwhich has sufficient scopesend an Advertise message tobe reachable fromtheserver. In that case, and only then, the client MUST set the `D' bit in the DHCPclient. Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page20]28] Internet Draft DHCPVersion 6 25 February 1999 Release message (see section 4.5). This instructsfor IPv6 5 May 2000 10.5.2. Creation and sending of Advertise messages When creating an Advertise message, the serverto sendSHOULD start out with a buffer initialized with zeroed octets. The server sets theDHCP Reply directly back``msg-type'' field to 2 and copies theclient atvalues of thelatter validfollowing fields from the client's Solicit to the Advertise message: o solicit-ID o client's link-local address o relay-address The server places one of its IPaddress, insteadaddresses (determined through administrator setting) in the ``server-address'' field ofperformingthedefault processingAdvertise message. The server initializes the ``preference'' field from its configuration information. See section 15.3 for a description ofsendingserver preference. If theDHCP Reply back throughclient requests subnet prefix extensions (by setting theagent-address included``P'' bit in its Solicit) and theDHCP Release. 5.7. Receiving DHCP Reconfigure Messages Each client implementation MUST support listening at UDP port 546server implements and is configured toreceive possible DHCP Reconfigure messages; in cases whereprovide prefix extensions, theclient knows that no Reconfigure messageserver willever be issued,generate and insert a subnet prefix extension for each network on theclient MAY beclient's link it is configured toavoid executing this supported feature. Any DHCP Reconfiguremanage. If the ``relay-address'' field of the Advertise messagereceived with a transaction-ID greater than or equal to 1024 MUST be silently discarded. In some cases,is zero, then theIP address at whichserver unicasts theclient listens will be a multicast address sentAdvertise message directly to the clientbyusing theserver in an extension to an earlier DHCP Reply message.``client's link-local address'' field value as destination address. If theclient does not listen for DHCP Reconfigure messages, it``relay-address'' field ispossible thatnon-zero, then theclient will not receive notification that itsserverhas deallocatedunicasts theclient's IP address and/or other resources allocatedAdvertise message directly to theclient. See discussion in 6.5. Therelay using the ``relay-address'' field value as the destination address. 11. DHCP Client-Initiated Configuration Exchange A clientMAY receiveinitiates aprefix update forconfiguration exchange with one or moreof their addresses and then MUST use that prefix for those addresses. If a client receives a DHCP Reconfigure message,servers itis a request forhas found through DHCP server solicitation whenever requested to do so by theclientapplication layer in order tosendacquire configuration information of interest. 11.1. Request Message Validation Clients MUST silently discard any received Request messages. Agents MUST discard any Request messages in which the ``client's link-local address'' field does not contain anewvalid link-local address. Bound, Carney, Perkins Expires 1 November 2000 [Page 29] Internet Draft DHCP for IPv6 5 May 2000 Relays MUST discard any received Requestto the servermessages in whichsent the Reconfigure message. Unlessthe`N' bit is set,``relay-address'' field value does not match any of theclientrelay's addresses. Servers MUSTawait a DHCP Reply with a matching transaction-ID, retransmitting (as specified in section 8) untildiscard any received Request message which meets any of theReply is received.following criteria: o Theserver sending the Reconfigure message MAY be different than``server-address'' field value does not match any of theserver which sent a DHCP Reply message containingserver's addresses. o If theoriginal configuration information. Reconfigure messages MAY``relay-address'' field is set, and that field's value does not contain an address of sufficient scope as to beretransmittedreachable by the server. o The ``extensions'' field contains an authentication extension, and the serverwithcannot successfully authenticate thesame transaction-ID. When a client receives a retransmitted unicast Reconfigureclient. 11.2. Reply Message Validation Servers MUST silently discard any received Reply messages. Clients MUST discard any Reply messagewithin XID_TIMEOUTthat meets any of thelast received Reconfigure message withfollowing criteria: o The ``transaction-ID'' field value does not match thesame transaction-ID,value the clientMUST reformulate exactly the same DHCPused in its Requestmessage and retransmitor Release message. o The ``client's link-local address'' field value does not match therequest message tolink-local address of theserver again. In this way,interface upon which theserver can make use ofclient sent in its Request or Release message. o The Reply message contains an authentication extension, and theretransmission algorithmclient's attempt toensure that a client has receivedauthenticate theReconfigure message. When a client receives a retransmitted multicast Reconfiguremessagewithin XID_TIMEOUTfails. Relays MUST discard any Reply message that meets any of thelast received Reconfigure message withfollowing criteria: o The ``R'' bit isn't set. o The ``relay-address'' field value does not contain the relay's address on the sametransaction-ID,link as theclient MUSTclient. o The ``client's link-local address'' field value does notresend the the Requestcontain a valid link-local address. Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page21]30] Internet Draft DHCPVersion 6 25 February 1999 message if RECONF_MULTICAST_REQUEST_WAIT (see section 8) has not expired. If RECONF_MULTICAST_REQUEST_WAIT has expired then the clientfor IPv6 5 May 2000 11.3. Release Message Validation Clients MUSTreformulate exactly the same DHCP Request message and retransmit the Requestsilently discard any received Release messages. Agents MUST discard any Release messageto the server again, and then reset RECONF_MULTICAST_REQUEST_WAIT to its default value or the valuethatwas provided from a retransmission extension [15] provided by the server. In this way, the server can make usemeets any of theretransmission algorithm to ensure that all affected clients have received the multicast Reconfigure message. For each Extension which is present in the Reconfigure message, the client MUST appendfollowing criteria: o The ``transaction-ID'' field contains amatching Extension to its Request message, which it formulates to send to the server specifiedvalue not in theserver-address field of the message.1024--65535 range. o Theclient also copies``client's link-local address'' field does not contain atransaction-ID from the Reconfigurevalid link-local address. Relays MUST discard any received Release messageinto the Request message. Processing forthat meets any of theRequestfollowing criteria: o The ``R'' bit is not set. o The ``X-address'' field value does not match any of thesame as specified in Section 5.4, except: - the client retransmits as stated above in this section - the client never needs a Relay to sendrelay's addresses. Servers MUST discard any received Release message which meets any of theRequestfollowing criteria: o The ``X-address'' field does not contain an address of sufficient scope as to be reachable by theDHCP Server - the client MUST NOT set the `S' or `R' bits - ifserver. o The ``extensions'' field contains an authentication extension, and the`N' Bit is set,server cannot successfully authenticate the client. 11.4. Client Behavior A client willnot get a Reply from the server - ifgenerate one or more Request messages when prompted by the application layer in order to acquire configuration information. A clientreceives an ICMP error message it should abort the Reconfigure transaction and logmay initiate such anerror message. The client MUST NOT transmit a DHCP Solicit messageexchange automatically in order torediscover the IP address of the DHCP Server. Resources held byacquire the necessary network parameters to communicate with nodes off-link. The clientwhich are not identified by Extensions inuses theserver's Reconfigure message are not affected. Aserver and relay address information from previous Advertise message(s) for use in delivering Request message(s). Note that a client mayask itsrequest configuration information from one or more servers at any time. A clientto join a multicast group foruses thepurpose of receiving DHCP Reconfigure messages. When a ReconfigureRelease messageis delivered toin theclient by waymanagement ofthe selected multicast address, thereleasable resources when: o The clientMUST delay its further response forhas determined through arandom amount of time uniformly distributed within the interval between RECONF_MMSG_MIN_RESP and RECONF_MMSG_MAX_RESP seconds (see section 8). This will minimize the likelihoodresource-specific manner that theserver will be flooded with DHCP Request messages. 5.8. Interaction with Stateless Address Autoconfiguration Please refer to the Stateless Address Autoconfiguration Protocol specification [20] for details regardingresource assigned by theactions takenserver is already in use byclientsa different client. Bound, Carney, PerkinsExpires 25 August 1999Expires 1 November 2000 [Page22]31] Internet Draft DHCPVersion 6 25 February 1999 upon receiving Router Advertisements with changing valuesfor IPv6 5 May 2000 o The client has been instructed to release the`M' and `O' bits. 6. DHCP Server Considerations A node whichresource prior to the lease expiration time since it isnotno longer needed. 11.4.1. Creation and sending of Request messages When creating a Request message, the clientor relay MUST ignore any DHCP Advertise, DHCP Reply, or DHCP Reconfigure message it receives. A server maintainsSHOULD start out with acollection ofbuffer initialized with zeroed octets. The clientrecords, called ``bindings''. Each binding is uniquely identifiable bysets theordered pair <link-local address, agent-address>, since``msg-type'' field to 3, and places the link-local address of the interface it wishes to associate with the configuration information with in the ``client's link-local address'' field. Unless the Request message isguaranteedcreated in response tobe unique [20] ona Reconfigure-init message, thelink identified byclient generates a transaction ID in theagent-address and prefix. An implementation MUST support bindings consistingrange ofat least a client's link-local address, agent-address, preferred lifetime1024--65535 andvalid lifetime [20] for eachinserts this value in the ``transaction-ID'' field. The clientaddress. A server MAY, atplaces thediscretionaddress of thenetwork administrator, be configured so thatdestination server in the ``server-address'' field. If the clientbindings are identified byis not on theclient's link-local address, without need to usesame link as theadditional information supplied bydestination server, theagent-address. Aclientbinding may be used to store any other information, resources, andplaces the appropriate relay's address in the ``relay-address'' field. If the client is acquiring configurationdata which will be associated withinformation on the interface for the first time, theclient. A server MUST retain its clients' bindings across server reboots, and, whenever possible, aclientshould be assignedSHOULD set thesame configuration parameters despite server system reboots and DHCP server program restarts. A server MUST support fixed or permanent allocation of configuration parameters to specific clients. In addition to``C'' bit in the header. How the clientbinding a server must maintain an XID_TIMEOUT binding cache to determinedetermines ifa previous transaction-IDthis isbeing retransmitted bythe first configuration attempt on the interface is implementation-specific. A client may implement aclient. An implementation of an XID_TIMEOUT bindingcacheMUST support at leastof configuration information on atuple consistingper-interface basis; if that cache does not exist, that client would set the ``C'' bit. Clients which do not implement caching of per-interface configuration information MUST always set theclient's link-local address, agent-address prefix, IPv6 address,``C'', andXID_TIMEOUT value wheninclude any extensions carrying releasable resources received from earlier configuration exchanges in thecache entry can be deleted (see Section 8). 6.1. Receiving DHCP Solicit Messagesextensions field of the Request. If theDHCP Solicit message was received atclient has determined through an implementation-specific manner that theAll-DHCP-Servers multicast address,client implementation itself has restarted, it MUST set theserver``R'' bit in the header. After the first successful exchange with the server, the client MUSTcheck to make sure thatNOT set therelay-address is present, and is not a link-local address.``R'' bit in subsequent Request messages. Client considerations for extensions are now considered (see the ``extensions document'', [2] for more details). If therelay-address is not present, or if it is a link-local address,client already has an IP address of sufficient scope to directly reach theserver MUST silently discardserver, then thepacket. Note thatclient SHOULD unicast the Request to the server. Otherwise, if theclient sends a DHCP Solicit message from a link-local address,server is off-link, themulticast destination will beclient unicasts theAll-DHCP-Agents address, notRequest message to theAll-DHCP-Servers address.appropriate relay. Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page23]32] Internet Draft DHCPVersion 6 25 February 1999 When the `C' bit is set infor IPv6 5 May 2000 11.4.2. Time out and retransmission of Request Messages The client waits REP_MSG_TIMEOUT milliseconds, collecting Reply messages. If no Reply messages are received, thesolicitation,client retransmits theserver deallocates all resources that matchRequest with thelink-local addresssame transaction-ID, andsaved agent-address in the solicitation message, if a binding fordoubles the REP_MSG_TIMEOUT value, and waits again. The clientcan be found. Ifcontinues this process until a Reply is received or REQUEST_MSG_ATTEMPTS unsuccessful attempts have been made, at which time the clientbinding cannot be foundMUST abort theserverconfiguration attempt. The client SHOULDcontinuereport the abort status toprocesstheSolicit message. As an optimization, a server processing a Solicitapplication layer. Default and initial values for REP_MSG_TIMEOUT and REQ_MSG_ATTEMPTS are documented in section 3.5. 11.4.3. Receipt of Reply messagefrom relays MAY checkin response to a Request Upon theprefixreceipt of a valid Reply message, theIP source address in the IP header to determine whetherclient extracts theserver has receivedconfiguration information contained in theSolicit from multiple relays onReply. If thesame link. The prefix-size``status'' fieldincontains a non-zero value, thesolicitation enablesclient reports theserver to ascertain when two relay addresses belongerror status to thesame link. 6.2. Sending DHCP Advertise Messages Upon receiving and verifyingapplication layer. If thecorrectness of a DHCP Solicit message, a server constructs a DHCP Advertise message and transmits it onextensions field contains one or more ``Reconfigure Multicast Address'' extensions (see ``extensions document'', ``Reconfigure Multicast Address Extension'' section [2]), thesame link asclient MUST join these multicast groups, and MUST monitor thesolicitation was received from. WhenUDP 546 port for Reconfigure or Reconfigure-init messages on thesolicitation is received atnetworks configured by DHCP. If theAll-DHCP-Servers multicast address,configuration information returned in theserver SHOULD delayReply contains releasable resources, then thetransmission of its advertisement for a random amountclient MUST take over lease management oftime between SERVER_MIN_ADV_DELAY and SERVER_MAX_ADV_DELAY (see section 8). If the relay-address is nonzero,theserverresource. A client MUSTcopyNOT request releasable resources unless itintois prepared to appropriately manage theagent-address fieldresource lease. 11.4.4. Creation and sending ofthe advertisementRelease messages When creating a Release message,and send the advertisement to the relay-address. Otherwise,theserver MUST sendclient SHOULD start out with a buffer initialized with zeroed octets. The client sets theadvertisement``msg-type'' field to 5, and places theclient'slink-localaddress. An IPaddress of the interfaceon whichtheserver receivedconfiguration information it wishes to release is associated with in theSolicit message MUST appear``client's link-local address'' field. The client generates a transaction ID in theserver-address fieldrange ofthe corresponding advertisement,1024--65535 and inserts this value in the'S' bit MUST be set.``transaction-ID'' field. Theserver MAY appendclient includes extensionstocontaining theAdvertisement,releasable resources it is releasing inorder to offer the soliciting node the best possible information abouttheavailable services and resources. 6.3. DHCP Request and Reply Message Processing``extensions'' field. The appropriate ``status'' Bound, Carney, Perkins Expires 1 November 2000 [Page 33] Internet Draft DHCPserver MUST check to ensure that the client's link-local addressfor IPv6 5 May 2000 fieldof the Request message contains a link-local address. If not,in themessageextensions MUST besilently discarded. Ifset to indicate the`S' bit is set,reason for theserver MUST check thatrelease. The client places theserver-address matches one of its ownIPaddresses. Ifaddress of theserver-address does not match,server who allocated theRequest message MUST be silently discarded.resource(s) in the ``server-address'' field. If thereceived agent-address and link-localclient will have an appropriately scoped IP addressdo not correspond to any binding known toafter theserver, thenrelease transaction is completed, theserver SHOULD create a new binding forclient clears thepreviously unknown client, Bound, Perkins Expires 25 August 1999 [Page 24] Internet Draft DHCP Version 6 25 February 1999``R'' bit andsend a DHCP Reply with any resources allocated toplaces this address in the ``X-address'' field. If the client will not have an appropriately scoped IP address after thenew binding. Otherwise, ifrelease transaction is completed, theserver cannot create a new binding, it SHOULD return a DHCP Reply with a statusclient sets the ``R'' bit and places the address of``NoBinding'' (see Section 2.4).the appropriate relay in the ``X-address'' field. If the client isupdating its resources butconfigured to use authentication, thedatabase is temporarily unavailable,client generates theserver SHOULD return a DHCP Reply with a status of ``Unavail'' (see Section 2.4). While processingappropriate authentication extension, and adds this extension to theRequest,``extensions'' field. Note that theserverauthentication extension MUSTfirst determine whether or notbe theRequest is a retransmission of an earlier DHCP Request fromlast extension in thesame client. This``extensions'' field. See the ``extension document'' for more details about the authentication extension [2]. If the ``R'' bit isdone by comparingset, then thetransaction-IDclient MUST unicast the Release toall those transaction-IDsthe relay indicated in theXID_TIMEOUT binding cache received from``X-address'' field. Otherwise, thesameclientduringunicasts theprevious XID_TIMEOUT seconds.Release message directly to the server indicated in the ``server-address'' field. 11.4.5. Time out and retransmission of Release Messages The client waits REP_MSG_TIMEOUT milliseconds, collecting Reply messages. If no Reply messages are received, thetransaction-ID isclient retransmits thesame as oneRelease, and doubles the REP_MSG_TIMEOUT value, and waits again. The client continues this process until a Reply is receivedduring that time,or REL_MSG_ATTEMPTS unsuccessful attempts have been made, at which time theserver MUST takeclient SHOULD abort thesame action (e.g., retransmitrelease attempt. The client SHOULD return thesame DHCP Replyabort status to theclient) as it did after processing the previous DHCP Request withapplication, if an application initiated thesame transaction-ID. Otherwise,release. Default and initial values for REP_MSG_TIMEOUT and REL_MSG_ATTEMPTS are documented in section 3.5. Note that if theserver has no record of a message fromclient fails to release theclient withresource, thesame transaction-ID,resource will be reclaimed by the serveridentifies and allocates allwhen therelevant information, resources, and configuration data that islease associated withthe client. Thenitsends that information to its client by constructing aexpires. Bound, Carney, Perkins Expires 1 November 2000 [Page 34] Internet Draft DHCP for IPv6 5 May 2000 11.4.6. Receipt of Reply message in response to a Release Upon receipt of a valid Reply message, the client can consider the Release event successful, andincludingSHOULD return theclient's information in DHCP Extensionssuccessful status to theReply message. The DHCP Reply message usesapplication layer, if an application initiated thesame transaction-ID asrelease. 11.5. Relay Behavior 11.5.1. Relaying of Request or Release messages When a Relay receives a valid Request or Release message, it forwards it to the IP address found in thereceived DHCP Request``server-address'' field of the message.Note that11.6. Server Behavior For this discussion, thereply messageServer is assumed to have been configured in an implementation specific manner with configuration of interest to clients. Such configuration information MAY containinformation not specifically requested by the client. Ifreleasable resources such as IP addresses. 11.6.1. Receipt of Request messages Upon theDHCPreceipt of a valid Request messagehas the `S' bit set infrom a client themessage header,server can respond to, (implementation-specific administrative policy satisfied) the serverMUST sendscans thecorresponding DHCP Reply message toextensions field. If theagent-address found inclient has set theRequest (see section 7.2). Otherwise,``C'' bit, the serverSHOULD send the corresponding DHCP Reply message toMUST release all releasable resources currently associated with theIP source addressclient's binding that do not appear in theIP header received from``extensions'' field. If the clientRequest message. 6.3.1. Processinghas set the ``R'' bit, the server MUST delete any transaction-ID cache entries it is maintaining for this client, if the server implements such a cache. Server considerations forExtensions to DHCP Request and Reply Messages The DHCP Request may containextensions[15], whichareinterpreted (by default) as advisorynow evaluated (see the ``extensions document'', [2] for more details). If the configuration informationfromto be returned to the clientabout its configuration preferences. For instance,includes releasable resources, the server checks if a binding already exists for theIP Address Extension is present,client. If so, the serverSHOULD attemptexamines the data records within the binding toallocate or extenddetermine if thelifetimeclient's Request is a retransmission of an earlier Request or a new Request. Releasable resource identifiers are stored within theaddress indicated bybinding with theextension. Some extensions may be markedtransaction-ID used by the clientas required. The server may accept some extensions for successful processing and allocation, while still rejecting others, or it may reject various extensions for different reasons, and set the status appropriately for those extensions which return statusto request theclient. The serverresource's assignment. If the transaction-ID's match, this is a retransmission Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page25]35] Internet Draft DHCPVersion 6 25 February 1999 sends a single DHCP Reply message in response to each DHCP Request, withfor IPv6 5 May 2000 and thesame transaction-ID asserver simply return theRequest. Whenever it is able to,contents of theserver includes an extension inclient's binding which satisfy its request. If theReply message for every extension sent bytransaction-ID's do not match, theclientserver records the additional resources it is assigning in theRequest message.existing binding with the new Request's transaction-ID. If the clientrequests some extensions that cannot be supplied by the server,does not have an existing binding, the servercan simply fail to provide them, not including them increates a binding for theReply. Other extensions can be rejected by including themclient and records the resources it is assigning in this binding along with the transaction-ID from theReply with an appropriate status indicating failure.client's Request. The servercan include extensions in the reply that were not requested bythen constructs a Reply message and sends it to the client.6.3.2. Client Requests to Deallocate Unknown Resources When a client DHCP Request is received that has11.6.2. Receipt of Release messages Upon the`C' bit set,receipt of a valid Release message, the servershould checkperforms a lookup to findout whether the extensions listed in the Request message match those which it has associated withthe client's binding.Any resources which are not indicatedIf the binding is found, the server examines the binding to see if the resource(s) identified by the client in the Release message's extensions field arepresumedin fact assigned tobe unknown bytheclient, and thus possible candidates for reallocation to satisfy requestsclient. If they are, the server deletes these resources from the client's binding, making them available to other clients. The serverMUST deallocate all resources associated with the client upon reception ofthen generates aDHCP Request withReply message. If a binding was found and the`C' bit set, except for those whichresources presented to the serveris willing to reallocate in response towere deleted from the client'srequest. It may be more efficient to avoid deallocating any resources until afterbinding, thelist of extensions toserver sets therequest has been inspected. 6.4. Receiving DHCP Release Messages``status'' field to ``Success''. If no binding is found, the serverreceives a DHCP Release Message, it MUST verify thatsets thelink-local address``status'' field to ``NoBinding''(section 3.4). 11.6.3. Creation and sending of Reply messages When creating a Reply message, themessage contains an address which could beserver SHOULD start out with avalidbuffer initialized with zeroed octets. The server sets the ``msg-type'' field to 4 and copies the values of the following fields from the client's Request or Release to the Reply message: o transaction-ID o client's link-local address(see Section 2.1).o Ifnot,the client's messageMUST be silently discarded. In response tois aDHCP Release MessageRequest with avalid client's link-local address and agent-address,non-zero ``relay-address'' field value, the serverformulates a DHCPsets the ``R'' bit in the Replymessage that will be sent backand copies the ``relay-address'' field value from the Request to thereleasing client. WhenReply. If the`D' flagclient's message is a Release with the ``R'' bit set, the serverMUST sendsets the ``R'' bit in theDHCPReplybackand sets the ``relay-agent'' field to theclient usingcontents of theclient-addressRelease's X-address field. Bound, Carney, Perkins Expires 1 November 2000 [Page 36] Internet Draft DHCP for IPv6 5 May 2000 The server sets the ``status'' fieldofappropriately (see theRelease message. Otherwise, iftable in section 3.4) based upon the`D' bit is not set,results of processing the client's request. If configured to do so, a serverMUST send its DHCPwill include ``Reconfigure Multicast Address'' extensions (see ``extensions document'', ``Reconfigure Multicast Address Extension'' [2]), in Replymessage (with the `L' bit set)messages sent in response to a Request, informing theagent-address inclient of one or more multicast groups it should join to facilitate theRelease message, so thatreceipt of Reconfigure or Reconfigure-init messages. If therelay agent can subsequently forwardDHCP domain is using authentication, theReply back toserver will generate an authentication extension with thereleasing client atappropriate settings and add that extension as theclient's link-local address indicatedlast extension in the ``extensions'' field of the Reply message. If thereceived agent-address and link-local address do not correspond to any binding known to``relay-address'' field of theserver,Reply message is zero, then the serverSHOULD Bound, Perkins Expires 25 August 1999 [Page 26] Internet Draft DHCP Version 6 25 February 1999 return a DHCP Reply, indicating the error by settingunicasts thestatus codeReply directly to``NoBinding'' (see Section 2.4). Otherwise, iftheagent-address andclient using the ``client's link-localaddress indicate a binding known toaddress'' field value as destination address. If theserver,``relay-address'' field is non-zero, then the servercontinues processingunicasts theRelease message. If there are any extensions,Reply directly to theserver releasesrelay using theparticular configuration items specified in``relay-address'' field value as theextensions.destination address. Ifthere are no extensions,the serverreleases all configuration information in the client's binding. After performingimplements a transaction-ID cache, theoperations indicated inserver would add an entry for the client to this cache. 12. DHCPRelease message and its extensions, theServer-Initiated Configuration Exchange A serverformulatesinitiates aDHCP Reply message, copyingconfiguration exchange on behalf of thetransaction-ID fromadministrator of the DHCPRelease message. For each Extensiondomain. An administrator may initiate such an exchange when new networks are added to the domain or existing networks are to be renumbered. Other examples include changes in theDHCP Releaselocation of directory servers, addition of new services such as printing, and availability of new software (system or application). 12.1. Reconfigure Message Validation Agents MUST silently discard any received Reconfigure messages. Clients MUST discard any Reconfigure messagesuccessfully processed bythat meets any of theserver, a matching Extensionfollowing criteria: o The ``transaction-ID'' field value isappended to the DHCP Reply message. For extensions innot within theDHCP Release0--1023 range. o The Reconfigure messagewhich cannot be successfully processed bycontains an authentication extension, and theserver, aclient's attempt to authenticate the message fails. Bound, Carney, Perkins Expires 1 November 2000 [Page 37] Internet Draft DHCPReplyfor IPv6 5 May 2000 12.2. Reconfigure-reply Message Validation Clients and Relays MUST silently discard any received Reconfigure-reply messages. Servers MUST discard any Reconfigure-reply messagecontaining extensions withthat meets any of theappropriate statusfollowing criteria: o The ``transaction-ID'' field value is not that same value the server used in its Reconfigure message. o The ``server-address'' field value does not match the value the server placed in its Reconfigure message. 12.3. Reconfigure-init Message Validation Agents MUSTbe returned bysilently discard any received Reconfigure-init messages. Clients MUST discard any Reconfigure-init messages that meets any of theserver. Iffollowing criteria: o The ``transaction-ID'' field value is not within theRelease0--1023 range. o The Reconfigure-init message containsno extensions,an authentication extension, and theserver does not include any extensions inclient's attempt to authenticate thecorresponding DHCP Replymessagetofails. 12.4. Server Behavior For this discussion, theclient. 6.5. Sending DHCP Reconfigure Messages If aserverneeds to change the configuration associated with any of its clients, it constructs a DHCP Reconfigure message (possibly including relevant extensions) and sends it to each such client. The Reconfigure MAY be sentis assumed to have amulticast address chosenimplementation-specific interface bythe server,whichwas previously sent to each such client inanextension to a previous DHCP Reply message. Itadministrator mayhappen thatinitiate aclient does not sendreconfiguration event with some set of clients. There are two methods of initiating aDHCP Request message after the DHCP Reconfigure messagereconfiguration event. Each hasbeen issued and retransmitted RECONF_MSG_MIN_RETRANS times, according to the algorithm specified in Section 8.its advantages: Reconfigure with payload Thiscan happen when the client is not listening formethod uses the Reconfiguremessage, possibly because the client is a mobile node disconnected from the network, or because the client node has sustained a power outage or operating system crash. In such cases, the server SHOULD reserve any resources issuedmessage. Items to be changed are included as extensions in theclient until the client responds at some future time, until the resource allocation times out (see section 6.6), or until administrative intervention causes the resources to``extensions'' field. This method MUST NOT bemanually returnedused touse.reconfigure releasable resources. Examples of information which can be reconfigured using this method are DNS domain and servers, NTP servers, other name service parameters. The serverSHOULD also log a DHCP System Error. If the server gets another DHCP Request from a client, with a transaction-ID which does not match that of the recently transmitted reconfigure message,generates and sends theserver SHOULD send a DHCP Reply toReconfigure message; clients respond with Reconfigure-reply messages. Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page27]38] Internet Draft DHCPVersion 6 25 February 1999 the client, and waitforRECONF_MSG_RETRANS_INTERVAL, before retransmitting the DHCPIPv6 5 May 2000 Reconfigureagain. 6.6. Client-Resource timeouts Some resources (for instance, a client's IP address) may only be allocated toTrigger This method uses the Reconfigure-init message. When a clientforreceives aparticular length of time (for instance,Reconfigure-init message, it initiates a Request/Reply exchange with thevalid lifetimeserver. Any kind ofan IP address). If the client does not renew theresourceallocation for such a resource, the server MAY make thecan be reconfigured using this method, including releasable resources. An example of an releasable resourceavailable for allocation to another client. However, under administrative control, theis an IP address. A serverMAY reserve any resources issuedcan send Reconfigure and Reconfigure-init messages only tothe client until the client responds at some future time. 7. DHCP Relay Considerations The DHCP protocol is constructed so that a relay does notthose clients who have an address of sufficient scope tomaintain any state in order to mediate DHCP client/server interactions. The DHCP relay enablesbe reachable by the server. Thus, those clients who have not requested an IP address andservers to carry out DHCP protocol transactions. DHCP Solicit messagesareissued by the relay when initiatedoff-link cannot be reconfigured byprospective clients. By default,therelay locates servers by use of multicasting solicitations toserver. Before initiating a reconfigure process, theAll-DHCP-Servers multicast group, but relaysserver SHOULDallow this behavior tobeconfigurable. The relayconfigured with a REC_THRESHOLD threshold value which represents the percentage of clients successfully reconfigured before the reconfigure process is considered a success. See section 3.5 for the default setting of REC_THRESHOLD. Note that the server MUST be able to determinewhichthe set ofits interfaces receivedclients that should receive theclient's solicitation message. 7.1. DHCP Solicitreconfigure, in order to determine when the reconfigure process is complete. 12.4.1. Creation andDHCP Advertise Message Processing Upon receiving a DHCP Solicit message fromsending of Reconfigure messages When creating aprospective client,Reconfigure message, the server SHOULD start out with arelay, by default, forwardsbuffer initialized with zeroed octets. The server sets themessage``msg-type'' field toservers at6. The server generates asite according to the following procedure: - copyingtransaction-ID from theprospective client's solicitation message fields into0--1023 range and inserts it in the ``transaction-ID'' field. The server places its address (of appropriatefields ofscope) in theoutgoing solicitation, - copying a non-link-local address of its interface from which``server-address'' field. The server then generates extensions for thesolicitation was received fromnon-releasable resources to be changed and places them in theclient into``extensions'' field. If therelay-address field, and - settingDHCP domain is using authentication, theprefix-size field appropriately, - by default, settingserver will generate an authentication extension with thehop-count fieldappropriate settings and add that extension as the last extension in theIP header``extensions'' field of thesolicitationReconfigure message. The server multicasts the Reconfigure message to one or more Reconfigure Multicast Addresses previously sent as extensions to thevalue DEFAULT_SOLICIT_HOPCOUNT (see section 8).clients. Note that a server MAY unicast Reconfigure message(s) to specific clients by walking its list of bindings to determine the unicast address(es) of the clients. Whether or not the Reconfigure is multicast or unicast is an implementation detail. A server waits for Reconfigure-reply messages from clients confirming that they have received the Reconfigure. Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page28]39] Internet Draft DHCPVersion 6 25 February 1999 - setting the IP source address to be a site-local or global-scope address belonging to the relay's interface on whichfor IPv6 5 May 2000 12.4.2. Time out and retransmission of Reconfigure messages The server waits RECREP_MSG_TIMEOUT milliseconds, collecting Reconfigure-reply messages. If all theclient's original solicitation wasexpected Reconfigure-reply messages are received,- finally, sendingthen theresulting message to onereconfigure process is successful. If some ormore servers. By default, the relay sends solicitations toall of theAll-DHCP-Servers multicast address, FF05:0:0:0:0:0:1:3. However,expected Reconfigure-reply messages are not received, then therelay MAY be configured with an alternateserveraddress, orretransmits theFQDN of a server. Methods for automatically updating such alternately configuredReconfigure, and doubles the RECREP_MSG_TIMEOUT value, and waits again. The serveraddresses are not specified incontinues thisdocument. When the relay receives a DHCP advertisement, it relaysprocess until all Reconfigure-reply messages are received or REC_MSG_ATTEMPTS unsuccessful attempts have been made, at which time theadvertisement toserver SHOULD abort theclient atreconfigure process. The server SHOULD log theclient's link-local address by wayresult of theinterface indicatedreconfigure process. Default and initial values for RECREP_MSG_TIMEOUT and REC_MSG_ATTEMPTS are documented inthe agent's address field. 7.2. DHCP Request Message Processing When a relay receivessection 3.5. 12.4.3. Receipt of Reconfigure-reply messages Upon receipt of aDHCP Requestvalid Reconfigure-reply message,it SHOULD check thattheIP source address inserver removes that client from theIP headerlist of clients it is expecting alink-local address, that the link-local address matches the link-local address field in the RequestReconfigure-reply messageheader,from. 12.4.4. Creation andthat the agent-address fieldsending of Reconfigure-init messages When creating a Reconfigure-init message, themessage matches an IP address associatedserver SHOULD start out with a buffer initialized with zeroed octets. The server sets theinterface``msg-type'' field to 8. The server generates a transaction-ID fromwhichtheDHCP Request message was received. If any of these checks fail,0--1023 range and inserts it in therelay MUST silently discard``transaction-ID'' field. The server places its address (of appropriate scope) in theRequest message.``server-address'' field. Therelay MUST check whetherserver MAY generate an ERE extension to inform the client of what information has been changed or new information that has been added. If the`S' bitDHCP domain isset inusing authentication, themessage header. If not,server will generate an authentication extension with thepacket is discarded,appropriate settings and add that extension as therelay SHOULD return a DHCP Reply message to the address containedlast extension in theclient's link-local address``extensions'' field of theRequest message, with status ``PoorlyFormed'' (see Section 2.4). If the received request message is acceptable, the relay then transmitsReconfigure-init message. Typically, theDHCP Request message toserver will not provide more than an ERE and / or Authentication extension, since it will provide theaddressnew configuration information as part of the Request/Reply transaction triggered by the Reconfigure-init message. The serverfound inmulticasts theserver-address field ofReconfigure-init message to one or more Reconfigure Multicast Addresses previously sent as extensions to thereceivedclients. Note that a server MAY unicast Reconfigure-init Bound, Carney, Perkins Expires 1 November 2000 [Page 40] Internet Draft DHCPRequest message. Allfor IPv6 5 May 2000 message(s) to specific clients by walking its list of bindings to determine thefieldsunicast address(es) ofDHCPthe clients. Whether or not the Reconfigure-init is multicast or unicast is an implementation detail. A server waits for a Request messagetransmitted byfrom each client confirming that they have received therelayReconfigure-init and arecopied over unchanged fromthus initiating a Request/Reply transaction with theDHCPserver. The server can determine that a Requestreceived from the client. Onlymessage is in response to a Reconfigure-init because thefieldstransaction-ID in theIP headerRequest willdiffer frombe thepacket received fromsame value as was used in theclient. All relays MUST send DHCPReconfigure-init message. 12.4.5. Time out and retransmission of Reconfigure-init messages The server uses the same algorithm and configuration values for sending Reconfigure-init messages as it does with Reconfigure messages. See Section 12.4.2 for this algorithm. 12.4.6. Receipt of Request messages Upon receipt of a valid Requestmessages using the source IP address frommessage with theinterface wheresame transaction-ID as theDHCP request was received. IfReconfigure-init messages it sent, theRelay receives an ICMP error,server removes that client from theRelay SHOULD returnlist of clients it is expecting to initiate aDHCPRequest/Reply transaction. The server generates and sends Replymessagemessage(s) to the clientaddress (which can be foundas described in section 11.6.3, including in thepayload of``extension'' field new values for configuration parameters. If theICMP message [5]),extensions include releasable resources, the server will include two extensions for each resource - one withstatus ``ICMPError'' (see Section 2.4), alongthe original values with theDHCP Relay ICMP Errorlease times set to zero, and another with new values and lease times. Note that the server can terminate the client's ability to use a resource simply by including only the first extension[15].value. 12.5. Client Behavior A client MUST always monitor UDP port 546 for Reconfigure and Reconfigure-init messages on interfaces upon which it has acquired DHCP parameters. Since the results of a reconfiguration event may affect application layer programs, the client SHOULD log these events, and MAY notify these programs of the change through an implementation-specific interface. Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page29]41] Internet Draft DHCPVersion 6 25 February 1999 7.3. DHCP Reply Message Processing When the relay receivesfor IPv6 5 May 2000 12.5.1. Receipt of Reconfigure messages Upon receipt of aDHCP Reply, it MUST check thatvalid Reconfigure message, themessage hasclient extracts the`L' bit set. It MUST check thatconfiguration parameters contained in theclient's link-local address field contains a link-local address. If either check fails,``extensions'' field, and notifies thepacket MUST be silently discarded. If both checksapplication layer that new values for these parameters aresatisfied,available. The client then generates and sends a Reconfigure-reply message to therelay MUST sendserver. 12.5.2. Creation and sending of Reconfigure-reply messages When creating a Reconfigure-reply message, the client SHOULD start out with aDHCP Reply messagebuffer initialized with zeroed octets. The client sets the ``msg-type'' field to 7, and places the link-local addresslisted inof the interface upon which it receivedReply message. OnlythefieldsReconfigure message in theIP header will differ from``client's link-local address'' field. The client copies thepacket receivedvalues of the following fields from theserver, notReconfigure message to thepayload. 8. Retransmission and Configuration Variables When aReconfigure-reply message: o transaction-ID o server-address The clientdoes not receive a DHCP Replysets the ``status'' field appropriately (see the table inresponse to a pending DHCP Request,section 3.4) based upon theclient MUST retransmitresults of processing theidentical DHCP Request, withserver's reconfigure-reply. The client places thesame transaction-ID, toaddress of thesamedestination serveragain until it can be reasonably sure thatin theserver``server-address'' field. If the client isunavailableconfigured to use authentication, the client generates the appropriate authentication extension, andan alternative can be chosen. The DHCP server assumesadds this extension to the ``extensions'' field. Note that the authentication extension MUST be the last extension in the ``extensions'' field. The clienthas receiveddelays theconfiguration information included withsending of theextensions toReconfigure-reply by some random value selected in theDHCP Reply message,range of REC_REP_MIN andit is up toREC_REP_MAX seconds. This delay helps reduce theclient to continue to try for a reasonable amountload on the server generated by processing large numbers oftimeReconfigure-reply messages. Default and initial values for REC_REP_MIN and REC_REP_MAX are documented in section 3.5. The client unicasts the Reconfigure-reply tocompletethetransaction. Alladdress identified in theactions specified``server-address'' field. Sending the Reconfigure-reply completes the reconfiguration process for the client. Bound, Carney, Perkins Expires 1 November 2000 [Page 42] Internet Draft DHCPRequest in this section hold alsoforDHCP ReleaseIPv6 5 May 2000 12.5.3. Receipt of Reconfigure-init messagessent byUpon receipt of a valid Reconfigure-init message, theclient. Similarly, whenclient initiates a Request/Reply transaction with the server. 12.5.4. Creation and sending of Request messages When responding to a Reconfigure-init, the client creates and sendsa DHCPthe Request message inresponse to a Reconfigure message fromexactly theserver,same manner as outlined in section 11.4.1 with the following differences: transaction-ID The clientassumes that the DHCP server has receivedcopies theRequest. The server MUST retransmittransaction-ID from theidentical DHCP Reconfigure toReconfigure-init message into the Request message. Pause before sending Request The client pauses before sending the Request for areasonable number of times to try to elicitrandom value within the range REC_REP_MIN and REC_REP_MAX seconds, as outlined in section 12.5.2. 12.5.5. Time out and retransmission of Requestmessage frommessages The client uses theclient. If no corresponding DHCPsame variables and retransmission algorithm as it does with Requestis received bymessages generated as part of a client-initiated configuration exchange. See section 11.4.2 for details. 12.5.6. Receipt of Reply messages Upon theserver after REQUEST_MSG_MIN_RETRANS retransmissions,receipt of a valid Reply message, theserver MAY erase or deallocate information as needed fromclient extracts theclient's binding, but see section 6.5. Retransmissions occur usingcontents of thefollowing``extension'' field, and sets (or resets) configurationvariables for a DHCP implementation. Theseparameters appropriately. If the configurationvariables MUST be configurableparameters changed were requested byathe application layer, the clientor server: CLIENT_ADV_WAIT The minimum amountnotifies the application layer oftime athe changes using an implementation-specific interface. If the resources changed are releasable, the clientwaitsmakes the appropriate adjustments toreceiveits management of the leases of these resources. 13. Using DHCPAdvertisements after transmitting afor network renumbering An administrator can use DHCPSolicitto renumber links within her DHCP domain through two techniques, passive renumbering and active renumbering. Bound, Carney, Perkins Expires 1 November 2000 [Page 43] Internet Draft DHCP for IPv6 5 May 2000 13.1. Passive Renumbering The administrator can configure her servers to return relatively short preferred and valid lifetimes for the IP addresses she makes available to clients. When she determines that she'd like to renumber a network, she configures her servers through an implementation-specific manner to disallow the extension of the IP address lifetimes on the original network, and adds the new network configuration data to theAll-DHCP Agents multicast address (see section 5.3). Default: 2 seconds Bound, Perkins Expires 25 August 1999 [Page 30] Internet Draft DHCP Version 6 25 February 1999 DEFAULT_SOLICIT_HOPCOUNTserver's database. Thedefault hop-count used inclients on the original network will fail to acquire lifetime extensions on their IPheader by DHCP relaysaddresses, and will request and acquire IP addresses from the new network whensending DHCP Solicit messages on behalfthe valid lifetime ofa client. Default: 4 SERVER_MIN_ADV_DELAY The minimum amountthe original IP addresses approaches expiration. When the lifetimes for all oftime a server waits to transmit a DHCP Advertisement after receiving a DHCP Solicit attheAll-DHCP-Servers or All-DHCP-Agents multicast address. Default: 100 milliseconds SERVER_MAX_ADV_DELAYIP addresses on the original network expire, the network can be considered renumbered. 13.2. Active Renumbering Themaximum amountadministrator can force the renumbering oftime a server waits to transmit a DHCP Advertisement after receiving anetworks in her DHCPSolicit atdomain by using theAll-DHCP Agents multicast address. Default: 1 second REPLY_MSG_TIMEOUTreconfigure feature of DHCP. She instructs her servers of the network renumbering through an implementation-specific interface. Thetimeservers inseconds that a client waitsthe domain will generate Reconfigure-init messages, which will cause the clients toreceive a server's DHCP Reply before retransmittinginitiate aDHCP Request.Request/Reply transaction with the server. Theclient MUST multiply REPLY_MSG_TIMEOUT by a factor of 2 in an exponential mannerservers will include two IP address extensions for eachtime it retransmits until REQUEST_MSG_MIN_RETRANS (below) is attained.IP address being changed. The first will contain the original IP address, with the preferred and valid lifetimes set to zero. The second will contain the new IP address, with non-zero preferred and valid lifetimes. Aclientserver implementation MAYbe configuredpermit the administrator toattempt 2 retransmissions before beginningset the original IP address lifetimes to some small value greater than zero, to allow applications running on theexponential backoff retransmission inclient to orderly transfer to theprevious sentence. Default: 2 seconds. REQUEST_MSG_MIN_RETRANS The minimum number ofnew network over time. 14. DHCPRequest transmissions that a client should retransmit, before abortingClient Implementator Notes This section provides helpful information for therequest. Default: 10 retransmissions. RECONF_MSG_MIN_RETRANSclient implementor regarding their implementations. Theminimum numbertext described here is not part ofDHCP Reconfigure messages that a server should retransmit, before assumingthe protocol, but rather a discussion of implementation features we feel theclient is unavailable. Default: 10 retransmissions.implementor should consider during implementation. Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page31]44] Internet Draft DHCPVersion 6 25 February 1999 RECONF_MSG_RETRANS_INTERVAL The least time in seconds that a server waitsfora client'sIPv6 5 May 2000 14.1. Primary Interface Since configuration parameters acquired through DHCPRequest before each retransmission ofcan be interface-specific or more general, theDHCP Reconfigure. Default: 12 seconds. RECONF_MMSG_MIN_RESP The minimum amount of time beforeclient implementor SHOULD provide a mechanism by which the client implementation canrespondbe configured toaspecify which interface is the primary interface. The client SHOULD always query the DHCPReconfigure message sent todata associated with the primary interface for non-interface specific configuration parameters. An implementation MAY implement amulticast address. Default: 2 seconds. RECONF_MMSG_MAX_RESP The maximum amountlist of interfaces which would be scanned in order to satisfy the general request. In either case, the first interface scanned is considered the primary interface. By allowing the specification oftime beforea primary interface, the clientMUST respond toimplementor identifies which interface is authoritative for non-interface specific parameters, which prevents configuration information ambiguity within the client implementation. 14.2. Advertise Message and Configuration Parameter Caching If the hardware the client is running on permits it, the implementor SHOULD provide aDHCP Reconfigure message sent tocache for Advertise messages and amulticast address. Default: 10 seconds. RECONF_MULTICAST_REQUEST_WAITcache of configuration parameters received through DHCP. Providing these caches prevents unnecessary DHCP traffic and the subsequent load this generates on the servers. Thetime a client should wait before retransmitting a Request message in reponse toimplementor SHOULD provide aretransmitted multicast Reconfigure message. Default: 120 seconds MIN_SOLICIT_DELAY The minimumconfiguration knob for setting the amount of timea prospectivethe cache(s) are valid. 14.3. Time out and retransmission variables Note that the client time out and retransmission variables outlined in section 3.5 can be configured on the server and sent to the client through the use of the ``DHCP Retransmission Parameter Extension'', which isrequireddocumented in the ``extensions document'' [2]. A client implementation SHOULD be able towait, after determining from a Router Advertisement message thatreset these variables using the values from this extension. 14.4. Server Preference A clientshould perform stateful address configuration, beforeMUST wait for SRVR_PREF_WAIT seconds after sending a DHCP Solicit message to collect Advertise messages and compare their preferences (see section 15.3), unless it receives an Advertise message with aserver. Default: 1 second MAX_SOLICIT_DELAY The maximum amountpreference oftime a prospective255. If the clientis required to wait, after determining from a Router Advertisementreceives an Advertise messagethatwith a preference of 255, then the clientshould perform stateful address configuration, before sending a DHCP Solicit to a server. Default: 5 secondsMAY act immediately on that Advertise without waiting for any more additional Advertise messages. Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page32]45] Internet Draft DHCPVersion 6 25 February 1999 XID_TIMEOUT The amount of time afor IPv6 5 May 2000 15. DHCPserver has to keep track of client transaction-IDs in order to make sure that client retransmissions using the same transaction-ID are idempotent. Default: 600 seconds 9. Security Considerations Clients and servers often have to authenticateServer Implementator Notes This section provides helpful information for themessages they exchange. For instance, aservermay wish to be certain that a DHCP Request originated from the client identified byimplementor. 15.1. Client Bindings A server implementation can use the<link-local address, agent-address> fields included withinclient's link-local address and the subnet prefix specification from which the client sent its Requestmessage header. Conversely, it is quite often essentialmessage(s) as an index fora client to be certain that thefinding configuration parametersand addressesassigned to the client. While ithas received were sentisn't critical to keep track of which clients were given information (resources) that isn't releasable, itby an authoritative server. Similarly, aIS critical for the servershould only accept a DHCP Release message which seemstobe from onekeep track ofits clients, ifwhich client it hassome assurance thatassigned releasable resources. The server MUST include theclient actually did transmittransaction-ID from theRelease message. Again, a client might wish to only accept DHCP Reconfigure messagesclient's Request along with the releasable resource identifier(s) within the binding. This is done so thatare certain to have originated from athe serverwith authority to issue them. The IPv6 Authentication Headercanprovide security for DHCPv6 messages when both endpoints have a suitable IP address. However,detect whether a clientoften has onlyRequest is alink-local address, and suchretransmission of anaddress is not sufficientearlier Request or an entirely new Request. The server should periodically scan its bindings forareleasable resources whose leases have expired. When the serverwhich is off-link. In those circumstancesfinds expired resource assignments, it MUST delete these assignments, thereby making these resources available to other clients. The client bindings MUST be stored in non-volatile storage. The server implementation should provide policy knobs to control whether or not theDHCP relaylease on a releasable resource isinvolved, so that the DHCP messagerenewable, and by how long. 15.2. Reconfigure Considerations A server implementation MUSThave the relay's address inprovide an interface to theIP destination address field, even thoughadministrator for initiating reconfigure events. A server implementation may provide a mechanism for allowing theclient aims to deliverspecification of how many clients comprise a reconfigure multicast group. This enables themessageadministrator to control theserver. The DHCP Client-Server Authentication Extension [15] is intended to be used in these circumstances. Note that, ifhit aclient receivesserver takes when aDHCP message which fails authentication, it should continue to wait for another message which might be correctly authenticated just as if the failed message had never arrived; however, receiving such failed messagesreconfigure event occurs. 15.3. Server Preference The server implementation SHOULDbe logged. 10. Year 2000 considerations Since all times are relative toallow thecurrent timesetting of a server preference value by thetransaction, thereadministrator. The server preference variable isno problem withinan unsigned single octet value (0--255), with theDHCPv6 protocol related to any hardcoded dates or two-digit representation oflowest preference being 0 and thecurrent year.highest 255. Clients will choose higher preference servers over those with lower preference values. If you Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page33]46] Internet Draft DHCPVersion 6 25 February 1999 11. IANA Considerations This document defines message types 1-7 to be received by UDP at port numbers 546 and 547. Additional message types may be defined in the future. Section 3.3 specifies the use of several multicast groups, with multicast addresses FF02:0:0:0:0:0:1:2, FF05:0:0:0:0:0:1:3, and FF05:0:0:0:0:0:1:4. This document also defines several status codes that are to be returned with the DHCP Reply message (see section 4.4). The nonzero valuesforthese status codes which are currently specified are shown in section 2.4. There is a DHCPv6 extension [15] which allows clients and serversIPv6 5 May 2000 don't choose toexchange values for some of the timing and retransmission parameters defines in section 8. Adding new parametersimplement this feature in your server, you MUST set thefuture would require extendingserver preference field to 0 in thevaluesAdvertise messages generated bywhich the parameters are indicatedyour server. 15.4. Request Message Transaction-ID Cache In order to improve performance, a server implementation MAY include an in memory transaction-ID cache. This cache is indexed by client binding and transaction-ID, and enables theDHCP extension. Since there needsserver tobequickly determine whether alist kept,Request is a retransmission or a new Request without thedefault values for each parameter should also be stored as partcost of a database lookup. If an implementor chooses to implement this cache, then they SHOULD provide a configuration knob to tune thelist. Alllifetime ofthese protocol elements may be specified to assume new values at some point inthefuture. New values should be approved bycache entries. 16. DHCP Relay Implementator Notes A relay implementation SHOULD allow theprocessspecification ofIETF Consensus [12]. 12. Acknowledgements Thanks to the DHC Working Groupa list of destination addresses fortheir time and input into the specification. Ralph DromsSolicit messages. This list MAY contain any mixture of unicast addresses andThomas Narten have hadmulticast addresses. If amajor rolerelay receives an ICMP message inshaping the continued improvement of the protocol by their careful reviews. Many thanksresponse toMatt Crawford, Erik Nordmark, Gerald Maguire, and Mike Carneya DHCP message it has forwarded, it SHOULD log this event. 17. Open Issues fortheir studied review as part of the Last Call process. Thanks alsoWorking Group Discussion This section contains some items forthe consistent input, ideas, and reviewdiscussion by(in alphabetical order) Brian Carpenter, Jack McCann, Yakov Rekhter, Matt Thomas, Sue Thomson, and Phil Wells. Thanks to Steve Deering and Bob Hinden, whothe working group. 17.1. Trade-offs: Optional fields in DHCP messages You'll notice that the message formats haveconsistently takenchanged. In particular, some of thetime to discussoptional fields are now required. This will increase themore complex partssize of DHCP messages in some cases, consuming network bandwidth and memory on theIPv6 specifications. A. ChangesDHCP client (an issue forthis revision - Fixed grammatical and clarity problems. - Added saved agent-address fieldsmall devices such as PDAs). The changes were made for the following reasons: o Fields that were used most of the time were made required. o Some fields that were optional were either made required or added to messages which previously didn't have them. This was done for robustness reasons (receivers can validate that thesolicitmessage is for them, andaltered and enhanced references toin theC bit use.case of clients, know which interface the message is intended for). o Simplicity. Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page34]47] Internet Draft DHCPVersion 6 25 February 1999 - Removed all references of agent-address prefixfor IPv6 5 May 2000 Please look at the messages asitthey are now defined, and let us know your opinion. 17.2. Use DHCPv4 authentication or the current DHCPv6 method? Now that the DHCPv4 authentication draft isimplied byin last call, should we use the technique described in that document to provide authentication for DHCPv6, or should we continue with the authentication technique currently documented in theagent-addressextensions draft? 17.3. The Reconfigure Message and Subnet Prefix Extensions The drafts currently specify that Releasable resources (such as an IP address) can only beused as such by implementors. - Verified all binding dependencies usereconfigured using thelink-local address and agent-address. - AddedReconfigure-init trigger message. This was done for simplicity (enables clientsin what cases SHOULD retain specific addresses whento perform DAD on theclient is not stationary. - Updated DHCP terminology sectionnew address andre-ordered. - Put RFC 2119 terms in lower case, in section 3.1. - Changed definitionreturn the appropriate result to the server) using the same mechanism as a standard Request/Reply/Release exchange. This method also makes no assumptions about the charactistics oftransaction-ID and specified rangesthe releasable resource. However, forclient and server use. - AddedIP addresses with interface IDs, one could send out two IP address extensions, one for the old prefix andfixed text to clarify use of Reconfigure messageone for the new, and cause clientsin all relevant sections. - Added words in spectodifferentiate format section from processing section. - Added retransmission algorithm for Reconfigure multicast messageschange the prefix andnew configuration parameter.thus renumber over time. This scheme avoids the added DHCP Request traffic -Differentiated processing for requests byclientswhen received from Reconfigureacknowledge with a Reconfigure-reply message.- Added more words when binding cache17.4. ``R'' bit in Request message not needed? Now that the transaction-ID isused for XID timeout. - Added exponential backoff to client retransmissions. - Updatedstored along with thereferences section. B. Related Protocol Specifications Related workreleasable resource identifier inIPv6 that would best servea client's binding, the transaction-ID cache becomes animplementor to study isoptional feature of theIPv6 Specification [7],DHCP server implementation, not a requirement of theIPv6 Addressing Architecture [9], IPv6 Stateless Address Autoconfiguration [20], IPv6 Neighbor Discovery Processing [14],protocol. Should we do away with the ``R'' bit? 18. Security Considerations Clients andDynamic Updates to DNS [22]. These specifications enable DHCPservers often have tobuild uponauthenticate theIPv6 workmessages they exchange. For instance, a server may wish toprovide both robust stateful autoconfiguration and autoregistration of DNS Host Names. The IPv6 Specification providesbe certain that a Request originated from thebase architecture and design of IPv6. A key pointclient identified by the <link-local address, subnet-prefix> fields included within the Request message header. Conversely, it is quite often essential forDHCP implementorsa client tounderstand is that IPv6 requiresbe certain thatevery link intheinternet haveconfiguration parameters and addresses it has received were sent to it by anMTUauthoritative server. Similarly, a server should only accept a Release message which seems to be from one of1500 octets or greater (in IPv4 the requirement is 68 octets). This meansits clients, if it has some assurance that the client actually Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page35]48] Internet Draft DHCPVersion 6 25 February 1999 a UDP packet of 536 octets will always pass through an internet (less 40 octetsfortheIPv6header), as long as there5 May 2000 did transmit the Release message. Again, a client might wish to only accept Reconfigure or Reconfigure-init messages that areno IP options priorcertain tothe UDP header in the packet. But,have originated from a server with authority to issue them. The IPv6doesAuthentication Header can provide security for DHCPv6 messages when both endpoints have a suitable IP address. However, a client often has only a link-local address, and such an address is notsupport fragmentation at routers,sufficient for a server which is off-link. In those circumstances the relay is involved, so thatfragmentation takes place end-to-end between hosts. Ifthe DHCP message MUST have the relay's address in the IP destination address field, even though the client aims to deliver the message to the server. The DHCP Client-Server Authentication Extension [2] is intended to be used in these circumstances. Note that, if a client receives a DHCPimplementation needsmessage which fails authentication, it should continue to wait for another message which might be correctly authenticated just as if the failed message had never arrived; however, receiving such failed messages SHOULD be logged. 19. Year 2000 considerations Since all times are relative tosend a packet greater than 1500 octets it can either fragmenttheUDP packet into fragmentscurrent time of1500 octets or less, or use Path MTU Discovery [11] to determinethesizetransaction, there is no problem within the DHCPv6 protocol related to any hardcoded dates or two-digit representation of thepacket that will traverse a network path. It is implementation dependent how this is accomplished in DHCP. Path MTU Discovery for IPv6 is supported for bothcurrent year. 20. IANA Considerations This document defines message types 1--8 to be received by UDP at port numbers 546 andTCP and can cause end-to-end fragmentation when the PMTU changes for a destination. The IPv6 Addressing Architecture specification [9] defines the address scope that can547. Additional message types may beuseddefined inan IPv6 implementation, and the various configuration architecture guidelines for network designers oftheIPv6 address space. Two advantages of IPv6 are that support forfuture. Section 3.1 lists several multicastis required, and nodes can create link-localaddressesduring initialization.used by DHCP. Thismeansdocument also defines several status codes thata client can immediately use its link-local address and a well-known multicast address to begin communicationsare todiscover neighbors onbe returned with thelink. For instance, a client can send a DHCP SolicitReply andlocate a server or relay. IPv6 Stateless Address Autoconfiguration [20] (Addrconf) specifies procedures byReconfigure-reply messages (see sections 9.4 and 9.7). The non-zero values for these status codes which are currently specified are shown in the table in section 3.4. There is anode may autoconfigure addresses based on router advertisements [14],DHCPv6 extension [2] which allows clients andthe use of a valid lifetimeservers tosupport renumberingexchange values for some ofaddresses ontheInternet. In additiontiming and retransmission parameters defined in section 3.5. Adding new parameters in theprotocol interactionfuture would require extending the values by whicha node begins stateless or stateful autoconfiguration is specified.the parameters are indicated in the DHCPis one vehicleextension. Since there needs toperform stateful autoconfiguration. Compatibility with Addrconf isbe adesign requirementlist kept, the default values for each parameter should also be stored as part of the list. Bound, Carney, Perkins Expires 1 November 2000 [Page 49] Internet Draft DHCP(see Section 3.1).for IPv6Neighbor Discovery [14] is the node discovery5 May 2000 All of these protocol elements may be specified to assume new values at some point inIPv6 which replaces and enhances functionsthe future. New values should be approved by the process ofARP [16]. To understand IPv6 and Addrconf it is strongly recommended that implementors understand IPv6 Neighbor Discovery. Dynamic UpdatesIETF Consensus [11]. 21. Acknowledgements Thanks toDNS [22] is a specification that supportsthedynamic update of DNS recordsDHC Working Group forboth IPv4their time andIPv6. DHCP can useinput into thedynamic updates to DNSspecification. Ralph Droms and Thomas Narten have had a major role in shaping the continued improvement of the protocol by their careful reviews. Many thanks tointegrate addressesMatt Crawford, Erik Nordmark, Gerald Maguire, and Mike Carney for their studied review as part of the Last Call process. Thanks also for the consistent input, ideas, and review by (in alphabetical order) Brian Carpenter, Jack McCann, Yakov Rekhter, Matt Thomas, Sue Thomson, andname space to not only support autoconfiguration, but also autoregistration in IPv6. The security modelPhil Wells. Thanks tobe used with DHCPv6 should conform as closely as possibleSteve Deering and Bob Hinden, who have consistently taken the time to discuss theauthentication model outlined in [10]. Bound, Perkins Expires 25 August 1999 [Page 36] Internet Draft DHCP Version 6 25 February 1999 C.more complex parts of the IPv6 specifications. A. Comparison between DHCPv4 and DHCPv6 This appendix is provided for readers who will find it useful to see a model and architecture comparison between DHCPv4[8,[7, 1] and DHCPv6. There are three key reasons for the differences: o IPv6 inherently supports a new model and architecture for communications and autoconfiguration of addresses. o DHCPv6 benefits from the new IPv6 features. o New features were added to support the expected evolution and the existence of more complicated Internet network service requirements. IPv6 Architecture/Model Changes: o The link-local address permits a node to have an address immediately when the node boots, which means all clients have a source IP address at all times to locateaan on-link server orrelay agent on the local link.relay. o The need for BOOTP compatibility and the broadcastflags isflag have been removed. o Multicast and address scoping in IPv6 permit the design of discovery packets that would inherently define their range by the multicast address for the function required. Bound, Carney, Perkins Expires 1 November 2000 [Page 50] Internet Draft DHCP for IPv6 5 May 2000 o Stateful autoconfiguration has to coexist and integrate with stateless autoconfiguration supporting Duplicate Address Detection and the two IPv6 lifetimes, to facilitate the dynamic renumbering of addresses and the management of those addresses. o Multiple addresses per interface are inherently supported in IPv6. oManySome DHCPv4 options are unnecessary now because the configuration parameters are either obtained through IPv6 Neighbor Discovery or the Service Location protocol[21].[16]. DHCPv6 Architecture/Model Changes: o The message type is the first byte in the packet. o IPv6 Address allocations are now handled in a message extension as opposed to the message header. o Client/Server bindings are now mandatory and take advantage of the client's link-local address to always permit communicationsBound, Perkins Expires 25 August 1999 [Page 37] Internet Draft DHCP Version 6 25 February 1999either directly from an on-link server, or from aremoteoff-link server through an on-linkrelay-agent.relay. o Servers are discovered by a clientsolicit,Solicit, followed by a serveror relay-agent advertisement.Advertise message o The client will know if the server is on-link or off-link. o The on-linkrelay-agent locates remoterelay may locate off-link server addresses from system configuration or by the use of asite widesite-wide multicast packet. o ACKs and NAKs are not used. o The server assumes the client receives its responses unless it receives a retransmission of the same client request. This permits recovery in the case where the network has faulted. o Clients can issue multiple, unrelatedDHCPRequest messages to the same or different servers. o The function of DHCPINFORM is inherent in the new packet design; a client can request configuration parameters other than IPv6 addresses in the optional extension headers. o Clients MUST listen to their UDP port for the new Reconfigure message from servers. Bound, Carney, Perkins Expires 1 November 2000 [Page 51] Internet Draft DHCP for IPv6 5 May 2000 o New extensions have been defined. With the changes just enumerated, we can support new user features, including o Configuration of Dynamic Updates to DNS o Address deprecation, for dynamic renumbering. o Relays can be preconfigured with server addresses, or use of multicast. o Authentication o Clients can ask for multiple IP addresses. o Addressesallocated with too-long lifetimescan be reclaimed using theReconfigureReconfigure-init message. o Integration between stateless and stateful address autoconfiguration.Bound, Perkins Expires 25 August 1999 [Page 38] Internet Draft DHCP Version 6 25 February 1999o Enablingrelay-agentsrelays to locateremote servers for a link. D.off-link servers. B. Full Copyright Statement Copyright (C) The Internet Society(1998).(2000). 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 assigns. 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 Bound, Carney, Perkins Expires 1 November 2000 [Page 52] Internet Draft DHCP for IPv6 5 May 2000 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. References [1] S. Alexander and R. Droms. DHCP Options and BOOTP Vendor Extensions.RFCRequest for Comments (Draft Standard) 2132, Internet Engineering Task Force, March 1997. [2] J. Bound, M. Carney, and C. Perkins. Extensions for the Dynamic Host Configuration Protocol for IPv6. draft-ietf-dhc-dhcpv6ext-12.txt, May 2000. (work in progress). [3] S. Bradner. KeyWordswords forUseuse in RFCs to Indicate Requirement Levels.RFCRequest for Comments (Best Current Practice) 2119, Internet Engineering Task Force, March 1997.[3][4] S. Bradner and A. Mankin. The Recommendation for the IP Next Generation Protocol.RFC 1752, January 1995. [4] A. Conta and S. Deering. Internet Control Message Protocol (ICMPv6)Request fortheComments (Proposed Standard) 1752, InternetProtocol Version 6 (IPv6). RFC 1885, DecemberEngineering Task Force, January 1995. [5]A. Conta and S. Deering. RFC 2463: Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Bound, Perkins Expires 25 August 1999 [Page 39]W. J. Croft and J. Gilmore. Bootstrap Protocol. Request for Comments 951, InternetDraft DHCP Version 6 25 February 1999 Specification, December 1998. Obsoletes RFC1885 [4]. Status: DRAFT STANDARD.Engineering Task Force, September 1985. [6] S. Deering and R. Hinden. Internet Protocol, Version 6 (IPv6) Specification.RFC 1883, December 1995. [7] S. Deering and R. Hinden. RFC 2460:Request for Comments (Draft Standard) 2460, InternetProtocol, Version 6 (IPv6) specification,Engineering Task Force, December 1998.Obsoletes RFC1883 [6]. Status: DRAFT STANDARD. [8][7] R. Droms. Dynamic Host Configuration Protocol.RFCRequest for Comments (Draft Standard) 2131, Internet Engineering Task Force, March 1997.[9][8] R. Hinden and S. Deering. IP Version 6 Addressing Architecture.RFCRequest for Comments (Proposed Standard) 2373, Internet Engineering Task Force, July 1998.[10][9] S. Kent and R. Atkinson.RFC 2402:IPauthentication header,Authentication Header. Request for Comments (Proposed Standard) 2402, Internet Engineering Task Force, November 1998.Status: PROPOSED STANDARD. [11][10] J. McCann, S. Deering, and J. Mogul. Path MTU Discovery for IP version 6.RFCRequest for Comments (Proposed Standard) 1981, Internet Engineering Task Force, August 1996.[12][11] T. Narten and H. Alvestrand.RFC 2434:Guidelines forwritingWriting an IANAconsiderations sectionConsiderations Section inRFCs,RFCs. Request for Comments (Best Current Practice) 2434, Internet Engineering Task Force, October 1998.Status: BEST CURRENT PRACTICE. [13]Bound, Carney, Perkins Expires 1 November 2000 [Page 53] Internet Draft DHCP for IPv6 5 May 2000 [12] T. Narten, E. Nordmark, and W. Simpson. Neighbor Discovery for IPversionVersion 6 (IPv6).RFC 1970, August 1996. [14] T. Narten, E. Nordmark, and W. Simpson. RFC 2461: Neighbor discoveryRequest forIP Version 6 (IPv6),Comments (Draft Standard) 2461, Internet Engineering Task Force, December 1998.Obsoletes RFC1970 [13]. Status: DRAFT STANDARD. [15] C. Perkins. Extensions for the Dynamic Host Configuration Protocol for IPv6. draft-ietf-dhc-dhcpv6ext-11.txt, February 1999. (work in progress). [16] David[13] D. C. Plummer.AnEthernet Address Resolution Protocol: OrConverting Network Protocol Addressesconverting network protocol addresses to 48.bit EthernetAddressesaddress forTransmissiontransmission on EthernetHardware. RFChardware. Request for Comments (Standard) 826, Internet Engineering Task Force, November 1982.[17][14] J.B.Postel. User Datagram Protocol.RFCRequest for Comments (Standard) 768, Internet Engineering Task Force, August 1980.[18] J. B. Postel, Editor. Internet Protocol. RFC 791, September 1981. [19][15] S. Thomson and T. Narten. IPv6 Stateless Address Autoconfiguration.RFC 1971, August 1996. Bound, Perkins Expires 25 August 1999 [Page 40]Request for Comments (Draft Standard) 2462, InternetDraft DHCP Version 6 25 February 1999 [20] S. Thomson and T. Narten. RFC 2462: IPv6 stateless address autoconfiguration,Engineering Task Force, December 1998.Obsoletes RFC1971 [19]. Status: DRAFT STANDARD. [21][16] J. Veizades, E. Guttman, C. Perkins, and S. Kaplan. Service Location Protocol.RFCRequest for Comments (Proposed Standard) 2165,JulyInternet Engineering Task Force, June 1997.[22][17] P. Vixie, Ed., S. Thomson, Y. Rekhter, and J. Bound. Dynamic Updates in the Domain Name System(DNS). RFC(DNS UPDATE). Request for Comments (Proposed Standard) 2136, Internet Engineering Task Force, April 1997. Bound, Carney, Perkins Expires 1 November 2000 [Page 54] Internet Draft DHCP for IPv6 5 May 2000 Chair's Address The working group can be contacted via the current chair: Ralph Droms Computer Science Department 323 Dana Engineering Bucknell University Lewisburg, PA 17837 Phone:(717) 524-1145(570) 577-1145 E-mail: droms@bucknell.edu Author's Address Questions about this memo can be directed to: Jim BoundCharles E. PerkinsCompaq Computer CorporationSun Microsystems LaboratoriesMail Stop: ZK03-3/U14 110 SpitbrookRoad, ZKO3-3/U14 15 Network CircleRoad Nashua, NH 03062Menlo Park, CA 94025 USAUSA Phone: +1-603-884-0400Phone: +1 650 786-6464 EMail:Email: bound@zk3.dec.com Mike Carney Sun Microsystems, Inc Mail Stop: UMPK17-202 901 San Antonio Road Palo Alto, CA 94303-4900 USA Phone: +1-650-786-4171 Email: mwc@eng.sun.com Charles E. Perkins Communications Systems Lab Nokia Research Center 313 Fairchild Drive Mountain View, California 94043 USA Phone: +1-650 625-2986 EMail:cperkins@eng.sun.comcharliep@iprg.nokia.com Fax: +1 650786-6445625-2502 Bound, Carney, Perkins Expires25 August 19991 November 2000 [Page41]55] ----