view Side-By-Side changes
Internet Engineering Task Force J. Bound INTERNET DRAFT Compaq DHC Working Group M. Carney Obsoletes:draft-ietf-dhc-dhcpv6-22.txtdraft-ietf-dhc-dhcpv6-23.txt Sun Microsystems, Inc C. Perkins Nokia Research Center Ted Lemon Nominum Bernie Volz Ericsson R. Droms(ed.) Cisco Systems1 Feb22 Apr 2002 Dynamic Host Configuration Protocol for IPv6 (DHCPv6)draft-ietf-dhc-dhcpv6-23.txtdraft-ietf-dhc-dhcpv6-24.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 dhcwg@ietf.org 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 for IPv6 (DHCP) enables DHCP servers to pass configuration parameters such as IPv6 network addresses to IPv6 nodes. It offers the capability of automatic allocation of reusable network addresses and additional configuration flexibility. This protocol is a stateful counterpart to "IPv6 Stateless Address Autoconfiguration" (RFC2462), and can be used Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page i] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002Stateless Address Autoconfiguration" [21], and can be usedseparately or concurrently with the latter to obtain configuration parameters. Contents Status of This Memo i Abstract i 1. Introduction and Overview 12. Requirements 2 3. Background 2 4. Design Goals 3 5. Non-Goals 4 6. Terminology 4 6.1. IPv6 Terminology1.1. Protocols and addressing . . . . . . . . . . . . . . . . 2 1.2. Protocol implementation . . . .4 6.2. DHCP Terminology. . . . . . . . . . . . . 2 1.3. Client-server exchanges involving two messages . . . . . 3 1.4. Client-server exchanges involving four messages . .5 7. DHCP Constants 7 7.1. Multicast Addresses. . . 3 2. Requirements 4 3. Background 4 4. Terminology 5 4.1. IPv6 Terminology . . . . . . . . . . . . . . . .7 7.2. UDP ports. . . . 5 4.2. DHCP Terminology . . . . . . . . . . . . . . . . . . . .7 7.3.6 5. DHCPmessage typesConstants 8 5.1. Multicast Addresses . . . . . . . . . . . . . . . . . . . 87.4. Status Codes . . . . . . . . . . . . . . . . . .5.2. Anycast address . . . .9 7.4.1. Generic Status Codes. . . . . . . . . . . . . .9 7.4.2. Server-specific Status Codes. . . 8 5.3. UDP ports . . . . . . .10 7.5. Configuration Variables. . . . . . . . . . . . . . . . .11 8. Message Formats 11 8.1.8 5.4. DHCPSolicit Message Format . .message types . . . . . . . . . . . . .12 8.2. DHCP Advertise Message Format. . . . . . 9 5.5. Status Codes . . . . . . . .12 8.3. DHCP Request Message Format. . . . . . . . . . . . . . 10 5.6. Configuration Parameters .12 8.4. DHCP Confirm Message Format. . . . . . . . . . . . . . .13 8.5. DHCP Renew11 6. MessageFormat .Formats 11 7. Relay agent messages 12 7.1. Relay-forward message . . . . . . . . . . . . . . .13 8.6. DHCP Rebind Message Format. . . 13 7.2. Relay-reply message . . . . . . . . . . . .13 8.7. DHCP Reply Message Format. . . . . . . 14 8. Representation and use of domain names 14 9. DHCP unique identifier (DUID) 14 9.1. DUID contents . . . . . . . . .13 8.8. DHCP Release Message Format. . . . . . . . . . . . . 15 9.2. DUID based on link-layer address plus time . .13 8.9. DHCP Decline Message Format. . . . . 15 9.3. Vendor-assigned unique ID based on Domain Name (VUID-DN) 16 9.4. Vendor-assigned unique ID based on Enterprise Number (VUID-EN) . . . . . . . . . .14 8.10. DHCP Reconfigure Message Format. . . . . . . . . . . . 17 9.5. Link-layer address .14 8.11. Information-Request Message Format. . . . . . . . . . .14 9. Relay messages 14 9.1. Relay-forward message. . . . . . .. . . . . . . . . . . 15 9.2. Relay-reply message . . . . . . . . . . . . . . . . . . . 1618 10.Representation and use of domain names 16Identity association 19 11.DHCP unique identifier (DUID) 16Selecting addresses for assignment to an IA 20 12. Management of temporary addresses 21 Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page ii] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 200211.1. DUID contents . . . . . . . . . . . . . . . . . . . . . . 17 11.2. DUID based on link-layer address plus time . . . . . . . 17 11.3. Vendor-assigned unique ID (VUID) . . . . . . . . . . . . 18 11.4. Link-layer address . . . . . . . . . . . . . . . . . . . 19 12. Identity association 2013.Selecting addresses for assignment to an IATransmission of messages by a client 21 14.Management of temporary addresses 22 15.Reliability of Client Initiated Message Exchanges23 16.21 15. Message validation24 16.1.23 15.1. Use of Transaction-ID field . . . . . . . . . . . . . . .24 16.2.23 15.2. Solicit message . . . . . . . . . . . . . . . . . . . . .25 16.3.23 15.3. Advertise message . . . . . . . . . . . . . . . . . . . .25 16.4.24 15.4. Request message . . . . . . . . . . . . . . . . . . . . .25 16.5.24 15.5. Confirm message . . . . . . . . . . . . . . . . . . . . .25 16.6.24 15.6. Renew message . . . . . . . . . . . . . . . . . . . . . .26 16.7.24 15.7. Rebind message . . . . . . . . . . . . . . . . . . . . .26 16.8.25 15.8. Decline messages . . . . . . . . . . . . . . . . . . . .26 16.9.25 15.9. Release message . . . . . . . . . . . . . . . . . . . . .27 16.10.25 15.10. Reply message . . . . . . . . . . . . . . . . . . . . . .27 16.11.25 15.11. Reconfigure message . . . . . . . . . . . . . . . . . . .27 16.12.26 15.12. Information-request message . . . . . . . . . . . . . . .27 16.13.26 15.13. Relay-forward message . . . . . . . . . . . . . . . . . .28 16.14.26 15.14. Relay-reply message . . . . . . . . . . . . . . . . . . .28 17.26 16. Client Source Address and Interface Selection28 18.26 17. DHCP Server Solicitation28 18.1.27 17.1. Client Behavior . . . . . . . . . . . . . . . . . . . . .29 18.1.1.27 17.1.1. Creation of Solicit messages . . . . . . . . . .29 18.1.2.27 17.1.2. Transmission of Solicit Messages . . . . . . . .29 18.1.3.28 17.1.3. Receipt of Advertise messages . . . . . . . . . . 29 17.1.4. Receipt of Reply message . . . . . . . . . . . . 3018.2.17.2. Server Behavior . . . . . . . . . . . . . . . . . . . . .31 18.2.1.30 17.2.1. Receipt of Solicit messages . . . . . . . . . . .31 18.2.2.30 17.2.2. Creation and transmission of Advertise messages . 30 17.2.3. Creation and Transmission of Reply messages . . . 3119.18. DHCP Client-Initiated Configuration Exchange 3219.1.18.1. Client Behavior . . . . . . . . . . . . . . . . . . . . .33 19.1.1.32 18.1.1. Creation and transmission of Request messages . .33 19.1.2.32 18.1.2. Creation and transmission of Confirm messages . . 3419.1.3.18.1.3. Creation and transmission of Renew messages . . . 3519.1.4.18.1.4. Creation and transmission of Rebind messages . .37 19.1.5.36 18.1.5. Creation and Transmission of Information-request messages . . . . . . . . . . . . . . . . .38 19.1.6.37 18.1.6. Receipt of Reply message in response to a Request, Confirm, Renew, Rebind or Information-request message . . . . . . . . . . . . . . . . . 3819.1.7.18.1.7. Creation and transmission of Release messages . .40 Droms (ed.), et al. Expires 1 Aug 2002 [Page iii] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002 19.1.8.39 18.1.8. Receipt of Reply message in response to a Release message . . . . . . . . . . . . . . . . .41 19.1.9.40 18.1.9. Creation and transmission of Decline messages . .41 19.1.10.40 18.1.10. Receipt of Reply message in response to a Decline message . . . . . . . . . . . . . . . . .42 19.2.41 18.2. Server Behavior . . . . . . . . . . . . . . . . . . . . .42 19.2.1.41 18.2.1. Receipt of Request messages . . . . . . . . . . .42 19.2.2.41 18.2.2. Receipt of Confirm messages . . . . . . . . . . .43 19.2.3.42 Droms (ed.), et al. Expires 22 Oct 2002 [Page iii] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 18.2.3. Receipt of Renew messages . . . . . . . . . . . .44 19.2.4.43 18.2.4. Receipt of Rebind messages . . . . . . . . . . .45 19.2.5.44 18.2.5. Receipt of Information-request messages . . . . .46 19.2.6.44 18.2.6. Receipt of Release messages . . . . . . . . . . .47 19.2.7.45 18.2.7. Receipt of Decline messages . . . . . . . . . . .47 19.2.8.45 18.2.8. Transmission of Reply messages . . . . . . . . .47 20.46 19. DHCP Server-Initiated Configuration Exchange48 20.1.46 19.1. Server Behavior . . . . . . . . . . . . . . . . . . . . .48 20.1.1.46 19.1.1. Creation and transmission of Reconfigure messages48 20.1.2.46 19.1.2. Time out and retransmission of Reconfigure messages . . . . . . . . . . . . . . . . .49 20.1.3.47 19.1.3. Receipt of Renew messages . . . . . . . . . . . .49 20.2.47 19.2. Receipt of Information-request messages . . . . . . . . .49 20.3.48 19.3. Client Behavior . . . . . . . . . . . . . . . . . . . . .50 20.3.1.48 19.3.1. Receipt of Reconfigure messages . . . . . . . . .50 20.3.2.48 19.3.2. Creation and transmission of Renew messages . . .51 20.3.3.49 19.3.3. Creation and transmission of Information-request messages . . . . . . . . . . . . . . . . .51 20.3.4.49 19.3.4. Time out and retransmission of Renew or Information-request messages . . . . . . .51 20.3.5.49 19.3.5. Receipt of Reply messages . . . . . . . . . . . .51 21.49 20. Relay Agent Behavior52 21.1.50 20.1. Relaying of client messages . . . . . . . . . . . . . . .52 21.2.50 20.2. Relaying of server messages . . . . . . . . . . . . . . .52 22.50 21. Authentication of DHCP messages53 22.1.51 21.1. DHCP threat model . . . . . . . . . . . . . . . . . . . .53 22.2.51 21.2. Security of messages sent between servers and relay agents54 22.3.52 21.3. Summary of DHCP authentication . . . . . . . . . . . . .54 22.4.52 21.4. Replay detection . . . . . . . . . . . . . . . . . . . .54 22.5. Configuration token protocol . . . . . . . . . . . . . . 54 22.6.52 21.5. Delayed authentication protocol . . . . . . . . . . . . .55 22.6.1.53 21.5.1. Management issues in the delayed authentication protocol . . . . . . . . . . . . . . . . .55 22.6.2.53 21.5.2. Use of the Authentication option in the delayed authentication protocol . . . . . . . . .55 22.6.3.53 21.5.3. Message validation . . . . . . . . . . . . . . .56 22.6.4.54 21.5.4. Key utilization . . . . . . . . . . . . . . . . .57 22.6.5.54 21.5.5. Client considerations for delayed authentication protocol . . . . . . . . . . . . . . . . .57 22.6.6.55 21.5.6. Server considerations for delayed authentication protocol . . . . . . . . . . . . . . . . .59 Droms (ed.), et al. Expires 1 Aug 2002 [Page iv] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002 23.57 22. DHCP options60 23.1.57 22.1. Format of DHCP options . . . . . . . . . . . . . . . . .60 23.2.58 22.2. Client Identifier option . . . . . . . . . . . . . . . .60 23.3.58 22.3. Server Identifier option . . . . . . . . . . . . . . . .61 23.4.59 22.4. IdentityassociationAssociation option . . . . . . . . . . . . . . . 59 22.5. Identity Association for Temporary Addresses option . . . 6123.5.22.6. IA Address option . . . . . . . . . . . . . . . . . . . . 6323.6. Requested Temporary Addresses (RTA) Option . . . . . . . 65 23.7.22.7. Option Request option . . . . . . . . . . . . . . . . . .65 23.8.64 22.8. Preference option . . . . . . . . . . . . . . . . . . . .66 23.9.64 Droms (ed.), et al. Expires 22 Oct 2002 [Page iv] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 22.9. Elapsed Time . . . . . . . . . . . . . . . . . . . . . .67 23.10.65 22.10. Client message option . . . . . . . . . . . . . . . . . .67 23.11.66 22.11. Server message option . . . . . . . . . . . . . . . . . .68 23.12.66 22.12. Authentication option . . . . . . . . . . . . . . . . . .68 23.13.67 22.13. Server unicast option . . . . . . . . . . . . . . . . . .69 23.14.68 22.14. Status Code Option . . . . . . . . . . . . . . . . . . .70 23.15. User Class Option .68 22.15. Rapid Commit option . . . . . . . . . . . . . . . . . . .70 23.16.69 22.16. User Class Option . . . . . . . . . . . . . . . . . . . . 69 22.17. Vendor Class Option . . . . . . . . . . . . . . . . . . . 70 22.18. Vendor-specific Information option . . . . . . . . . . . 7123.17.22.19. Interface-Id Option . . . . . . . . . . . . . . . . . . . 7224.22.20. Reconfigure Message option . . . . . . . . . . . . . . . 73 23. Security Considerations 7325.24. Year 2000 considerations 7326.25. IANA Considerations74 26.1.73 25.1. Multicast addresses . . . . . . . . . . . . . . . . . . . 7426.2.25.2. Anycast addresses . . . . . . . . . . . . . . . . . . . . 74 25.3. DHCPv6 message types . . . . . . . . . . . . . . . . . . 7426.3.25.4. DUID . . . . . . . . . . . . . . . . . . . . . . . . . .74 26.4.75 25.5. DHCPv6 options . . . . . . . . . . . . . . . . . . . . .74 26.5.75 25.6. Status codes . . . . . . . . . . . . . . . . . . . . . .74 26.6.76 25.7. Authentication option . . . . . . . . . . . . . . . . . .75 27.76 26. Acknowledgments7577 References7577 Chair's Address7779 Authors' Addresses7779 A. Appearance of Options in Message Types7981 B. Appearance of Options in the Options Field of DHCPMessages 79Options 81 C. Full Copyright Statement8082 1. Introduction and Overview This document describes DHCP for IPv6 (DHCP), aUDP [19]client/server protocoldesigned to reduce the cost of management of IPv6 nodes in environments where network managers require more control over the allocationthat provides managed configuration ofIPv6devices. DHCP can provide a device with addresses assigned by a DHCP server and other configuration information. The addresses and additional configuration are carried in options. DHCP can be extended through the definition ofnetwork stack parameters than that offered by "IPv6 Statelessnew options to carry configuration information not specified in this document. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page 1] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002Address Autoconfiguration" [21].DHCP isa stateful counterpart to stateless autoconfiguration. Note that both statefulthe "stateful address autoconfiguration protocol" andstatelessthe "stateful autoconfigurationcan be used concurrentlyprotocol" referred to inthe same environment, leveraging the strengthsRFC2462, "IPv6 Stateless Address Autoconfiguration". The remainder ofboththis introduction summarizes DHCP, explaining the message exchange mechanisms and example message flows. The message flows inorder to reduce the cost of ownershipsections 1.3 andmanagement1.4 are intended as illustrations ofnetwork nodes.DHCPreduces the cost of ownership by centralizing the managementoperation rather than an exhaustive list ofnetwork resources such as IP addresses, routing information, OS installation information, directory service information,all possible client-server interactions. Sections 17, 18 andother such information on a few DHCP servers, rather than distributing such information19 explain client and server operation inlocal configuration files among all network node.detail. 1.1. Protocols and addressing Clients and servers exchange DHCPis designed to be easily extended to carry new configuration parametersmessages using UDP [17]. The client uses its link-local address determined throughthe addition of newstateless autoconfiguration for transmitting and receiving DHCP"options" definedmessages. DHCP servers receive messages from clients using a reserved, link-scoped multicast address. A DHCP client transmits most messages tocarrythisinformation. Those readers familiarreserved multicast address, so that the client need not be configured with the address or addresses of DHCPfor IPv4 [7] will findservers. To allow a DHCPfor IPv6 providesclient to send asuperset ofmessage to a DHCP server that is not attached to thefeatures ofsame link, a DHCPand benefits fromrelay agent on theadditional featuresclient's link will forward messages between the client and server. The operation ofIPv6the relay agent is transparent to the client andfreedom fromtheconstraintsdiscussion ofbackward compatibility with BOOTP [4]. 2. Requirements The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appearmessage exchanges in the remainder of thisdocument, aresection will omit the description of message forwarding by relay agents. Once the client has determined the address of a server, it may under some circumstances send messages directly tobe interpreted as described in [2].the server using unicast. 1.2. Protocol implementation Thisdocument also makes usespecification for DHCP includes messages and descriptions ofinternal conceptual variables to describe protocolclient and server behavior for several different functions. Some clients andexternal variables that an implementation must allow system administrators to change. The specific variable names, how their values change, and how their settings influence protocol behavior are provided to demonstrate protocol behavior. An implementation is not required to have themservers will be deployed inthe exact form described here, so long as its external behavior is consistent with that describedsituations inthis document. 3. Background The IPv6 Specification provides the base architecture and designwhich not all ofIPv6. Related work in IPv6the functions will be required. For example, a client thatwould best serve an implementoruses stateless autoconfiguration tostudy includes thedetermine its IPv6Specification [5],addresses would use only theIPv6 Addressing Architecture [9], IPv6 Stateless Address Autoconfiguration [21], IPv6 Neighbor Discovery Processing [17],Information-request andDynamic Updates to DNS [22]. These specifications enable DHCP to build upon the IPv6 workReply messages toprovide both robust stateful autoconfigurationobtain other configuration information. Clients andautoregistration of DNS Host Names. The IPv6 Addressing Architecture specification [9] defines the address scopeservers thatcan be used in an IPv6 implementation, and the various configuration architecture guidelines for network designersdo not use all of theIPv6 address space. Two advantagesfunctions ofIPv6 are that supportDHCP need not implement processing formulticastthose DHCP messages that will not be used. A client or server that receives a message that it isrequired,not prepared to process may simply discard that message. For example, a DHCP server that only provides configuration information andnodesdoes not do IPv6 address assignment cancreate link-local addressesrespond to only Information-request messages and discard other messages such as Solicit or Request messages. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page 2] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002during initialization. This means that a1.3. Client-server exchanges involving two messages A DHCP client canimmediately use its link-local addressobtain configuration information such as a list of available DNS servers or NTP servers through a single message and reply exchanged with awell-known multicast address to begin communicationsDHCP server. To obtain configuration information the client first sends an Information-Request message todiscover neighbors onthelink. For instance,All_DHCP_Relay_Agents_and_Servers multicast address. The server responds with a Reply message containing the configuration information for the client. This message exchange assumes that the client requires only configuration information and does not require the assignment of any IPv6 addresses. Because the server need not keep any dynamic state information about individual clients to support this two message exchange, a server that provides just configuration information cansendbe realized with aSolicit messagerelatively simple andlocatesmall implementation. When a serveror relay.has IPv6Stateless Address Autoconfiguration [21] specifies procedures by which a node may autoconfigureaddressesbased on router advertisements [17],andthe use ofother configuration information committed to avalid lifetimeclient, the client and server may be able tosupport renumberingcomplete the exchange using only two messages, instead ofaddresses onfour messages as described in theInternet.next section. Inadditionthis case, theprotocol interaction by whichclient sends anode begins stateless or stateful autoconfiguration is specified. DHCP is one vehicleSolicit message toperform stateful autoconfiguration. Compatibility with stateless address autoconfiguration is a design requirement of DHCP (see Section 4). IPv6 Neighbor Discovery [17] isthenode discovery protocol in IPv6 which replaces and enhances functionsAll_DHCP_Relay_Agents_and_Servers requesting the assignment ofARP [18]. To understand IPv6addresses andstateless address autoconfiguration it is strongly recommendedother configuration information. This message includes an indication thatimplementors understand IPv6 Neighbor Discovery. Dynamic Updates to DNS [22]the client isa specificationwilling to accept an immediate Reply message from the server. The server thatsupportsis willing to commit thedynamic updateassignment ofDNS records for both IPv4addresses to the client immediately responds with a Reply message. The configuration information andIPv6. DHCP canthe addresses in the Reply message are then immediately available for use by thedynamic updates to DNSclient. Each address assigned tointegrate addressesthe client has associated preferred andname spacevalid lifetimes specified by the server. To request an extension of the lifetimes assigned tonot only support autoconfiguration, but also autoregistration in IPv6. 4. Design Goals - DHCP isan address, the client sends amechanism rather thanRenew message to the server. The server sends apolicy. Network administrators set their administrative policies throughReply message to theconfiguration parameters they place uponclient with theDHCP servers innew lifetimes, allowing theDHCP domain they're managing. DHCP is simply used to deliver parameters accordingclient tothat policycontinue toeach ofuse theDHCP clients withinaddress without interruption. 1.4. Client-server exchanges involving four messages To request thedomain. - DHCP is compatible withassignment of one or more IPv6stateless address autoconfiguration [21], statically configured, non-participating nodes and with existing network protocol implementations. -addresses, a client first locates a DHCPdoes not require manual configurationserver and then requests the assignment ofnetwork parameters on DHCP clients, except in cases where suchaddresses and other configurationis needed for security reasons. A node configuring itself using DHCP should require no user intervention. - DHCP does not requireinformation from the server. The client sends a Solicit message to the All_DHCP_Relay_Agents_and_Servers address to find available DHCP servers. Any serveron each link. To allowthat can meet the client's requirements responds with an Advertise message. The client then chooses one of the servers and sends a Request message to the server asking forscaleconfirmed assignment of addresses andeconomy, DHCP must work across DHCP relays. - DHCP clients can operate onother configuration information. The server responds with alink without IPv6 routers present. - DHCP will provideReply message that contains theability to renumber network(s) when required by network administrators [3].confirmed addresses and configuration. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page 3] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002- A DHCP client can make multiple, different requests for configuration parameters when necessary from one or more DHCP servers at any time. - DHCP will contain the appropriate time out and retransmission mechanisms to efficiently operateAs described inenvironments with high latency and low bandwidth characteristics. 5. Non-Goals This specification explicitly does not coverthefollowing: - Specification ofprevious section, the client sends aDHCP serverRenew messages to the serverprotocol. - How a DHCP server storesto extend the lifetimes associated with itsDHCP data. - Howaddresses, allowing the client tomanage a DHCP domain or DHCP server. - How a DHCP relay is configured or what sort of information it may log. 6. Terminology This sections defines terminology specificcontinue toIPv6use those addresses without interruption. 2. Requirements The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, andDHCP usedOPTIONAL, when they appear in thisdocument. 6.1. IPv6 Terminology IPv6 terminology relevantdocument, are tothis specification from the IPv6 Protocol [5], IPv6 Addressing Architecture [9],be interpreted as described in [2]. This document also makes use of internal conceptual variables to describe protocol behavior andIPv6 Stateless Address Autoconfiguration [21] is included below. address An IP layer identifier forexternal variables that aninterface or a set of interfaces. unicast address An identifier for a single interface. A packet sentimplementation must allow system administrators toa unicast addresschange. The specific variable names, how their values change, and how their settings influence protocol behavior are provided to demonstrate protocol behavior. An implementation isdeliverednot required to have them in theinterface identified byexact form described here, so long as its external behavior is consistent with thataddress. multicast address An identifier for a setdescribed in this document. 3. Background The IPv6 Specification provides the base architecture and design ofinterfaces (typically belongingIPv6. Related work in IPv6 that would best serve an implementor todifferent nodes). A packet sentstudy includes the IPv6 Specification [3], the IPv6 Addressing Architecture [7], IPv6 Stateless Address Autoconfiguration [19], IPv6 Neighbor Discovery Processing [15], and Dynamic Updates toa multicast address is deliveredDNS [20]. These specifications enable DHCP toall interfaces identified by that address. host Any node that is not a router. IP Internet Protocol Version 6 (IPv6). The terms IPv4build upon the IPv6 work to provide both robust stateful autoconfiguration and autoregistration of DNS Host Names. The IPv6areAddressing Architecture specification [7] defines the address scope that can be usedonlyinDroms (ed.), et al. Expires 1 Aug 2002 [Page 4] Internet Draft DHCPan IPv6 implementation, and the various configuration architecture guidelines for network designers of the IPv6(-23) 1 Feb 2002 contexts where itaddress space. Two advantages of IPv6 are that support for multicast isnecessary to avoid ambiguity. interface A node's attachment to a link. link A communication facility or medium over whichrequired, and nodes cancommunicate 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.164create link-local addressesfor ISDN links.during initialization. This means that a client can immediately use its link-local addressAn IPv6and a well-known multicast addresshaving link-only scope, indicated by having the prefix (FE80::0000/64), that can be usedtoreach neighboring nodes attachedbegin communications to discover neighbors on thesamelink.Every interface hasFor instance, a client can send a Solicit message and locate a server or relay agent. IPv6 Stateless Address Autoconfiguration [19] specifies procedures by which alink-local address. neighbor Anodeattached tomay autoconfigure addresses based on router advertisements [15], and thesame link. node A device that implements IP. packet An IP header plus payload. prefix The initial bitsuse ofan address, orasetvalid lifetime to support renumbering ofIP address that shareaddresses on thesame initial bits. prefix length The number of bits inInternet. In addition the protocol interaction by which aprefix. router Anodethat forwards IP packets not explicitly addressed to itself. 6.2.begins stateless or stateful autoconfiguration is specified. DHCPTerminology Terminology specificis one vehicle toDHCP can be found below. agent address Theperform stateful autoconfiguration. Compatibility with stateless addressofautoconfiguration is aneighboring DHCP Agent on the same link as the DHCP client.design requirement of DHCP. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page5]4] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002binding A binding (or, client binding)IPv6 Neighbor Discovery [15] is the node discovery protocol in IPv6 which replaces and enhances functions of ARP [16]. To understand IPv6 and stateless address autoconfiguration it is strongly recommended that implementors understand IPv6 Neighbor Discovery. Dynamic Updates to DNS [20] is agroupspecification that supports the dynamic update ofserver dataDNS recordscontaining the information the server has aboutfor both IPv4 and IPv6. DHCP can use the dynamic updates to DNS to integrate addresses and name space to not only support autoconfiguration, but also autoregistration inan IAIPv6. 4. Terminology This sections defines terminology specific to IPv6 andany other configuration information assignedDHCP used in this document. 4.1. IPv6 Terminology IPv6 terminology relevant to this specification from theclient. A bindingIPv6 Protocol [3], IPv6 Addressing Architecture [7], and IPv6 Stateless Address Autoconfiguration [19] isindexed byincluded below. address An IP layer identifier for an interface or a set of interfaces. anycast address An anycast address identifies a group of nodes; message sent to an anycast address is delivered to one node out of thetuple <DUID, IAID>. DHCP Dynamic Host Configurationgroup of nodes associated with the address host Any node that is not a router. IP Internet Protocolfor IPv6.Version 6 (IPv6). The termsDHCPv4IPv4 andDHCPv6IPv6 are used only in contexts where it is necessary to avoid ambiguity.configuration parameter An element of the configuration information set on the server and delivered to the client using DHCP. Such parameters may be used to carry informationinterface A node's attachment tobe used by a node to configure its network subsystem and enable communication on a link or internetwork, for example. DHCP client (or client) A node that initiates requests ona link. linkto obtain configuration parameters from one or more DHCP servers. DHCP domain A set of links managed by DHCP and operated by a single administrative entity. DHCP server (or server)Aserver is a node that responds to requests from clients, and maycommunication facility ormay not be onmedium over which nodes can communicate at thesamelinkaslayer, i.e., theclient(s). DHCP relay (or relay) A node that acts as an intermediary to deliver DHCP messages between clients and servers,layer immediately below IP. Examples are Ethernet (simple or bridged); Token Ring; PPP links, X.25, Frame Relay, or ATM networks; andis on the same link as a client. DHCP agentInternet (oragent) Either a DHCP server on the same linkhigher) layer "tunnels", such asa client, or a DHCP relay. DUID A DHCP Unique IDentifier for a DHCP participant; each DHCP client and server has exactly one DUID. Identity association (IA) A collection of addresses assigned to a client. Each IA has an associated IAID. An IA may have 0tunnels over IPv4 ormore addresses associated with it.IPv6 itself. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page6]5] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002Identity associationlink-layer identifier(IAID) AnA link-layer identifier for anIA, choseninterface. Examples include IEEE 802 addresses for Ethernet or Token Ring network interfaces, and E.164 addresses for ISDN links. link-local address An IPv6 address having link-only scope, indicated by having theclient. Each IA has an IAID, which is chosen toprefix (FE80::0000/64), that can beunique among all IAIDsused to reach neighboring nodes attached to the same link. Every interface has a link-local address. multicast address An identifier forIAsa set of interfaces (typically belonging tothat client. messagedifferent nodes). Aunit of data carried in a packet, exchanged between DHCP agents and clients. transaction-ID An unsigned integerpacket sent tomatch responses with replies initiated either byaclient or server. 7. DHCP Constants This section describes various program and networking constants used by DHCP. 7.1. Multicast Addresses DHCP makes use of the following multicast addresses: All_DHCP_Agents (FF02::1:2) This link-scopedmulticast address isuseddelivered to all interfaces identified byclientsthat address. neighbor A node attached tocommunicate with the on-link agent(s) when they do not knowthelink-local address(es) for those agents. All agents (servers and relays) are memberssame link. node A device that implements IP. packet An IP header plus payload. prefix The initial bits ofthis multicast group. All_DHCP_Servers (FF05::1:3) This site-scoped multicast address is used by clients or relays to communicate with server(s), either because they want to send messages to all serversan address, orbecause they do not know the server(s) unicast address(es). Notea set of IP address that share the same initial bits. prefix length The number of bits inordera prefix. router A node that forwards IP packets not explicitly addressed to itself. unicast address An identifier for aclientsingle interface. A packet sent touse this address, it must have ana unicast addressof sufficient scopeis delivered tobe reachable by the server(s). All servers within the site are members of this multicast group. 7.2. UDP ports DHCP usesthefollowing destination UDP [19] port numbers. While source ports MAYinterface identified by that address. 4.2. DHCP Terminology Terminology specific to DHCP can bearbitrary,found below. binding A binding (or, clientimplementations SHOULD permit their specification throughbinding) is alocalgroup of server data records containing the information the server has about the addresses in an IA and any other configurationparameterinformation assigned tofacilitatetheuse of DHCP through firewalls. 546 Client port. Usedclient. A binding is indexed byservers asthedestination port for messages sent to clients and relays. Used by relaytuple <DUID, IA-type, IAID> (where Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page7]6] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002agents as the destination port for messages sent to clients. 547 Agent port. Used asIA-type is thedestination port by clients for messages sent to agents. Used astype of address in thedestination port by relaysIA; formessages sent to servers. 7.3. DHCP message types DHCP definesexample, temporary) configuration parameter An element of thefollowing message types. More detailconfiguration information set onthese message types can be found in Section 8. Message types not listed here are reserved for future use. The message code for each message type is shown withthemessage name. SOLICIT (1) The Solicit message is used by clientsserver and delivered tolocate servers. ADVERTISE (2) The Advertise message isthe client using DHCP. Such parameters may be usedby servers respondingtoSolicits. REQUEST (3) The Request message is used by clientscarry information torequest configuration parameters from servers. CONFIRM (4) The Confirm message isbe used byclients to confirm that the addresses assigneda node toan IAconfigure its network subsystem andthe lifetimesenable communication on a link or internetwork, forthose addresses, as well as the current configuration parameters assigned by the server to the client are still valid. RENEW (5)example. DHCP Dynamic Host Configuration Protocol for IPv6. TheRenew message isterms DHCPv4 and DHCPv6 are usedby clientsonly in contexts where it is necessary toupdate the addresses assignedavoid ambiguity. DHCP client (or client) A node that initiates requests on a link toan IA and the lifetimes for those addresses, as well as the currentobtain configuration parametersassignedfrom one or more DHCP servers. DHCP domain A set of links managed bythe serverDHCP and operated by a single administrative entity. DHCP relay agent (or relay agent) A node that acts as an intermediary to deliver DHCP messages between clients and servers, and is on the same link as the client. DHCP server (or server) Aclient sends a Renew message to theserverthat originally populated the IA at time T1. REBIND (6) The Rebind messageisused by clientsa node that responds toextendrequests from clients, and may or may not be on thelifetimes of addresses assigned to an IA, as wellsame link as thecurrent configuration parameters assigned by the server to the client.client(s). DUID Aclient sendsDHCP Unique IDentifier for aRebind message to all availableDHCPservers at time T2 only after theparticipant; each DHCP clienthas been unable to contact theand serverthat originally populatedhas exactly one DUID. See section 9 for details of theIA withways in which aRenew message. REPLY (7) The Reply message is used by servers respondingDUID may be constructed. Identity association (IA) A collection of addresses assigned toRequest, Confirm, Renew, Rebind, Information-request, Release and Decline messages. In the casea client. Each IA has an associated IAID. A client may have more than one IA assigned to it; for example, one for each ofrespondingits interfaces. Identity association identifier (IAID) An identifier for an IA, chosen by the client. Each IA has an IAID, which is chosen to be unique among all IAIDs for IAs belonging to that client. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page8]7] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002a Request, Confirm, Information-request, Renew or Rebind message, the Reply contains configuration parameters destined for the client. RELEASE (8) The Releasemessageis used by clients to indicateA unit of data carried in a packet, exchanged among DHCP servers, relay agents and clients. transaction-ID An unsigned integer to match responses with replies initiated either by aserver that theclientwill no longer use oneormore addresses in an IA. DECLINE (9) The Decline message isserver. 5. DHCP Constants This section describes various program and networking constants used byclients to indicate that the client has determined that one or more addresses in an IA are already inDHCP. 5.1. Multicast Addresses DHCP makes useon the link to whichof theclient is connected. RECONFIGURE (10) The Reconfigure message is sentfollowing multicast addresses: All_DHCP_Relay_Agents_and_Servers (FF02::1:2) A link-scoped multicast address used by aserverclient toinformcommunicate with neighboring (i.e., on-link) relay agents and servers. All servers and relay agents are members of this multicast group. All_DHCP_Servers (FF05::1:3) A site-scoped multicast address used by a clientthat the server has neworupdated configuration parameters, and thatrelay agent to communicate with servers, either because the clientis to initiate a Renew/ReplyorInformation-request/Reply transaction with the server in orderrelay agent wants toreceive the updated information. INFORMATION-REQUEST (11) The Information-request message is sent by clientssend messages torequest configuration parameters withoutall servers or because it does not know theassignment of any IPunicast addressestoof theclient. RELAY-FORW (12) The Relay-forward message is used by relays to forward client messages toservers.The client message is encapsulated in an optionNote that inthe Relay-forward message. RELAY-REPL (13) The Relay-reply message is used by servers to send messages to clients throughorder for arelay. The server encapsulates theclientmessage as an option in the Relay-reply message, which theor relayextracts and forwardsagent to use this address, it must have an address of sufficient scope to be reachable by theclient. 7.4. Status Codes This section describes status codes exchanged between DHCP implementations. These status codes may appear in the Status Code option or inservers. All servers within thestatus fieldsite are members ofan IA. 7.4.1. Generic Status Codes The status codes inthissection are used between clients and serversmulticast group. 5.2. Anycast address DHCP proposes toconvey status conditions. Theuse the followingtable containsreserved anycast address: DHCP_Anycast (FEC0:0:0:0:FFFF::4) This document proposes thestatus codes,assignment of thenameDHCP_Anycast address foreach code (as used in this document)use by clients attached to links that do not support multicast. 5.3. UDP ports Clients listen for DHCP messages on UDP port 546. Servers anda briefrelay agents listen for DHCP messages on UDP port 547. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page9]8] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002description. Note that5.4. DHCP message types DHCP defines thenumeric values do not start at 1, nor are they consecutive. The status codes are organized in logical groups. Name Code Description ---------- ---- ----------- Success 0 Success UnspecFail 16 Failure, reason unspecified AuthFailed 17 Authentication failed or nonexistent PoorlyFormed 18 Poorly formedfollowing messageAddrUnavail 19 Addresses unavailable OptionUnavail 20 Requested options unavailable 7.4.2. Server-specific Status Codes The status codestypes. More detail on these message types can be found inthis sectionSection 6. Message types not listed here areused by servers to convey status conditions to clients.reserved for future use. Thefollowing table contains the status codes, the namemessage code for eachcode (as used in this document) andmessage type is shown with the message name. SOLICIT (1) A client sends abrief description. NoteSolicit message to locate servers. ADVERTISE (2) A server sends an Advertise message to indicate thatthe numeric values do not start at 1, nor are they consecutive. The status codes are organized in logical groups. Name Code Description ---- ---- ----------- NoBinding 32 Client record (binding) unavailable ConfNoMatch 33 Client record Confirm doesn't match IA RenwNoMatch 34 Client record Renew doesn't match IA RebdNoMatch 35 Client record Rebind doesn't match IA InvalidSource 36 Invalid Client IP address NoPrefixMatch 37 One or more prefixes of the addresses in the IAit isnot validavailable forthe linkDHCP service, in response to a Solicit message received fromwhich thea client. REQUEST (3) A client sends a Request messagewas received Droms (ed.), et al. Expires 1 Aug 2002 [Page 10] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002 7.5. Configuration Variables This section presentsto request configuration parameters from atable ofserver. CONFIRM (4) A clientandsends a Confirm message to servers to request that the serverconfiguration variablesvalidate and confirm that thedefault or initial values for these variables. Parameter Default Description ------------------------------------- MIN_SOL_DELAY 1 sec Min delay of first Solicit MAX_SOL_DELAY 5 secs Max delay of first Solicit SOL_TIMEOUT 500 msecs Initial Solicit timeout SOL_MAX_RT 30 secs Max Solicit timeout value REQ_TIMEOUT 250 msecs Initial Request timeout REQ_MAX_RT 30 secs Max Request timeout value REQ_MAX_RC 10 Max Request retry attempts CNF_TIMEOUT 250 msecs Initial Confirm timeout CNF_MAX_RT 1 sec Max Confirm timeout CNF_MAX_RD 10 secs Max Confirm duration REN_TIMEOUT 10 sec Initial Renew timeout REN_MAX_RT 600 secs Maxaddresses and current configuration parameters assigned by the server to the client are still valid. RENEW (5) A client sends a Renewtimeout value REB_TIMEOUT 10 secs Initialmessage to the server that originally provided the client's addresses and configuration addresses to update the addresses assigned to the client and the lifetimes for those addresses, as well as the current configuration parameters assigned by the server to the client. REBIND (6) A client sends a Rebindtimeout REB_MAX_RT 600 secs Maxmessage to update the addresses assigned to the client and the lifetimes for those addresses, as well as the current configuration parameters assigned by the server to the client; this message is sent after a client receives no response to a Renew message. REPLY (7) A server sends a Reply message containing assigned addresses and configuration parameters in response to a Solicit, Request, Renew, Rebindtimeout value INF_TIMEOUT 500 ms Initial Information-request timeout INF_MAX_RT 30 secs Maxor Information-requesttimeout value REL_TIMEOUT 250 msecs Initial Release timeout REL_MAX_RT 1 sec Max Release timeout REL_MAX_RC 5 MAX Release attempts DEC_TIMEOUT 250 msecs Initial Decline timeout DEC_MAX_RT 1 sec Max Decline timeout DEC_MAX_RC 5 Maxmessage received from a client. A server sends a Reply message confirming or denying the validity of the client's addresses and configuration parameters in response to a Confirm message. A server sends a Reply message to acknowledge receipt of a Release or Declineattempts 8. Message Formats Allmessage. RELEASE (8) A client sends a Release message to the server that assigned addresses to the client to Droms (ed.), et al. Expires 22 Oct 2002 [Page 9] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 indicate that the client will no longer use one or more of the assigned addresses. DECLINE (9) A client sends a Decline message to a server to indicate that the client has determined that one or more addresses assigned by the server are already in use on the link to which the client is connected. RECONFIGURE (10) A server sends a Reconfigure message to a client to inform the client that the server has new or updated configuration parameters, and that the client is to initiate a Renew/Reply or Information-request/Reply transaction with the server in order to receive the updated information. INFORMATION-REQUEST (11) A client sends an Information-request message to a server to request configuration parameters without the assignment of any IP addresses to the client. RELAY-FORW (12) A relay agent sends a Relay-forward message to forward client messages to servers. The client message is encapsulated in an option in the Relay-forward message. RELAY-REPL (13) A server sends a Relay-reply message to a relay agent to send messages to clients through the relay agent. The server encapsulates the client message as an option in the Relay-reply message, which the relay agent extracts and forwards to the client. 5.5. Status Codes DHCPv6 uses status codes to communicate the success or failure of operations requested in messagessent betweenfrom clients andservers share an identical fixed format headerservers, anda variable format area for options. Not all fields into provide additional information about theheader are used in every message. All values inspecific cause of themessage header and in optionsfailure of a message. The specific status codes are defined innetwork order.section 25.6. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page11]10] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002The following diagram illustrates the format5.6. Configuration Parameters This section presents a table ofDHCP messages sent between clients and servers: 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 | transaction-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . options . . (variable) . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The following sectionsconfiguration parameters used to describe theuse of the fields in the DHCPmessageheader in eachtransmission behavior ofthe DHCP messages. In these descriptions, fields that are not used in a message are marked as "unused". All unused fields in a message MUST be transmitted as zeroesclients andignored by the receiverservers. Parameter Default Description ------------------------------------- MIN_SOL_DELAY 1 sec Min delay ofthe message. 8.1. DHCPfirst SolicitMessage Format msg-type SOLICIT transaction-ID An unsigned integer generated by the client used to identify thisMAX_SOL_DELAY 5 secs Max delay of first Solicitmessage. options See section 23. 8.2. DHCP Advertise Message Format msg-type ADVERTISE transaction-ID An unsigned integer used to identify this Advertise message. Copied from theSOL_TIMEOUT 500 msecs Initial Solicit timeout SOL_MAX_RT 30 secs Max Solicitmessage received from the client. options See section 23. 8.3. DHCPtimeout value REQ_TIMEOUT 250 msecs Initial RequestMessage Format msg-type REQUEST transaction-ID An unsigned integer generated by the client used to identify thistimeout REQ_MAX_RT 30 secs Max Requestmessage. options See section 23. Droms (ed.), et al. Expires 1 Aug 2002 [Page 12] Internet Draft DHCP for IPv6 (-23)timeout value REQ_MAX_RC 10 Max Request retry attempts CNF_TIMEOUT 250 msecs Initial Confirm timeout CNF_MAX_RT 1Feb 2002 8.4. DHCPsec Max ConfirmMessage Format msg-type CONFIRM transaction-ID An unsigned integer generated by the client used to identify thistimeout CNF_MAX_RD 10 secs Max Confirmmessage. options See section 23. 8.5. DHCPduration REN_TIMEOUT 10 sec Initial RenewMessage Format msg-type RENEW transaction-ID An unsigned integer generated by the client used to identify thistimeout REN_MAX_RT 600 secs Max Renewmessage. options See section 23. 8.6. DHCPtimeout value REB_TIMEOUT 10 secs Initial RebindMessage Format msg-type REBIND transaction-ID An unsigned integer generated by the client used to identify thistimeout REB_MAX_RT 600 secs Max Rebindmessage. options See section 23. 8.7. DHCP Replytimeout value INF_TIMEOUT 500 ms Initial Information-request timeout INF_MAX_RT 30 secs Max Information-request timeout value REL_TIMEOUT 250 msecs Initial Release timeout REL_MAX_RT 1 sec Max Release timeout REL_MAX_RC 5 MAX Release attempts DEC_TIMEOUT 250 msecs Initial Decline timeout DEC_MAX_RT 1 sec Max Decline timeout DEC_MAX_RC 5 Max Decline attempts 6. MessageFormat msg-type REPLY transaction-ID An unsigned integer used to identify this Reply message. Copied fromFormats All DHCP messages sent between clients and servers share an identical fixed format header and a variable format area for options. All values in theclient Request, Confirm, Renew or Rebindmessagereceived from the client. options See section 23. 8.8. DHCP Release Message Format msg-type RELEASE transaction-ID An unsigned integer generated by the client used to identify this Release message.header and in optionsSee section 23.are in network order. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page13]11] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 20028.9.The following diagram illustrates the format of DHCPDecline Message Formatmessages sent between clients and servers: 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-typeDECLINE| transaction-IDAn unsigned integer generated by the client used to identify this Decline message.| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . optionsSee section 23. 8.10. DHCP Reconfigure Message Format. . (variable) . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ msg-typeRECONFIG transaction-ID An unsigned integer generated byIdentifies theserver used to identify this Reconfigure message. options SeeDHCP message type; the available message types are listed in section23. 8.11. Information-Request Message Format msg-type INFORMATION-REQUEST transaction-ID5.4. transaction-id An unsigned integergeneratedused bythea clientusedor server toidentify this Information-requestmatch a response message to a request message. optionsSeeOptions carried in this message; options are described in section23. 9.22. 7. Relay agent messages Relay agents exchange messages with servers to forward messages between clients and servers that are not connected to the same link. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page14]12] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002 There are two relay agent messages, which share the following format: 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 | | +-+-+-+-+-+-+-+-+ | | link-address | | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| | | | +-+-+-+-+-+-+-+-+ | |client-return-addressclient-address | | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| | | | +-+-+-+-+-+-+-+-+ | . . . options (variable number and length) .... . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The following sections describe the use of the Relay Agent message header.9.1.7.1. Relay-forward message The following table defines the use of message fields in a Relay-forward message. msg-type RELAY-FORW link-addressAnA global or site-local addresswith a prefixthatis assignedwill be used by the server to identify the linkfromon which the clientshould be assigned an address. client-return-addressis located. client-address TheIPv6 sourceaddressin whichof themessageclient from which theclientmessage to be forwarded was receivedby the relay agentoptions MUST include a "Client messageoption"; seeoption" (see section23.10;22.10); MAY include other options added by the relay agent Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page15]13] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 20029.2.7.2. Relay-reply message The following table defines the use of message fields in a Relay-reply message. msg-type RELAY-REPL link-address The link-address copied from the Relay-forwardmessage; used by the relay agent to select the link on which themessageis returned to the client client-return-addressclient-address Thesource addressclient's address, copied from theIP datagram in which therelay-forward messagefrom the client was received by the relay agentoptions MUST include a "Server message option"; see section23.11;22.11; MAY include other options10.8. Representation and use of domain names So that domain names may beencoded uniformlyencoded uniformly and compactly, a domain name or a list of domain names is encoded using the technique described in sections 3.1 and 4.1.4 of RFC1035 [12]. Section 4.1.4 of RFC1035 describes how more than one domain name can be represented in a list of domain names. For use in this specification, in a list of domain names, the compression pointer (see section 4.1.4 of RFC1035) refers to the offset within the list. 9. DHCP unique identifier (DUID) Each DHCP client and server has a DUID. DHCP servers use DUIDs to identify clients for the selection of configuration parameters and in the association of IAs with clients. DHCP clients use DUIDs to identify a server in messages where a server needs to be identified. See sections 22.2 and 22.3 for the representation of a DUID in a DHCP message. Clients and servers MUST treat DUIDs as opaque values and MUST only compare DUIDs for equality. Clients and servers MUST NOT in any other way interpret DUIDs. Clients and servers MUST NOT restrict DUIDs to the types defined in this document as additional DUID types may be defined in the future. The DUID is carried in an option because it may be variable length and because it is not required in all DHCP messages. The DUID is designed to be unique across all DHCP clients andcompactly,servers, and consistent for any specific client or server - that is, the DUID used by adomain nameclient or server SHOULD NOT change over time; for example, alistdevice's DUID should not change as a result ofdomain names is encoded using the technique describeda change insections 3.1 and 4.1.4 of RFC1035 [14]. Section 4.1.4 of RFC1035 describes howthe device's network hardware. Droms (ed.), et al. Expires 22 Oct 2002 [Page 14] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 The motivation for having more than onedomain name cantype of DUID is that the DUID must berepresented in a listglobally unique, and must also be easy to generate. The sort ofdomain names. For use in this specification,globally-unique identifier that is easy to generate for any given device can differ quite widely. Also, some devices may not contain any persistent storage. Retaining a generated DUID in such alist of domain names,device is not possible, so thecompression pointer (see section 4.1.4DUID scheme must accommodate such devices. 9.1. DUID contents A DUID consists ofRFC1035) refers to the offset within the list. Ifasingle domain name is being usedtwo octet type code represented in network order, followed by avendor as a vendor identifier, then the vendor MUST ensurevariable number of octets that make up thedomain name has not previously been used by a different vendor. 11. DHCPactual identifier. A DUID can be no more than 256 octets long. The following types are currently defined: 1 Link-layer address plus time 2 Vendor-assigned uniqueidentifier (DUID) Each DHCP client and server has a DUID. DHCP servers use DUIDs to identify clientsID based on domain name 3 Vendor-assigned unique ID based on Enterprise Number 4 Link-layer address Formats for theselectionvariable field ofconfiguration parameters and intheassociationDUID for each of the above types are shown below. 9.2. DUID based on link-layer address plus time This type of DUID consists ofIAs with clients. DHCP clients use DUIDs to identifyaserver in messages wheretwo octet type field containing the value 1, aserver needstwo octet hardware type code, four octets containing a time value, followed by link-layer address of any one network interface that is connected tobe identified. See sections 23.3 and 23.2 fortherepresentation of aDHCP device at the time that the DUID is generated. The time value is the time that the DUID is generated represented ina DHCP message. Clients and serversseconds since midnight (UTC), January 1, 2000, modulo 2^32. The hardware type MUSTtreat DUIDsbe a valid hardware type assigned by the IANA asopaque values and MUST only compare DUIDs for equality. Clients and servers MUST NOTdescribed inany other way interpret DUIDs. Clients and servers MUST NOT restrict DUIDs tothetypes definedsection on ARP inthis document as additional DUID types may be definedRFC 826. Both the time and the hardware type are stored in network order. The following diagram illustrates thefuture.format of a DUID based on link-layer address plus time: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 1 | Hardware type (16 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time (32 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . . link-layer address (variable length) . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page16]15] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002 TheDUID is carried in an option because it may be variable length and because it is not required in all DHCP options. The DUID is designed to be unique across all DHCP clients and servers, and consistent for any specific client or server - that is, the DUID used by a client or server SHOULD NOT change over time, for example, as a resultchoice of networkhardware reconfiguration. The motivation for having more than one type of DUID is that the DUID must be globally unique, and must alsointerface can beeasy to generate. The sort of globally-unique identifiercompletely arbitrary, as long as thatis easy to generate for any given device can differ quite widely. Also, some devices may not contain any persistent storage. Retaining a generated DUID in suchinterface provides adevice is not possible, sounique link-layer address, and the same DUIDscheme must accommodate such devices. 11.1. DUID contents A DUID consists of a sixteen-bit type code representedshould be used in configuring all networkorder, followed by a variable number of octets that make up the actual identifier. A DUID can be no more than 256 octets long. The following types are currently defined: 1 Link-layer address plus time 2 Vendor-assigned unique ID 3 Link-layerinterfaces connected to the device, regardless of which interface's link-layer addressFormats forwas used to generate thevariable fieldDUID. Clients and servers using this type of DUID MUST store the DUIDfor each ofin stable storage, and MUST continue to use this DUID even if the network interface used to generate theabove types are shown below. 11.2.DUIDbased on link-layer address plus time Thisis removed. Clients and servers that do not have any stable storage MUST NOT use this type of DUID. Clients and servers that use this DUIDconsistsSHOULD attempt to configure the time prior to generating the DUID, if that is possible, and MUST use some sort of time source (for example, atwo octet type field containingreal-time clock) in generating thevalue 1, a two octet hardware type code, four octets containing aDUID, even if that timevalue, followed by link-layer addresssource could not be configured prior to generating the DUID. The use ofany onea time source makes it unlikely that two identical DUIDs will be generated if the network interfacethatisconnectedremoved from the client and another client then uses the same network interface to generate a DUID. A DUID collision is very unlikely even if the clocks haven't been configured prior to generating the DUID. This method of DUID generation is recommended for all general purpose computing devices such as desktop computers and laptop computers, and also for devices such as printers, routers, and so on, that contain some form of writable non-volatile storage. Despite our best efforts, it is possible that this algorithm for generating a DUID could result in a client identifier collision. A DHCPdevice at the timeclient thatthegenerates a DUIDis generated. The time value is the timeusing this mechanism MUST provide an administrative interface that replaces the existing DUIDis generated represented in seconds since midnight (UTC), January 1, 2000, modulo 2^32.with a newly-generated DUID of this type. 9.3. Vendor-assigned unique ID based on Domain Name (VUID-DN) Thehardware type MUST bevendor-assigned unique ID based on the domain name consists of avalid hardware type assigned bytwo-octet value giving theIANA as described inlength of thesection on ARP in RFC 826. Bothidentifier, thetimevalue of the identifier and thehardware type are stored in network order.vendor's registered domain name. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page17]16] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002 The following diagramillustratessummarizes theformatstructure of aDUID based on link-layer address plus time:VUID-DN: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |12 |Hardware type (16 bits)identifier length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Time (32 bits) |. . . identifier . . (variable length) . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . .link-layer addressdomain name (variable length) . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Thechoice of network interface can be completely arbitrary, as long as that interface provides a unique link-layer address, and the same DUID should be used in configuring all network interfaces connected to the device, regardless of which interface's link-layer address was used to generate the DUID. Clients and servers using this typesource ofDUID MUST store the DUID in stable storage, and MUST continue to use this DUID even if the network interface used to generatetheDUIDidentifier isremoved. Clients and servers that do not have any stable storage MUST NOT use this type of DUID. Clients and servers that use this DUID SHOULD attemptleft up toconfigurethetime priorvendor defining it, but each identifier part of each VUID-DN MUST be unique togeneratingtheDUID, ifdevice that ispossible,using it, and MUSTuse some sort of time source (e.g., a real-time clock) in generating the DUID, even if that time source could notbeconfigured priorassigned togeneratingtheDUID. The use of adevice at the timesource makes it unlikely that two identical DUIDs willof manufacture and stored in some form of non-volatile storage. The VUID-DN SHOULD begenerated if the network interfacerecorded in non-erasable storage. The domain name isremoved fromsimply any domain name that has been legally registered by theclient and another client then usesvendor in thesame network interface to generatedomain name system [11], stored in the form described in section 8. If aDUID. A DUID collisiondomain name isvery unlikely even ifbeing used by a vendor as a vendor identifier, then theclocks haven't been configured prior to generatingvendor MUST ensure that theDUID.domain name has not previously been used by a different vendor. An example DUID of this type might look like this: +---+---+---+---+---+---+---+---+ | 0 | 2 | 0 | 8 | 12|192|132|221| +---+---+---+---+---+---+---+---+ | 3 | 0 | 9 | 18|101|120| 97|109| +---+---+---+---+---+---+---+---+ |112|108|101| 46| 99|111|109| +---+---+---+---+---+---+---+ Thismethodexample includes the two-octet type ofDUID generation is recommended for all general purpose computing devices such as desktop computers and laptop computers, and also for devices such as printers, routers, and so on, that contain some form2, the two-octet length ofwritable non-volatile storage. 11.3.8, eight octets of identifier data, followed by "example.com" represented in ASCII. 9.4. Vendor-assigned unique ID(VUID)based on Enterprise Number (VUID-EN) The vendor-assigned unique ID based on Enterprise Number consists ofa two-octet value giving the length oftheidentifier,vendor's registered Enterprise Number as maintained by IANA followed by the value of theidnetifier and the vendor's registered domain name.identifier. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page18]17] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002 The following diagram summarizes the structure of aVUID:VUID-EN: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |23 |identifier lengthEnterprise Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+. .| Enterprise Number (contd) | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | . identifier . . (variable length) . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+. . . domain name (variable length) . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+The source of the identifier is left up to the vendor defining it, but each identifier part of eachVUIDVUID-EN MUST be unique to the device that is using it, and MUST be assigned to the device at the time of manufacture and stored in some form of non-volatile storage. The VUID SHOULD be recorded in non-erasable storage. Thedomain nameEnterprise Number issimply any domain name that has been legally registered by the vendor inthedomain name system [13], stored invendor's Enterprise code from theform describedlist "SMI Network Management Private Enterprise Codes", as maintained by IANA insection 10.file ftp://ftp.isi.edu/in-notes/iana/assignments/enterprise-numbers. The Enterprise Number is stored as an unsigned 32 bit number. An example DUID of this type might look like this: +---+---+---+---+---+---+---+---+ | 0 |23 | 0 |80 |12|192|132|221| +---+---+---+---+---+---+---+---+0 | 9| 12|192| +---+---+---+---+---+---+---+---+ |132|221| 3 | 0 | 9 |18|101|120| 97|109| +---+---+---+---+---+---+---+---+ |112|108|101| 46| 99|111|109| +---+---+---+---+---+---+---+18| +---+---+---+---+---+---+ This example includes the two-octet type of2,3, thetwo-octet length of 8,Enterprise Number (9), followed by eight octets of identifierdata, followed by "example.com" represented in ASCII. 11.4.data. 9.5. Link-layer address This type of DUID consists of two octets containing the DUID type3,4, a two octet network hardware type code, followed by the link-layer address of any one network interface that is permanently connected to the client or serverdevice and cannotdevice. For example, this DUID could beremoved.used by a host that has a network interface implemented in a chip that is unlikely to be removed and used elsewhere. The hardware type MUST be a valid hardware type assigned by the IANA as described in the section on ARP in RFC 826. The hardware type is stored in network order. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page19]18] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002 The following diagram illustrates the format of a DUID based on link-layer address: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |34 | Hardware type (16 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . . link-layer address (variable length) . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The choice of network interface can be completely arbitrary, as long as that interface provides a unique link-layer address and is permanently attached to the device on which the DUID is being generated. The same DUID should be used in configuring all network interfaces connected to the device, regardless of which interface's link-layer address was used to generate the DUID. This type of DUID is recommended for devices that have a permanently-connected network interface with a link-layer address and do not have nonvolatile, writable stable storage. This type of DUID MUST NOT be used by DHCP clients or servers that cannot tell whether or not a network interface is permanently attached to the device on which the DHCP client is running.12.10. Identity association An "identity-association" (IA) is a construct through which a server and a client can identify, group and manage IPv6 addresses. Each IA consists of an IAID and associated configuration information. A client must associate at least one distinct IA with each of its network interfaces and uses that IA to obtain configuration information from a server for that interface.Other distinct IAs may be associated with applications.Each IA must be associated with exactly one interface. The IAID uniquely identifies the IA and must be chosen to be unique among the IAIDs on the client. The IAID is chosen by the client. For any given use of an IA by the client, the IAID for that IA MUST be consistent across restarts of the DHCP client. The client may maintain consistency either by storing the IAID in non-volatile storage or by using an algorithm that will consistently produce the same IAID as long as the configuration of the client has not changed. There may be no way for a client to maintain consistency of the IAIDs if it does not have non-volatile storage and the client's hardware configuration changes.Droms (ed.), et al. Expires 1 Aug 2002 [Page 20] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002The configuration information in an IA consists of one or more IPv6 addresses and other parameters. The parameters are specified as DHCP Droms (ed.), et al. Expires 22 Oct 2002 [Page 19] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 options within the IA, and are associated with the addresses in the IA and the interface to which the IA belongs. Other parameters that are not associated with a particular interface may be specified in the options section of a DHCP message, outside the scope of any IA. Each address in an IA has a preferred lifetime and a valid lifetime, as defined in RFC2462[21].[19]. The lifetimes are transmitted from the DHCP server to the client in the IA option. The lifetimes apply to the use of IPv6 addresses as described in section 5.5.4 of RFC2462.An address whose valid lifetime has expired MAY be discarded from the IA.See section23.422.4 for the representation of an IA in a DHCP message.13.11. Selecting addresses for assignment to an IA A server selects addresses to be assigned to an IA according to the address assignment policies determined by the server administrator and the specific information the server determines about the client from some combination of the following sources: - The link to which the client is attached. The server determines the link as follows: * If the server receives the message directly from the client and the source address in the IP datagram in which the message was received is a link-local address, then the client is on the same link to which the interface over which the message was received is attached * If the server receives the message from a forwarding relay agent, then the client is on the same link as the one to which the interface identified by the link-address field in the messagefrom the relay is attached - The DUID supplied by the client - Other information in options supplied by the client - Other information in options supplied byfrom the relay agent-is attached * If the server receives the message directly from the client and the source address in the IP datagram in which the message was received is not a link-local address, then the client is on the link identified by the source address in the IP datagram (note that this situation can occur only if the server has enabled the use of unicast message delivery by the client and the client has sent a message for which unicast delivery is allowed) - The DUID supplied by the client - Other information in options supplied by the client - Other information in options supplied by the relay agent A server MUST generate link identifiers for unicast addresses with the "u" (universal/local) and "g" (individual/group) bits of the EUI-64 identifier set to 0 (see RFC 2373). Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page21]20] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002The addresses that theA serverselects for the clientMUSTbe valid on the link to which the interfaceNOT assign an address that isattached, regardless of the way in which the server selects the addresses. 14.otherwise reserved by IANA. 12. Management of temporary addresses A client may be assigned temporary addresses[16].(temporary addresses are defined in RFC 3041 [14]). Clients and servers simplylabelidentify addresses as "temporary". DHCPv6 handling of addresslifetimes and lifetime extensionsassignment is no different for temporary addresses. DHCPv6 says nothing about details of temporary addresses like lifetimes,lifetime extensions,how clients use temporary addresses, rules for generating successive temporary addresses, etc.In DHCP, temporary addresses are identified with T-bit set in the IA Address Option(see section 23.5). A client may have zero or more temporary addresses. Addresses with the T-bit set MUST be intended for the client to use for the general purposes described in RFC3041. Addresses that otherwise have short lifetimes or are not intended to be renewed by the server MUST NOT have the T-bit set.Clients ask for temporary addresses and servers assign them.When a client sends an IA to a server, the client lists all of the temporary addresses it knows about and optionally indicates how many additional temporaryTemporary addressesit wantsare carried in theRequestedIdentity Association for Temporary AddressesOption(see(IA_TA) option (see section23.6). The server compares the number of requested additional temporary addresses against any previously allocated22.5). Each IA_TA option contains at most one temporaryaddressesaddress for each of theIA that were not reported by the client in the IA but still have some reasonable preferred lifetime left. If the number of temporary addresses is less than the requested number, the server adds additional temporary addresses to the IA to satisfyprefixes on therequested number (subjectlink toserver policy). DISCUSSION: It is important that the server include any allocated temporary addresses that were not reported bywhich the clientas itispossibleattached. Unless otherwise stated, an IA_TA option is used in theclient never receivedsame way in as anearlier Reply that contained these additional temporary addresses. IfIA option. In theserver did not consider these, a client that fails to receiveprotocol specification, unless otherwise stated, aserver's reply might cause the serverreference toallocate many temporary addresses. When the valid lifetime on a temporary address expires, both the client and server silently discard the address from the IA.an IA should be read as either an IA or an IA_TA. Thediscarded address no longer counts against the client's allotment of temporary addresses. A server SHOULD NOT assign a client temporary addresses without the client having specifically askedIAID number space forit. The clientthe IA_TA option IAID number space isnot obligated to install address(es) that it receives and did not request and can release any addresses it does not want. Droms (ed.), et al. Expires 1 Aug 2002 [Page 22] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002separate from the IA option IAID number space. The server MAY update the DNS for a temporary address as described in section 4 of RFC3041, and MUST NOT update the DNS in any other way for a temporary address.15.13. Transmission of messages by a client Unless otherwise specified, a client sends DHCP messages to the All_DHCP_Relay_Agents_and_Servers or the DHCP_Anycast address. If the client is attached to a link that supports multicast transmission, the client sends DHCP messages to the All_DHCP_Relay_Agents_and_Servers address. If the client is attached to a link that does not support multicast transmission, the client uses the DHCP_Anycast address. A client may send some messages directly to a server using unicast, as described in section 22.13. 14. Reliability of Client Initiated Message Exchanges DHCP clients are responsible for reliable delivery of messages in the client-initiated message exchanges described in sections1817 and19.18. If a DHCP client fails to receive an expected response from a server, Droms (ed.), et al. Expires 22 Oct 2002 [Page 21] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 the client must retransmit its message. This section describes the retransmission strategy to be used by clients in client-initiated message exchanges. Note that the procedure described in this section is slightly modified for use with the Solicit message (section18.1.2).17.1.2). The client begins the message exchange by transmitting a message to the server. The message exchange terminates when either the client successfully receives the appropriate response or responses from a server or servers, or when the message exchange is considered to have failed according to the retransmission mechanism described below. The client retransmission behavior is controlled and described by the following variables: RT Retransmission timeout IRT Initial retransmission time MRC Maximum retransmission count MRT Maximum retransmission time MRD Maximum retransmission duration RAND Randomization factor With each message transmission or retransmission, the client sets RT according to the rules given below. If RT expires before the message exchange terminates, the client recomputes RT and retransmits the message. Each of the computations of a new RT include a randomization factor (RAND), which is a random number chosen with a uniform distribution between -0.1 and +0.1. The randomization factor is included to minimize synchronization of messages transmitted by DHCP clients. The algorithm for choosing a random number does not need to be cryptographically sound. The algorithm SHOULD produce a different sequence of numbers from each invocation of the DHCP client. RT for the first message transmission is based on IRT:Droms (ed.), et al. Expires 1 Aug 2002 [Page 23] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002RT = 2*IRT + RAND*IRT RT for each subsequent message transmission is based on the previous value of RT: RT = 2*RTprev + RAND*RTprev Droms (ed.), et al. Expires 22 Oct 2002 [Page 22] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 MRT specifies an upper bound on the value of RT. If MRT has a value of 0, there is no upper limit on the value of RT. Otherwise: if (RT > MRT) RT = MRT + RAND*MRT MRC specifies an upper bound on the number of times a client may retransmit a message. If MRC has a value of 0, the client MUST continue to retransmit the original message until a response is received. Otherwise, the message exchange fails once the client has transmitted the message MRC times. MRD specifies an upper bound on the length of time a client may retransmit a message. If MRD has a value of 0, the client MUST continue to retransmit the original message until a response is received. Otherwise, the message exchange fails once the client has transmitted the message MRD seconds. If both MRC and MRD are non-zero, the message exchange fails whenever either of the conditions specified in the previous two paragraphs are met.16.15. Message validation Servers MUST discard any received messages that include authentication information and fail the authentication check by the server. Clients MUST discard any received messages that include authentication information and fail the authentication check by the client, except as noted in section22.6.5.2. 16.1.21.5.5.2. 15.1. Use of Transaction-ID field The "transaction-ID" field holds a value used by clients and servers to synchronize server responses to client messages. A client SHOULD choose adifferent transaction-ID for each newdifferent transaction-ID for each new message it sends. A client MUST leave the transaction-ID unchanged in retransmissions of a message. 15.2. Solicit message Clients MUST discard any received Solicit messages. Servers MUST discard any Solicit messages that do not include a Client Identifier option. Droms (ed.), et al. Expires 22 Oct 2002 [Page 23] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 15.3. Advertise message Clients MUST discard any received Advertise messages that meet any of the following conditions: - the message does not include a Server Identifier option - the message does not include a Client Identifier option - the contents of the Client Identifier option does not match the client's DUID - the "Transaction-ID" field value does not match the value the client used in its Solicit message Servers and relay agents MUST discard any received Advertise messages. 15.4. Request message Clients MUST discard any received Request messages. Servers MUST discard any received Request message that meet any of the following conditions: - the message does not include a Server Identifier option - the contents of the Server Identifier option do not match the server's identifier - the message does not include a Client Identifier option 15.5. Confirm message Clients MUST discard any received Confirm messages. Servers MUST discard any Confirm messages received that do not include a Client Identifier option. 15.6. Renew messageit sends. A clientClients MUSTleave the transaction-ID unchanged in retransmissionsdiscard any received Renew messages. Servers MUST discard any received Renew message that meets any of the following conditions: - the message does not include amessage.Server Identifier option - the contents of the Server Identifier option do not match the server's identifier Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page 24] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 200216.2. Solicit- the message does not include a Client Identifier option 15.7. Rebind message Clients MUST discard any receivedSolicitRebind messages.Relay agents MUST discard any Solicit messages received through port 546.Servers MUST discard anySolicit messagesreceived Rebind message thatdodoes not include a Client Identifier option.16.3. Advertise message15.8. Decline messages Clients MUST discard any receivedAdvertise messagesDecline messages. Servers MUST discard any received Decline message thatmeetmeets any of the following conditions: - the message does not include a Server Identifier option - themessage does not include a Client Identifier option - thecontents of theClientServer Identifier optiondoesdo not match theclient's DUIDserver's identifier - the"Transaction-ID" field valuemessage does notmatch the value the client used in its Solicit message Servers and relay agents MUST discard any received Advertise messages. 16.4. Requestinclude a Client Identifier option 15.9. Release message Clients MUST discard any receivedRequestRelease messages.Relay agents MUST discard any Request messages received through port 546.Servers MUST discard any receivedRequestDecline message thatmeetmeets any of the following conditions: - the message does not include a Server Identifier option - the contents of the Server Identifier option do not match the server's identifier - the message does not include a Client Identifier option16.5. Confirm15.10. Reply message Clients MUST discard any receivedConfirm messages.Reply messages that meet any of the following conditions: - the message does not include a Server Identifier option - the "transaction-ID" field in the message does not match the value used in the original message Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page 25] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002Relay agents MUST discard any Confirm messages received through port 546. Servers MUST discard any Confirm messages received that do- the message does not include a Client Identifieroption. 16.6. Renewoption and the original messageClientsfrom the client contained a Client Identifier option - the message includes a Client Identifier option and the contents of the Client Identifier option does not match the DUID of the client Servers and relay agents MUST discard any receivedRenewReply messages.Relay15.11. Reconfigure message Servers and relay agents MUST discard anyRenew messagesreceivedthrough port 546. ServersReconfigure messages. Clients MUST discard anyreceived Renew messageReconfigure messages thatmeetsmeet any of the following conditions: - the message does not include a Server Identifier option - thecontents of the Server Identifier option do not match the server's identifier - themessage does notinclude a Client Identifiercontain an authentication option16.7. Rebind- the message fails the authentication validation performed by the client 15.12. Information-request message Clients MUST discard any receivedRebindInformation-request messages.Relay agents MUST discard any Rebind messages received through port 546.ServersMUSTMAY discard any receivedRebind messageInformation-request messages thatdoesdo not include a Client Identifier option.16.8. Decline messages ClientsServers MUST discard any receivedDecline messages. Relay agentsInformation-request message that includes a Server Identifier option and the DUID in the option does not match the server's DUID. 15.13. Relay-forward message Clients MUST discard anyDecline messagesreceivedthrough port 546. ServersRelay-forward messages. 15.14. Relay-reply message Clients and servers MUST discard any receivedDeclineRelay-reply messages. 16. Client Source Address and Interface Selection When a client sends a DHCP messagethat meets anyto the All_DHCP_Relay_Agents_and_Servers multicast address, it MUST Droms (ed.), et al. Expires 22 Oct 2002 [Page 26] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 use the IPv6 link-local address assigned to the interface for which the client is interested in obtaining configuration as the source address in the header of thefollowing conditions: -IP datagram. When a client sends a DHCP message to the DHCP_Anycast address, it MUST use an address assigned to the interface for which the client is interested in obtaining configuration, which is suitable for use by themessage does not include a Server Identifier option -server in responding to thecontents ofclient, as theServer Identifier option do not matchsource address in theserver's identifier -header of themessage does not includeIP datagram. See "Default Address Selection for IPv6" [4] for more details. When a client sends aClient Identifier option Droms (ed.), et al. Expires 1 Aug 2002 [Page 26] Internet DraftDHCPfor IPv6 (-23) 1 Feb 2002 16.9. Release message Clients MUST discard any received Release messages. Relay agents MUST discard any Release messages received through port 546. - themessagedoes not includedirectly to a server using unicast (after receiving the ServerIdentifierUnicast option-from that server), it MUST use an address assigned to thecontents ofinterface for which theServer Identifier option do not matchclient is interested in obtaining configuration, which is suitable for use by theserver's identifier -server in responding to themessage does not include a Client Identifier option 16.10. Reply message Clients MUST discard any received Reply messages that meet anyclient, as the source address in the header of thefollowing conditions: -IP datagram. The client MUST transmit the messagedoes not include a Server Identifier option -on the"transaction-ID" field inlink that themessage does not matchinterface for which configuration information is being obtained is attached to. The client SHOULD send thevalue used inmessage through that interface. The client MAY send theoriginalmessage-through another interface attached to the same link if and only if themessage does not include a Client Identifier option -client is certain thecontents oftwo interface are attached to theClient Identifier option does not matchsame link. 17. DHCP Server Solicitation This section describes how a client locates servers that will assign addresses to IAs belonging to theDUID ofclient. The client is responsible for creating IAs and requesting that a server assign configuration information, including IPv6 addresses, to the IA. The clientServersfirst creates an IA andrelay agents MUST discard any received Reply messages. 16.11. Reconfigureassigns it an IAID. The client then transmits a Solicit message containing an IA option describing the IA. Serversand relay agents MUST discard any received Reconfigure messages. Clients MUST discard any Reconfigure messagesthatmeet any ofcan assign configuration information to thefollowing conditions: -IA respond to themessage does not includeclient with an Advertise message. The client then initiates aServer Identifier option -configuration exchange as described in section 18. 17.1. Client Behavior A client uses the Solicit messagedoes not contain an authentication option -to discover DHCP servers configured to serve addresses on themessage failslink to which theauthentication validation performed byclient is attached. 17.1.1. Creation of Solicit messages The client sets the "msg-type" field to SOLICIT. The client16.12. Information-request message Clients MUST discard any received Information-request messages.generates a transaction ID and inserts this value in the "transaction-ID" field. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page27] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002 Relay agents MUST discard any Information-request messages received through port 546. Servers MAY choose to discard any received Information-request messages that do not27] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 The client MUST include a Client Identifieroption. Servers MUST discard any received Information-request message that includes a Server Identifieroptionand the DUID in the option does not matchto identify itself to theserver's DUID. 16.13. Relay-forward message Clients MUST discard any received Relay-forward messages. 16.14. Relay-reply message Clients and serversserver. The client MUSTdiscardinclude one or more IA options for anyreceived Relay-reply messages. 17. Client Source Address and Interface Selection When a client sends a DHCP messageIAs tothe All_DHCP_Agents multicast address,which itMUST usewants theIPv6 link-local address assignedserver to assign addresses. The client MAY include addresses in the IAs as a hint to theinterfaceserver about addresses for which the clientis interested in obtaining configurationhas a preference. The client MUST NOT include any other options except those specifically allowed as defined by specific options. The client may send just IA options for thesource address in the headerassignment of non-temporary addresses, just IA_TA options for theIP datagram. Whenassignment of only temporary options, or a mix of both IA and IA_TA options. The clientsends a DHCP message directly to a server using unicast (after receiving the Server Unicast optionMAY request specific options fromthat server), it MUST usethe server by including anaddress assigned toOption Request option (see section 22.7) indicating theinterafce for whichoptions the client is interested inobtaining configuration, which is suitable for use byreceiving. The client MAY include options with data values as hints to the server about parameter values the client would like to have returned. If the client will accept a Reply message with committed address assignments and other resources inrespondingresponse to theclient, asSolicit message, thesource addressclient includes a Rapid Commit option (see section 22.15) in theheaderSolicit message. 17.1.2. Transmission ofthe IP datagram. See "Default Address Selection for IPv6" [6] for more details.Solicit Messages The first Solicit message from the client on the interface MUSTtransmitbe delayed by a random amount of time between MIN_SOL_DELAY and MAX_SOL_DELAY. In the case of a Solicit messageontransmitted when DHCP is initiated by IPv6 Neighbor Discovery, thelink thatdelay gives theinterface foramount of time to wait after the ManagedFlag changes from FALSE to TRUE (see section 5.5.3 of RFC2462). This random delay desynchronizes clients whichconfiguration information is being obtained is attached to. The client SHOULD sendstart at themessage through that interface.same time (for example, after a power outage). The clientMAY sendtransmits the messagethrough another interface attachedaccording to section 14, using thesame link if and only iffollowing parameters: IRT SOL_TIMEOUT MRT SOL_MAX_RT MRC 0 MRD 0 If the client has included a Rapid Commit option and iscertainwaiting for a Reply message, thetwo interface are attached toclient terminates thesame link. 18. DHCP Server Solicitation This section describes howretransmission process as soon as aclient locates servers that will assign addresses to IAs belonging toReply message is received. If theclient. Theclient isresponsiblewaiting forcreating IAs and requesting that a server assign configuration information, including IPv6 addresses, to the IA. The client first creates an IA and assigns itanIAID. The client then transmits aAdvertise message, the mechanism in section 14 is modified as follows for use in the transmission of Solicit messages. The messagecontainingexchange is not terminated by the receipt of anIA optionAdvertise before IRT has elapsed. Rather, the client Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page 28] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002describingcollects Advertise messages until IRT has elapsed. Also, theIA. Servers that can assign configuration informationfirst RT MUST be selected tothe IA respondbe strictly greater than IRT by choosing RAND tothebe strictly greater than 0. A clientwithMUST collect Advertise messages for IRT seconds, unless it receives an Advertisemessage.message with a preference value of 255. The preference value is carried in the Preference option (section 22.8). Any Solicit that does not include a Preference option is considered to have a preference value of 0. If the clientthen initiatesreceives an Advertise message with aconfiguration exchange aspreference value of 255, then the client SHOULD act immediately on that Advertise message without waiting for any additional Advertise messages. If the client does not receive any Advertise messages before IRT has elapsed, it begins the retransmission mechanism described in section19. 18.1. Client Behavior A14. The clientusesterminates theSolicit message to discover DHCP servers configured to serve addressesretransmission process as soon as it receives any Advertise message, and the client acts on thelinkreceived Advertise message without waiting for any additional Advertise messages. A DHCP client SHOULD choose MRC and MRD towhichbe 0. If the DHCP client isattached. 18.1.1. Creation of Solicit messages The client sets the "msg-type" fieldconfigured with either MRC or MRD set toSOLICIT. The client generatesatransaction ID and inserts thisvaluein the "transaction-ID" field. The clientother than 0, it MUSTinclude a Client Identifier option to identify itselfstop trying to configure the interface if the message exchange fails. After theserver. TheDHCP clientMUST include one or more IA options for any IAsstops trying towhich it wantsconfigure theserverinterface, it SHOULD choose toassign addresses. The client MAY include addresses inrestart theIAsreconfiguration process after some external event, such asa hint to the server about addresses for whichuser input, system restart, or when the clienthasis attached to apreference. The client MAY include an Option Request Option in the Solicit message.new link. 17.1.3. Receipt of Advertise messages The client MUSTNOT includeignore anyother options except those specifically allowed as defined by specific options. IfAdvertise message that includes a Status Code option containing the value AddrUnavail, with the exception that the clientchoosesMAY display the associated status message torequest specific options fromtheserver, it does so by including an Option Request option (see section 23.7, which MUST include alluser. Upon receipt of one or more valid Advertise messages, theoptions the client is requesting. TheclientMAY include optionsselects one or more Advertise messages based upon the following criteria. - Those Advertise messages withdata values as hints tothe highest serverabout parameter valuespreference value are preferred over all other Advertise messages. - Within a group of Advertise messages with the same server preference value, a clientwould like to have returned. 18.1.2. TransmissionMAY select those servers whose Advertise messages advertise information ofSolicit Messages The client sends the Solicit messageinterest to theAll_DHCP_Agents multicast address. The first Solicit message fromclient. For example, the clienton the interface MUST be delayed bymay choose arandom amountserver that returned an advertisement with configuration options oftime between MIN_SOL_DELAY and MAX_SOL_DELAY. This random delay desynchronizes clients which start atinterest to thesame time (e.g., afterclient. - The client MAY choose apower outage).less-preferred server if that server has a better set of advertised parameters, such as the available addresses advertised in IAs. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page 29] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002TheOnce a clienttransmits the message according to section 15, usinghas selected Advertise message(s), thefollowing parameters: IRT SOL_TIMEOUT MRT SOL_MAX_RT MRC 0 MRD 0 The mechanism in section 15 is modifiedclient will typically store information about each server, such asfollows for use in the transmission of Solicit messages. The message exchange is not terminated byserver preference value, addresses advertised, when thereceipt of an Advertise before IRT has elapsed. Rather,advertisement was received, and so on. If the clientcollects Advertise messages until IRT has elapsed. Also, the first RT MUST be selected to be strictly greater than IRT by choosing RANDneeds tobe strictly greater than 0. A client MUST collect Advertise messages for IRT seconds, unless it receivesselect anAdvertise message with a preference value of 255. The preference value is carriedalternate server in thePreference option (section 23.8). Any Solicitcase that a chosen server does notinclude a Preference option is consideredrespond, the client chooses the next server according tohave a preference valuethe criteria given above. 17.1.4. Receipt of0.Reply message If the clientreceives an Advertise message withincludes apreference value of 255, thenRapid Commit option in theclient MAY act immediately on that AdvertiseSolicit message, it will expect a Reply messagewithout waiting for any additional Advertise messages.that includes a Rapid Commit option in response. If the clientdoes not receive any Advertise messages before IRT has elapsed,receives a Reply message, itbeginsprocesses theretransmission mechanismmessage as described in section15. The client terminates18.1.6. If theretransmission process as soon as it recieves any Advertiseclient does not receive a Reply message,andthe clientacts onrestarts thereceived Advertiseserver solicitation process by sending a Solicit messagewithout waiting for any additional Advertise messages.that does not include a Rapid Commit option. 17.2. Server Behavior ADHCPserver sends an Advertise message in response to Solicit messages it receives to announce the availability of the server to the client. 17.2.1. Receipt of Solicit messages The server determines the information about the clientSHOULD choose MRCandMRDits location as described in section 11 and checks its administrative policy about responding tobe 0.the client. If theDHCP clientserver isconfigured with either MRC or MRD setnot permitted toa value other than 0, it MUST stop tryingrespond toconfiguretheinterface ifclient, themessage exchange fails. Afterserver discards the Solicit message. If theDHCPclientstops tryinghas included a Rapid Commit option in the Solicit message and the server has been configured toconfigurerespond with committed address assignments and other resources, theinterface, it SHOULD chooseserver responds torestartthereconfiguration process after some external event, suchSolicit with a Reply message asuser input, system restart, or whendescribed in section 17.2.3. Otherwise, theclient is attachedserver generates and sends an Advertise message toa new link. 18.1.3. Receiptthe client. 17.2.2. Creation and transmission of Advertise messages The server sets the "msg-type" field to ADVERTISE and copies the contents of the transaction-ID field from the Solicit message received from the clientMUST ignore anyto the Advertisemessage thatmessage. The server includes its server identifier in aStatus CodeServer Identifier option. The server MAY add a Preference optioncontainingto carry the preference valueAddrUnavail, with the exception that the client MAY display the associated status message tofor theuser.Advertise message. The server implementation SHOULD allow Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page 30] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002Upon receipt of one or more valid Advertise messages, the client selects one or more Advertise messages based upon the following criteria. - Those Advertise messages withthehighestsetting of a server preference valueare preferred over all other Advertise messages. - Within a group of Advertise messages withby thesameadministrator. The server preferencevalue, a client MAY select those servers whose Advertise messages advertise information of interestvalue MUST default to zero unless otherwise configured by theclient. For example, the client may choose aserverthat returned an advertisement with configuration options of interest to the client. -administrator. Theclient MAY choose a less-preferredserverif that server has a better set of advertised parameters, such as the available addresses advertisedMUST include IA options inIAs. Once a client has selected Advertise message(s),theclient will typically store information about each server, such as server preference value,Advertise message containing any addressesadvertised, when the advertisement was received, and so on. Depending on the requirements of the userthatinvoked the DHCP client, the client MAY initiate a configuration exchange with the server(s) immediately, or MAY defer this exchange until later. If the client needswould be assigned toselect an alternate serverIAs contained in thecase that a chosen server does not respond, the client choosesSolicit message from the client. If thenextserveraccordingwill not assign any addresses to IAs in a subsequent Request from the client, thecriteria given above. 18.2. Server Behavior AserversendsMUST send an Advertise messagein response to Solicit messages it receivestoannouncetheavailability ofclient that includes only a status code option with theserverstatus code set to AddrUnavail and a status message for theclient. 18.2.1. Receipt of Solicit messagesuser. The serverdeterminesMAY include other options the server will return to the client in a subsequent Reply message. The informationaboutin these options will be used by the clientand its location as describedinsection 13. If administrative policy permitsthe selection of a serverto respond to the client,if the client receives more than one Advertise message. The serverwill generate and sendSHOULD include options specifying values for options requested by the client in anAdvertiseOption Request Option included in the Solicit message. If the Solicit messagetowas received directly by the server, theclient. 18.2.2. Creation and transmission of Advertise messages Theserversetsunicasts the"msg-type" fieldAdvertise message directly toADVERTISE and copiesthecontents ofclient using thetransaction-IDaddress in the source address field from the IP datagram in which the Solicit messagereceived fromwas received. The Advertise message MUST be unicast through theclient tointerface on which theAdvertise message. The server includes its server identifierSolicit message was received. If the Solicit message was received in aServer Identifier option. Droms (ed.), et al. Expires 1 Aug 2002 [Page 31] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002 TheRelay-forward message, the serverMAY addconstructs aPreference option to carry the preference value forRelay-reply message with the Advertisemessage. The server implementation SHOULD allowmessage in thesettingpayload of aserver preference value by the administrator. The server preference value MUST default to zero unless otherwise configured by the server administrator."server-message" option. The serverMUST include IA options inunicasts theAdvertiseRelay-reply messagecontaining any addresses that would be assigneddirectly toIAs containedthe relay agent using the address in theSolicit messagesource address field from theclient.IP datagram in which the Relay-forward message was received. 17.2.3. Creation and Transmission of Reply messages The serverMAY include some or all of the IA options fromMUST commit the assignment of any addresses or other configuration information message before sending a Reply message to a client inthe Advertiseresponse to a Solicit message.IfDISCUSSION: When using the Solicit-Advertise message exchange, a serverwillneed notassign any addressescommit the assignment of configuration information toIAs in a subsequent Request fromtheclient,client or otherwise keep state about the client before the serverSHOULD either send ansends the Advertise message to the client. The clientthat includes only a status code option withwill choose one of thestatus code set to AddrUnavailresponding servers and send astatusRequest messagefor the user or not respondtothe Solicit message.obtain configuration information. Theserver may choose to assign fewer temporaryother servers can make any addressesthanthey might have offered to the clientrequested with an RTA option (see section 23.6) and includes a status code of Success in the IA. If the server will assign no temporary addresses, the server includes a status code of AddrUnavail. The server MAY includeavailable for assignment to otheroptionsclients. Droms (ed.), et al. Expires 22 Oct 2002 [Page 31] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 When using the Solicit-Reply message exchange, the serverwill return tocommits the assignment of any addresses before sending theclient in a subsequentReply message. Theinformation in these options will be used by theclient can assume it has been assigned the addresses in theselection ofReply message and does not need to send aserver ifRequest message for those addresses. Typically, servers that are configured to use theclient receivesSolicit-Reply message exchange will be deployed so that only one server will respond to a Solicit message. If more than oneAdvertise message. TheserverSHOULD include options specifying values for options requested byresponds, the clientin an Option Request Option included in the Solicit message. Ifwill only use theSolicit message was received directly byaddresses from one of theserver,servers and theserver unicastsaddresses from theAdvertise message directlyother servers will be committed to the clientusingbut not used by theaddressclient. The server includes a Rapid Commit option in thesource address field fromReply message to indicate that theIP datagramReply is inwhich theresponse to a Solicitmessage was received.message. TheAdvertise message MUST be unicast through the interface on which the Solicit message was received. Ifserver produces theSolicitReply messagewasas though it had receivedinaRelay-forwardRequest message,the server constructs a Relay-reply message with the Advertise messageas described inthe payload of a "server-message" option.section 18.2.1. The serverunicaststransmits theRelay-replyReply messagedirectly to the relay agent using the address in the source address field from the IP datagramas described inwhich the Relay-forward message was received. 19.section 18.2.8. 18. DHCP Client-Initiated Configuration Exchange A client initiates a message exchange with a server or servers to acquire or update configuration information of interest. The client may initiate the configuration exchange as part of the operating system configurationprocess orprocess, when requested to do so by theapplication layer. Droms (ed.), et al. Expires 1 Aug 2002 [Page 32] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002 19.1.application layer, when required by Stateless Address Autoconfiguration or as required to extend the lifetime of an address (Rebind and Renew messages). 18.1. Client Behavior A client will use Request, Confirm, Renew, Rebind and Information-request messages to acquire and confirm the validity of configuration information. The client uses the server identifier information and information about IAs from previous Advertise messages for use in constructing Request messages.Note that a client may request configuration information from one or more servers at any time. 19.1.1.18.1.1. Creation and transmission of Request messages The client uses a Request message to populate IAs with addresses and obtain other configuration information. The client includes one or more IA options in the Request message, with addresses and information about the IAs that were obtained from the server in a previous Advertise message. The server then returns addresses and other information about the IAs to the client in IA options in a Reply message. Droms (ed.), et al. Expires 22 Oct 2002 [Page 32] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 The client generates a transaction ID and inserts this value in the "transaction-ID" field. The client places the identifier of the destination server in a Server Identifier option. The client MUST include a Client Identifier option to identify itself to the server. The client adds any other appropriate options, including one or more IA options (if the client is requesting that the server assign it some network addresses).The list of addresses in each included IA MUST include the addresses received by the client in a previous Advertise message.If the client chooses to request specific options from the server, it does so by including an Option Request option (see section23.7,22.7), which MUST include all of the options the client is requesting. The client MAY include options with data values as hints to the server about parameter values the client would like to have returned. If the client has a source address of sufficient scope that can be used by the server as a return address and the client has received a Server Unicast option (section23.13)22.13) from the server, the client SHOULD unicast the Request message to the server.Otherwise, the client MUST send the Request message to the All_DHCP_Agents multicast address.DISCUSSION: Use of multicast or anycast on a link and relay agents enables the inclusion of relay agent options in all messages sent by the client. The server should enable the use of unicast only when relay agent options will not be used.Droms (ed.), et al. Expires 1 Aug 2002 [Page 33] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002The client transmits the message according to section15,14, using the following parameters: IRT REQ_TIMEOUT MRT REQ_MAX_RT MRC REQ_MAX_RC MRD 0 If the message exchange fails, the client MAY choose one of the following actions: - Select another server from a list of servers known to the client;e. g.,for example, servers that responded with an Advertise message - Initiate the server discovery process described in section1817 - Terminate the configuration process and report failure19.1.2.Droms (ed.), et al. Expires 22 Oct 2002 [Page 33] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 18.1.2. Creation and transmission of Confirm messages Whenever a client may have moved to a new link, its IPv6 addresses and other configuration information may no longer be valid. Examples of times when a client may have moved to a new link include: o The client reboots o The client is physically disconnected from a wired connection o The client returns from sleep mode o The client using a wireless technology changes access points In any situation when a client may have moved to a new link, the client MUST initiate a Confirm/Reply message exchange. The client includes any IAs, along with the addresses associated with those IAs, in its Confirm message. Any responding servers will indicate the acceptability of the addresses with the status in the Reply message it returns to the client. The client sets the "msg-type" field to CONFIRM. The client generates a transaction ID and inserts this value in the "transaction-ID" field. The client MUST include a Client Identifier option to identify itself to the server. The client adds any appropriate options, including one or more IA options. The client MUST include the addresses the client currently has associated with those IAs.Droms (ed.), et al. Expires 1 Aug 2002 [Page 34] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002If the client chooses to request specific options from the server, it does so by including an Option Request option (see section23.7,22.7, which MUST include all of the options the client is requesting. The client MAY include options with data values as hints to the server about parameter values the client would like to have returned.TheWhen the client sends the Confirmmessage to the All_DHCP_Agents multicast address. The clientmessage, it MUST use an IPv6 address that the client has confirmed to be valid on the link to which it is currently attached and that is assigned to the interface for which the client is interested in obtaining configuration information as the source address in the IP header of the datagram carrying the Confirm message. The client transmits the message according to section15,14, using the following parameters: IRT CNF_TIMEOUT MRT CNF_MAX_RT MRC 0 MRD CNF_MAX_RD Droms (ed.), et al. Expires 22 Oct 2002 [Page 34] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 If the client receives no responses before the message transmission process as described in section1514 terminates, the client SHOULD continue to use any IP addresses, using the last known lifetimes for those addresses, and SHOULD continue to use any other previously obtained configuration parameters.19.1.3.18.1.3. Creation and transmission of Renew messages To extend the valid and preferred lifetimes associated with addresses, the client sends a Renew message to the server containing an"IA option"IA option for the IA and its associated addresses. The server determines new lifetimes for the addresses in the IA according to the administrative configuration of the server. The server may also add new addresses to the IA. The server may remove addresses from the IA by setting the preferred and valid lifetimes of those addresses to zero. The server controls the time at which the client contacts the server to extend the lifetimes on assigned addresses through the T1 and T2 parameters assigned to an IA. If T1 or T2 is set to 0 by the server, the client does not send a Renew or Rebind message, respectively, for the IA. At time T1 for an IA, the client initiates a Renew/Reply message exchange to extend the lifetimes on any addresses in the IA. The client includes an IA option with all addresses currently assigned to the IA in its Renew message.Droms (ed.), et al. Expires 1 Aug 2002 [Page 35] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002The client sets the "msg-type" field to RENEW. The client generates a transaction ID and inserts this value in the "transaction-ID" field. The client places the identifier of the destination server in a Server Identifier option. The client MUST include a Client Identifier option to identifyitself to the server. The client adds any appropriate options, including one or more IA options (if the client is requesting that the server extend the lifetimes of the addresses assigneditself tothose IAs; note thatthe server. The clientmay check the status of other configuration parameters without asking for lifetime extensions).adds any appropriate options, including one or more IA options. The client MUST include the list of addresses the client currently has associated with the IAs in the Renew message. If the client chooses to request specific options from the server, it does so by including an Option Request option (see section23.7,22.7), which MUST include all of the options the client is requesting. The client MAY include options with data values as hints to the server about parameter values the client would like to have returned. If the client has a source address of sufficient scope that can be used by the server as a return address and the client has received a Server Unicast option(section 23.13)(see section 22.13) from the server, the client SHOULD unicast the Renew message to the server.Otherwise, the client sends the Renew message to the All_DHCP_Agents multicast address.Droms (ed.), et al. Expires 22 Oct 2002 [Page 35] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 DISCUSSION: Use of multicast or anycast on a link and relay agents enables the inclusion of relay agent options in all messages sent by the client. The server MUST NOT enable the use of unicast for a client when relay agent options are required for that client. The client transmits the message according to section15,14, using the following parameters: IRT REN_TIMEOUT MRT REP_MAX_RT MRC 0 MRD 0 The mechanism in section1514 is modified as follows for use in the transmission of Renew messages. The message exchange is terminated when time T2 is reached (see section19.1.4),18.1.4), at which time the client begins a Rebind message exchange.Droms (ed.), et al. Expires 1 Aug 2002 [Page 36] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002 19.1.4.18.1.4. Creation and transmission of Rebind messages At time T2 for an IA (which will only be reached if the server to which the Renew message was sent at time T1 has not responded), the client initiates a Rebind/Reply message exchange. The client includes an IA option with all addresses currently assigned to the IA in its Rebind message. The clientsends this message to the All_DHCP_Agents multicast address. The clientsets the "msg-type" field to REBIND. The client generates a transaction ID and inserts this value in the "transaction-ID" field. The client MUST include a Client Identifier option to identify itself to the server. The client adds any appropriate options, including one or more IA options. The client MUST include the list of addresses the client currently has associated with the IAs in the Rebind message. If the client chooses to request specific options from the server, it does so by including an Option Request option (see section23.7,22.7), which MUST include all of the options the client is requesting. The client MAY include options with data values as hints to the server about parameter values the client would like to have returned. The clientsends the Rebind message to the All_DHCP_Agents multicast address. The clienttransmits the message according to section15,14, using the following parameters: IRT REB_TIMEOUT Droms (ed.), et al. Expires 22 Oct 2002 [Page 36] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 MRT REB_MAX_RT MRC 0 MRD 0 The mechanism in section1514 is modified as follows for use in the transmission of Rebind messages. The message exchange is terminated when the lifetimes of all of the addresses assigned to the IA expire (see section12),10), at which time the client has several alternative actions to choose from: - The client may choose to use a Solicit message to locate a new DHCP server and send a Request for the expired IA to the new server - The client may have other addresses in other IAs, so the client may choose to discard the expired IA and use the addresses in the other IAsDroms (ed.), et al. Expires 1 Aug 2002 [Page 37] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002 19.1.5.18.1.5. Creation and Transmission of Information-request messages The client uses an Information-request message to obtain configuration information without having addresses assigned to it. The client sets the "msg-type" field to INFORMATION-REQUEST. The client generates a transaction ID and inserts this value in the "transaction-ID" field. The client SHOULD include a Client Identifier option to identify itself to the server. If the client does not include a Client Identifier option, the server will not be able to return any client-specific options to theclient.client, or the server may choose not to respond to the message at all. If the client chooses to request specific options from the server, it does so by including an Option Request option (see section23.7,22.7), which MUST include all of the options the client is requesting. The client MAY include options with data values as hints to the server about parameter values the client would like to have returned. The client MUST NOT include any IA options. If the client has an IPv6 address of sufficient scope, the client MAY choose to send the Information-request message to the All_DHCP_Servers multicast address.Otherwise, the client MUST send the Information-request message to the All_DHCP_Agents multicast address.The client transmits the message according to section15,14, using the following parameters: IRT INF_TIMEOUT MRT INF_MAX_RT Droms (ed.), et al. Expires 22 Oct 2002 [Page 37] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 MRC 0 MRD 019.1.6.18.1.6. Receipt of Reply message in response to a Request, Confirm, Renew, Rebind or Information-request message Upon the receipt of a valid Reply message in response to a Request, Confirm, Renew, Rebind or Information-request message, the client extracts the configuration information contained in the Reply. The client MAY choose to report any status code or message from the status code option in the Reply message. The client SHOULD perform duplicate address detection[21][19] on each of the addresses in any IAs it receives in the Reply messageafter a Request message.before using that address for traffic. If any of the addresses are found to be in use on the link, the client sends a Decline message to the server as described in section19.1.9. Droms (ed.), et al. Expires 1 Aug 2002 [Page 38] Internet Draft DHCP for IPv6 (-23) 1 Feb 200218.1.9. The client records the T1 and T2 times for each IA in the Reply message. The client records any addresses included with IAs in the Reply message. The client updates the preferred and valid lifetimes for the addresses in the IA from the lifetime information in the IA option. The client leaves any addresses that the client has associated with the IA that are not included in the IA option unchanged.The client SHOULD respond to the server with a Release message for any addresses in the Reply message that have a valid lifetime of 0. The client constructs and transmits this message as described in section 19.1.7.If the Reply was received in response to a Renew or Rebind message, the client must update the information in any IA option contained in the Reply message. The client adds any new addresses from the IA option to the IA, updates lifetimes for existing addresses in the IA from the IA option and discards any addresses with a lifetime of zero in the IA option. Management of the specific configuration information is detailed in the definition of each option, in section23.22. When the client receives aNoPrefixMatchNotOnLink status in an IA from the server in response to a Confirm message, the client can assume it needs to send a Request to the server to obtain appropriate addresses for the IA. If the client receives any Reply messages that do not indicate aNoPrefixMatchNotOnLink status, the client can use the addresses in the IA and ignore any messages that do indicate aNoPrefixMatchNotOnLink status. When the client receives an AddrUnavail status in an IA from the server for a Request message the client will have to find a new server to create an IA. Droms (ed.), et al. Expires 22 Oct 2002 [Page 38] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 When the client receives a NoBinding status in an IA from the server for aConfirmRenew message the client can assume it needs to send a Request to reestablish an IA with the server. When the client receivesa ConfNoMatchan AddrUnavail status in an IA from the server for aConfirmRenew message the client can assume it needs to send aRenew message to the serverRequest toextend the lifetimes ofreestablish an IA with theaddresses.server. When the client receives a NoBinding status in an IA from the server for aRenewRebind message the client can assume it needs to send a Request to reestablish an IA with the server or try another server. When the client receivesa RenwNoMatchan AddrUnavail status in an IA from the server for aRenewRebind message the client can assume it needs to send a Request to reestablish an IA with the server or try another server.When18.1.7. Creation and transmission of Release messages To release one or more addresses, a client sends a Release message to the server. The clientreceives an AddrUnavail statussets the "msg-type" field to RELEASE. The client generates a transaction ID and places this value in the "transaction-ID" field. The client places the identifier of the server that allocated the address(es) in a Server Identifier option. The client MUST include a Client Identifier option to identify itself to the server. The client includes options containing the IAs for the addresses it is releasing in the "options" field. The addresses to be released MUST be included in the IAs. Any addresses for the IAs the client wishes to continue to use should not be in added to the IAs. The client MUST NOT use any of the addresses if is releasing as the source address in the Release message or in any subsequently transmitted message. If the client has a source address of sufficient scope that can be used by the server as a return address and the client has received a Server Unicast option (section 22.13) from the server, the client SHOULD unicast the Release message to the server. DISCUSSION: Use of multicast or anycast on a link and relay agents enables the inclusion of relay agent options inan IA fromall messages sent by the client. The server MUST NOT enable the use of unicast for aRenew message theclientcan assume it needs to send a Request to reestablish an IA with the server.when relay agent options are required for that client. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page 39] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002When theThe clientreceivesSHOULD choose to guarantee the delivery of the Release message using the retransmission strategy in section 14. An example of aNoBinding statussituation inan IA from the server forwhich aRebind messageclient would not guarantee delivery would be when the clientcan assume it needsis powering down or restarting because of some error condition. The client transmits the message according tosend a Requestsection 14, using the following parameters: IRT REL_TIMEOUT MRT 0 MRC REL_MAX_MRC MRD 0 The client MUST abandon the attempt toreestablish an IA withrelease addresses if theserver or try another server. WhenRelease message exchange fails. The client MUST stop using all of the addresses being released as soon as the clientreceives a RebdNoMatch status in an IA frombegins theserver for a RebindRelease message exchange process. If addresses are released but theclient can assume it needs to sendReply from aRequest to reestablish an IA withDHCP server is lost, the client will retransmit the Release message, and the serveror try another server. Whenmay respond with a Reply indicating a status of "Nobinding". Therefore, the clientreceives an AddrUnavaildoes not treat a Reply message with a status of "Nobinding" in a Release message exchange as if it indicates an error. Note that if the client fails to release the addresses, the addresses assigned to the IAfromwill be reclaimed by the serverforwhen the lifetime of the address expires. 18.1.8. Receipt of Reply message in response to aRebindRelease message Upon receipt of a valid Reply message, the client canassume it needs to send a Request to reestablish an IA withconsider theserver or try another server. 19.1.7.Release event successful. 18.1.9. Creation and transmission ofReleaseDecline messages The client sets the "msg-type" field toRELEASE.DECLINE. The client generates a transaction ID and places this value in the "transaction-ID" field. The client places the identifier of the server that allocated the address(es) in a Server Identifier option. The client MUST include a Client Identifier option to identify itself to the server. The client includes options containing the IAs for the addresses it isreleasingdeclining in the "options" field. The addresses to bereleaseddeclined MUST be included in the IAs.The client continues to use any otherAny addressesinfor theIAs. The appropriate "status" field inIAs theoptions MUSTclient wishes to continue to use should not besetin added toindicatethereasonIAs. Droms (ed.), et al. Expires 22 Oct 2002 [Page 40] Internet Draft DHCP forthe release.IPv6 (-24) 22 Apr 2002 The client MUST NOT use any of the addressesin the IAs in the messageit is declining as the source address in theReleaseDecline message or in any subsequently transmitted message. If the client has a source address of sufficient scope that can be used by the server as a return address and the client has received a Server Unicast option (section23.13)22.13) from the server, the client SHOULD unicast theReleaseDecline message to the server.Otherwise, the client MUST send the Release message to the All_DHCP_Agents multicast address.DISCUSSION: Use of multicast or anycast on a link and relay agents enables the inclusion of relay agent options in all messages sent by the client. The server MUST NOT enable the use of unicast for a client when relay agent options are required for that client.AThe clientMAY choosetransmits the message according towait for asection 14, using the following parameters: IRT DEC_TIMEOUT MRT DEC_MAX_RT MRC DEC_MAX_RC MRD 0 The client MUST abandon the attempt to decline addresses if the Decline message exchange fails. 18.1.10. Receipt of Reply messagefrom the serverin response to a Decline message Upon receipt of a valid Reply message, theRelease message. Ifclient can consider the Decline event successful. 18.2. Server Behavior For this discussion, the Server is assumed to have been configured in an implementation specific manner with configuration of interest to clients. 18.2.1. Receipt of Request messages When the server receives a Request message via unicast from a clientdoes wait forto which the server has not sent aReply,unicast option, theclient MAY choose to retransmitserver discards theRelease message.Request message and responds with a Reply message containing a status code option with value UseMulticast and no other options. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page40]41] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002TheWhen the server receives a Request the clienttransmitsis requesting themessageconfiguration of IAs by the server. The server creates the bindings for that client according tosection 15, usingthefollowing parameters: IRT REL_TIMEOUT MRT 0 MRC REL_MAX_MRC MRD 0server's policy and configuration information and records the IAs and other information about the client. Theclient MUST abandonserver contructs a Reply message by setting theattempt"msg-type" field torelease addresses ifREPLY, copying theReleasetransaction ID from the Request messageexchange fails.into the transaction-ID field. Theclientserver MUSTstop using all of the addresses ininclude a Server Identifier option containing theIA(s) being released as soon asserver's DUID and theclient beginsClient Identifier option from theReleaseRequest messageexchange process.in the Reply message. Ifanthe server finds that the prefix on one or more IP addresses in any IAis released butin theReplymessage froma DHCP server is lost,the clientwill retransmitis not a valid prefix for theRelease message, andlink to which the client is connected, the servermay respond with a Reply indicating a status of "Nobinding". Therefore,MUST return the IA to the clientdoes not treat a Reply messagewithathe statusof "Nobinding" in a Release message exchange as if it indicates an error. Note that iffield set to NotOnLink. If theclient failsserver cannot assign any addresses toreleaseany of theIA,IAs in theaddresses assigned tomessage from theIA will be reclaimed byclient, the serverwhenMUST include thelifetime ofIAs in theaddress expires. 19.1.8. Receipt ofReply message with the status field set to AddrUnavail and no addresses inresponsethe IA. For any IAs toa Release message Upon receipt of a valid Reply message,which theclientserver canconsiderassign addresses, theRelease event successful. 19.1.9. Creationserver includes the IA with addresses andtransmission of Decline messages Theother configuration parameters and records the IA as a new clientsetsbinding. The server adds options to the"msg-type" fieldReply message for any other configuration information to be assigned toDECLINE. The client generates a transaction ID and places this value inthe"transaction-ID" field. The client placesclient. If theidentifier ofRequest message contained an Option Request option, the serverthat allocated the address(es) in a Server Identifier option. The clientMUST includea Client Identifieroptions in the Reply message for any options in the Option Request option the server is configured toidentify itselfreturn to theserver.client. Theclient includesserver MAY choose to return other optionscontainingnot specified in theIAs itOption Request option. 18.2.2. Receipt of Confirm messages When the server receives a Confirm message, the client isdeclining inrequesting confirmation that the"options" field.configuration information it will use is valid. Theaddresses to be declined MUST be included inserver locates theIAs. Thebinding for that clientcontinues to use other addresses inand compares theIAs. The appropriate "status" fieldinformation in theoptions MUST be setConfirm message from the client toindicatethereasoninformation associated with that client. If the server finds that the information fordecliningtheaddress. TheclientMUST NOT use any of the addressesdoes not match what is in theIAs inbinding for that client or the configuration information is not valid, the server sends a Reply messageascontaining a Status Code option with thesource address invalue ConfNoMatch. If theDecline message orserver finds that the information for the client does match the information inany subsequently transmitted message.the binding for that client, and the configuration Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page41]42] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002If the client has a source address of sufficient scope that can be used byinformation is still valid, the serverassends areturn address and the client has receivedReply message containing aServer UnicastStatus Code option(section 23.13) fromwith theserver,value Success. If theclient SHOULD unicastserver cannot determine if theDecline message toinformation in theserver. Otherwise,Confirm message is valid or invalid, theclientserver MUST NOT sendthe Decline messagea reply to theAll_DHCP_Agents multicast address. DISCUSSION: Use of multicast and relay agents enables the inclusion of relay agent options in all messages sent by theclient.The server MUST NOT enableFor example, if theuse of unicast forserver does not have aclient when relay agent options are requiredbinding forthat client. The client transmitsthemessage according to section 15, using the following parameters: IRT DEC_TIMEOUT MRT DEC_MAX_RT MRC DEC_MAX_RC MRD 0 The client MUST abandonclient, but theattempt to decline addresses ifconfiguration information in theDeclineConfirm messageexchange fails. 19.1.10. Receipt ofappears valid, the server does not reply. The server contructs a Reply messagein responseby setting the "msg-type" field toa DeclineREPLY, copying the transaction ID from the Confirm messageUpon receipt ofinto the transaction-ID field. The server MUST include avalid Reply message,Server Identifier option containing theclient can considerserver's DUID and theDecline event successful. 19.2. Server Behavior For this discussion,Client Identifier option from theServer is assumed to have been configuredConfirm message inan implementation specific manner with configuration of interest to clients. 19.2.1.the Reply message. The Reply message from the server MUST include a Status Code option. 18.2.3. Receipt ofRequestRenew messagesTheWhen the serverMAY choose to discard Request messages receivedreceives a Renew message via unicast from a client to which the server has not sent a unicastoption.option, the server discards the Renew message and responds with a Reply message containing a status code option with value UseMulticast and no other options. When the server receives aRequest theRenew and IA option from a clientis requestingit locates theconfiguration of a new IA byclient's binding and verifies that theserver. The server MUST takeinformation in the IA from the clientand associate a bindingmatches the information stored for thatclient in an implementation-specific manner withinclient. If theconfiguration parameter databaseserver cannot find a client entry forDHCP clients managed bytheserver. Droms (ed.), et al. Expires 1 Aug 2002 [Page 42] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002 UponIA thereceiptserver returns the IA containing no addresses with status set to NoBinding in the Renew message. If the server finds that any ofathe addresses are no longer validRequest message from a clientfor theserver can respond to, (implementation-specific administrative policy satisfied)client, the serverscansreturns the address to the client with lifetimes of 0. If theoptions field. Theserver finds the addresses in the IA for the client thenconstructs a Reply message andthe server sendsitback the IA to theclient.client with new lifetimes and T1/T2 times, and includes a Status Code option with value Success. The serverSHOULD process each option formay choose to change theclientlist of addresses and the lifetimes of addresses inan implementation-specific manner.IAs that are returned to the client. The serverMUST constructcontructs a Reply messagecontainingby setting thefollowing values: msg-type REPLY transaction-ID The transaction-ID"msg-type" field to REPLY, copying the transaction ID from theRequest message.Renew message into the transaction-ID field. The server MUST include a Server Identifier option containing the server's DUID and the Client Identifier option from the Renew message in the Reply message.IfDroms (ed.), et al. Expires 22 Oct 2002 [Page 43] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 18.2.4. Receipt of Rebind messages When the serverfindsreceives a Rebind and IA option from a client it locates the client's binding and verifies that theprefix on one or more IP addresses in any IAinformation in themessageIA from the clientis not a valid prefix formatches thelink to whichinformation stored for that client. If the server cannot find a clientis connected,entry for the IA the serverMUST returnreturns the IAto the clientcontaining no addresses withthestatusfieldset toNoPrefixMatch.NoBinding in the Rebind message. If the servercannot assign any addresses tofinds that the any of theIAs in the message fromaddresses are no longer valid for the client, the serverSHOULD includereturns theIAs inaddress to theReply messageclient with lifetimes of 0. If the server finds thestatus field set to AddrUnavail and noaddresses in theIA. For any IAs to whichIA for theserver can assign addresses, server includesclient then theIA with addresses and other configuration parameters a status of Success, and addserver SHOULD send back the IAas a new client binding. The server may choosetoassign fewer temporary addresses thanthe clientrequestedwithan RTA option (see section 23.6)new lifetimes andincludes a status code of Success in the IA. IfT1/T2 times if the default is not being used. The serverchoosescontructs a Reply message by setting the "msg-type" field toassign no temporary addresses,REPLY, copying the transaction ID from the Rebind message into the transaction-ID field. The serverincludesMUST include astatus code of AddrUnavail.Server Identifier option containing the server's DUID and the Client Identifier option from the Rebind message in the Reply message. The server adds options to the Reply message for any other configuration information to be assigned to the client.19.2.2.If the Rebind message contained an Option Request option, the server MUST include options in the Reply message for any options in the Option Request option the server is configured to return to the client. The server MAY choose to return other options not specified in the Option Request option. 18.2.5. Receipt ofConfirmInformation-request messages When the server receivesa Confirman Information-request message, the client is requestingconfirmation that theconfiguration informationit will use is valid.that does not include the assignment of any addresses. The serverSHOULD locatedetermines all configuration parameters appropriate to thebinding for that client and compareclient, based on theinformation inserver configuration policies known to theConfirmserver. The server contructs a Reply messagefromby setting theclient"msg-type" field to REPLY, copying theinformation associated with that client. Upontransaction ID from thereceipt of a valid ConfirmRebind messagefrominto the transaction-ID field. The server MUST include aclientServer Identifier option containing the server's DUID and the Client Identifier option from the Rebind message in the Reply message. The servercan respond to, (implementation-specific administrative policy satisfied)adds options to the Reply message for all of theserver scansconfiguration parameters to be returned to the client. If theoptions field.Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page43]44] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002If the server cannot determine if the information in the ConfirmInformation-request messageis valid or invalid,contained an Option Request option, the server MUSTNOT send a reply to the client. For example, if the server does not have a binding for the client, but the configuration informationinclude options in theConfirmReply messageappears valid, the server does not reply. If the server finds that the informationforthe client does not match what isany options in thebinding for that client orOption Request option theconfiguration informationserver isnot valid,configured to return to the client. The serversends a Reply message containing a Status Code option withMAY choose to return other options not specified in thevalue ConfNoMatch.Option Request option. If theserver finds that the information forInformation-request message received from the clientdoes match the information in the binding for that client, and the configuration information is still valid, the server sends a Reply message containingdid not include aStatus Code option withClient Identifier option, thevalue Success. Theserver SHOULDprocess each option for the client in an implementation-specific manner. The server MUST constructrespond with a Reply message containing any configuration parameters that are not determined by thefollowing values: msg-type REPLY transaction-ID The transaction-ID fromclient's identity. If theConfirm message. TheserverMUST include a Server Identifier option containingchooses not to respond, theserver's DUID inclient may continue to retransmit theReply message. The ReplyInformation-request messagefrom the server MUST contain a Status Code option and MUST NOT include any other options. 19.2.3.indefinitely. 18.2.6. Receipt ofRenewRelease messagesTheWhen the serverMAY choose to discard Renew messages receivedreceives a Release message via unicast from a client to which the server has not sent a unicastoption.option, the server discards the Release message and responds with a Reply message containing a status code option with value UseMulticast and no other options. Upon the receipt of a validRenewRelease message, the server examines the IAs and the addresses in the IAs for validity. If the IAs in the messagefromare in a binding for the client and the addresses in the IAs have been assigned by the servercan respond to, (implementation-specific administrative policy satisfied)to those IAs, the serverscansdeletes theoptions field. Whenaddresses from the IAs and makes the addresses available for assignment to other clients. The serverreceivesignores invalid addresses (though it may choose to log an error if it finds an invalid address). After all the addresses have been processed, the server generates aRenewReply message andIA option fromincludes aclient it SHOULD locate the clients bindingStatus Code option with value Success andverifya Server Identifier option with theinformationserver's DUID. The server MUST NOT include any other options in theIA from the client matches the information stored for that client.Reply message. If the server cannot find aclient entrybinding forthis IAthe client, the serverSHOULD return an IA containing no addressessends a Reply message that includes a Status Code option withstatus setvalue NoBinding. A server may choose to retain a record of assigned addresses and IAs after the lifetimes on the addresses have expired to allow the server to reassign the previously assigned addresses to a client. 18.2.7. Receipt of Decline messages When the server receives a Decline message via unicast from a client toNoBinding. Ifwhich the serverfinds that the addresses in the IA for the client dohas notmatch the client bindingsent a unicast option, the servershould return an IA containing no addressesdiscards the Decline message and responds with a Reply message containing a statusset to RenwNoMatch.code option with value UseMulticast and no other options. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page44]45] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002IfUpon the receipt of a valid Decline message, the servercannot Renew addresses forexamines theclient it SHOULD send back an IA containing no addresses toIAs and theclient withaddresses in thestatus field set to AddrUnavail.IAs for validity. If theserver finds the addressesIAs in theIAmessage are in a binding for the clientthenand theserver SHOULD send backaddresses in theIAIAs have been assigned by the server to those IA, theclient with new lifetimes and T1/T2 times ifserver deletes thedefault is not being used, and set status to Success.addresses from the IAs. The servermay choose to changeSHOULD mark thelist ofaddressesanddeclined by thelifetimes of addresses in IAsclient so that those addresses arereturnednot assigned tothe client.other clients, and MAY choose to make a notification that addresses were declined. The server ignores invalid addresses (though it may choose toassign fewer temporary addresses than the client requested withlog anRTA option (see section 23.6) and includes a status code of Success in the IA. If the server chooses to assign no temporary addresses,error if it finds an invalid address). After all theserver includes a status code of AddrUnavail. The server SHOULD process each option foraddress have been processed, theclient in an implementation-specific manner. TheserverMUST constructgenerates a Reply messagecontaining the following values: msg-type REPLY transaction-ID The transaction-ID from the Confirm message. The server MUST includeand includes a Status Code option with value Success and a Server Identifier optioncontainingwith the server'sDUIDDUID. The server MUST NOT include any other options in the Reply message.19.2.4. Receipt18.2.8. Transmission ofRebindReply messagesUponIf thereceipt ofRequest, Confirm, Renew, Rebind, Release, Decline or Information-request message from the client was originally received in avalid RebindRelay-forward message from aclientrelay, the servercan respond to, (implementation-specific administrative policy satisfied)places theserver scansReply message in the optionsfield. When the server receivesfield of aRebindRelay-response message andIA option from a client it SHOULD locatecopies theclients bindinglink-address andverify the information in the IAclient-address fields from theclient matches the information stored for that client. IfRelay-forward message into the Relay-response message. The servercannot find a client entry for this IAthen unicasts theserver SHOULD return an IA containing no addresses with status setReply or Relay-reply toNoBinding. Iftheserver finds thatsource address from theaddressesIP datagram in which theIA for the client do not matchoriginal message was received. 19. DHCP Server-Initiated Configuration Exchange A server initiates a configuration exchange to cause DHCP clients to obtain new addresses and other configuration information. For example, an administrator may use a server-initiated configuration exchange when links in theclient bindingDHCP domain are to be renumbered. Other examples include changes in the location of directory servers, addition of new services such as printing, and availability of new software. 19.1. Server Behavior A servershould return an IA containing no addressessends a Reconfigure message to cause a client to initiate immediately a Renew/Reply or Information-request/Reply message exchange withstatus set to RebdNoMatch. Ifthe server. 19.1.1. Creation and transmission of Reconfigure messages The servercannot Rebind addresses forsets theclient it SHOULD send back an IA containing no addresses"msg-type" field to RECONFIGURE. The server sets theclient with the statustransaction-id fieldsettoAddrUnavail. If the0. The serverfinds the addressesplaces its identifier inthe IA for the client then the server SHOULD send back the IA to the client with new lifetimes anda Server Identifier option. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page45]46] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002T1/T2 times if the default is not being used, and set status to Success.The servermay chooseMAY include an Option Request option toassign fewer temporary addresses thaninform the clientrequested with an RTA option (see section 23.6) and includes a status codeofSuccesswhat information has been changed or new information that has been added. In particular, the server specifies the IA option in theIA. IfOption Request option if the serverwill assign no temporary addresses,wants theserver includes a status code of AddrUnavail.client to obtain new address information. The serverSHOULD process eachMUST include an authentication optionfor the clientinan implementation-specific manner.the Reconfigure message. The server MUSTconstructinclude aReply message containing the following values: msg-type REPLY transaction-ID The transaction-ID fromReconfigure Message option (defined in section 22.20) to select whether theConfirmclient responds with a Renew message or an Information-Request message. The server MUST NOT includea Server Identifier option containingany other options in theserver's DUIDReconfigure except as specifically allowed in theReply message. 19.2.5. Receiptdefinition ofInformation-request messages Whenindividual options. A server sends each Reconfigure message to a single DHCP client, using an IPv6 unicast address of sufficient scope belonging to the DHCP client. The serverreceives an Information-request message,may obtain the address of the clientis requesting configurationthrough the information thatdoes not includetheassignment of any addresses. TheserverSHOULD determine all configuration parameters appropriate tohas about clients that have been in contact with the server, or the server may be configured with the address of the client through some external agent. To reconfigure more than one client,based onthe serverconfiguration policies knownunicasts a separate message to each client. The server may initiate the reconfiguration of multiple clients concurrently; for example, a server may send a Reconfigure message to additional clients while previous reconfiguration message exchanges are still in progress. The Reconfigure message causes the client to initiate a Renew/Reply or Information-request/Reply message exchange with the server.UponThe server interprets the receipt of avalidRenew or Information-request message froma client the server can respond to, (implementation-specific administrative policy satisfied)theserver scansclient as satisfying theoptions field. The server then constructs a ReplyReconfigure message request. 19.1.2. Time out andsends it toretransmission of Reconfigure messages If theclient. TheserverSHOULD process each option fordoes not receive a Renew or Information-request message from the client inan implementation-specific manner. TheRECREP_MSG_TIMEOUT milliseconds, the serverMUST construct a Reply message containingretransmits thefollowing values: msg-type REPLY transaction-ID The transaction-ID fromReconfigure message, doubles theConfirm message.RECREP_MSG_TIMEOUT value and waits again. The serverMUST include a Server Identifier option containingcontinues this process until REC_MSG_ATTEMPTS unsuccessful attempts have been made, at which point theserver's DUID inserver SHOULD abort theReply message.reconfigure process for that client. Default and initial values for RECREP_MSG_TIMEOUT and REC_MSG_ATTEMPTS are documented in section 5.6. 19.1.3. Receipt of Renew messages The serveradds optionsgenerates and sends Reply message(s) to theReply messageclient as described in sections 18.2.3 and 18.2.8, including options forall of theconfigurationparameters to be returned to the client.parameters. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page46]47] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 200219.2.6. Receipt of Release messagesThe server MAY choose todiscard Release messages received via unicast from a client to which the server has not sent a unicast option. Upon the receipt ofsend avalid Release message, the server examinesReply with the IAs andthe addresses in the IAs for validity. If theother parameters to be reconfigured, even if those IAsin the message are in a binding for the clientandthe addressesparameters were not requested in theIAs have been assigned byRenew message from the client. 19.2. Receipt of Information-request messages The server generates and sends Reply message(s) tothose IAs, the server deletes the addresses fromtheIAsclient as described in sections 18.2.5 andmakes the addresses available18.2.8, including options forassignment to other clients.configuration parameters. The serverignores invalid addresses (though it mayMAY choose tolog an error if it finds an invalid address). After all the addresses have been processed, the server generatessend a Replymessage and includes a Status Code option with value Success and a Server Identifier optionwith theserver's DUID. The server MUST NOT include anyotheroptions in the Reply message. A server is not required to (but may choose to as an implementation strategy) retain any record of an IA from which all of the addresses have been released. 19.2.7. Receipt of Decline messages The server MAY chooseparameters todiscard Decline messages received via unicastbe reconfigured, even if those parameters were not specified in the Information-request message fromathe client. 19.3. Client Behavior A client MUST accept Reconfigure messages sent to UDP port 546on interfaces for whichthe serverit hasnotacquired configuration information through DHCP. These messages may be senta unicast option. Uponat any time. Since thereceiptresults of avalid Decline message, the server examinesreconfiguration event may affect application layer programs, theIAsclient SHOULD log these events, and MAY notify these programs of theaddresses in the IAs for validity. If the IAs in the message are inchange through an implementation-specific interface. 19.3.1. Receipt of Reconfigure messages Upon receipt of abinding forvalid Reconfigure message, the clientand the addresses in the IAs have been assigned by the server to those IA,initiates a transaction with the serverdeletesby sending a Reply or Information-request message. While theaddresses fromtransaction is in progress, theIAs.client silently discards any Reconfigure messages it receives. Theserver SHOULD mark the addresses declined by theclientso that those addresses are not assigned to other clients, and MAY choose to makeresponds with either anotification that addresses were declined. The server ignores invalid addresses (though it may choose to log an error if it findsRenew message or aninvalid address). After all the address have been processed,Information-request message as indicated by theserver generates a ReplyReconfigure Message option (as defined in section 22.20). DISCUSSION: The Reconfigure messageand includesacts as aStatus Code option with value Success andtrigger that signals the client to complete aServer Identifier option withsuccessful message exchange. Once theserver' DUID. The server MUST NOT include any other options inclient has received a Reconfigure, theReply message. 19.2.8. Transmission of Reply messages Ifclient proceeds with theRequest, Confirm, Renew, Rebind, Release, Declinemessage exchange (retransmitting the Renew or Information-request messagefromif necessary); the clientwas originally receivedignores any additional Reconfigure messages (regardless of the transaction ID ina Relay-forward message from a relay,theserver placesReconfigure message) until theReply messageexchange is complete. Subsequent Reconfigure messages (again independent of the transaction ID) cause the client to initiate a new exchange. How does this mechanism work in theoptions fieldface ofa Relay-response message andduplicated or retransmitted Reconfigure messages? Duplicate messages will be ignored because the client will begin the exchange Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page47]48] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002copiesafter thelink-address and client-return-address fields fromreceipt of theRelay-forward message intofirst Reconfigure. Retransmitted messages will either trigger theRelay-response message. The server then unicastsexchange (if theReplyfirst Reconfigure was not received by the client) orRelay-replywill be ignored. The server can discontinue retransmission of Reconfigure messages to thesource address fromclient once theIP datagram in whichserver receives theoriginalRenew or Information-request messagewas received. 20. DHCP Server-Initiated Configuration Exchange A server initiatesfrom the client. It might be possible for aconfiguration exchangeduplicate or retransmitted Reconfigure tocause DHCP clientsbe sufficiently delayed (and delivered out of order) toobtain new addresses and other configuration information. For example, an administrator may use a server-initiated configurationarrive at the client after the exchangewhen links in(initiated by theDHCP domain are to be renumbered. Other examples include changes inoriginal Reconfigure) has been completed. In this case, thelocation of directory servers, additionclient would initiate a redundant exchange. The likelihood ofnew services such as printing,delayed andavailabilityout ofnew software (system or application). 20.1. Server Behavior A server sends a Reconfigure message to cause a clientorder delivery is small enough toinitiate immediately a Renew/Reply or Information-request/Reply message exchange withbe ignored. The consequence of theserver. 20.1.1.redundant exchange is inefficiency rather than incorrect operation. 19.3.2. Creation and transmission ofReconfigureRenew messagesThe server sets the "msg-type" fieldWhen responding toRECONFIGURE. The server generatesatransaction-IDReconfigure, the client creates andinserts itsends the Renew message in exactly the"transaction-ID" field. The server places its identifiersame manner as outlined ina Server Identifier option. The server MAY include an Option Request option to informsection 18.1.3, with theclient of what information has been changed or new information that has been added. In particular,exception: if the serverspecifies the IA option in theincluded on Option Request optionifspecifying theserver wantsIA option, the clientto obtain new address information. The serverMUST includean authentication option with the appropriate settings and add that option as the last option inIA options containing the"options" field ofaddresses theReconfigure message. The server MUST NOT include any other options inclient currently has assigned to ALL IAs for theReconfigure except as specifically allowed ininterface through which thedefinition of individual options. A server sends eachReconfigure messageto a single DHCP client, using an IPv6 unicast addresswas received. 19.3.3. Creation and transmission ofsufficient scope belongingInformation-request messages When responding to a Reconfigure, theDHCP client. The server may obtainclient creates and sends theaddress ofInformation-request message in exactly theclient throughsame manner as outlined in section 18.1.5, with theinformationexception that theserver has about clients that have been in contactclient includes a Server Identifier option with theserver,identifier from the Reconfigure message to which the client is responding. 19.3.4. Time out and retransmission of Renew or Information-request messages The client uses theserver may be configuredsame variables and retransmission algorithm as it does with Renew or Information-request messages generated as part of a client-initiated configuration exchange. See sections 18.1.3 and 18.1.5 for details. 19.3.5. Receipt of Reply messages Upon theaddressreceipt of a valid Reply message, the clientthrough some external agent.extracts the contents of the "options" field, and sets (or resets) configuration parameters appropriately. The client records and updates the lifetimes for any addresses specified in IAs in the Reply message. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page48]49] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002To reconfigure more than one client,20. Relay Agent Behavior For this discussion, theserver unicasts a separate messagerelay agent MAY be configured toeach client. Theuse a list of servermay initiatedestination addresses, which MAY include unicast addresses, thereconfigurationAll_DHCP_Servers multicast address, or other multicast addresses selected by the network administrator. If the relay agent has not been explicitly configured, it MUST use the All_DHCP_Servers multicast address as the default. 20.1. Relaying ofmultiple clients concurrently; for example,client messages When aserver may sendrelay agent receives aReconfigure message to additional clients while previous reconfiguration message exchanges are still in progress.valid client message, it constructs a Relay-forward message. TheReconfigure message causesrelay agent places a global or site-scoped address with a prefix assigned to the link on which the client should be assigned an address in theclient to initiate a Renew/Reply or Information-request/Reply message exchange withlink-address field. This address will be used by theserver. Theserverinterpretsto determine thereceipt of a Renew or Information-request messagelink from which the clientas satisfying the Reconfigure message request. 20.1.2. Time outshould be assigned an address andretransmission of Reconfigure messagesother configuration information. If theserver does not receive a Renew or Information-request message fromrelay agent cannot use theclientaddress inRECREP_MSG_TIMEOUT milliseconds, the server retransmitstheReconfigure message, doubleslink-address field to identify theRECREP_MSG_TIMEOUT value and waits again. The server continues this process until REC_MSG_ATTEMPTS unsuccessful attempts have been made, atinterface through whichpointtheserver SHOULD abortresponse to thereconfigure process for that client. Default and initial values for RECREP_MSG_TIMEOUT and REC_MSG_ATTEMPTS are documented inclient will be forwarded, the relay agent MUST include an Interface-id option (see section7.5. 20.1.3. Receipt of Renew messages22.19) in the Relay-forward message. The servergenerates and sends Reply message(s) towill include theclient as describedInterface-id option insection 19.2.8, includingits Relay-reply message. The relay agent puts the client's address in the"options"link-address fieldnew values for configuration parameters. It is possible thatregardless of whether theclient may send a Renew message afterrelay agent includes an Interface-id option in theserver has sent a Reconfigure but beforeRelay-forward message. The relay agent copies theReconfigure issource address from the IP datagram in which the message was receivedbyfrom theclient. In this case,client into theRenewclient-address field in the Relay-forward message. The relay agent constructs a Client Message option (see section 22.10) that contains the entire message from theclient may not include allclient in the data field of theIAs and requests for parameters to be reconfigured by the server. To accommodate this scenario,option. The relay agent places theserver MAY choose to send a ReplyClient Message option along withthe IAs and other parameters to be reconfigured, even if those IAs and parameters were notany "relay agent-specific" options in theRenewoptions field of the Relay-forward message. The relay agent sends the Relay-forward messagefromto theclient. 20.2. Receiptlist ofInformation-request messages If theserverhas assigneddestination addressesto onewith which it has been configured ormore IAs that belongto theresponding client, the server MUST silently discard the Information-request message. If the clientAll_DHCP_Servers address if it hasrequestednot been explicitly configured with server destination addresses. 20.2. Relaying of server messages The relay agent processes any other options included inan Option Request option that the server is unable to provide to the client,theserver MAY send a ReplyRelay-reply messagewith onlyas appropriate to thoseoptions it can provide.options. The relay agents then discards those options. If theserver sendsRelay-reply message includes aReplyInterface-id option, the relay agent forwards the messagethat does not include all offrom theoptionsserver to the client on the link identified by the Interface-id option. Otherwise, the relay agent Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page49]50] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002requested by the client, it MUST include a Status Code option with code OptionUnavail. The server generates and sends Reply message(s) to the client as described in section 19.2.8, including in the "options" field new values for configuration parameters. It is possible that the client may send an Information-request message afterforwards theserver has sent a Reconfigure but beforemessage on theReconfigure is receivedlink identified by theclient.link-address field. Inthiseither case, theInformation-requestrelay agent extracts the server message from theclient may not request all of the parameters to be reconfigured by the server. To accommodate this scenario,Server Message option (see section 22.11) and forwards theserver MAY choosemessage tosend a Reply withtheother parameters to be reconfigured, even if those parameters were not specifiedaddress in theInformation-request message fromclient-address field in theclient. 20.3. Client Behavior A client MUST always monitor UDP port 546 for Reconfigure messages on interfaces for which it has acquiredRelay-reply message. 21. Authentication of DHCPparameters. Sincemessages Some network administrators may wish to provide authentication of theresultssource and contents ofa reconfiguration eventDHCP messages. For example, clients mayaffect application layer programs,be subject to denial of service attacks through theclient SHOULD log these events, and MAY notify these programsuse of bogus DHCP servers, or may simply be misconfigured due to unintentionally instantiated DHCP servers. Network administrators may wish to constrain thechange through an implementation-specific interface. 20.3.1. Receiptallocation ofReconfigure messages Upon receiptaddresses to authorized hosts to avoid denial ofa valid Reconfigure message,service attacks in "hostile" environments where theclient initiates a transaction withnetwork medium is not physically secured, such as wireless networks or college residence halls. Because of theserver. Whilerisk of denial of service attacks against DHCP clients, thetransactionuse of authentication is mandated inprogress, the client silently discards any Reconfigure messages it receives. If the client has IAs with addresses that have been assigned by the server from which theReconfiguremessage was received, the clientmessages. A DHCP server MUSTrespond with a Renew message. Otherwise, the client responds withinclude anInformation-request message. DISCUSSION: Theauthentication option in Reconfiguremessage acts as a trigger that signalsmessages sent to clients. The DHCP authentication mechanism is based on theclientdesign of authentication for DHCP for IPv4 [6]. 21.1. DHCP threat model The threat tocompleteDHCP is inherently an insider threat (assuming asuccessful message exchange. Onceproperly configured network where DHCPv6 ports are blocked on theclient has received a Reconfigure,perimeter gateways of theclient proceeds withenterprise). Regardless of themessage exchange (retransmittinggateway configuration, however, theRenew or Information-request message if necessary);potential attacks by insiders and outsiders are the same. The attack specific to a DHCP clientignores any additional Reconfigure messages (regardless of the transaction ID inis theReconfigure message) untilpossibility of theexchange is complete. Subsequent Reconfigure messages (again independentestablishment of a "rogue" server with thetransaction ID) causeintent of providing incorrect configuration information to theclientclient. The motivation for doing so may be toinitiateestablish anew exchange. How does this mechanism work"man in theface of duplicatedmiddle" attack orretransmitted Reconfigure messages? Duplicate messages willit may beignored because thefor a "denial of service" attack. There is another threat to DHCP clients from mistakenly or accidentally configured DHCP servers that answer DHCP clientwill begin the exchangerequests with unintentionally incorrect configuration parameters. The threat specific to a DHCP server is an invalid client masquerading as a valid client. The motivation for this may be for "theft of service", or to circumvent auditing for any number of nefarious purposes. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page50]51] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002after the receipt of the first Reconfigure. Retransmitted messages will either trigger the exchange (if the first Reconfigure was not received by the client) or will be ignored.Theserver can discontinue retransmission of Reconfigure messagesthreat common to both the clientonceand the serverreceivesis theRenewresource "denial of service" (DoS) attack. These attacks typically involve the exhaustion of valid addresses, orInformation-request message fromtheclient. It might be possible for a duplicateexhaustion of CPU orretransmitted Reconfigure to be sufficiently delayed (and delivered outnetwork bandwidth, and are present anytime there is a shared resource. 21.2. Security oforder)messages sent between servers and relay agents Relay agents and servers that choose toarrive at the client after theexchange(initiated by the original Reconfigure) has been completed. In this case,messages securely use theclient would initiate a redundant exchange.IPsec mechanisms for IPv6 [8]. Thelikelihood of delayedway in which IPsec is employed by relay agents andout of order deliveryservers issmall enough to be ignored. The consequencenot specified in this document. 21.3. Summary ofthe redundant exchange is inefficiency rather than incorrect operation. 20.3.2. Creation and transmissionDHCP authentication Authentication ofRenewDHCP messagesWhen responding to a Reconfigure, the client creates and sends the Renew message in exactly the same manner as outlined in section 19.1.3, withis accomplished through theexception: ifuse of theserver included on Option RequestAuthentication optionspecifying the IA option, the client MUST include IA options containing the addresses(see section 22.12). The authentication information carried in theclient currently has assignedAuthentication option can be used toALL IAs for the interface through whichreliably identify theReconfiguresource of a DHCP messagewas received. 20.3.3. Creationandtransmission of Information-request messages When respondingtoa Reconfigure,confirm that theclient creates and sendscontents of theInformation-requestDHCP message have not been tampered with. The Authentication option provides a framework for multiple authentication protocols. One such protocols is defined here. Other protocols defined inexactlythesame manner as outlinedfuture will be specified in separate documents. The protocol field insection 19.1.5, with the exception thattheclient includes a Server IdentifierAuthentication optionwith the identifier fromidentifies theReconfigure messagespecific protocol used towhichgenerate theclient is responding. 20.3.4. Time out and retransmission of Renew or Information-request messages The client usesauthentication information carried in thesame variables and retransmissionoption. The algorithmas it does with Renew or Information-request messages generated as part offield identifies aclient-initiated configuration exchange. See sections 19.1.3 and 19.1.5specific algorithm within the authentication protocol; fordetails. 20.3.5. Receipt of Reply messages Uponexample, thereceipt of a valid Reply message,algorithm field specifies theclient extractshash algorithm used to generate thecontents ofmessage authentication code (MAC) in the"options" field, and sets (or resets) configuration parameters appropriately.authentication option. Theclient records and updatesreplay detection method (RDM) field specifies thelifetimes for any addresses specifiedtype of replay detection used inIAsthe replay detection field. 21.4. Replay detection The Replay Detection Method (RDM) field determines the type of replay detection used in theReply message. IfReplay Detection field. If the RDM field contains 0x00, the replay detection field MUST be set to the value of a monotonically increasing counter. Using a counter value such as theconfiguration parameters changed were requested bycurrent time of day (for example, an NTP-format timestamp [10]) can reduce the danger of replay attacks. This method MUST be supported by all protocols. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page51]52] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002application layer, the client notifies the application layer of the changes using an implementation-specific interface. 21. Relay Behavior For this discussion, the Relay MAY be configured to use a list of server destination addresses, which MAY include unicast addresses, the All_DHCP_Servers multicast address, or other multicast addresses selected by the network administrator.21.5. Delayed authentication protocol If theRelay has not been explicitly configured, it MUST use the All_DHCP_Servers multicast address asprotocol field is 1, thedefault. 21.1. Relaying of client messages When a Relay receives a valid client message, it constructs a Relay-forward message. The relay places an address with a prefix assigned tomessage is using thelink on which"delayed authentication" mechanism. In delayed authentication, the clientshould be assigned an addressrequests authentication in its Solicit message and thelink-address field.server replies with an Advertise message that includes authentication information. Thisaddress will be usedauthentication information contains a nonce value generated by theserversource as a message authentication code (MAC) todetermine the link from which the client should be assigned an addressprovide message authentication andother configuration information. If the relay cannotentity authentication. The use of a particular technique based on the HMAC protocol [9] using the MD5 hash [18] is defined here. 21.5.1. Management issues in the delayed authentication protocol The "delayed authentication" protocol does not attempt to addressin the link-address fieldsituations where a client may roam from one administrative domain toidentify the interface through whichanother, i.e. interdomain roaming. This protocol is focused on solving theresponse tointradomain problem where theclient will be forwarded,out-of-band exchange of a shared key is feasible. 21.5.2. Use of therelay MUST include an Interface-idAuthentication option(see section 23.17)in theRelay-forward message. The server will includedelayed authentication protocol In a Solicit message, theInterface-idAuthentication optionin its Relay-reply message. The relay copiescarries thesource address fromProtocol, Algorithm, RDM and Replay detection fields, but no Authentication information. In an Advertise, Request, Renew, Rebind, Confirm, Decline, Release or Information-request message, theIP datagram in whichAuthentication option carries the Protocol, Algorithm, RDM and Replay detection fields and Authentication information. A DHCP messagewas received from the client into the client-return-address field inMUST NOT contain more than one Authentication option when using theRelay-forward message.delayed authentication protocol. Therelay constructs a "client-message"Authentication option23.10 that containsshould appear as close to theentire message frombeginning of theclientoptions area in thedata fieldDHCP message to facilitate processing of theoption. The relay placesauthentication information.The format of the"relay-message" option along with any "relay-specific" optionsAuthentication information is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Key ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | HMAC-MD5 | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Droms (ed.), et al. Expires 22 Oct 2002 [Page 53] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 The following definitions will be used in theoptions fielddescription of theRelay-forward message. The Relay MUST sendauthentication information for delayed authentication, algorithm 1: Replay Detection - as defined by theRelay-forward message toRDM field K - a key (secret value) shared between thelist of serversource and destinationaddresses with which it has been configured. 21.2. Relayingofserver messages When the relay receives a Relay-reply message, it extracts the server message fromthe"server-message" option. If the Relay-reply message includesmessage; each key has aInterface-id option, the relay forwardsunique identifier (key ID) key ID - themessage fromunique identifier for theserverkey value used to generate theclient onMAC for this message HMAC-MD5 - thelink identified byMAC generating function. The sender computes theInterface-id option. Otherwise,MAC using therelay forwardsHMAC generation algorithm [9] and the MD5 hash function [18]. The entire DHCP messageon the link identified by(except thelink-address field. In either case,MAC field of therelay forwardsauthentication option itself), including the DHCP messagetoheader and theaddress inoptions field, is used as input to theclient-return-addressHMAC-MD5 computation function. The 'key ID' fieldinMUST be set to theRelay-reply message. Droms (ed.), et al. Expires 1 Aug 2002 [Page 52] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002 22. Authenticationidentifier ofDHCP messages Some network administrators may wishthe key used toprovide authentication ofgenerate thesource and contentsMAC. DISCUSSION: Algorithm 1 specifies the use of HMAC-MD5. Use of a different technique, such as HMAC-SHA, will be specified as a separate protocol. Delayed authentication requires a shared secret key for each client on each DHCPmessages. For example, clientsserver with which that client maybe subjectwish todenial of service attacks through theuseof bogusthe DHCPservers, or may simplyprotocol. Each key has a unique identifier that can bemisconfigured dueused by a receiver tounintentionally instantiated DHCP servers. Network administrators may wishdetermine which key was used toconstraingenerate theallocation of addresses to authorized hosts to avoid denial of service attacksMAC in"hostile" environments where the network medium is not physically secured, such as wireless networks or college residence halls. Because oftherisk of denial of service attacks againstDHCPclients, the use ofmessage. Therefore, delayed authenticationis mandatedmay not scale well inReconfigure messages. A DHCP server MUST includeanauthentication optionarchitecture inReconfigure messages sent to clients. The DHCP authentication mechanism is based on the design of authentication for DHCP for IPv4 [8]. 22.1.which a DHCPthreat model The threatclient connects toDHCP is inherentlymultiple administrative domains. 21.5.3. Message validation To validate aninsider threat (assuming a properly configured network where DHCPv6 ports are blocked on the perimeter gateways of the enterprise). Regardless ofincoming message, thegateway configuration, however,receiver first checks that thepotential attacks by insiders and outsiders arevalue in thesame. The attack specific to a DHCP clientreplay detection field is acceptable according to thepossibility ofreplay detection method specified by theestablishment of a "rogue" server withRDM field. Next, theintent of providing incorrect configuration information toreceiver computes theclient. The motivation for doing so may be to establish a "manMAC as described in [9]. The entire DHCP message (except themiddle" attack or it may be for a "denialMAC field ofservice" attack. Therethe authentication option itself), isanother threatused as input to the HMAC-MDS computation function. If the MAC computed by the receiver does not match the MAC contained in the authentication option, the receiver MUST discard the DHCPclients from mistakenly or accidentally configured DHCP servers that answer DHCP client requests with unintentionally incorrect configuration parameters. The threat specific to amessage. 21.5.4. Key utilization Each DHCPserver is an invalidclientmasquerading ashas avalid client.key, K. Themotivation for this may be for "theft of service", orclient uses its key tocircumvent auditing forencode anynumber of nefarious purposes. The threat commonmessages it sends toboth the client andthe serveris the resource "denial of service" (DoS) attack. These attacks typically involve the exhaustion of valid addresses, or the exhaustion of CPU or network bandwidth,andare present anytime there is a shared resource. In current practice, redundancy mitigates DoS attacks the best.to authenticate and verify Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page53]54] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 200222.2. Security of messages sent between servers and relay agents Relay agents and servers that choose to exchange messages securely use the IPsec mechanisms for IPv6 [10]. The way in which IPsec is employed by relay agents and servers is not specified in this document. 22.3. Summary of DHCP authentication Authentication of DHCPany messagesis accomplished through the use ofit receives from theAuthentication option.server. Theauthentication information carried in the Authentication option canclient's key SHOULD beused to reliably identify the source of a DHCP message andinitially distributed toconfirm thatthecontents ofclient through some out-of-band mechanism, and SHOULD be stored locally on theDHCP message have not been tampered with. The Authentication option provides a frameworkclient formultiple authentication protocols. Two such protocols are defined here. Other protocols defineduse in all authenticated DHCP messages. Once thefuture will be specified in separate documents. The protocol field inclient has been given its key, it SHOULD use that key for all transactions even if theAuthentication option identifiesclient's configuration changes; for example, if thespecific protocol usedclient is assigned a new network address. Each DHCP server MUST know, or be able togenerate the authentication information carriedobtain inthe option. The algorithm field identifiesaspecific algorithm withinsecure manner, theauthentication protocol;keys forexample, the algorithm field specifies the hash algorithm used to generateall authorized clients. If all clients use the same key, clients can perform both entity and message authenticationcode (MAC) in the authentication option. The replay detection method (RDM) field specifiesfor all messages received from servers. However, thetypesharing of keys is strongly discouraged as it allows for unauthorized clients to masquerade as authorized clients by obtaining a copy ofreplay detection used inthereplay detection field. 22.4. Replay detection The Replay Detection Method (RDM) field determinesshared key and allows for trivial spoofing of an authenticated DHCP server. To authenticate thetypeidentity ofreplay detection used inindividual clients, each client must be configured with a unique key. 21.5.5. Client considerations for delayed authentication protocol 21.5.5.1. Sending Solicit messages When theReplay Detection field. Ifclient sends a Solicit message and wishes to use authentication, it includes an Authentication option with the desired protocol, algorithm, RDMfield contains 0x00, theand replay detection fieldMUST be set to the value of a monotonically increasing counter. Using a counter value suchas described in section 21.5. The client does not include any authentication information in thecurrent time of day (e.g.,Authentication option. 21.5.5.2. Receiving Advertise messages The client validates any Advertise messages containing anNTP-format timestamp [12]) can reduce the danger of replay attacks. This method MUST be supported by all protocols. 22.5. Configuration token protocol IfAuthentication option specifying the delayed authentication protocolfield is 0,using the validation test described in section 21.5.3. Client behavior if no Advertise messages include authentication informationfield holds a simple configuration token. The configuration tokenor pass the validation test isan opaque, unencoded value knowncontrolled by local policy on the client. According tobothclient policy, thesender and receiver.client MAY choose to respond to a Advertise message that has not been authenticated. Thesender inserts the configuration token in the DHCPdecision to set local policy to accept unauthenticated messages should be made with care. Accepting an unauthenticated Advertise messageand the receiver matches the token fromcan make themessageclient vulnerable tothe shared token.spoofing and other attacks. If local users are not explicitly informed that theconfiguration option is present andclient has accepted an unauthenticated Advertise message, thetoken fromusers may incorrectly assume that themessage doesclient has received an authenticated address and is notmatch the shared token, the receiversubject to DHCP attacks through unauthenticated messages. A client MUST be configurable to discard unauthenticated messages, and SHOULD be configured by default to discard unauthenticated messages if themessage.client has been configured with an authentication Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page54]55] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002Configuration token may be used to pass a plain-text configuration token and provides only weak entity authentication and no message authentication. This protocol is only useful for rudimentary protection against inadvertently instantiated DHCP servers. DISCUSSION: The intent here is to pass a constant, non-computed token such as a plain-text password. Other types of entity authentication using computed tokens such as Kerberos ticketskey orone-time passwords will be defined as separate protocols. 22.6. Delayedother authenticationprotocol If the protocol field is 1, the message is using the "delayed authentication" mechanism. In delayed authentication, theinformation. A clientrequests authentication in its Solicit message and the server replies with anMAY choose to differentiate between Advertisemessage that includes authentication information. Thismessages with no authentication informationcontains a nonce value generated by the source as a message authentication code (MAC) to provide message authenticationandentity authentication. The use of a particular technique based on the HMAC protocol [11] using the MD5 hash [20] is defined here. 22.6.1. Management issues in the delayed authentication protocol The "delayed authentication" protocol doesAdvertise messages that do notattempt to address situations where a client may roam from one administrative domain to another, i.e. interdomain roaming. This protocol is focused on solving the intradomain problem wherepass theout-of-band exchange ofvalidation test; for example, ashared secret is feasible. 22.6.2. Use ofclient might accept theAuthentication option informer and discard thedelayed authentication protocol Inlatter. If aSolicitclient does accept an unauthenticated message, theAuthentication option carries the Protocol, Algorithm, RDMclient SHOULD inform any local users andReplay detection fields, but no Authentication information. In an Advertise,SHOULD log the event. 21.5.5.3. Sending Request, Confirm, Renew, Rebind,Confirm, Decline, ReleaseDecline orInformation-request message,Release messages If theAuthentication option carriesclient authenticated theProtocol, Algorithm, RDM and Replay detection fields and Authentication information. Droms (ed.), et al. Expires 1 Aug 2002 [Page 55] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002 The format ofAdvertise message through which theAuthentication information is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Secret ID (32 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | HMAC-MD5 (128 bits) | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The following definitions will be used inclient selected thedescription ofserver, the client MUST generate authentication information fordelayed authentication, algorithm 1: Replay Detection -subsequent Request, Confirm, Renew, Rebind or Release messages sent to the server asdefined bydescribed in section 21.5. When theRDM field K -client sends asecret value shared betweensubsequent message, it MUST use thesource and destination ofsame key used by themessage; each secretserver to generate the authentication information. 21.5.5.4. Sending Information-request messages If the server has selected aunique identifier (secret ID) secret ID - the unique identifierkey for thesecret value usedclient in a previous message exchange (see section 21.5.6.1, the client MUST use the same key to generate theMAC for this message HMAC-MD5 -authentication information. If theMAC generating function. The sender computesclient has not previously been given a key with theMAC usingserver, theHMAC generation algorithm [11] andclient MUST use a key that has been selected for theMD5 hash function [20]. The entire DHCP message (exceptclient through some external mechanism. 21.5.5.5. Receiving Reply messages If theMAC field ofclient authenticated theauthentication option itself), includingAdvertise it accepted, theDHCP message header andclient MUST validate theoptions field, is used as input toassociated Reply message from theHMAC-MD5 computation function.server. The'secret ID' fieldclient MUSTbe set todiscard theidentifier ofReply if thesecret usedmessage fails togeneratepass validation and MAY log theMAC. DISCUSSION: Algorithm 1 specifiesvalidation failure. If theuse of HMAC-MD5. Use of a different technique, such as HMAC-SHA, will be specified as a separate protocol. Delayed authentication requires a shared secret key for each client on each DHCP server with which that client may wishReply fails tousepass validation, the client MUST restart the DHCPprotocol. Each secret key has a unique identifier that can be usedconfiguration process by sending areceiverSolicit message. The client MAY choose todetermineremember whichsecret was usedserver replied with a Reply message that failed togenerate the MAC inpass validation and discard subsequent messages from that server. If theDHCP message. Therefore, delayedclient accepted an Advertise message that did not include authenticationmayinformation or did notscale well in an architecture in which a DHCP client connects to multiple administrative domains. 22.6.3. Messagepass the validationTo validatetest, the client MAY accept anincoming message,unauthenticated Reply message from thereceiver first checks thatserver. 21.5.5.6. Receiving Reconfigure messages The client MUST discard thevalue inReconfigure if thereplay detection field is acceptable accordingmessage fails to pass validation and MAY log the validation failure. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page 56] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002to the replay detection method specified by the RDM field. Next, the receiver computes the MAC as described in [11]. The receiver MUST set the 'MAC' field of the authentication option to all 0s21.5.6. Server considerations forcomputation of the MAC. If the MAC computed by the receiver does not match the MAC contained in thedelayed authenticationoption, the receiver MUST discard the DHCP message. 22.6.4. Key utilization Each DHCP client has a key, K. The client uses its key to encode anyprotocol 21.5.6.1. Receiving Solicit messagesit sends to the server and to authenticateandverify anySending Advertise messagesit receives from the server.Theclient'sserver selects a keySHOULD be initially distributed tofor the clientthrough some out-of-band mechanism,andSHOULD be stored locally onincludes authentication information in the Advertise message returned to the clientfor useas specified inall authenticated DHCP messages. Oncesection 21.5. The server MUST record the identifier of the key selected for the clienthas been given its key, it SHOULDand use that same key forall transactions even if the client's configuration changes; e.g., ifvalidating subsequent messages with theclient is assigned a new network address. Each DHCP server MUST know,client. 21.5.6.2. Receiving Request, Confirm, Renew, Rebind orbe able to obtain in a secure manner,Release messages and Sending Reply messages The server uses thekeys for all authorized clients. If all clients usekey identified in thesame key, clients can perform both entity andmessageauthentication for all messages received from servers. However,and validates thesharing of keys is strongly discouragedmessage asit allows for unauthorized clientsspecified in section 21.5.3. If the message fails tomasquerade as authorized clientspass validation or the server does not know the key identified byobtaining a copy oftheshared key. To authenticate'key ID' field, theidentity of individual clients, each clientserver MUSTbe configured with a unique key. 22.6.5. Client considerations for delayed authentication protocol 22.6.5.1. Sending Solicit messages Whendiscard theclient sends a Solicitmessage andwishesMAY choose touse authentication, it includes an Authentication option withlog thedesired protocol, algorithm, RDM and replay detection fieldvalidation failure. If the message passes the validation procedure, the server responds to the specific message as described in section22.6.18.2. Theclient does notserver MUST includeanyauthentication information generated using the key identified in theAuthentication option. 22.6.5.2. Receiving Advertisereceived message as specified in section 21.5. 21.5.6.3. Sending Reconfigure messages Theclient validates any Advertise messages containingserver MUST include an Authentication optionspecifying the delayed authentication protocolin a Reconfigure message, generated as specified in section 21.5 using thevalidation testkey the server initially selected for the client to which the Reconfigure message is to be sent. If the server has not previously selected a key for the client, the server MUST use a key that has been selected for the client through some external mechanism. 22. DHCP options Options are used to carry additional information and parameters in DHCP messages. Every option shares a common base format, as described in section22.6.3. Client behavior if no Advertise messages include authentication information or pass22.1. All values in options are represented in network order. This document describes thevalidation test is controlled by local policy onDHCP options defined as part of the base DHCP specification. Other options may be defined in theclient. According to client policy,future in separate documents. Unless otherwise noted, each option may appear only in theclient MAY choose to respond tooptions area of aAdvertiseDHCP messagethat has not been authenticated.and may appear only once. If an option does appear multiple times, each instance is considered separate and the Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page 57] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002The decision to set local policy to accept unauthenticated messages should be made with care. Accepting an unauthenticated Advertise message can make the client vulnerable to spoofing and other attacks. If local users are not explicitly informed that the client has accepted an unauthenticated Advertise message, the users may incorrectly assume thatdata areas of theclient has received an authenticated address and is not subject to DHCP attacks through unauthenticated messages. A clientoptions MUST NOT beconfigurable to discard unauthenticated messages, and SHOULD be configured by default to discard unauthenticated messages. A client MAY choose to differentiate between Advertise messages with no authentication information and Advertise messages that do not pass the validation test; for example, a client might accept the former and discardconcatenated or otherwise combined. 22.1. Format of DHCP options 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | option-code | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | option-data | | (option-len octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code An unsigned integer identifying thelatter. If a client does accept an unauthenticated message,specific option type carried in this option. option-len An unsigned integer giving theclient SHOULD inform any local users and SHOULD loglength of theevent. 22.6.5.3. Sending Request, Confirm, Renew, Rebind, Decline or Release messages Ifoption-data field in this option in octets. option-data The data for theclient authenticatedoption; theAdvertise message through whichformat of this data depends on theclient selecteddefinition of theserver,option. DHCPv6 options are scoped by using encapsulation. Some options apply generally to theclient MUST generate authentication information for subsequent Request, Confirm, Renew, Rebind or Release messages sentclient, some are specific to an IA, and some are specific to theserver as describedaddresses within an IA. These latter two cases are discussed insectionsections 22.4 and 22.6.When the client sends a subsequent message, it MUST use the same secret22.2. Client Identifier option The Client Identifier option is usedby the servertogenerate the authentication information. 22.6.5.4. Sending Information-request messages If the client has negotiatedcarry asecret with the server throughDUID identifying aprevious message exchange, the client MUST use the same secret used by the server to generate the authentication information. If theclienthas not negotiatedbetween asecret with the server, theclientMUST useand asecret that has been selected for the client through some external mechanism. 22.6.5.5. Receiving Reply messages If the client authenticated the Advertise it accepted, the client MUST validate the associated Reply message from theserver. Theclient MUST discard the Reply if the message fails to pass validation and MAY log the validation failure. If the Reply fails to pass validation, the clientClient Identifier option MUSTrestartappear before any IA options in the DHCPconfiguration process by sending a Solicitmessage. Theclient MAY choose to remember which server replied with a Reply message that failed to pass validation and discard subsequent messages from that server.format of the Client Identifier option is: Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page 58] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002If the client accepted an Advertise message that did not include authentication information or did not pass the validation test,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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_CLIENTID | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . . DUID . . (variable length) . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_CLIENTID (1) option-len Length of DUID in octets DUID The DUID for the clientMAY accept an unauthenticated Reply message from the server. 22.6.5.6. Receiving Reconfigure messages22.3. Server Identifier option The Server Identifier option is used to carry a DUID identifying a server between a clientMUST validate the Reconfigure message from theand a server. Theclient MUST discard the Reconfigure if the message fails to pass validation and MAY logformat of thevalidation failure. 22.6.6.Serverconsiderations for delayed authentication protocol 22.6.6.1. Receiving Solicit messages and Sending Advertise messagesIdentifier option is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_SERVERID | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . . DUID . . (variable length) . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_SERVERID (2) option-len Length of DUID in octets DUID Theserver selects a secretDUID for theclientserver 22.4. Identity Association option The Identity Association option (IA option) is used to carry an identity association, the parameters associated with the IA andincludes authentication information intheAdvertise message returned toaddresses associated with theclient as specifiedIA. Droms (ed.), et al. Expires 22 Oct 2002 [Page 59] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 Addresses appearing in an IA option are not temporary addresses (see section22.6.22.5). Theserver MUST record the identifierformat of thesecret selectedIA option is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_IA | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IAID (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | T1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | T2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . IA-options . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_IA (3) option-len 12 + length of IA-options field IAID The unique identifier for this IA; theclient and use that same secret for validating subsequent messages withIAID must be unique among theclient. 22.6.6.2. Receiving Request, Confirm, Renew, Rebind or Release messages and Sending Reply messagesidentifiers for all of this client's IAs. Theserver uses the secret identified in the message and validates the message as specified in section 22.6.3. If the message fails to pass validation or the server does not knownumber space for IA IAIDs is separate from thesecret identified bynumber space for IA_TA IAIDs. T1 The time at which the'secret ID' field,client contacts the serverMUST discardfrom which themessage and MAY chooseaddresses in the IA were obtained tologextend thevalidation failure. Iflifetimes of themessage passesaddresses assigned to thevalidation procedure,IA; T1 is a time duration relative to the current time expressed in units of seconds T2 The time at which the client contacts any available serverrespondsto extend thespecific message as describedlifetimes of the addresses assigned to the IA; T2 is a time duration relative to the current time expressed insection 19.2.units of seconds IA-options Options associated with this IA. Theserver MUST include authentication information generated usingIA-options field encapsulates those options that are specific to this IA. For example, all of thesecret identifiedIA Address Options carrying the addresses associated with this IA are in thereceived message as specifiedIA-options field. Droms (ed.), et al. Expires 22 Oct 2002 [Page 60] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 An IA option may only appear insection 22.6. 22.6.6.3. Sending Reconfigure messagesthe options area of a DHCP message. A DHCP message may contain multiple IA options. Theserver MUST include authentication informationstatus of any operations involving this IA is indicated in aReconfigure message, generatedStatus Code option in the IA-options field. Note that an IA has no explicit "lifetime" or "lease length" of its own. When the lifetimes of all of the addresses in an IA have expired, the IA can be considered asspecifiedhaving expired. T1 and T2 are included to give servers explicit control over when a client recontacts the server about a specific IA. In a message sent by a client to a server, values insection 22.6 using the secrettheserver initially negotiated withT1 and T2 fields indicate the client's preference for those parameters. The clientto which the Reconfiguremay send 0 if it has no preference for T1 and T2. In a messageis to be sent. If thesent by a serverhas not previously negotiatedto asecret with theclient, theserverclient MUST usea secret that has been selected fortheclient through some external mechanism. Droms (ed.), et al. Expires 1 Aug 2002 [Page 59] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002 23. DHCP options Options are used to carry additional information and parameters in DHCP messages. Every option shares a common base format, as described in section 23.1. Allvalues inoptions is represented in network order. This document describes the DHCP options defined as part ofthebase DHCP specification. Other options may be defined inT1 and T2 fields for thefutureT1 and T2 parameters. The values ina separate document. 23.1. Format of DHCP options 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | option-code | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | option-data | | (option-len octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code An unsigned integer identifyingthespecific option type carried in this option. option-len An unsigned integer givingT1 and T2 fields are thelengthnumber ofthe option-data field in this option in octets. option-dataseconds until T1 and T2. Thedata forserver selects theoption;T1 and T2 times to allow the client to extend theformatlifetimes ofthis data depends onany addresses in thedefinition ofIA before theoption. DHCPv6 options are scoped by using encapsulation. Some options apply generally tolifetimes expire, even if theclient,server is unavailable for someare specific to an IA,short period of time. Recommended values for T1 andsomeT2 arespecific to.5 and .8 times the shortest preferred lifetime of the addresseswithin an IA. These latter two cases are discussedinsections 23.4 and 23.5. 23.2. Client Identifier option The Client Identifier option is used to carry a DUID identifying a client betweenthe IA, respectively. If the server does not intend for a clientand a server. The Client Identifier option MUST appear before any IA options into extend theDHCP message. The formatlifetimes of theDUID option is: Droms (ed.), et al. Expires 1 Aug 2002 [Page 60] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_CLIENTID | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . . DUID . . (variable length) . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_CLIENTID (TBD) option-len Length of DUIDaddresses inoctets option-data The DUID foran IA, theclient 23.3. Server Identifier option The Server Identifier option is usedserver sets T1 and T2 tocarry a DUID identifying0. T1 is the time at which the client begins the lifetime extension process by sending a Renew message to the serverbetween athat originally assigned the addresses to the IA. T2 is the time at which the clientandstarts sending a Rebind message to any server.The format ofT1 and T2 are specified as unsigned integers that specify theServer Identifier option is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_SERVERID | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . . DUID . . (variable length) . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_SERVERID (TBD) option-len Length of DUIDtime inoctets option-data The DUID forseconds relative to theserver 23.4.time at which the messages containing the option is received. 22.5. IdentityassociationAssociation for Temporary Addresses option Theidentity associationIdentity Association for Temporary Addresses (IA_TA) option is used to carry anidentity association,IA, the parameters associated with the IA and the addressesassigned toassociated with the IA.Droms (ed.), et al. Expires 1 Aug 2002 [Page 61] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002All of the addresses in this option are used by the client as temporary addresses, as defined in RFC 3041. The format of theIAIA_TA option is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |OPTION IAOPTION_IA_TA | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IAID (4 octets) | Droms (ed.), et al. Expires 22 Oct 2002 [Page 61] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |T1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | T2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IA Status ||+-+-+-+-+-+-+-+-+ | . Options. IA-options .. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_IA (TBD) option-len See section 23. IAID The unique identifier for this IA. T1 The time at which the client contacts the server from which the addresses in the IA were obtained to extend the lifetimes of the addresses assigned to the IA. T2 The time at which the client contacts any available server to extend the lifetimes. . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_IA_TA (4) option-len 4 + length of IA-options field IAID The unique identifier for this IA; theaddresses assigned toIAID must be unique among theIA. IA status Statusidentifiers for all of this client's IAs. The number space for IA_TA IAIDs is separate from the number space for IAin this option. optionsIAIDs. IA-options Options associated with this IA. TheOptionsIA-Options field encapsulates those options that are specific to this IA. For example, all of the IA Address Options carrying the addresses associated with this IA are in theOptionsIA-options field.Note that an IA has no explicit "lifetime" or "lease length" of its own. When the lifetimes of allEach IA_TA carries one "set" ofthe addresses in an IA have expired, the IA can be considered as having expired. T1 and T2 are includedtemporary addresses; that is, at most one address from each prefix assigned togive servers explicit control over when a client recontactstheserver about a specific IA. In a message sent by a clientlink toa server, values in the T1 and T2 fields indicatewhich theclient's preference for those parameters. Theclient is attached. An IA_TA option maysend 0 if it has no preference for T1 and T2. In a Droms (ed.), et al. Expires 1 Aug 2002 [Page 62] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002 message sent by a server to a client, the client MUST use the values in the T1 and T2 fields for the T1 and T2 parameters. The valuesonly appear in theT1 and T2 fields are the numberoptions area ofseconds until T1 and T2.a DHCP message. A DHCP message may contain multiple IA_TA options. Theserver MUST set the T1 and T2 times to values that will allow the client to extend as appropriate the lifetimesstatus of anyaddressesoperations involving this IA is indicated inthe IA. If the server does not intend foraclient to extendStatus Code option in the IA-options field. Note that an IA has no explicit "lifetime" or "lease length" of its own. When the lifetimes ofa particular addressall of the addresses in anIA,IA have expired, the IA can be considered as having expired. A serverMAY set the renewal time values to occur afterMUST return thelifetimes on thatsame set of temporary addressexpire. T1 is the time at which the client SHOULD beginfor thelifetime extension processsame IA_TA (as identified bysending a Renew message to the server that originally assignedthe IAID) as long as those addressestoare still valid. After theIA. T2 islifetimes of thetime at whichaddresses in an IA_TA have expired, theclient SHOULD start sendingIAID may be reused to identify a new IA_TA with new temporary addresses. An identity association for temporary addresses option MUST NOT appear in a Renew or Rebindmessage to any server. A clientmessage. This option MAYbegin the lifetime extension process prior to T1 if it needs additional addresses for some reason. T1 and T2 are specified as unsigned integers that specify the timeappear inseconds relative toa Confirm message if thetime at whichlifetimes on themessages containingtemporary addresses in theoption is received. 23.5.associated IA have not expired. Droms (ed.), et al. Expires 22 Oct 2002 [Page 62] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 22.6. IA Address option The IA Address option is used to specify IPv6 addresses associated with an IA. The IA Address option must be encapsulated in the Options field of anIdentity Association option. The Options field encapsulates those options that are specific to this address. Droms (ed.), et al. Expires 1 Aug 2002 [Page 63] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002Identity Association option. The Options field encapsulates those options that are specific to this address. The format of the IA Address option is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_IAADDR | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|T| addr status|prefix length | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| | IPv6 address | |(16 octets) | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| |preferred lifetime| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |pref. lifetime (cont.) | valid lifetimepreferred-lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |valid lifetime (cont.) | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+valid-lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . .OptionsIAaddr-options . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_IADDR(TBD)(5) option-lenSee section 23. T When set to 1, indicates that this address is a "temporary address" [16]; when set to 0, the address is not a temporary address. addr status Status of this address in this IA. prefix length Prefix24 + lengthfor this address.of IAaddr-options field IPv6 address An IPv6 addresspreferred lifetimepreferred-lifetime The preferred lifetime for the IPv6 address in theoption. valid lifetimeoption, expressed in units of seconds valid-lifetime The valid lifetime for the IPv6 address in theoption optionsoption, expressed in units of seconds IAaddr-options Options associated with this address In a message sent by a client to a server, values in the preferred and valid lifetime fields indicate the client's preference for those parameters. The client may send 0 if it has no preference for the preferred and valid lifetimes. In a message sent by a server to a client, the client MUST use the values in the preferred and validDroms (ed.), et al. Expires 1 Aug 2002 [Page 64] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002lifetime fields for the preferred and valid lifetimes. The values in the preferred and valid lifetimes are the number of seconds remaining in each lifetime.One or moreDroms (ed.), et al. Expires 22 Oct 2002 [Page 63] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 An IA AddressOptions canoption may appearanywhereonly in an IAoption. 23.6. Requested Temporary Addresses (RTA) Option The Requested Temporary Addresses (RTA) option is used by a client to request a server to assign additional temporary addresses to an IA. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_RTA | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | num-requested | +-+-+-+-+-+-+-+-+ option-code OPTION_RTA (TBD) option-len See section 23. num-requested The number of additional temporary addresses the client is requesting. This is an unsigned value. ThisoptionMUST only be sent by a client and only in a Solicit, Request, Renew,orRebind message. It MUST onlyan IA_TA option. More than one IA Address Options can appearencapsulated withinin anIdentity associationIA option or an IA_TA option.A client MUST only includeThe status of any operations involving thisoption when it wants to have additional temporary address allocated;IA Address is indicated in aclient SHOULD NOT send thisStatus Code optionif 'num-requested' is 0. 23.7.in the IAaddr-options field. 22.7. Option Request option The Option Request option is used to identify a list of options in a message between a client and a server.Droms (ed.), et al. Expires 1 Aug 2002 [Page 65] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002The format of the Option Request option is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_ORO | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | requested-option-code-1 | requested-option-code-2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_ORO(TBD)(6) option-lenSee section 23.2 * number of requested options requested-option-code-n The option code for an option requested by the client. A client MAY include an Option Request option in a Solicit, Request, Renew, Rebind, Confirm or Information-request message to inform the server about options the client wants the server to send to the client.23.8.22.8. Preference option 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_PREFERENCE | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |pref valuepref-value | +-+-+-+-+-+-+-+-+ option-code OPTION_PREFERENCE(TBD)(7) Droms (ed.), et al. Expires 22 Oct 2002 [Page 64] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 option-lenSee section 23. pref value1. pref-value The preference value for the server in this message. A server MAY include a Preference option in an Advertise message to control the selection of a server by the client. See section18.1.317.1.3 for the use of the Preference option by the client and the interpretation of Preference option data value.Droms (ed.), et al. Expires 1 Aug 2002 [Page 66] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002 23.9.22.9. Elapsed Time 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_ELAPSED_TIME | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |elapsed timeelapsed-time | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_ELAPSED_TIME(TBD)(8) option-lenSee section 23. elapsed time2. elapsed-time The amount of time since the client began its current DHCP transaction. This time is expressed in hundredths of a second (10^-2 seconds). A clientMAYSHOULD include an Elapsed Time option in messages to indicate how long the client has been trying to complete a DHCP transaction. Servers and Relay AgentsMAYuse the data value in this option as input to policy controlling how a server responds to aclient message. 23.10.client message. For example, the elapsed time option allows a secondary DHCP server to respond to a request when a primary server hasn't answered in a reasonable time. Droms (ed.), et al. Expires 22 Oct 2002 [Page 65] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 22.10. Client message option 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_CLIENT_MSG | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . DHCP-client-message . . . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_CLIENT_MSG (9) option-len Length of DHCP client message. DHCP-client-message The message received from the client; forwarded verbatim to the server. A relay agent forwards a message from a client to a server as the contents of a Client Message option in a Relay-forward message. 22.11. Server message option 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |OPTION_CLIENT_MSGOPTION_SERVER_MSG | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | .DHCP client messageDHCP-server-message . . . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-codeOPTION_CLIENT_MSG (TBD)OPTION_SERVER_MSG (10) option-lenSee section 23.Length of DHCPclient messageserver message. DHCP-server-message The message received from theclient;server; forwarded verbatim to theserver. A relay agent forwards a message from a client to a serverclient. A server sends a DHCP message to be forwarded to a client by a relay agent as the contents of a Server Message option in a Relay-reply message. Droms (ed.), et al. Expires 22 Oct 2002 [Page 66] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 22.12. Authentication option The Authentication option carries authentication information to authenticate the identity and contents of DHCP messages. The use of the Authentication option is described in section 21. If the Authentication option appears in a DHCP message, it should be included as close to the beginning of the options field as possible for improved efficiency of authentication processing. The format of the Authentication option is: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_AUTH | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Protocol | Algorithm | RDM | Replay detect.| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Replay Detection (64 bits) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Replay cont. | Auth. Info | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Authentication Information | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_AUTH (11) option-len 12 + length of Authentication Information field protocol The authentication protocol used in this authentication option algorithm The algorithm used in the authentication protocol RDM The replay detection method used in this authentication option Replay detection The replay detection information for the RDM Authentication information The authentication information, as specified by thecontents of a Client Message optionprotocol and algorithm used ina Relay-forward message.this authentication option Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page 67] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 200223.11.22.13. Servermessageunicast option0 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_SERVER_MSG | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . DHCP server message . . . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_SERVER_MSG (TBD) option-len See section 23. DHCP server messageThemessage received from the server; forwarded verbatim to the client. Aserver sendsa DHCP message to be forwardedthis option to a clientby a relay agent asto indicate to thecontents of a Server Message option in a Relay-reply message. 23.12. Authentication option The Authentication option carries authentication informationclient that it is allowed to unicast messages toauthenticatetheidentity and contents of DHCP messages.server. Theuse ofserver specifies theAuthentication optionIPv6 address to which the client isdescribedto send unicast messages insection 22. If present,theAuthentication option MUST appear asserver-address field. When a client receives this option, where permissible and appropriate, thefirst option inclient sends messages directly to the server using theDHCP message. Droms (ed.), et al. Expires 1 Aug 2002 [Page 68] Internet Draft DHCP forIPv6(-23) 1 Feb 2002 The formataddress specified in the server-address field of theAuthentication option is:option. Details about when the client may send messages to the server using unicast are in section 18. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |OPTION_AUTHOPTION_UNICAST | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Protocol | Algorithm|RDM|Replay detect.| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+server-address |Replay Detection (64 bits)|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Replay cont.|Auth. Info| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_UNICAST (12) option-len 16 server-address The IP address to which the client should send messages delivered using unicast 22.14. Status Code Option This option returns a status indication related to the DHCP message or option in which it appears. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_STATUS_CODE | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Authentication Informationstatus-code | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | . . . status-message . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-codeOPTION_AUTH (TBD)OPTION_STATUS_CODE (13) Droms (ed.), et al. Expires 22 Oct 2002 [Page 68] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 option-lenSee section 23. protocol The authentication protocol used in this authentication option algorithm The algorithm used in the authentication protocol RDM The replay detection method used in this authentication option Replay detection2 + length of status-message status-code Thereplay detection informationnumeric code for theRDM Authentication information The authentication information, as specified by the protocol and algorithm usedstatus encoded in thisauthentication option 23.13. Server unicast option The server MAY send this option to a client to indicate to the client that is allowed to unicast messages to the server.option. Theserver specifies the IPv6 address tostatus codes are defined in section 5.5. status-message A UTF-8 encoded text string, whichthe client is to send unicast messagesMUST NOT be null-terminated. A Status Code option may appear inthe server-address field. Whenaclient receives thisDHCP message option,where permissible, the client MAY send messages directly to the server using the IPv6 address specifiedor in theserver-address fieldoptions area oftheanother option.Details about when22.15. Rapid Commit option A client MAY include this option in a Solicit message if the clientmay send messagesis prepared to perform theserver using unicast areSolicit-Reply message exchange described in section19. Droms (ed.), et al. Expires 1 Aug 2002 [Page 69] Internet Draft DHCP for IPv6 (-23) 1 Feb 200217.1.1. A server MUST include this option in a Reply message sent in response to a Solicit message when completing the Solicit-Reply message exchange. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |OPTION_UNICAST | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | server-address | | |OPTION_RAPID_COMMIT | 0 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-codeOPTION_UNICAST (TBD)OPTION_RAPID_COMMIT (14) option-lenSee section 23. server-address The IP address to which the client should send messages delivered using unicast 23.14. Status Code0 22.16. User Class Option This optionreturnsis used by astatus indication relatedclient to identify theDHCP messagetype or category of user or applications it represents. The information contained in the data area of this option is contained in one or more opaque fields that represent the user class or classes of whichit appears. 0 1 2 3the client is a member. The user class information carried in this option MUST be configurable on the client. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |OPTION_STATUS_CODEOPTION_USER_CLASS | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . . user-class-data . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Droms (ed.), et al. Expires 22 Oct 2002 [Page 69] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 option-code OPTION_USER_CLASS (15) option-len Length of user class data field user-class-data The user classes carried by the client. The data area of the user class option MUST contain one or more instances of user class data. Each instance of the user class data is formatted as follows: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+-+-+-+-+-+ |status-code | status-message | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |user-class-len |...opaque-data |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_STATUS_CODE (TBD) option-len See section 23. status-code+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+-+-+-+-+-+ Thenumeric code foruser-class-len is two octets long and specifies thestatus encodedlength of the opaque user class data inthis option. The status codes are definednetwork order. Servers can interpret the meanings of multiple class specifications insection 7.4. status-message A UTF-8 encoded text string,an implementation dependent or configuration dependent manner, and so the use of multiple classes by a DHCP client should be based on the specific server implementation and configuration whichMUST NOTwill benull-terminated. 23.15.used to process that User class option. 22.17. Vendor Class Option This option is used by a client to identify thetype or category of user or applications it represents.vendor that manufactured the hardware on which the client is running. The information contained in theDroms (ed.), et al. Expires 1 Aug 2002 [Page 70] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002data area of this option is contained in one or more opaque fields thatrepresent the user class or classesidentify details ofwhich the client is a member. The user class information carried in this option MUST be configurable ontheclient.hardware configuration. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |OPTION_USER_CLASSOPTION_VENDOR_CLASS | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |user class data |enterprise-number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . . vendor-class-data . . . . . .|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-codeTBDOPTION_VENDOR_CLASS (16) option-lenSee section 23. user4 + length of vendor class data field enterprise-number Theuser classes carried by the client.vendor's registered Enterprise Number as registered with IANA. Droms (ed.), et al. Expires 22 Oct 2002 [Page 70] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 vendor-class-data Thedata areahardware configuration of theuser class option MUST contain one or more instances of user class data.host on which the client is running. Each instance of theuser class datavendor-class-data is formatted as follows: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+-+-+-+-+-+ |user class lenvendor-class-len |user class dataopaque-data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+-+-+-+-+-+ Theuser class lenvendor-class-len is two octets long and specifies the length of the opaqueuservendor class data in network order.Servers can interpret the meanings of multiple class specifications in an implementation dependent or configuration dependent manner, and so the use of multiple classes by aA DHCPclient should be based on the specific server implementation and configuration which will be used to process that User class option. Servers not equipped to interpret the user class information sent by a clientmessage MUSTignore it (although it may be reported). 23.16.NOT contain more than one Vendor ClassOptionoption. 22.18. Vendor-specific Information option This option is used by clients and servers to exchange vendor-specific information. The definition of this information is vendor specific. The vendor is indicated in thevendor class identifier option. Servers not equipped to interpret the vendor-specific information sent by a client MUST ignore it (although it may be reported).enterprise-number field. Clientswhichthat do not receive desired vendor-specific information SHOULD make an attempt to operate without it, although they may do so (and announce they are doing so) in a degraded mode.Droms (ed.), et al. Expires 1 Aug 2002 [Page 71] Internet Draft DHCP for IPv6 (-23) 1 Feb 20020 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |OPTION_VENDOR_CLASSOPTION_VENDOR_OPTS | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |vendor-identerprise-number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . .. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |option-data| .. . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-codeTBDOPTION_VENDOR_OPTS (17) option-lenSee section 23. vendor-id A domain name belonging to the vendor used to identify the vendor that defined this vendor class option.4 + length of option-data field enterprise-number The vendor's registered Enterprise Number as registered with IANA. option-data An opaque object of option-len octets,presumablyinterpreted by vendor-specific code on the clients and servers Thevendor-id must adhere to the rules in section 10. The Encapsulatedencapsulated vendor-specific options field MUST be encoded as a sequence of code/length/value fields of identical format to the DHCP options field. The option codes are defined by the vendor identified in the enterprise-number field and are not managed by IANA. Each of the encapsulated options is formatted as follows. Droms (ed.), et al. Expires 22 Oct 2002 [Page 71] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | opt-code | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|. . . option-data| |. . .|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ opt-code The code for theencapsulatedencapsulated option option-len An unsigned integer giving the length of the option-data field in this encapsulated option in octets. option-data The data area for the encapsulated option Multiple instances of the Vendor-specific Information option may appear in a DHCP message. Each instance of the optionoption-len See section 23. option-data The data area foris interpreted according to theencapsulatedoption23.17.codes defined by the vendor identified by the Enterprise Number in that option. A DHCP message MUST NOT contain more than one Vendor-specific Information option with the same Enterprise Number. 22.19. Interface-Id Option The relay agent MAY send the Interface-id option to identify the interface on which the client message was received. If a relayDroms (ed.), et al. Expires 1 Aug 2002 [Page 72] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002agent receives a Relay-reply message with an Interface-id option, the relay agent forwards the message to the client through the interface identified by theoptionoption. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_INTERFACE_ID | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| | | Interface-Id |. . . interface-id . . .| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_INTERFACE_ID(TBD)(18) option-lenSee section 23. Interface-IdLength of interface-id field interface-id An opaque value of arbitrary length generated by the relay agent to identify one of the relay agent's interfaces Droms (ed.), et al. Expires 22 Oct 2002 [Page 72] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 The server MUST copy the Interface-Id option from the Relay-Forward message into the Relay-Reply message the server sends to the relay agent in response to the Relay-Forward message. This option MUST NOT appear in any message except a Relay-Forward or Relay-Reply message. Servers MAY use the Interface-ID for parameter assignment policies. The Interface-ID SHOULD be considered an opaque value, with policies based on exact string match only; that is, the Interface-ID SHOULD NOT be internally parsed by the server.24.22.20. Reconfigure Message option A server includes a Reconfigure Message option in a Reconfigure message to indicate to the client whether the client responds with a Renew message or an Information-request 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_RECONF_MSG | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_RECONF_MSG (19) option-len 1 msg-type 1 for Renew message, 2 for Information-request message 23. Security Considerations Section2221 describes a threat model and an option that provides an authentication framework to defend against that threat model.25.24. Year 2000 considerations Since all times are relative to the current time of the transaction, there is no problem within the DHCPv6 protocol related to any hardcoded dates or two-digit representation of the current year.Droms (ed.), et al. Expires 1 Aug 2002 [Page 73] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002 26.25. IANA Considerations This document defines several new name spaces associated with DHCPv6 and DHCPv6 options. IANA is requested to manage the allocation of values from these name spaces, which are described in the remainder Droms (ed.), et al. Expires 22 Oct 2002 [Page 73] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 of this section. These name spaces are all to be managed separately from the name spaces defined for DHCPv4[7,[5, 1]. New values in each of these name spaces should be approved by the process of IETF consensus[15]. 26.1.[13]. 25.1. Multicast addresses Section7.15.1 defines the following multicast addresses, whichhave been assigned by IANAhave been assigned by IANA for use by DHCPv6: All_DHCP_Relay_Agents_and_Servers address: FF02::1:2 All_DHCP_Servers address: FF05::1:3 IANA is requested to manage definition of additional multicast addresses in the future. 25.2. Anycast addresses Section 5.2 defines the following anycast address, which is requested foruseassignment to DHCP byDHCPv6: All_DHCP_Agents address: FF02::1:2 All_DHCP_Servers address: FF05::1:3IANA: DHCP_Anycast: FEC0:0:0:0:FFFF::4 IANA is requested to manage definition of additionalmulticastanycast addresses in the future.26.2.25.3. DHCPv6 message types IANA is requested to record the following message typesdefined(defined in section7.3.5.4). IANA is requested to manage definition of additional message types in the future.26.3.SOLICIT 1 ADVERTISE 2 REQUEST 3 CONFIRM 4 RENEW 5 REBIND 6 REPLY 7 RELEASE 8 Droms (ed.), et al. Expires 22 Oct 2002 [Page 74] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 DECLINE 9 RECONFIGURE 10 INFORMATION-REQUEST 11 RELAY-FORW 12 RELAY-REPL 13 25.4. DUID IANA is requested to record the following DUID types (as defined in section11.1.9.1). IANA is requested to manage definition of additional DUID types in the future.26.4.Link-layer address plus time 1 VUID-DN 2 VUID-EN 3 Link-layer address 4 25.5. DHCPv6 options IANA is requested toassign option-codes torecord theoptionsfollowing option-codes (as defined in section23.22). IANA is requested to manage the definition of additional DHCPv6 option-codes in the future.26.5.OPTION_CLIENTID 1 OPTION_SERVERID 2 OPTION_IA 3 OPTION_IA_TMP 4 OPTION_IADDR 5 OPTION_ORO 6 OPTION_PREFERENCE 7 OPTION_ELAPSED_TIME 8 OPTION_CLIENT_MSG 9 OPTION_SERVER_MSG 10 OPTION_AUTH 11 Droms (ed.), et al. Expires 22 Oct 2002 [Page 75] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 OPTION_UNICAST 12 OPTION_STATUS_CODE 13 OPTION_RAPID_COMMIT 14 OPTION_USER_CLASS 15 OPTION_VENDOR_CLASS 16 OPTION_VENDOR_OPTS 17 OPTION_INTERFACE_ID 18 OPTION_RECONF_MSG 19 25.6. Status codes IANA is requested to record the status codes defined insection 7.4.the following table. IANA is requested to manage the definition of additional status codes in the future.Droms (ed.), et al. ExpiresName Code Description ---------- ---- ----------- Success 0 Success UnspecFail 1Aug 2002 [Page 74] Internet Draft DHCPFailure, reason unspecified; this status code is sent by either a client or a server to indicate a failure not explicitly specified in this document AuthFailed 2 Authentication failed or nonexistent AddrUnavail 3 Addresses unavailable NoBinding 4 Client record (binding) unavailable ConfNoMatch 5 Client record Confirm doesn't match IA NotOnLink 6 One or more prefixes of the addresses in the IA is not valid forIPv6 (-23) 1 Feb 2002 26.6.the link from which the client message was received UseMulticast 7 Sent by a server to a client to force the client to send messages to the server using the All\_DHCP\_Relay\_Agents\_and\_Servers address 25.7. Authentication option Section2221 defines three new name spaces associated with the Authentication Option (section23.12),22.12), which are to be created and maintained by IANA: Protocol, Algorithm and RDM. Droms (ed.), et al. Expires 22 Oct 2002 [Page 76] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 Initial values assigned from the Protocol name space are 0(for the configuration token Protocol in section 22.5)(reserved) and 1 (for the delayed authentication Protocol in section22.6).21.5). Additional protocols may be defined in the future. The Algorithm name space is specific to individual Protocols. That is, each Protocol has its own Algorithm name space. The guidelines for assigning Algorithm name space values for a particular protocol should be specified along with the definition of a new Protocol. For theconfiguration token Protocol, the Algorithm field MUST be 0, as described in section 22.5. For thedelayed authentication Protocol, the Algorithm value 1 is assigned to the HMAC-MD5 generating function as defined in section22.6.21.5. Additional algorithms for the delayed authentication protocol may be defined in the future. The initial value of 0 from the RDM name space is assigned to the use of a monotonically increasing value as defined in section22.4.21.4. Additional replay detection methods may be defined in the future.27.26. Acknowledgments Thanks to the DHC Working Group for their time and input into the specification. In particular, thanks also for the consistent input, ideas, and review by (in alphabetical order) Thirumalesh Bhat, Vijayabhaskar, Brian Carpenter, Matt Crawford, Francis Dupont, Tony Lindstrom, Josh Littlefield, Gerald Maguire, Jack McCann, Thomas Narten, Erik Nordmark, Yakov Rekhter, Mark Stapp, Matt Thomas, Sue Thomson, and Phil Wells. Thanks to Steve Deering and Bob Hinden, who have consistently taken the time to discuss the more complex parts of the IPv6 specifications. Bill Arbaugh reviewed the authentication mechanism described in section22.21. And, thanks to Steve Deering for pointing out at IETF 51 in London that the DHCPv6 specification has the highest revision number of any Internet Draft.Droms (ed.), et al. Expires 1 Aug 2002 [Page 75] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002References [1] S. Alexander and R. Droms. DHCP Options and BOOTP Vendor Extensions, March 1997. RFC 2132. [2] S. Bradner. Key words for use in RFCs to Indicate Requirement Levels, March 1997. RFC 2119. [3] S.Bradner and A. Mankin. The Recommendation for the IP Next Generation Protocol, January 1995. RFC 1752. [4] W.J. Croft and J. Gilmore. Bootstrap Protocol, September 1985. RFC 951. [5] S.Deering and R. Hinden. Internet Protocol, Version 6 (IPv6) Specification, December 1998. RFC 2460.[6]Droms (ed.), et al. Expires 22 Oct 2002 [Page 77] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 [4] R. Draves. Default Address Selection for IPv6, September 2001. work in progress.[7][5] R. Droms. Dynamic Host Configuration Protocol, March 1997. RFC 2131.[8][6] R. Droms, Editor, W. Arbaugh, and Editor. Authentication for DHCP Messages, June 2001. RFC 3118.[9][7] R. Hinden and S. Deering. IP Version 6 Addressing Architecture, July 1998. RFC 2373.[10][8] S. Kent and R. Atkinson. Security Architecture for the Internet Protocol, November 1998. RFC 2401.[11][9] H. Krawczyk, M. Bellare, and R. Canetti. HMAC: Keyed-Hashing for Message Authentication, February 1997. RFC 2104.[12][10] David L. Mills. Network Time Protocol (Version 3) Specification, Implementation, March 1992. RFC 1305.[13][11] P.V. Mockapetris. Domain names - concepts and facilities, November 1987. RFC 1034.[14][12] P.V. Mockapetris. Domain names - implementation and specification, November 1987. RFC 1035.[15][13] T. Narten and H. Alvestrand. Guidelines for Writing an IANA Considerations Section in RFCs, October 1998. RFC 2434.[16][14] T. Narten and R. Draves. Privacy Extensions for Stateless Address Autoconfiguration in IPv6, January 2001. RFC 3041.[17][15] T. Narten, E. Nordmark, and W. Simpson. Neighbor Discovery for IP Version 6 (IPv6), December 1998. RFC 2461.Droms (ed.), et al. Expires 1 Aug 2002 [Page 76] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002 [18][16] D.C. Plummer. Ethernet Address Resolution Protocol: Or converting network protocol addresses to 48.bit Ethernet address for transmission on Ethernet hardware, November 1982. RFC 826.[19][17] J. Postel. User Datagram Protocol, August 1980. RFC 768.[20][18] R. Rivest. The MD5 Message-Digest Algorithm, April 1992. RFC 1321.[21][19] S. Thomson and T. Narten. IPv6 Stateless Address Autoconfiguration, December 1998. RFC 2462.[22][20] P. Vixie, Ed., S. Thomson, Y. Rekhter, and J. Bound. Dynamic Updates in the Domain Name System (DNS UPDATE), April 1997. RFC 2136. Droms (ed.), et al. Expires 22 Oct 2002 [Page 78] Internet Draft DHCP for IPv6 (-24) 22 Apr 2002 Chair's Address The working group can be contacted via the current chair: Ralph Droms Cisco Systems 300 Apollo Drive Chelmsford, MA 01824 Phone: (978) 244-4733 E-mail: rdroms@cisco.com Authors' Addresses Questions about this memo can be directed to: Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page77]79] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002 Jim Bound Compaq Computer Corporation ZK3-3/W20 110 Spit Brook Road Nashua, NH 03062-2698 USA Voice: +1 603 884 0062 E-mail: Jim.Bound@compaq.com Mike Carney Sun Microsystems, Inc Mail Stop: UMPK17-202 901 San Antonio Road Palo Alto, CA 94303-4900 USA Voice: +1-650-786-4171 E-mail: mwc@eng.sun.com Charles E. Perkins Communications Systems Lab Nokia Research Center 313 Fairchild Drive Mountain View, California 94043 USA Voice: +1-650 625-2986 E-mail: charliep@iprg.nokia.com Fax: +1 650 625-2502 Ted Lemon Nominum, Inc. 950 Charter Street Redwood City, CA 94043 E-mail: Ted.Lemon@nominum.com Bernie Volz Ericsson 959 Concord St Framingham, MA 01701 Voice: +1-508-875-3162 Fax: +1-508-875-3018 E-mail: bernie.volz@ericsson.com Ralph Droms Cisco Systems 300 Apollo Drive Chelmsford, MA 01824 USA Voice: +1 978 479 4733 E-mail: rdroms@cisco.com Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page78]80] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002 A. Appearance of Options in Message Types The following table indicates with a "*" the options are allowed in each DHCP message type: Client ServerIA RTAIA/ Option Pref Time Client Server ID ID IA_TA RequestForw. Forw.Msg. Msg. Solicit * * * * Advert. * * * * **Request * * * * * Confirm * * * * Renew * * * * * Rebind * * * * Decline * * * * * Release * * * * * Reply * * * * **Reconf. * * * Inform. * (see note) *R-forw.* R-forw. * R-repl. **NOTE: Only included in Information-Request messages that are sent in response to a Reconfigure (see section20.3.3).19.3.3). Auth Server Status Rap. User Vendor Vendor Inter. Recon. Unica. Code Comm. Class Class Spec. ID Msg. Solicit * * * * * Advert. * * * * * Request * * * * Confirm * * * * Renew * * * * Rebind * * * * Decline * * * * * Release * * * * * Reply * * * * * * Reconf. * * Inform. * * * * R-forw. * * * * * R-repl. * * * * * B. Appearance of Options in the Options Field of DHCPMessagesOptions The following table indicates with a "*" where options can appear in the options fieldor encapsulated inof other options: Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page79]81] Internet Draft DHCP for IPv6(-23) 1 Feb(-24) 22 Apr 2002 OptionIAIA/ IAADDRRTAClient Server FieldForw. Forw.IA_TA Msg. Msg. Clientmsg. *ID * Servermsg. * * DUIDID *IAIA/IA_TA * IAADDR *RTA *ORO * Pref * Time *Client Forw. * Server Forw. * DSTM Addr. * DSTM Tunnel *Authentic. * Server Uni. *Dom. Srch. * Dom. Server *StatusCod.Code * * * *Circ. ID* Rapid Comm. * User Class *Vend.Vendor Class * Vendor Info. * Interf. ID * * Reconf. msg. * C. Full Copyright Statement Copyright (C) The Internet Society (2001). 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, INCLUDINGDroms (ed.), et al. Expires 1 Aug 2002 [Page 80] Internet Draft DHCP for IPv6 (-23) 1 Feb 2002BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Droms (ed.), et al. Expires1 Aug22 Oct 2002 [Page81]82] ----