view Side-By-Side changes
Internet Engineering Task Force J. Bound INTERNET DRAFTNokiaCompaq DHC Working Group M. Carney Obsoletes: draft-ietf-dhc-dhcpv6-18.txt Sun Microsystems, Inc C. Perkins Nokia Research Center R. Droms(ed.) Cisco Systems15 April30 June 2001 Dynamic Host Configuration Protocol for IPv6 (DHCPv6)draft-ietf-dhc-dhcpv6-18.txtdraft-ietf-dhc-dhcpv6-19.txt Status of This Memo This document is a submission by the Dynamic Host Configuration Working Group of the Internet Engineering Task Force (IETF). Comments should be submitted to the dhcp-v6@bucknell.edu mailing list. Distribution of this memo is unlimited. This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at: http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at: http://www.ietf.org/shadow.html. Abstract The Dynamic Host Configuration Protocol 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"[13],[20], and can be used separately or concurrently with the latter to obtain configuration parameters. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page i] Internet Draft DHCP for IPv615 April30 June 2001 Contents Status of This Memo i Abstract i 1. Introduction 1 2. Requirements 1 3. Background 1 4. Design Goals 3 5. Non-Goals 3 6. Terminology 4 6.1. IPv6 Terminology . . . . . . . . . . . . . . . . . . . . 4 6.2. DHCP Terminology . . . . . . . . . . . . . . . . . . . . 5 7. DHCP Constants 6 7.1. Multicast Addresses . . . . . . . . . . . . . . . . . . .76 7.2. UDP ports . . . . . . . . . . . . . . . . . . . . . . . . 7 7.3. DHCP message types . . . . . . . . . . . . . . . . . . . 7 7.4. Error Values . . . . . . . . . . . . . . . . . . . . . . 9 7.4.1. Generic Error Values . . . . . . . . . . . . . . 9 7.4.2. Server-specific Error Values . . . . . . . . . . 9 7.5. Configuration Variables . . . . . . . . . . . . . . . . .109 8. Overview 10 8.1. How does a node know to use DHCP? . . . . . . . . . . . . 10 8.2. What if the client and server(s) are on different links? 10 8.3. How does a client request configuration parameters from servers? . . . . . . . . . . . . . . . . . . . . . . . 11 8.4. How do clients and servers identify and manage addresses?1211 8.5. Can a client release its assigned addresses before the lease expires? . . . . . . . . . . . . . . . . . . . . . . . 12 8.6. What if the client determines one or more of its assigned addresses are already being used by another client? . 12 8.7. How are clients notified of server configuration changes? 12 9. Message Formats1312 9.1. DHCP Solicit Message Format . . . . . . . . . . . . . . . 13 9.2. DHCP Advertise Message Format . . . . . . . . . . . . . .1413 9.3. DHCP Request Message Format . . . . . . . . . . . . . . . 14 9.4. DHCP Confirm Message Format . . . . . . . . . . . . . . .1514 9.5. DHCP Renew Message Format . . . . . . . . . . . . . . . . 15 9.6. DHCP Rebind Message Format . . . . . . . . . . . . . . . 15 9.7. DHCP Reply Message Format . . . . . . . . . . . . . . . .1615 9.8. DHCP Release Message Format . . . . . . . . . . . . . . . 16 Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page ii] Internet Draft DHCP for IPv615 April30 June 2001 9.9. DHCP Decline Message Format . . . . . . . . . . . . . . .1716 9.10. DHCP Reconfigure-init Message Format . . . . . . . . . . 17 10. Relay messages 17 10.1. Relay-forward message . . . . . . . . . . . . . . . . . .1817 10.2. Relay-reply message . . . . . . . . . . . . . . . . . . . 18 11. DHCP unique identifier (DUID) 18 12. Identity association19 12.18 13. DHCP Server Solicitation 1912.1.13.1. Solicit Message Validation . . . . . . . . . . . . . . . 1912.2.13.2. Advertise Message Validation . . . . . . . . . . . . . . 1912.3.13.3. Client Behavior . . . . . . . . . . . . . . . . . . . . . 1912.3.1.13.3.1. Creation and sending of the Solicit message . . .20 12.3.2.19 13.3.2. Time out and retransmission of Solicit Messages . 2012.3.3.13.3.3. Receipt of Advertise messages . . . . . . . . . . 2012.4.13.4. Server Behavior . . . . . . . . . . . . . . . . . . . . . 2112.4.1.13.4.1. Receipt of Solicit messages . . . . . . . . . . . 2112.4.2.13.4.2. Creation and sending of Advertise messages . . . 2113.14. DHCP Client-Initiated Configuration Exchange 2213.1.14.1. Client Message Validation . . . . . . . . . . . . . . . . 2313.2.14.2. Server Message Validation . . . . . . . . . . . . . . . . 2313.3.14.3. Client Behavior . . . . . . . . . . . . . . . . . . . . . 2413.3.1.14.3.1. Creation and sending of Request messages . . . . 2413.3.2.14.3.2. Creation and sending of Confirm messages . . . . 2513.3.3.14.3.3. Creation and sending of Renew messages . . . . . 2613.3.4.14.3.4. Creation and sending of Rebind messages . . . . . 2713.3.5.14.3.5. Receipt of Reply message in response to aReply,Request, Confirm, Renew or Rebind message . . . . . 2813.3.6.14.3.6. Creation and sending of Release messages . . . .30 13.3.7.29 14.3.7. Time out and retransmission of Release Messages . 3013.3.8.14.3.8. Receipt of Reply message in response to a Release message . . . . . . . . . . . . . . . . . 30 14.3.9. Creation and sending of Decline messages . . . . 3013.3.9.14.3.10. Time out and retransmission of Decline Messages . 3113.3.10.14.3.11. Receipt of Reply message in response to a Release message . . . . . . . . . . . . . . . . . 3113.4.14.4. Server Behavior . . . . . . . . . . . . . . . . . . . . . 3113.4.1.14.4.1. Receipt of Request messages . . . . . . . . . . . 3213.4.2.14.4.2. Receipt of Confirm messages . . . . . . . . . . . 3213.4.3.14.4.3. Receipt of Renew messages . . . . . . . . . . . . 3313.4.4.14.4.4. Receipt of Rebind messages . . . . . . . . . . . 3413.4.5.14.4.5. Receipt of Release messages . . . . . . . . . . . 3513.4.6.14.4.6. Sending of Reply messages . . . . . . . . . . . .35 14.36 15. DHCP Server-Initiated Configuration Exchange 3614.1.15.1. Reconfigure-init Message Validation . . . . . . . . . . . 3614.2.15.2. Server Behavior . . . . . . . . . . . . . . . . . . . . . 3614.2.1.15.2.1. Creation and sending of Reconfigure-init messages 3614.2.2.Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page iii] Internet Draft DHCP for IPv6 30 June 2001 15.2.2. Time out and retransmission ofunicastReconfigure-init messages . . . . . . . .37 14.2.3. Time out and retransmission of multicast Reconfigure-init messages. . . . . . . .38 14.2.4.. 37 15.2.3. Receipt of Request messages . . . . . . . . . . .38 Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page iii] Internet Draft DHCP for IPv6 15 April 2001 14.3.37 15.3. Client Behavior . . . . . . . . . . . . . . . . . . . . . 3814.3.1.15.3.1. Receipt of Reconfigure-init messages . . . . . . 3814.3.2.15.3.2. Creation and sending of Request messages . . . .38 14.3.3.39 15.3.3. Time out and retransmission of Request messages . 3914.3.4.15.3.4. Receipt of Reply messages . . . . . . . . . . . . 3915.16. Relay Behavior 3915.1.16.1. Relaying of client messages . . . . . . . . . . . . . . . 3915.2.16.2. Relaying of server messages . . . . . . . . . . . . . . . 4016.17. Authentication of DHCPoptionsmessages 4016.1. Format of17.1. DHCPoptionsthreat model . . . . . . . . . . . . . . . . .40 16.2. Identity association option. . . 40 17.2. Summary of DHCP authentication . . . . . . . . . . . . . 4116.3. Option request option17.3. Replay detection . . . . . . . . . . . . . . . . . .43 16.4. Client message option. . 41 17.4. Configuration token protocol . . . . . . . . . . . . . . 42 17.5. Delayed authentication protocol . . . . .43 16.5. Server message option. . . . . . . . 42 17.5.1. Management issues in the delayed authentication protocol . . . . . . . . . . .44 16.6. Retransmission parameter option. . . . . . 42 17.5.2. Use of the Authentication option in the delayed authentication protocol . . . . . . . .44 16.7. Reconfigure-delay option. 43 17.5.3. Message validation . . . . . . . . . . . . . . . 4416.8. DSTM Global IPv4 Address Option17.5.4. Key utilization . . . . . . . . . . . . . . . .45 16.9. Authentication option. 44 17.5.5. Client considerations for delayed authentication protocol . . . . . . . . . . . . . . . . .46 17. DHCP Client Implementor Notes 46 17.1. Primary Interface44 17.5.6. Receiving Advertise messages . . . . . . . . . . 45 17.5.7. Server considerations for delayed authentication protocol . . . . . . . . . . . . . . .46 17.2. Advertise Message and Configuration Parameter Caching. . 4617.3. Time out and retransmission variables18. DHCP options 46 18.1. Format of DHCP options . . . . . . . . . .47 17.4. Server Preference. . . . . . . 47 18.2. DHCP unique identifier option . . . . . . . . . . . . . . 4718. DHCP Server Implementor Notes 47 18.1. Client Bindings18.3. Identity association option . . . . . . . . . . . . . . . 47 18.4. Option request option . . . . . .47 18.2. Reconfigure-init Considerations. . . . . . . . . . . . 50 18.5. Client message option .47 18.2.1. Reliable transmission of multicast Reconfigure-init messages. . . . . . . . . . . . . . . . .48 18.3.50 18.6. ServerPreferencemessage option . . . . . . . . . . . . . . . . . . 51 18.7. Retransmission parameter option . .48 18.4. Request Message Transaction-ID Cache. . . . . . . . . .48 19. DHCP Relay Implementor Notes 48 20. Open Issues for Working Group Discussion 49 20.1. Authentication. 51 18.8. DSTM Global IPv4 Address Option . . . . . . . . . . . . . 51 18.9. Authentication option . . . . . . .49 20.2. Identification of IAs by servers. . . . . . . . . . . 52 18.10. Server unicast option .49 20.3. DHCP-DNS interaction. . . . . . . . . . . . . . . . . 53 18.11. Domain Search Option .49 20.4. Temporary addresses. . . . . . . . . . . . . . . . . 53 18.12. Domain Name Server Option . .49 20.5. Use of term "agent". . . . . . . . . . . . . . 54 19. DHCP Client Implementor Notes 55 19.1. Primary Interface . . . . .49 20.6. Client behavior when response to Rebind is not received.49 20.7. Additional options. . . . . . . . . . . . . . 55 19.2. Advertise Message and Configuration Parameter Caching . . 55 19.3. Time out and retransmission variables . . .50 20.8. Operational parameters. . . . . . . 55 19.4. Server Preference . . . . . . . . . .50 21. Security 50 22. Year 2000 considerations 50 23. IANA Considerations 50 Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page iv] Internet Draft. . . . . . . . . . 56 20. DHCPfor IPv6 15 April 2001 24. Acknowledgments 51 A. Comparison between DHCPv4 and DHCPv6 51 B. Full Copyright Statement 53 C. Changes in this draft 53 C.1. New messages for confirming addresses and extending the lease on an IAServer Implementor Notes 56 20.1. Client Bindings . . . . . . . . . . . . . . . . . . . . . 56 Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page iv] Internet Draft DHCP for IPv6 30 June 2001 20.2. Reconfigure-init Considerations . .54 C.2. New message formats. . . . . . . . . . . 56 20.3. Server Preference . . . . . . . .54 C.3. Renamed Server-forward message. . . . . . . . . . . . 56 20.4. Request Message Transaction-ID Cache .54 C.4. Clarified relay forwarding of messages. . . . . . . . .54 C.5. Addresses and57 21. DHCP Relay Implementor Notes 57 22. Security 57 23. Year 2000 considerations 57 24. IANA Considerations 57 24.1. DHCPv6 optionsin Advertise messages. . . . . . .54 C.6. Clarification of IA option format. . . . . . . . . . . .54 C.7. Specification of transaction ID in Solicit message. . 57 24.2. Multicast addresses .54 C.8. Edits to definitions. . . . . . . . . . . . . . . . . .55 C.9. Relay agent messages58 24.3. Status codes . . . . . . . . . . . . . . . . . .55 C.10. Relay agent behavior. . . . 58 24.4. Retransmission parameter option . . . . . . . . . . . . . 58 24.5. Authentication option .55 C.11. Transmission of all client messages through relays. . .55 C.12. Reconfigure-init messages. . . . . . . . . . . . . . 58 25. Acknowledgments 59 A. Comparison between DHCPv4 and DHCPv6 59 B. Full Copyright Statement 61 C. Changes in this draft 61 C.1. Reconfigure-init . .55 C.13. Ordering of sections. . . . . . . . . . . . . . . . . .55 C.14. DSTM option62 C.2. Authentication . . . . . . . . . . . . . . . . . . . . . 62 C.3. Confirm message . . . . .55 C.15. Message and option numbering. . . . . . . . . . . . . .55 C.16. Inclusion. . 62 C.4. Failure ofIAsRebind message . . . . . . . . . . . . . . . . 63 C.5. Server behavior inSolicitresponse to Release messageby client. . . . . 63 C.6. Client behavior when sending a Release message .56 C.17. Clarification of destination of client messages. . . . 63 C.7. IA option .56 C.18. Clarification of client use of Confirm messages. . . . .56. . . . . . . . . . . . . . . . . . 63 C.8. DSTM option . . . . . . . . . . . . . . . . . . . . . . . 63 C.9. Server unicast option . . . . . . . . . . . . . . . . . . 64 C.10. Domain search option . . . . . . . . . . . . . . . . . . 64 C.11. DNS servers option . . . . . . . . . . . . . . . . . . . 64 C.12. DUID and IAID . . . . . . . . . . . . . . . . . . . . . . 64 C.13. Continuing to poll with Solicit . . . . . . . . . . . . . 64 C.14. Using DHCPv6 without address assignment . . . . . . . . . 64 C.15. Potential crossing in flight of Request and Reconfigure-init messages . . . . . . . . . . . . . . . . . . . . . . . 64 D. Open Issues for Working Group Discussion 64 D.1. Generation and use of DUID and IAID . . . . . . . . . . . 65 D.2. Address registration . . . . . . . . . . . . . . . . . . 65 D.3. Prefix advertisement . . . . . . . . . . . . . . . . . . 65 D.4. DHCP-DNS interaction . . . . . . . . . . . . . . . . . . 65 D.5. Use of term "agent" . . . . . . . . . . . . . . . . . . . 65 D.6. Additional options . . . . . . . . . . . . . . . . . . . 65 D.7. Operational parameters . . . . . . . . . . . . . . . . . 65 Chair's Address58 Author's68 Author's Address 68 Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page v] Internet Draft DHCP for IPv6 30 June 2001 1. Introduction This document describes DHCP for IPv6 (DHCP), a UDP [18] client/server protocol designed to reduce the cost of management of IPv6 nodes in environments where network managers require more control over the allocation of IPv6 addresses and configuration of network stack parameters than that offered by "IPv6 Stateless Autoconfiguration" [20]. DHCP is a stateful counterpart to stateless autoconfiguration. Note that both stateful and stateless autoconfiguration can be used concurrently in the same environment, leveraging the strengths of both mechanisms in order to reduce the cost of ownership and management of network nodes. DHCP reduces the cost of ownership by centralizing the management of network resources such as IP addresses, routing information, OS installation information, directory service information, and other such information on a few DHCP servers, rather than distributing such information in local configuration files among each network node. DHCP is designed to be easily extended to carry new configuration parameters through the addition of new DHCP "options" defined to carry this information. Those readers familiar with DHCP for IPv4 [7] will find DHCP for IPv6 provides a superset of features, and benefits from the additional features of IPv6 and freedom from BOOTP [5]-backward compatibility constraints. For more information about the differences between DHCP for IPv6 and DHCP for IPv4, see Appendix A. 2. Requirements The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this document, are to be interpreted as described in [3]. This document also makes use of internal conceptual variables to describe protocol behavior and external 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 them in the exact form described here, so long as its external behavior is consistent with that described in this document. 3. Background Related work in IPv6 that would best serve an implementor to study is the IPv6 Specification [6], the IPv6 Addressing Architecture [9], IPv6 Stateless Address Autoconfiguration [20], IPv6 Neighbor Discovery Processing [16], and Dynamic Updates to DNS [22]. These specifications enable DHCP to build upon the IPv6 work to provide Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 1] Internet Draft DHCP for IPv6 30 June 2001 both robust stateful autoconfiguration and autoregistration of DNS Host Names. The IPv6 Specification provides the base architecture and design of IPv6. A key point for DHCP implementors to understand is that IPv6 requires that every link in the Internet have an MTU of 1280 octets or greater (in IPv4 the requirement is 68 octets). This means that a UDP packet of 536 octets will always pass through an internetwork (less 40 octets for the IPv6 header), as long as there are no IP options prior to the UDP header in the packet. But, IPv6 does not support fragmentation at routers, so that fragmentation takes place end-to-end between hosts. If a DHCP implementation needs to send a packet greater than 1500 octets it can either fragment the UDP packet into fragments of 1500 octets or less, or use Path MTU Discovery [11] to determine the size of the packet that will traverse a network path. DHCP clients use Path MTU discovery when they have an address of sufficient scope to reach the DHCP server. If a DHCP client does not have such an address, that client MUST fragment its packets if the resultant message size is greater than the minimum 1280 octets. Path MTU Discovery for IPv6 is supported for both UDP and TCP and can cause end-to-end fragmentation when the PMTU changes for a destination. The IPv6 Addressing Architecture specification [9] defines the address scope that can be used in an IPv6 implementation, and the various configuration architecture guidelines for network designers of the IPv6 address space. Two advantages of IPv6 are that support for multicast is required, and nodes can create link-local addresses during initialization. This means that a client can immediately use its link-local address and a well-known multicast address to begin communications to discover neighbors on the link. For instance, a client can send a Solicit message and locate a server or relay. IPv6 Stateless Address58Autoconfiguration [20] (Addrconf) specifies procedures by which a node may autoconfigure addresses based on router advertisements [16], and the use of a valid lifetime to support renumbering of addresses on the Internet. In addition the protocol interaction by which a node begins stateless or stateful autoconfiguration is specified. DHCP is one vehicle to perform stateful autoconfiguration. Compatibility with addrconf is a design requirement of DHCP (see Section 4). IPv6 Neighbor Discovery [16] is the node discovery protocol in IPv6 which replaces and enhances functions of ARP [17]. To understand IPv6 and Addrconf it is strongly recommended that implementors understand IPv6 Neighbor Discovery. Dynamic Updates to DNS [22] is a specification that supports the dynamic update of DNS records for both IPv4 and IPv6. DHCP can use the dynamic updates to DNS to integrate addresses and name space to Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Pagev]2] Internet Draft DHCP for IPv615 April30 June 20011. Introduction This document describesnot only support autoconfiguration, but also autoregistration in IPv6. 4. Design Goals - DHCPfor IPv6 (DHCP),is aUDP [12] client/server protocol designed to reducemechanism rather than a policy. Network administrators set their administrative policies through thecost of management of IPv6 nodesconfiguration parameters they place upon the DHCP servers inenvironments where network managers require more control overtheallocationDHCP domain they're managing. DHCP is simply used to deliver parameters according to that policy to each of the DHCP clients within the domain. - DHCP is compatible with IPv6addresses andstateless autoconf [20]. - DHCP does not require manual configuration of networkstackparametersthan that offered by "IPv6 Stateless Autoconfiguration" [13].on DHCP clients, except in cases where such configuration is needed for security reasons. A node configuring itself using DHCP should require no user intervention. - DHCP does not require astateful counterpart to stateless autoconfiguration. Note that both stateful and stateless autoconfiguration can be used concurrently in the same environment, leveraging the strengths of both mechanisms in order to reduce the cost of ownershipserver on each link. To allow for scale andmanagement of network nodes.economy, DHCPreduces the cost of ownership by centralizing the management of network resources such as IP addresses, routing information, OS installation information, directory service information,must work across DHCP relays. - DHCP coexists with statically configured, non-participating nodes andother such informationwith existing network protocol implementations. - DHCP clients can operate on afewlink without IPv6 routers present. - DHCPservers, rather than distributing such information in local configuration files among eachwill provide the ability to renumber network(s) when required by networknode.administrators [4]. - A DHCPis designed to be easily extended to carry newclient can make multiple, different requests for configuration parametersthroughwhen necessary from one or more DHCP servers at any time. - DHCP will contain theadditionappropriate time out and retransmission mechanisms to efficiently operate in environments with high latency and low bandwidth characteristics. 5. Non-Goals This specification explicitly does not cover the following: - Specification ofnewa DHCP"options" definedserver tocarry this information. Those readers familiar withserver protocol. - How a DHCPfor IPv4 [6] will findserver stores its DHCPfor IPv6 providesdata. - How to manage asuperset of features, and benefits from the additional featuresDHCP domain or DHCP server. - How a DHCP relay is configured or what sort ofIPv6 and freedom from BOOTP [4]-backward compatibility constraints. For moreinformationabout the differences betweenit may log. Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 3] Internet Draft DHCP for IPv6 30 June 2001 6. Terminology 6.1. IPv6 Terminology IPv6 terminology relevant to this specification from the IPv6 Protocol [6], IPv6 Addressing Architecture [9], andDHCPIPv6 Stateless Address Autoconfiguration [20] is included below. address An IP layer identifier forIPv4, see Appendix A. 2. Requirements The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this document, are to be interpreted as described in [2]. This document also makes usean interface or a set ofinternal conceptual variablesinterfaces. unicast address An identifier for a single interface. A packet sent todescribe protocol behavior and external variablesa unicast address is delivered to the interface identified by thatan implementation must allow system administratorsaddress. multicast address An identifier for a set of interfaces (typically belonging tochange.different nodes). A packet sent to a multicast address is delivered to all interfaces identified by that address. host Any node that is not a router. IP Internet Protocol Version 6 (IPv6). Thespecific variable names, how their values change,terms IPv4 andhow their settings influence protocol behaviorIPv6 areprovided to demonstrate protocol behavior. An implementationused only in contexts where it isnot requirednecessary tohave them inavoid ambiguity. interface A node's attachment to a link. link A communication facility or medium over which nodes can communicate at theexact form described here, so longlink 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 asits external behavior is consistent with that described in this document. 3. Background Related work intunnels over IPv4 or IPv6that would best serveitself. link-layer identifier A link-layer identifier for animplementor to study is the IPv6 Specification [5], the IPv6 Addressing Architecture [7], IPv6 Stateless Address Autoconfiguration [13], IPv6 Neighbor Discovery Processing [10],interface. Examples include IEEE 802 addresses for Ethernet or Token Ring network interfaces, andDynamic UpdatesE.164 addresses for ISDN links. link-local address An IP address having link-only scope, indicated by having the prefix (FE80::0000/64), that can be used toDNS [15]. These specifications enable DHCPreach neighboring nodes attached tobuild upontheIPv6 work to providesame link. Every interface has a link-local address. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page1]4] Internet Draft DHCP for IPv615 April30 June 2001both robust stateful autoconfiguration and autoregistrationmessage A unit ofDNS Host Names. The IPv6 Specification provides the base architecturedata carried in a packet, exchanged between DHCP agents anddesign of IPv6.clients. neighbor Akey point for DHCP implementorsnode attached tounderstand is that IPv6 requires that every link in the Internet have an MTU of 1280 octets or greater (in IPv4therequirement is 68 octets). This meanssame link. node A device thata UDPimplements IP. packet An IP header plus payload. prefix The initial bits of536 octets will always pass throughaninternetwork (less 40 octets for the IPv6 header), as long as there are noaddress, or a set of IPoptions prior toaddress that share theUDP headersame initial bits. prefix length The number of bits inthe packet. But, IPv6 does not support fragmentation at routers, so that fragmentation takes place end-to-end between hosts. Ifa prefix. router A node that forwards IP packets not explicitly addressed to itself. 6.2. DHCPimplementation needsTerminology Terminology specific tosend a packet greater than 1500 octets itDHCP caneither fragment the UDP packet into fragments of 1500 octets or less, or use Path MTU Discovery [8]be found below. abort status A status value returned todetermine the size ofthepacketapplication thatwill traversehas invoked anetwork path.DHCPclients use Path MTU discovery when they have anclient operation, indicating anything other than success. agent address The address ofsufficient scope to reach the DHCP server. Ifa neighboring DHCPclient does not have such an address, that client MUST fragment its packets ifAgent on theresultant message size is greater thansame link as theminimum 1280 octets. Path MTU Discovery for IPv6DHCP client. binding A binding (or, client binding) issupported for both UDP and TCP and can cause end-to-end fragmentation when the PMTU changes foradestination. The IPv6 Addressing Architecture specification [7] definesgroup of server data records containing theaddress scope that can be usedserver's information about the addresses in anIPv6 implementation,IA andthe variousany other configurationarchitecture guidelines for network designers ofinformation assigned to theIPv6 address space. Two advantages of IPv6 are that support for multicastclient. A binding isrequired,indexed by the tuple <DUID, IAID>. DHCP Dynamic Host Configuration Protocol for IPv6. The terms DHCPv4 andnodes can create link-local addresses during initialization. This means that a client can immediately use its link-local addressDHCPv6 are used only in contexts where it is necessary to avoid ambiguity. configuration parameter An element of the configuration information set on the server anda well-known multicast address to begin communicationsdelivered todiscover neighbors onthelink. For instance, aclientcan sendusing DHCP. Such parameters may be used to carry information to be used by aSolicit messagenode to configure its network subsystem andlocateenable communication on aserverlink orrelay.internetwork, for example. Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 5] Internet Draft DHCP for IPv6Stateless Address Autoconfiguration [13] (Addrconf) specifies procedures30 June 2001 DHCP client (or client) A node that initiates requests on a link to obtain configuration parameters from one or more DHCP servers. DHCP domain A set of links managed bywhichDHCP and operated by a single administrative entity. DHCP server (or server) A server is a node that responds to requests from clients, and mayautoconfigure addresses basedor may not be onrouter advertisements [10], andtheuse of a valid lifetimesame link as the client(s). DHCP relay (or relay) A node that acts as an intermediary tosupport renumbering of addressesdeliver DHCP messages between clients and servers, and is on theInternet. In additionsame link as a client. DHCP agent (or agent) Either a DHCP server on theprotocol interaction by whichsame link as anode begins statelessclient, orstateful autoconfiguration is specified.a DHCPis one vehicle to perform stateful autoconfiguration. Compatibility with addrconf isrelay. DUID A DHCP unique identifier for adesign requirementclient. Identity association (IA) A collection ofDHCP (see Section 4). IPv6 Neighbor Discovery [10] isaddresses assigned to a client. Each IA has an associated IAID. An IA may have 0 or more addresses associated with it. Identity association identifier (IAID) An identifier for an IA, chosen by thenode discovery protocol in IPv6client. Each IA has an IAID, whichreplaces and enhances functions of ARP [11]. To understand IPv6 and Addrconf itisstrongly recommendedchosen to be unique among all IAIDs for IAs belonging to thatimplementors understand IPv6 Neighbor Discovery. Dynamic Updatesclient. transaction-ID An unsigned integer toDNS [15] ismatch responses with replies initiated either by aspecification that supports the dynamic update of DNS records for both IPv4client or server. 7. DHCP Constants This section describes various program andIPv6.networking constants used by DHCP. 7.1. Multicast Addresses DHCPcanmakes use of thedynamic updates to DNS to integrate addresses and name spacefollowing multicast addresses: All DHCP Agents address: FF02::1:2 This link-scoped multicast address is used by clients to communicate with the on-link agent(s) when they do not know those agents' Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page2]6] Internet Draft DHCP for IPv615 April30 June 2001not only support autoconfiguration, but also autoregistration in IPv6. 4. Design Goals -link-local address(es). All agents (servers and relays) are members of this multicast group. All DHCP Servers address: 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 servers or because they do not know the server(s) unicast address(es). Note that in order for amechanism rather than a policy. Network administrators setclient to use this address, it must have an address of sufficient scope to be reachable by the server(s). All servers within the site are members of this multicast group. 7.2. UDP ports DHCP uses the following destination UDP [18] port numbers. While source ports MAY be arbitrary, client implementations SHOULD permit theiradministrative policiesspecification throughthea local configurationparameters they place uponparameter to facilitate the use of DHCP through firewalls. 546 Client port. Used by serversinas theDHCP domain they're managing. DHCP is simply used to deliver parameters accordingdestination port for messages sent tothat policyclients and relays. Used by relay agents as the destination port for messages sent toeach ofclients. 547 Agent port. Used as theDHCPdestination port by clientswithinfor messages sent to agents. Used as thedomain. -destination port by relays for messages sent to servers. 7.3. DHCPis compatible with IPv6 stateless autoconf [13]. -message types DHCPdoes not require manual configuration of network parametersdefines the following message types. More detail onDHCP clients, exceptthese message types can be found incases where such configuration is neededSection 9. Message types 0 and TBD--255 are reserved and MUST be silently ignored. The message code forsecurity reasons. A node configuring itself using DHCP should require no user intervention. - DHCP does not require a server oneachlink. To allow for scale and economy, DHCP must work acrossmessage type is shown with the message name. SOLICIT (1) The DHCPrelays. -Solicit (or Solicit) message is used by clients to locate servers. ADVERTISE (2) The DHCPcoexists with statically configured, non-participating nodes and with existing network protocol implementations. -Advertise (or Advertise) message is used by servers responding to Solicits. REQUEST (3) The DHCP Request (or Request) message is used by clientscan operate on a link without IPv6 routers present. - DHCP will provide the abilitytorenumber network(s) when required by network administrators [3]. - A DHCP client can make multiple, different requests forrequest configuration parameterswhen necessaryfromone or more DHCP servers at any time. -servers. CONFIRM (4) The DHCPwill containConfirm (or Confirm) message is used by clients to confirm that theappropriate time out and retransmission mechanismsaddresses assigned toefficiently operate in environments with high latencyan IA andlow bandwidth characteristics. 5. Non-Goals This specification explicitly does not coverthefollowing: - Specification of a DHCP server to server protocol. - How a DHCP server stores its DHCP data. - How to manage a DHCP domain or DHCP server. - How a DHCP relay is configured or what sort of information it may log.lifetimes for those addresses, as well as the current Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page3]7] Internet Draft DHCP for IPv615 April30 June 20016. Terminology 6.1. IPv6 Terminology IPv6 terminology relevantconfiguration parameters assigned by the server tothis specification fromtheIPv6 Protocol [5], IPv6 Addressing Architecture [7], and IPv6 Stateless Address Autoconfiguration [13]client are still valid. RENEW (5) The DHCP Renew (or Renew) message isincluded below. address An IP layer identifier forused by clients to obtain the addresses assigned to aninterface or a set of interfaces. unicast address An identifierIA and the lifetimes fora single interface. A packet sentthose addresses, as well as the current configuration parameters assigned by the server to the client. A client sends aunicast address is deliveredRenew message to theinterface identified byserver thataddress. multicast address An identifieroriginally assigned the IA when the lease on an IA is about to expire. REBIND (6) The DHCP Rebind (or Rebind) message is used by clients to obtain the addresses assigned to an IA and the lifetimes fora set of interfaces (typically belongingthose addresses, as well as the current configuration parameters assigned by the server todifferent nodes).the client. Apacket sent toclients sends amulticast address is deliveredRebind message to allinterfaces identified by that address. host Any node thatavailable DHCP servers when the lease on an IA isnot a router. IP Internet Protocol Version 6 (IPv6).about to expire. REPLY (7) Theterms IPv4 and IPv6 are used only in contexts where itDHCP Reply (or Reply) message isnecessaryused by servers responding toavoid ambiguity. interface A node's attachmentRequest, Confirm, Renew, Rebind, Release and Decline messages. In the case of responding to alink. link A communication facilityRequest, Confirm, Renew ormedium over which nodes can communicate at the link layer, i.e.,Rebind message, thelayer immediately below IP. Examples are Ethernet (simple or bridged); Token Ring; PPP links, X.25, Frame Relay, or ATM networks; and Internet (or higher) layer "tunnels", such as tunnels over IPv4 or IPv6 itself. link-layer identifier A link-layer identifier for an interface. Examples include IEEE 802 addresses for Ethernet or Token Ring network interfaces, and E.164 addresses for ISDN links. link-local address An IP address having link-only scope, indicated by havingReply contains configuration parameters destined for theprefix (FE80::0000/64), that can beclient. RELEASE (8) The DHCP Release (or Release) message is used by clients toreach neighboring nodes attachedreturn one or more IP addresses tothe same link. Every interface has a link-local address. Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page 4] Internet Draftservers. DECLINE (9) The DHCPfor IPv6 15 April 2001Decline (or Decline) messageA unit of data carried in a packet, exchanged between DHCP agents and clients. neighbor A node attachedis used by clients to indicate that thesame link. node A deviceclient has determined thatimplements IP. packet An IP header plus payload. prefix The initial bits of an address,one ora set of IP address that share the same initial bits. prefix length The number of bitsmore addresses ina prefix. router A node that forwards IP packets not explicitly addressed to itself. 6.2. DHCP Terminology Terminology specifican IA are already in use on the link to which the client is connected. RECONFIG-INIT (10) The DHCPcan be found below. abort status A status value returnedReconfigure-init (or Reconfigure-init) message is sent by server(s) tothe applicationinform client(s) that the server(s) hasinvoked a DHCP client operation, indicating anything other than success. agent address The address ofnew or updated configuration parameters, and that the client(s) are to initiate aneighboring DHCP Agent onRequest/Reply transaction with thesame link asserver(s) in order to receive the updated information. RELAY-FORW (11) The DHCPclient. binding A binding (or,Relay-forward (or Relay-forward) message is used by relays to forward clientbinding)messages to servers. The client message isa group of server data records containing the server's information about the addressesencapsulated in anIA and any other configuration information assigned tooption in theclient. A bindingRelay-forward message. Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 8] Internet Draft DHCP for IPv6 30 June 2001 RELAY-REPL (12) The DHCP Relay-reply (or Relay-reply) message isindexedused by servers to send messages to clients through a relay. The server encapsulates thetuple <prefix, DUID>, whereclient message as an option in the'prefix' is a prefix assigned toRelay-reply message, which thelinkrelay extracts and forwards towhichthe client. 7.4. Error Values This section describes error values exchanged between DHCP implementations. 7.4.1. Generic Error Values The following symbolic names are used between clientis attachedand'DUID' isserver implementations to convey error conditions. The following table contains theDUID fromactual numeric values for each name. Note that theIAnumeric values do not start at 1, nor are they consecutive. The errors are organized inthe binding. DISCUSSION:logical groups. _______________________________________________________________ |Error_Name___|Error_ID|_Description_________________________|_ |Success______|00______|_Success_____________________________|_ |UnspecFail___|16______|_Failure,_reason_unspecified_________|_ |AuthFailed___|17______|_Authentication_failed_or_nonexistent|_ |PoorlyFormed_|18______|_Poorly_formed_message_______________|_ |Unavail______|19______|_Addresses_unavailable_______________|_ 7.4.2. Server-specific Error Values Theindexing of an IAfollowing symbolic names are used by<prefix, DUID> is still under discussion. DHCP Dynamic Hostserver implementations to convey error conditions to clients. The following table contains the actual numeric values for each name. _______________________________________________________________ |Error_Name____|Error_ID|_Description________________________|_ |NoBinding_____|20______|_Client_record_(binding)_unavailable|_ |ConfNoMatch___|21______|_Client_record_Confirm_not_match_IA_|_ |RenwNoMatch___|22______|_Client_record_Renew_not_match_IA___|_ |RebdNoMatch___|23______|_Client_record_Rebind_not_match_IA__|_ |InvalidSource_|24______|_Invalid_Client_IP_address__________|_ |NoServer______|25______|_Relay_cannot_find_Server_Address___|_ |ICMPError_____|64______|_Server_unreachable_(ICMP_error)____|_ 7.5. ConfigurationProtocolVariables This section presents a table of client and server configuration variables and the default or initial values forIPv6.these variables. Theterms DHCPv4client-specific variables MAY be configured on the server andDHCPv6 are used only in contexts where it is necessaryMAY be delivered toavoid ambiguity.the client through the "DHCP Retransmission Parameter Option" in a Reply message. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page5]9] Internet Draft DHCP for IPv615 April30 June 2001configuration parameter An element_________________________________________________________________________ |Parameter__________|Default|_Description______________________________|_ |MIN_SOL_DELAY______|1______|_MIN_(secs)_to_delay_1st_mesg_____________|_ |MAX_SOL_DELAY______|5______|_MAX_(secs)_to_delay_1st_mesg_____________|_ |ADV_MSG_TIMEOUT____|500____|_SOL_Retrans_timer_(msecs)________________|_ |ADV_MSG_MAX________|30_____|_MAX_timer_value_(secs)___________________|_ |SOL_MAX_ATTEMPTS___|-1_____|_MAX_attempts_(-1_=_infinite)_____________|_ |REP_MSG_TIMEOUT____|250____|_Retrans_timer_(msecs)_for_Reply__________|_ |QRY_MSG_ATTEMPTS___|10_____|_MAX_Request/Confirm/Renew/Rebind_attempts|_ |REL_MSG_ATTEMPTS___|5______|_MAX_Release/Decline_attempts_____________|_ |RECREP_MSG_TIMEOUT_|2000___|_Retrans_timer_(msecs)____________________|_ |REC_MSG_ATTEMPTS___|10_____|_Reconfigure_attempts_____________________|_ |REC_THRESHOLD______|100____|_%_of_required_clients____________________|_ |SRVR_PREF_WAIT_____|2______|_Advertise_Collect_timer_(secs)___________|_ 8. Overview This section provides a general overview of theconfiguration information set on the server and delivered tointeraction between theclient usingfunctional entities of DHCP.Such parameters may be used to carry information toThe overview is organized as a series of questions and answers. Details of DHCP such as message formats and retransmissions can beused byfound in later sections of this document. 8.1. How does a node know toconfigure its network subsystem and enable communication on a link or internetwork, for example. DHCP client (or client) Ause DHCP? An unconfigured node determines thatinitiates requests on a linkit is toobtain configuration parameters from one or more DHCP servers.use DHCPdomain A setfor configuration oflinks managed by DHCP and operatedan interface bya single administrative entity. DHCP serverdetecting the presence (orserver) A server is aabsence) of routers on the link. If router(s) are present, the nodethat respondsexamines router advertisements torequests from clients,determine if DHCP should be used to configure the interface. If there are no routers present, then the node MUST use DHCP to configure the interface. Details of this process can be found in neighbor discovery [16] andmaystateless autoconfiguration [20]. 8.2. What if the client and server(s) are on different links? Use of DHCP in such environments requires one ormay notmore DHCP relays be set up on thesame link asclient's link, because a client may only have a link-local address. Relays receive messages from the client and forward them to some set of servers within theclient(s).DHCPrelay (or relay) A node that actsdomain. The client message is forwarded verbatim as anintermediaryoption in the message from the relay todeliver DHCP messages between clients and servers, and is onthesame link as a client. DHCP agent (or agent) Either a DHCP serverserver. A relay will include one of its own addresses (of sufficient scope) from the interface on the same link asathe client,or a DHCP relay. DUID A DHCP unique identifier for a client. DISCUSSION: Rules for choosing a DUID are TBD. Identity association (IA) A collectionas well as the prefix length ofaddresses assignedthat address, in its message toa client. Each IA has an associated DUID. An IA may have 0 or more addresses associated with it. transaction-ID An unsigned integerthe server. Servers receiving the forwarded traffic use this information tomatch responses with replies initiated either by aaid in selecting configuration parameters appropriate to the client's link. Servers use relays to forward messages to clients. The message intended for the clientor server. 7. DHCP Constants This section describes various program and networking constants used by DHCP.is carried as an option in the message to the Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page6]10] Internet Draft DHCP for IPv615 April30 June 20017.1. Multicast Addresses DHCP makesrelay. The relay extracts the message from the option and forwards it to the client. Servers useofthefollowing multicast addresses: All DHCP Agents address: FF02::1:2 This link-scoped multicastrelay's addressis used by clientsas the destination tocommunicate withforward client-destined messages for final delivery by theon-link agent(s) when they do not know those agents' link-local address(es). All agents (servers and relays) are membersrelay. Relays forward client messages to servers using some combination ofthis multicast group.the All DHCP Serversaddress: FF05::1:3 This site-scopedsite-local multicastaddress is used by clientsaddress, some other (perhaps a combination) of site-local multicast addresses set up within the DHCP domain to include the servers in that domain, or a list of unicast addresses for servers. The network administrator makes relay configuration decisions based upon the topological requirements (scope) of the DHCP domain they are managing. Note that if the DHCP domain spans more than the site-local scope, then the relaysto communicateMUST be configured withserver(s), either because they want to send messagesglobal addresses for the client's link so as toallbe reachable by servers outside the relays' site-local environment. 8.3. How does a client request configuration parameters from servers? To request configuration parameters, the client forms a Request message, and sends it to the server either directly (the server is on the same link as the client) orbecause they do not knowindirectly (through theserver(s) unicast address(es).on-link relay). The client MAY include a Option Request Option 18.4 (ORO) along with other options to request specific information from the server. Note that the client MAY form multiple Request messages and send each of them to different servers to request potentially different information (perhaps based upon what was advertised) in orderforto satisfy its needs. As a client's needs may change over time (perhaps based upon an application's requirements), the client may form additional Request messages touse this address,request additional information as itmust have an address of sufficient scope to be reachableis needed. The server(s) respond with Reply messages containing the requested configuration parameters, which can include status information regarding the information requested by theserver(s). Allclient. The Reply MAY also include additional information. 8.4. How do clients and serverswithin the site are members of this multicast group. DISCUSSION: Is there a requirement foridentify and manage addresses? Servers and clients manage addresses in groups called "identity associations." Each identity association (IA) is identified using asite-scoped "Allunique identifier. An identity association may contain one or more IPv6 addresses. DHCPClients" multicast address,servers assign addresses tobe used as the default in sending Reconfigure messages. 7.2. UDP portsidentity associations. DHCPuses the following destination UDP [12] port numbers. While source ports MAY be arbitrary, client implementations SHOULD permit their specification through a local configuration parameter to facilitate theclients useof DHCP through firewalls. 546 Client port. Used by servers asthedestination port for messages sentaddresses in an identity association toclientsconfigure interfaces. There is always at least one identity association per interface that a client wishes to configure. Each address in an IA has its own preferred andrelays. Used by relay agents asvalid lifetime. Over time, thedestination port for messages sent to clients. 547 Agent port. Used asserver may change the characteristics of thedestination port by clientsaddresses in an IA; formessages sent to agents. Used as the destination portexample, byrelays for messages sent to servers. 7.3. DHCP message types DHCP defineschanging thefollowing message types. More detail on these message types can be found in Section 9. Message types 0 and TBD--255 are reserved and MUST be silently ignored. The message codepreferred or valid lifetime foreach message type is shown withan address in themessage name. SOLICIT (1)IA. TheDHCP Solicit (or Solicit) message is used by clientsserver may also add or delete addresses from an IA; for example, deleting old addresses and adding new addresses tolocate servers.renumber a client. A client can request the current Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page7]11] Internet Draft DHCP for IPv615 April30 June 2001ADVERTISE (2) The DHCP Advertise (or Advertise) message is used by servers responding to Solicits. REQUEST (3) The DHCP Request (or Request) message is used by clientslist of addresses assigned torequest configuration parametersan IA fromservers. CONFIRM (4)a server through an exchange of protocol messages. 8.5. Can a client release its assigned addresses before the lease expires? A client forms a Release message, including options identifying the IA to be released. TheDHCP Confirm (or Confirm) message is usedclient sends the Release to the server which assigned the addresses to the client initially. If that server cannot be reached after a certain number of attempts (see section 7.5), the client can abandon the Release attempt. In this case, the address(es) in the IA will be reclaimed byclients to confirm thatthe server(s) when the lifetimes on the addresses expire. 8.6. What if the client determines one or more of its assignedto an IA andaddresses are already being used by another client? If thelifetimes for those addresses, as well asclient determines through a mechanism like Duplicate Address Detection [20] that thecurrent configuration parametersaddress it was assigned by the servertois already in use by another client, the clientare still valid. RENEW (5) The DHCP Renew (or Renew)will send a Decline messageis used by clientstoobtaintheaddresses assignedserver. 8.7. How are clients notified of server configuration changes? There are two possibilities. Either the clients discover the new information when they revisit the server(s) toan IA andrequest additional configuration information/extend thelifetimes for those addresses, as welllifetime on an address. or through a server-initiated event known as a reconfigure event. The reconfiguration feature of DHCP offers network administrators thecurrentopportunity to update configurationparameters assigned byinformation on DHCP clients whenever necessary. To signal the need for client reconfiguration, the server will unicast a Reconfigure-init message tothe client. Aeach clientsendsindividually. A Reconfigure-init is a trigger which will cause the client(s) to initiate a standard Request/Reply exchange with the server in order to acquire the new or updated addresses. 9. Message Formats Each DHCP message has an identical fixed format header; some messages also allow a variable format area for options. Not all fields in the header are used in every message. In this section, every field is described for every message and fields that are not used in aRenewmessageto the server that originally assignedare marked as "unused". All unused fields in a message MUST be transmitted as zeroes and ignored by theIA whenreceiver of thelease on an IA is about to expire. REBIND (6)message. The DHCPRebind (or Rebind)messageis used by clients to obtain the addresses assigned to an IA and the lifetimesheader: Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 12] Internet Draft DHCP forthose addresses, as well as the current configuration parameters assignedIPv6 30 June 2001 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 | preference | transaction-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | client-link-local-address | | (16 octets) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | server-address | | (16 octets) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . . options . | (variable) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 9.1. DHCP Solicit Message Format msg-type SOLICIT preference (unused) MUST be 0 transaction-ID An unsigned integer generated by theserverclient used to identify this Solicit message. client-link-local-address The link-local address of theclient. A clients sends a Rebind message to all available DHCP servers wheninterface for which thelease on an IAclient isabout to expire. REPLY (7) Theusing DHCP. server-address (unused) MUST be 0 options See section 18. 9.2. DHCPReply (or Reply) message is used by servers respondingAdvertise Message Format msg-type ADVERTISE preference An unsigned integer indicating a server's willingness toRequest, Confirm, Renew, Rebind, Release and Decline messages. In the case of respondingprovide service toa Request, Confirm, Renew or Rebind message, the Reply contains configuration parameters destined forthe client.RELEASE (8) TheBound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 13] Internet Draft DHCPRelease (or Release) message isfor IPv6 30 June 2001 transaction-ID An unsigned integer usedby clientstoreturn one or moreidentify this Advertise message. Copied from the client's Solicit message. client-link-local-address The IPaddresses to servers. DECLINE (9)link-local address of the client interface from which the client issued the Solicit message. server-address The IP address of the server that generated this message. If the DHCPDecline (or Decline) message is useddomain crosses site boundaries, then this address MUST be globally-scoped. options See section 18. 9.3. DHCP Request Message Format msg-type REQUEST preference (unused) MUST be 0 transaction-ID An unsigned integer generated byclients to indicate thatthe clienthas determined that one or more addresses in an IA are already in use on the linkused to identify this Request message. client-link-local-address The link-local address of the client interface from which the clientis connected. RECONFIG (10)will issue the Request message. server-address TheDHCP Reconfigure-init (or Reconfigure-init)IP address of the server to which the this message issentdirected, copied from an Advertise message. options See section 18. 9.4. DHCP Confirm Message Format msg-type CONFIRM preference (unused) MUST be 0 transaction-ID An unsigned integer generated byserver(s) to inform client(s) thattheserver(s) has new or updated configuration parameters, and thatclient used to identify this Confirm message. client-link-local-address The link-local address of theclient(s) are to initiate a Request/Reply transaction withclient interface from which theserver(s) in order to receiveclient will issue theupdated information.Confirm message. server-address MUST be zero. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page8]14] Internet Draft DHCP for IPv615 April30 June 2001RELAY-FORW (11) Theoptions See section 18. 9.5. DHCPRelay-forward (or Relay-forward) message is usedRenew Message Format msg-type RENEW preference (unused) MUST be 0 transaction-ID An unsigned integer generated byrelays to forwardthe clientmessagesused toservers.identify this Renew message. client-link-local-address The link-local address of the clientmessage is encapsulated in an option ininterface from which theRelay-forwardclient will issue the Renew message.RELAY-REPL (12)server-address TheDHCP Relay-reply (or Relay-reply)IP address of the server to which this Renew message isused by servers to send messages to clients through a relay. The server encapsulatesdirected, which MUST be theclient message as an option inaddress of theRelay-reply message,server from which therelay extracts and forwards to the client. 7.4. Error Values ThisIAs in this message were originally assigned. options See sectiondescribes error values exchanged between18. 9.6. DHCPimplementations. 7.4.1. Generic Error Values The following symbolic names are used betweenRebind Message Format msg-type REBIND preference (unused) MUST be 0 transaction-ID An unsigned integer generated by the clientand server implementationsused toconvey error conditions. The following table contains the actual numeric values for each name. Note that the numeric values do not start at 1, nor are they consecutive. The errors are organized in logical groups. _______________________________________________________________ |Error_Name___|Error_ID|_Description_________________________|_ |Success______|00______|_Success_____________________________|_ |UnspecFail___|16______|_Failure,_reason_unspecified_________|_ |AuthFailed___|17______|_Authentication_failed_or_nonexistent|_ |PoorlyFormed_|18______|_Poorly_formed_message_______________|_ |Unavail______|19______|_Addresses_unavailable_______________|_ 7.4.2. Server-specific Error Valuesidentify this Rebind message. client-link-local-address Thefollowing symbolic names are used by server implementationslink-local address of the client interface from which the client will issue the Rebind message. server-address MUST be zero. options See section 18. 9.7. DHCP Reply Message Format msg-type REPLY preference An unsigned integer indicating a server's willingness toconvey error conditionsprovide service toclients. The following table containstheactual numeric values for each name. _______________________________________________________________ |Error_Name____|Error_ID|_Description________________________|_ |NoBinding_____|20______|_Client_record_(binding)_unavailable|_ |ConfNoMatch___|21______|_Client_record_Confirm_not_match_IA_|_ |RenwNoMatch___|22______|_Client_record_Renew_not_match_IA___|_ |RebdNoMatch___|23______|_Client_record_Rebind_not_match_IA__|_ |InvalidSource_|24______|_Invalid_Client_IP_address__________|_ |NoServer______|25______|_Relay_cannot_find_Server_Address___|_ |ICMPError_____|64______|_Server_unreachable_(ICMP_error)____|_client. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page9]15] Internet Draft DHCP for IPv615 April30 June 20017.5. Configuration Variables This section presents a table of client and server configuration variables andtransaction-ID An unsigned integer used to identify this Reply message. Copied from thedefaultclient's Request, Confirm, Renew orinitial valuesRebind message. client-link-local-address The link-local address of the interface forthese variables.which the client is using DHCP. server-address Theclient-specific variables MAYIP address of the server. If the DHCP domain crosses site boundaries, then this address MUST beconfigured onglobally-scoped. options See section 18. 9.8. DHCP Release Message Format msg-type RELEASE preference (unused) MUST be 0 transaction-ID An unsigned integer generated by the client used to identify this Release message. client-link-local-address The client's link-local address for the interface from which the client will send the Release message. server-address The IP address of the serverand MAYthat assigned the IA. options See section 18. 9.9. DHCP Decline Message Format msg-type DECLINE preference (unused) MUST bedelivered0 transaction-ID An unsigned integer generated by the client used to identify this Decline message. client-link-local-address The client's link-local address for the interface from which the clientthroughwill send the"DHCP Retransmission Parameter Option" in a ReplyDecline message._________________________________________________________________________ |Parameter__________|Default|_Description______________________________|_ |MIN_SOL_DELAY______|1______|_MIN_(secs)_to_delay_1st_mesg_____________|_ |MAX_SOL_DELAY______|5______|_MAX_(secs)_to_delay_1st_mesg_____________|_ |ADV_MSG_TIMEOUT____|500____|_SOL_Retrans_timer_(msecs)________________|_ |ADV_MSG_MAX________|30_____|_MAX_timer_value_(secs)___________________|_ |SOL_MAX_ATTEMPTS___|-1_____|_MAX_attempts_(-1_=_infinite)_____________|_ |REP_MSG_TIMEOUT____|250____|_Retrans_timer_(msecs)_for_Reply__________|_ |QRY_MSG_ATTEMPTS___|10_____|_MAX_Request/Confirm/Renew/Rebind_attempts|_ |REL_MSG_ATTEMPTS___|5______|_MAX_Release/Decline_attempts_____________|_ |RECREP_MSG_TIMEOUT_|2000___|_Retrans_timer_(msecs)____________________|_ |REC_MSG_ATTEMPTS___|10_____|_Reconfigure_attempts_____________________|_ |REC_REP_MIN________|5______|_Minimum_pause_interval_(secs)____________|_ |REC_REP_MAX________|7200___|_Maximum_pause_interval_(secs)____________|_ |REC_THRESHOLD______|100____|_%_of_required_clients____________________|_ |SRVR_PREF_WAIT_____|2______|_Advertise_Collect_timer_(secs)___________|_ 8. Overview This section provides a general overviewserver-address The IP address of theinteraction betweenserver that assigned thefunctional entities of DHCP.addresses. Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 16] Internet Draft DHCP for IPv6 30 June 2001 options See section 18. 9.10. DHCP Reconfigure-init Message Format msg-type RECONFIG-INIT preference (unused) MUST be 0 transaction-ID (unused) MUST be 0 client-link-local-address (unused) MUST be 0 server-address Theoverview is organized as a series of questions and answers. DetailsIP address of the DHCPsuch as message formats and retransmissions canserver issuing the Reconfigure-init message. MUST befound in later sectionsofthis document. 8.1. How does a node knowsufficient scope touse DHCP? An unconfigured node determinesbe reachable by all clients. options See section 18. 10. Relay messages Relay agents exchange messages with servers to forward messages between clients and servers thatit isare not connected touse DHCP for configuration of an interface by detecting the presence (or absence) of routers onthe same link.If router(s) are present,10.1. Relay-forward message 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type | prefix length | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | relay-address | | | | |-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | options (variable number and length) .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ msg-type RELAY-FORW prefix-length The length of thenode examines router advertisements to determine if DHCP should be used to configureprefix in theinterface. If there are no routers present, thenaddress in thenode MUST use DHCP"relay-address" field. relay-address An address assigned toconfigure the interface. Detail on this process can be found in neighbor discovery [10] and stateless autoconfiguration [13]. 8.2. What iftheclient and server(s) are on different links? Use of DHCP in such environments requires one or more DHCP relays be set up oninterface through which theclient's link, because a client may only have a link-local address. Relays receive messagesmessage from the clientand forward them to some set of servers within the DHCP domain. Thewas received. options MUST include a "Client message option"; see section 18.5. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page10]17] Internet Draft DHCP for IPv615 April30 June 2001client10.2. Relay-reply messageis forwarded verbatim as an option in0 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 | prefix length | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | relay-address | | | | |-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | options (variable number and length) .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ msg-type RELAY-REPL prefix-length The length of themessage fromprefix in therelay toaddress in theserver. A relay will include one of its own addresses (of sufficient scope) from"relay-address" field. relay-address An address identifying the interfaceon the same link as the client, as well asthrough which theprefix length of that address, in itsmessagetofrom theserver. Servers receivingserver should be forwarded; copied from theforwarded traffic"relay-forward" message. options MUST include a "Server message option"; see section 18.6. 11. DHCP unique identifier (DUID) Each DHCP client has a DUID. DHCP servers usethis informationDUIDs toaid in selectingidentify clients for the selection of configuration parametersappropriate toand in theclient's link. Servers use relays to forward messages toassociation of IAs with clients.The message intendedSee section 18.2 for theclientrepresentation of a DUID in a DHCP message. DISCUSSION: The syntax, rules for selecting and requirements for gloabl uniqueness in DUIDs are TBD. The DUID is carriedasin an optionin the message to the relay. The relay extracts the message from the optinbecause it may be variable length andforwardsbecause itto the client. Servers use the relay's address as the destination to forward client-destinedis not required in all DHCP options (e.g., messagesfor final deliverysent bythe relay. Relays forward client messages toserversusing some combinationneed not include a DUID). 12. 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 ofthe All DHCP Servers site-local multicast address, some other (perhapsan IAID and acombination)list ofsite-local multicastassociated IPv6 addressesset up within the(the list may be empty). A client associates an IA with one of its interfaces Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 18] Internet Draft DHCPdomain to includefor IPv6 30 June 2001 and uses theservers inIA to obtain IPv6 addresses for thatdomain, orinterface from alist of unicast addressesserver. See section 18.3 forservers. The network administrator makes relay configuration decisions based uponthetopological requirements (scope)representation ofthean IA in a DHCPdomain they are managing. Note that if themessage. 13. DHCPdomain spans more than the site-local scope, then the relays MUST be configured with global addresses for the client's link so as to be reachable by servers outside the relays' site-local environment. 8.3. How doesServer Solicitation This section describes how a clientrequest configuration parameters from servers? To request configuration parameters, thelocates servers. The behavior of clientforms a Request message,andsends it to the server either directly (theserver implementations isondiscussed, along with thesame link asmessages they use. 13.1. Solicit Message Validation Clients MUST silently discard any received Solicit messages. Agents MUST silently discard any received Solicit messages if theclient) or indirectly (through"client-link-local-address" field does not contain a valid link-local address. 13.2. Advertise Message Validation Servers MUST discard any received Advertise messages. Clients MUST discard any Advertise messages that meet any of theon-link relay).following criteria: o Theclient MAY include a Option Request Option 16.3 (ORO) along with other options to request specific information from"Transaction-ID" field value does not match theserver. Note thatvalue the clientMAY form multiple Request messages and send each of them to different servers to request potentially different information (perhaps based upon what was advertised)used inorder to satisfyitsneeds. As a client's needs may change over time (perhaps basedSolicit message. o The "client-link-local-address" field value does not match the link-local address of the interface uponan application's requirements),which the clientmay form additional Request messagessent the Solicit message. 13.3. Client Behavior Clients use the Solicit message torequest additional information as it is needed. The server(s) respond with Reply messages containingdiscover DHCP servers configured to serve addresses on therequested configuration parameters,link to whichcan include status information regardingtheinformation requested byclient is attached. 13.3.1. Creation and sending of theclient.Solicit message TheReply MAY also include additional information, such as a reconfiguration event multicast group for theclient sets the "msg-type" field tojoinSOLICIT, and places the link-local address of the interface it wishes tomonitor reconfiguration events, as describedconfigure insection 8.7.the "client-link-local-address" field. The client generates a transaction ID inserts this value in the "transaction-ID" field. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page11]19] Internet Draft DHCP for IPv615 April30 June 20018.4. How do clients and servers identify and manage addresses? Servers and clients manage addresses in groups called "identity associations." Each identity associations is identified usingThe client includes aunique identifier. An identity association may contain one or more IPv6 addresses. DHCP servers assign addresses to identity associations. DHCP clients use the addresses in an identity associationDUID option toconfigure interfaces. There is always at least one identity association per interface that a client wishesidentify itself toconfigure. Each address in an IA has its own preferred and valid lifetime. Over time, the server may change the characteristics of the addresses in an IA; for example, by changing the preferred or valid lifetime for an address intheIA.server. Theserver may also add or delete addresses from an IA;client MUST include options forexample, deleting old addresses and adding new addressesany IAs torenumber a client. A client can requestwhich thecurrent list of addresses assignedclient is expecting toan IA from ahave the serverthrough an exchange of protocol messages. 8.5. Can a client release its assigned addresses beforeassign addresses. Because thelease expires? Aclientformsdoes not have any IAs with addresses when sending aReleaseSolicit message,including options identifyingall of theIA toIAs MUST bereleased.empty. The clientsends the Release toMAY include an Option Request Option in theserver which assignedSolicit message. The client MUST NOT include any other options except those specifically allowed as defined by specific options. The client sends theaddressesSolicit message to theclient initially. If that server cannotAll DHCP Agents multicast address, destination port 547. The source port selection can bereached afterarbitrary, although it SHOULD be possible using acertain number of attempts (see section 7.5), theclientcan abandon the Release attempt. In this case, the address(es) inconfiguration facility to set a specific source port value. 13.3.2. Time out and retransmission of Solicit Messages The client's first Solicit message on theIA willinterface MUST bereclaimeddelayed by a random amount of time between theserver(s) wheninterval of MIN_SOL_DELAY and MAX_SOL_DELAY. This random delay desynchronizes clients which start at thelifetimes onsame time (e.g., after a power outage). The client waits ADV_MSG_TIMEOUT, collecting Advertise messages. If no Advertise messages are received, theaddresses expire. 8.6. What ifclient retransmits theclient determinesSolicit, and doubles the ADV_MSG_TIMEOUT value. This process continues until either one or moreof its assigned addressesAdvertise messages arealready being used by another client? Ifreceived or ADV_MSG_TIMEOUT reaches theclient determines through a mechanism like Duplicate Address Detection [13] thatADV_MSG_MAX value. Thereafter, Solicits are retransmitted every ADV_MSG_MAX until SOL_MAX_ATTEMPTS have been made, at which time theaddress it was assigned byclient MAY choose to stop trying to DHCP configure theserverinterface. An event external to DHCP isalready in use by another client,required to restart the DHCP configuration process. A DHCP clientwill form a Decline message, including the option carrying the in-use address. The option's status field MUST be setMAY, alternatively, choose to continue sending Solicit messages at thevalue reflecting the "in use" status of the address. 8.7. HowADV_MSG_MAX interval. Default and initial values for MIN_SOL_DELAY, MAX_SOL_DELAY, ADV_MSG_TIMEOUT, AND ADV_MSG_MAX areclients notifieddocumented in section 7.5. 13.3.3. Receipt ofserver configuration changes? There are two possibilities. Either the clients discoverAdvertise messages Upon receipt of one or more validated Advertise messages, thenew information when they revisitclient selects one or more Advertise messages based upon theserver(s) to request additional configuration information/extendfollowing criteria. - Those Advertise messages with thelifetime on an address. or through a server-initiated event known ashighest server preference value (see section 19.4) are preferred over all other Advertise messages. - Within areconfigure event. The reconfiguration featuregroup ofDHCP offers network administrators the opportunity to update configuration information on DHCP clients whenever necessary. To signalAdvertise messages with theneed forsame server preference value, a clientreconfiguration,MAY select those servers whose Advertise messages advertise information of interest to the client. For example, one serverwill unicast a Reconfigure-init message to eachmay be advertising the Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page12]20] Internet Draft DHCP for IPv615 April30 June 2001 availability of IP addresses which have an address scope of interest to the client. Once a clientindividually. Thehas selected Advertise message(s), the client will typically store information about each server, such as servermay use multicast to signalpreference value, addresses advertised, when thereconfigurationadvertisement was received, and so on. Depending on the requirements of the client's invoking user, the client MAY initiate a configuration exchange with the server(s) immediately, or MAY defer this exchange until later. If the client needs tomultiple clients simultaneously. (Note that there is no mechanism definedselect an alternate server in theprotocol to guaranteecase thateverya chosen server does not respond, the clientactually performschooses the server with the next highest preference value. The client MAY choose areconfigurationless-preferred server if that server has a better set of advertised parameters, such as the available addresses advertised inresponseIAs. 13.4. Server Behavior For this discussion, the server is assumed toa multicast reconfigure-init message.) A Reconfigure-inithave been configured in an implementation specific manner. This configuration is assumed to contain all network topology information for the DHCP domain, as well as any necessary authentication information. 13.4.1. Receipt of Solicit messages If the server receives atrigger which will causeSolicit message, theclient(s) to initiateclient must be on the same link as the server. If the server receives astandard Request/Reply exchange withRelay-forward message containing a Solicit message, the client must be on theserver in orderlink toacquirewhich thenew or updated addresses. 9. Message Formats Each DHCP message has an identical fixed format header; some messages also allow a variable format area for options. Not allprefix identified by the "relay-address" and "prefix-length" fields in theheader are used in every message. In this section, every fieldRelay-forward message isdescribed for everyassigned. The server records the "relay-address" field from the Relay-forward message andfields that are not used in aextracts the solicit messageare marked as "unused". All unused fields infrom the "client-message" option. If administrative policy permits the server to respond to amessage MUST be transmitted as zeroesclient on that link, the server will generate andignored bysend an Advertise message to thereceiverclient. 13.4.2. Creation and sending ofthe message.Advertise messages TheDHCP message header: 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 | preference | transaction-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | client-link-local-address | | (16 octets) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | server-address | | (16 octets) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . . options . | (variable) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 9.1. DHCP Solicit Message Format msg-type SOLICIT preference (unused) MUST be 0 transaction-ID An unsigned integer generated byserver sets theclient used"msg-type" field toidentify thisADVERTISE and copies the values of the following fields from the client's Solicitmessage.to the Advertise message: o transaction-ID o client-link-local-address Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page13]21] Internet Draft DHCP for IPv615 April30 June 2001client-link-local-addressThelink-local addressserver places one of its IP addresses (determined through administrator setting) in theinterface for which"server-address" field of theclient is using DHCP. server-address (unused) MUST be 0 optionsAdvertise message. The server sets the "preference" field according to its configuration information. See section16. 9.2. DHCP Advertise Message Format msg-type ADVERTISE preference An unsigned integer indicating20.3 for aserver's willingnessdescription of server preference. The server MUST include options toprovide servicethe Advertise message containing any addresses that would be assigned to IAs contained in the Solicit message from the client.transaction-ID An unsigned integer usedThe server MAY include other options the server will return toidentify this Advertise message. Copied fromtheclient's Solicitclient in a subsequent Reply message.client-link-local-addressTheIP link-local address ofinformation in these options will be used by the clientinterface from whichin the selection of a server if the clientissuedreceives more than one Advertise message. If the Solicitmessage. server-addressmessage was received in a Relay-forward message, the server constructs a Relay-reply message with the Advertise message in the payload of a "server-message" option. TheIPserver unicasts the Relay-reply message to the addressofin theserver that generated this"relay-address" field from the Relay-forward message. If theDHCP domain crosses site boundaries, then this address MUST be globally-scoped. options See section 16. 9.3. DHCP Request Message Format msg-type REQUEST preference (unused) MUST be 0 transaction-ID An unsigned integer generatedSolicit message was received directly by theclient used to identify this Request message. client-link-local-address The link-local address ofserver, theclient interface from whichserver unicasts the Advertise message directly to the clientwill issueusing theRequest message. server-address"client-link-local-address" field value as the destination address. TheIP address ofAdvertise message MUST be unicast through theserver tointerface on which thethisSolicit messageis directed, copied from an Advertise message. options See section 16. Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page 14] Internet Draft DHCP for IPv6 15 April 2001 9.4.was received. 14. DHCPConfirm Message Format msg-type CONFIRM preference (unused) MUST be 0 transaction-ID An unsigned integer generated by theClient-Initiated Configuration Exchange A clientusedinitiates a message exchange with a server or servers toidentify this Confirm message. client-link-local-address The link-local addressacquire or update configuration information oftheinterest. The clientinterface from whichmay initiate theclient will issueconfiguration exchange as part of theConfirm message. server-address MUST be zero. options See section 16. 9.5. DHCP Renew Message Format msg-type RENEW preference (unused) MUST be 0 transaction-ID An unsigned integer generatedoperating system configuration process or when requested to do so by the application layer. The clientuseduses the following messages toidentify this Renew message. client-link-local-address The link-local address ofinitiate a configuration event: Request Obtain initial configuration information (from a server identified in a previously received Advertise message) when the clientinterfacehas no assigned addresses Confirm Confirm the validity of assigned addresses and other configuration changes through the server from which theclient will issueconfiguration information was obtained when theRenew message. server-address The IP address ofclient's assigned addresses may not be valid; for example, when theserverclient reboots or loses its connection towhich thisa link Renewmessage is directed, which MUST beExtend theaddress oflease on an IA through the serverfrom which the IAs in this message werethat originallyassigned. options See section 16. 9.6. DHCPassigned the IA RebindMessage Format msg-type REBIND preference (unused) MUST be 0 transaction-ID An unsigned integer generated byExtend theclient usedlease on an IA through any server willing toidentify this Rebind message.extend the lease Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page15]22] Internet Draft DHCP for IPv615 April30 June 2001client-link-local-address The link-local address of the client interface from whichRelease Release theclient will issuelease on an IA and release all of theRebind message. server-address MUST be zero. options See section 16. 9.7. DHCP Reply Message Format msg-type REPLY preference An unsigned integer indicating a server's willingness to provide service toaddresses contained in theclient. transaction-ID An unsigned integer used to identify this Reply message. Copied fromIA, Decline Decline theclient's Request, Confirm, Renew or Rebind message. client-link-local-address The link-local addressassignment ofthe interface for which theone or more addresses in an IA. A clientis using DHCP. server-address The IP address ofuses theserver. IfRelease/Reply message exchange to indicate to the DHCPdomain crosses site boundaries, then this address MUST be globally-scoped. options See section 16. 9.8. DHCP Release Message Format msg-type RELEASE preference (unused) MUST be 0 transaction-ID An unsigned integer generated byserver that the clientused to identify this Release message. client-link-local-address The client's link-local address forwill no longer be using theinterface from whichaddresses in theclient will sendreleased IA. A client uses theRelease message. server-address The IP address ofDecline/Reply message exchange to indicate to the DHCP server that the client has detected that one or more addresses assigned by theIA. options See section 16. Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page 16] Internet Draft DHCP for IPv6 15 April 2001 9.9. DHCP Declineserver is already in use on the client's link. 14.1. Client MessageFormat msg-type DECLINE preference (unused)Validation Clients MUSTbe 0 transaction-ID An unsigned integer generated by thesilently discard any received clientused to identify thismessages (Request, Confirm, Renew, Rebind, Release or Declinemessage. client-link-local-address The client's link-local address for the interface frommessages). Agents MUST discard any received client messages in which the "client-link-local-address" field does not contain a valid link-local address. Servers MUST discard any received clientwill sendmessages in which theDecline message. server-address The IP address of"options" field contains an authentication option, and the serverthat assignedcannot successfully authenticate the client. Servers MUST discard any received Request, Renew, Release or Decline message in which the "server-address" field value does not match any of the server's addresses.options See section 16. 9.10. DHCP Reconfigure-init14.2. Server MessageFormat preference (unused)Validation Servers MUSTbe 0 transaction-ID An unsigned integer generated by thesilently discard any received serverto identify thismessages (Advertise, Reply or Reconfigure-initmessage client-link-local-address (unused)messages). Clients MUSTbe 0 server-addressdiscard any server messages that meet any of the following criteria: o TheIP"transaction-ID" field value in the server message does not match the value the client used in its Request or Release message. o The "client-link-local-address" field value in the server message does not match the link-local address of theDHCP server issuinginterface from which theReconfigure-initclient sent in its Request, Confirm, Renew, Rebind, Release or Decline message.MUST be of sufficient scope to be reachable by all clients. options See section 16. 10. Relay messages Relay agents exchange messages with servers to forward messages between clientso The server message contains an authentication option, andservers that are not connectedthe client's attempt to authenticate thesame link.message fails. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page17]23] Internet Draft DHCP for IPv615 April30 June 200110.1. Relay-forwardRelays MUST discard any Relay-reply message0 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 | prefix length | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | relay-address | | | | |-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | options (variable numberin which the "client-link-local-address" in the encapsulated Reply message does not contain a valid link-local address. 14.3. Client Behavior A client will use Request, Confirm, Renew andlength) .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ msg-type RELAY-FORW prefix-length The lengthRebind messages to acquire and confirm the validity of configuration information. A client may initiate such an exchange automatically in order to acquire the necessary network parameters to communicate with nodes off-link. The client uses the server address information from previous Advertise message(s) for use in constructing Request and Renew message(s). Note that a client may request configuration information from one or more servers at any time. A client uses theprefixRelease message in theaddress inmanagement of IAs when the"relay-address" field. relay-address An address assignedclient has been instructed to release the IA prior to theinterface through whichIA expiration time since it is no longer needed. A client uses the Decline messagefromwhen the clientwas received. options MUST includehas determined through DAD or some other method that one or more of the addresses assigned by the server in the IA is already in use by a"Client message option"; see section 16.4. 10.2. Relay-reply message 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type | prefix length | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | relay-address | | | | |-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | options (variable numberdifferent client. 14.3.1. Creation andlength) .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ msg-type RELAY-REPL prefix-lengthsending of Request messages If a client has no valid IPv6 addresses of sufficient scope to communicate with a DHCP server, it may send a Request message to obtain new addresses. Thelengthclient includes one or more IAs in the Request message, to which the server assigns new addresses. The server then returns IA(s) to the client in a Reply message. The client sets the "msg-type" field to REQUEST, and places the link-local address of theprefixinterface it wishes to acquire configuration information for in the "client-link-local-address" field. The client generates a transaction ID inserts this value in the "transaction-ID" field. The client places the address of the destination server in the"relay-address""server-address" field.relay-address An address identifyingThe client adds a DUID option to identify itself to theinterface through whichserver. The client adds any other approppriate options, including one or more IA options (if themessage fromclient is requesting that the servershouldassign it some network addresses). The list of addresses in each included IA MUST beforwarded; copied fromempty. If the"client-forward" message.client is not requesting that the server assign it any addresses, the client omits the IA option. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page18]24] Internet Draft DHCP for IPv615 April30 June 2001options MUST include a "ServerThe client sends the Request messageoption"; see section 16.5. 11. Identity association An "identity-association" (IA) isto the All DHCP Agents multicast address, destination port 547. The source port selection can be arbitrary, although it SHOULD be possible using aconstruct through whichclient configuration facility to set a specific source port value. The server will respond to the Request message with a Reply message. If no Reply message is received within REP_MSG_TIMEOUT milliseconds, the client retransmits the Request with the same transaction-ID, and doubles the REP_MSG_TIMEOUT value, and waits again. The client continues this process until a Reply is received or REQUEST_MSG_ATTEMPTS unsuccessful attempts have been made, at which time the clientcan identify, groupMUST abort the configuration attempt. The client SHOULD report the abort status to the application layer. Default andmanage IPv6 addresses. Each IA consistsinitial values for REP_MSG_TIMEOUT and REQ_MSG_ATTEMPTS are documented in section 7.5. 14.3.2. Creation and sending of Confirm messages Whenever aDUID andclient may have moved to alist of associatednew link, its IPv6 addresses(the listmay no longer beempty). A client associates an IA with one of its interfaces and uses the IA to obtain IPv6 addresses for that interface from a server. See section 16.2 for the representationvalid. Examples ofan IA intimes when aDHCP message. 12. DHCP Server Solicitation This section describes howclient may have moved to a new link include: o The clientlocates servers.reboots o Thebehavior ofclientand server implementationsisdiscussed, along with the messages they use. 12.1. Solicit Message Validation Clients MUST silently discard any received Solicit messages. Agents MUST silently discard any received Solicit messages if the "client-link-local-address" field does not containphysically disconnected from avalid link-local address. 12.2. Advertise Message Validation Servers MUST discard any received Advertise messages. Clients MUST discard any Advertise messages that meet any of the following criteria:wired connection o The"Transaction-ID" field value does not match the value theclientused in its Solicit message.returns from sleep mode o The"client-link-local-address" field value does not match the link-local address of the interface upon which theclientsent the Solicit message. 12.3. Client Behavior Clients use the Solicit message to discover DHCP servers configured to serve addresses on the linkusing a wireless technology changes cells In any situation when a client may have moved towhicha new link, the clientis attached. Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page 19] Internet Draft DHCP for IPv6 15 April 2001 12.3.1. Creation and sendingMUST 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 theSolicit messageaddresses with the status in the IA it returns to the client. The client sets the "msg-type" field toSOLICIT,CONFIRM, and places the link-local address of the interface it wishes toconfigureacquire configuration information for in the "client-link-local-address" field. The client generates a transaction ID inserts this value in the "transaction-ID" field. The clientMUST include options for any IAs to which the client is expecting to have the server assign addresses. Because the client does not have any IAs with addresses when sending a Solicit message, all of the IAs MUST be empty. The client MAY include an Option Request Option in the Solicit message. The client MUST NOT include any other options except those specifically allowed as defined by specific options. The client sends the Solicit message to the All DHCP Agents multicast address, destination port 547. The source port selection can be arbitrary, although it SHOULD be possible using a client configuration facility to set a specific source port value. 12.3.2. Time out and retransmission of Solicit Messages The client's first Solicit message on the interface MUST be delayed by a random amount of time between the interval of MIN_SOL_DELAY and MAX_SOL_DELAY. This random delay desynchronizes clients which start at the same time (e.g., after a power outage). The client waits ADV_MSG_TIMEOUT, collecting Advertise messages. If no Advertise messages are received, the client retransmits the Solicit, and doubles the ADV_MSG_TIMEOUT value. This process continues until either one or more Advertise messages are received or ADV_MSG_TIMEOUT reaches the ADV_MSG_MAX value. Thereafter, Solicits are retransmitted every ADV_MSG_MAX until SOL_MAX_ATTEMPTS have been made, at which time the client stops trying to DHCP configuresets theinterface. An event external"server-address" field toDHCP is required0. The client adds a DUID option to identify itself torestart the DHCP configuration process. Default and initial values for MIN_SOL_DELAY, MAX_SOL_DELAY, ADV_MSG_TIMEOUT, AND ADV_MSG_MAX are documented in section 7.5. 12.3.3. Receipt of Advertise messages Upon receipt of one or more validated Advertise messages,the server. The clientselectsadds any appropriate options, including one or moreAdvertise messages based uponIA options (if thefollowing criteria. - Those Advertise messages withclient is requesting that thehighestserverpreference value (see section 17.4) are preferred over all other Advertise messages.confirm the validity of some network addresses). If the client does include any IA options, Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page20]25] Internet Draft DHCP for IPv615 April30 June 2001- Within a group of Advertise messages with the same server preference value, a client MAY select those servers whose Advertise messages advertise information of interest to the client. For example, one server may be advertisingit MUST include theavailabilitylist ofIPaddresseswhich have an address scope of interest totheclient. Once aclient currently hasselected Advertise message(s), theassociated with that IA. The clientwill typically store information about each server, such as server preference value, addresses advertised, when the advertisement was received, and so on. Depending on the requirements ofsends theclient's invoking user,Confirm message to theclient MAY initiateAll DHCP Agents multicast address, destination port 547. The source port selection can be arbitrary, although it SHOULD be possible using aconfiguration exchange with the server(s) immediately, or MAY defer this exchange until later. If theclientneedsconfiguration facility to set a specific source port value. Servers will respond toselect an alternate server inthecase thatConfirm message with achosen server does not respond,Reply message. If no Confirm message is received within REP_MSG_TIMEOUT milliseconds, the clientchoosesretransmits theserverConfirm with thenext highest preference value.same transaction-ID, and doubles the REP_MSG_TIMEOUT value, and waits again. The clientMAY choose a less-preferred server if that server has a better set of advertised parameters, such as the available addresses advertised in IAs. 12.4. Server Behavior Forcontinues thisdiscussion, the serverprocess until a Reply isassumed toreceived or QRY_MSG_ATTEMPTS unsuccessful attempts have beenconfigured in an implementation specific manner. Thismade, at which time the client MUST abort the configurationis assumedattempt. The client SHOULD report the abort status tocontain all network topology informationthe application layer. Default and initial values for REP_MSG_TIMEOUT and QRY_MSG_ATTEMPTS are documented in section 7.5. If the client receives no response to its Confirm message, it MAY restart the configuration process by locating a DHCPdomain, as wellserver with an Advertise message and sending a Request to that server, asany necessary authentication information. 12.4.1. Receiptdescribed in section 14.3.1. 14.3.3. Creation and sending ofSolicitRenew messagesIf the server receivesIPv6 addresses assigned to aSolicit message, theclientmust be onthrough an IA use the samelinkpreferred and valid lifetimes asthe server. If theIPv6 addresses obtained through stateless autoconfiguration. The serverreceives a Relay-forward message containing a Solicit message, the client must be onassigns preferred and valid lifetimes to thelinkIPv6 addresses it assigns towhichan IA. To extend those lifetimes, theprefix identified byclient sends a Request to the"relay-address"server containing an "IA option" for the IA and"prefix-length" fieldsits associated addresses. The server determines new lifetimes for the addresses in theRelay-forward message is assigned.IA according to the server's administrative configuration. The serverrecordsmay also add new addresses to the"relay-address" fieldIA. The server remove addresses from theRelay-forward messageIA by setting the preferred andextractsvalid lifetimes of those addresses to zero. The server controls thesolicit message fromtime at which the"client-message" option. If administrative policy permitsclient contacts the server torespond to a clientextend the lifetimes onthat link,assigned addresses through theserver will generateT1 andsend an Advertise messageT2 parameters assigned to an IA. If theclient. 12.4.2. Creation and sending of Advertise messages Theserversetsdoes not assign an explicit value to T1 or T2 for an IA, T1 defaults to 0.5 times the"msg-type" fieldshortest preferred lifetime of any address assigned toADVERTISEthe IA andcopiesT2 defaults to 0.875 times thevaluesshortest preferred lifetime of any address assigned to thefollowing fields fromIA. At time T1 for an IA, theclient's Solicitclient initiates a Request/Reply message exchange to extend theAdvertise message:lifetimes on any addresses in the IA. The client includes an IA option with all addresses currently assigned to the IA in its Request message. The client sends this Request message to the All DHCP Agents multicast address. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page21]26] Internet Draft DHCP for IPv615 April30 June 2001o transaction-ID o client-link-local-addressTheserverclient sets the "msg-type" field to RENEW, and places the link-local address of the interface it wishes to acquire configuration information for in the "client-link-local-address" field. The client generates a transaction ID inserts this value in the "transaction-ID" field. The client placesonethe address ofits IP addresses (determined through administrator setting)the destination server in the "server-address"field offield. The client adds a DUID option to identify itself to theAdvertise message.server. The client adds any appropriate options, including one or more IA options (if the client is requesting that the serversetsextend the"preference" field according to itslease on some IAs; note that the client may check the status of other configurationinformation. See section 18.3parameters without asking fora description of server preference. The serverlease extensions). If the client does include any IA options, it MUST includeoptions totheAdvertise message containing anylist of addresses the client currently has associated with thatwould be assigned to IAs contained inIA. The client sends theSolicitRenew messagefromto theclient.All DHCP Agents multicast address, destination port 547. The source port selection can be arbitrary, although it SHOULD be possible using a client configuration facility to set a specific source port value. Theserver MAY include other options theserver willreturnrespond to theclient inRenew message with asubsequentReply message. If no Reply message is received within REP_MSG_TIMEOUT milliseconds, the client retransmits the Renew with the same transaction-ID, and doubles the REP_MSG_TIMEOUT value, and waits again. Theinformationclient continues this process until a Reply is received or until time T2 is reached (see section 14.3.4). Default and initial values for REP_MSG_TIMEOUT are documented inthese optionssection 7.5. 14.3.4. Creation and sending of Rebind messages At time T2 for an IA (which will only beused by the client in the selection of a serverreached if theclient receives more than one Advertise message. Ifserver to which theSolicitRenew message wasreceived in a Relay-forward message,sent at time T1 has not responded), theserver constructsclient initiates aRelay-replyRebind/Reply message exchange. The client includes an IA option with all addresses currently assigned to theAdvertise messageIA inthe payload of a "server-message" option.its Rebind message. Theserver unicasts the Relay-replyclient sends this message to theaddress inAll DHCP Agents multicast address. The client sets the"relay-address""msg-type" fieldfrom the Relay-forward message. If the Solicit message was received directly by the server,to REBIND, and places theserver unicastslink-local address of theAdvertise message directlyinterface it wishes tothe client usingacquire configuration information for in the "client-link-local-address"fieldfield. The client generates a transaction ID inserts this valueasin thedestination address."transaction-ID" field. TheAdvertise message MUST be unicast through the interface on whichclient sets theSolicit message was received. 13."server-address" field to 0. Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 27] Internet Draft DHCPClient-Initiated Configuration Exchange Afor IPv6 30 June 2001 The clientinitiates a message exchange withadds aserver or serversDUID option toacquire or update configuration information of interest.identify itself to the server. The client adds any appropriate options, including one or more IA options. If the client does include any IA options (if the client is requesting that the server extend the lease on some IAs; note that the client mayinitiatecheck the status of other configuration parameters without asking for lease extensions), it MUST include theconfiguration exchange as partlist of addresses theoperating system configuration process or when requested to do so by the application layer.client currently has associated with that IA. The clientusessends thefollowing messagesRebind message toinitiate a configuration event withthe All DHCP Agents multicast address, destination port 547. The source port selection can be arbitrary, although it SHOULD be possible using aserver or servers: Request Obtain initialclient configurationinformation (fromfacility to set a specific source port value. The serveridentified inwill respond to the Rebind message with apreviouslyReply message. If no Reply message is receivedAdvertise message) whenwithin REP_MSG_TIMEOUT milliseconds, the clienthas no assigned addresses Confirm Confirmretransmits thevalidity of assigned addressesRebind with the same transaction-ID, andother configuration changes throughdoubles theserverREP_MSG_TIMEOUT value, and waits again. The client continues this process until a Reply is received. Default and initial values for REP_MSG_TIMEOUT are documented in section 7.5. The client has several alternatives to choose fromwhichif it receives no response to its Rebind message. - When theconfiguration information was obtained whenlease on theclient's assigned addresses may not be valid; for example, whenIA expires, the clientreboots or loses its connectionmay choose to use alink Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page 22] Internet DraftSolicit message to locate a new DHCP server and send a Request forIPv6 15 April 2001 Renew Extendthelease on anexpired IAthroughto the new serverthat originally assigned the IA Rebind Extend- Some addresses in thelease on anIAthrough any server willing tomay have lifetimes that extend beyond the leaseA client usesof theRelease/Reply message exchangeIA, so the client may choose toindicatecontinue to use those addresses; once all of the addresses have expired, the client may choose to locate a new DHCP serverthat the- The clientwill no longer be using themay have other addresses in other IAs, so thereleased IA. Aclientuses the Decline/Reply message exchange to indicatemay choose to discard theDHCP server thatexpired IA and use theclient has detected that one or moreaddressesassigned by the server is alreadyinuse ontheclient's link. 13.1. Client Message Validation Clients MUST silently discard any received client messages (Request,other IAs 14.3.5. Receipt of Reply message in response to a Request, Confirm,Renew, Rebind, ReleaseRenew orDecline messages). Agents MUST discard any received client messages in whichRebind message Upon the"client-link-local-address" field does not containreceipt of a validlink-local address. Servers MUST discard any received client messagesReply message inwhich the "options" field contains an authentication option, and the server cannot successfully authenticate the client. Servers MUST discard any receivedresponse to a Request,Renew, ReleaseConfirm, Renew orDecline messageRebind message, the client extracts the configuration information contained inwhichthe"server-address"Reply. If the "status" fieldvalue does not match any ofcontains a non-zero value, theserver's addresses. 13.2. Server Message Validation Servers MUST silently discard any received server messages (Reply or Reconfigure-init messages). Clients MUST discard any server messages that meet any ofclient reports thefollowing criteria: o The "transaction-ID" field value inerror status to theserver message does not matchapplication layer. The client records thevalueT1 and T2 times for each IA in the Reply message. The clientusedrecords any addresses included with IAs inits Request or Releasethe Reply message.oThe"client-link-local-address" field value inclient updates theserver message does not matchpreferred and valid lifetimes for thelink-local address ofaddresses in theinterfaceIA fromwhichtheclient sentlifetime information inits Request, Confirm, Renew, Rebind, Release or Decline message. o The server message contains an authentication option, andtheclient's attempt to authenticateIA option. The client leaves any addresses that themessage fails.client Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page23]28] Internet Draft DHCP for IPv615 April30 June 2001Relays MUST discard any Relay-reply messagehas associated with the IA that are not included inwhichthe"client-link-local-address"IA option unchanged. Management of the specific configuration information is detailed in theencapsulated Reply message does not containdefinition of each option, in section 18. When the client receives an Unavail error status in an IA from the server for avalid link-local address. 13.3. Client Behavior ARequest message the client willuse Request, Confirm, Renew and Rebind messageshave toacquire and confirmfind a new server to create an IA. When thevalidity of configuration information. Aclientmay initiate suchreceives a NoBinding error status in anexchange automaticallyIA from the server for a Confirm message the client can assume it needs to send a Request to reestablish an IA with the server. When the client receives a Conf_NoMatch error status inorderan IA from the server for a Confirm message the client can send a Renew message toacquirethenecessary network parametersserver tocommunicate with nodes off-link. Theextend the lease for the addresses. When the clientusesreceives a NoBinding error status in an IA from the serveraddress information from previous Advertise message(s)foruse in constructing Request anda Renewmessage(s). Note thatmessage the client can assume it needs to send a Request to reestablish an IA with the server. When the clientmay request configuration informationreceives a Renw_NoMatch error status in an IA fromone or more servers at any time. A client usestheReleaseserver for a Renew messagein the management of IAs whenthe clienthas been instructedcan assume it needs torelease the IA priorsend a Request tothereestablish an IAexpiration time since it is no longer needed. A client useswith theDecline message whenserver. When the clienthas determined through DAD or some other method that one or more of the addresses assigned byreceives an Unavail error status in an IA from the serverinfor a Renew message theIA is already in use byclient can assume it needs to send adifferent client. 13.3.1. Creation and sending ofRequestmessages If a client has no valid IPv6 addresses of sufficient scopetocommunicatereestablish an IA with the server. When the client receives aDHCP server,NoBinding error status in an IA from the server for a Rebind message the client can assume itmayneeds to send a Requestmessagetoobtain new addresses. The client includes onereestablish an IA with the server ormore IAstry another server. When the client receives a Rebd_NoMatch error status in an IA from the server for a Rebind message the client can assume it needs to send a Requestmessage,towhichreestablish an IA with the serverassigns new addresses. The server then returns IA(s) toor try another server. When the client receives an Unavail error status in an IA from the server for aReply message.Rebind message the client can assume it needs to send a Request to reestablish an IA with the server or try another server. 14.3.6. Creation and sending of Release messages The client sets the "msg-type" field toREQUEST,RELEASE, and places the link-local address of the interface associated with the configuration information it wishes toacquire configuration information forrelease in the "client-link-local-address" field. The client generates a transaction IDinsertsand places this value in the "transaction-ID" field. Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 29] Internet Draft DHCP for IPv6 30 June 2001 The client places the IP address of thedestinationserver that allocated the address(es) in the "server-address" field. The client addsany appropriate options, including one or more IA options (ifa DUID option to identify itself to the server. The clientis requesting thatincludes options containing theserver assignIAs itsome network addresses).is releasing in the "options" field. Thelist ofaddressesin each included IAto be released MUST beempty.included in the IAs. Theclient sendsappropriate "status" field in theRequest messageoptions MUST be set to indicate theAll DHCP Agents multicast address, destination port 547. The source port selection Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page 24] Internet Draft DHCPreason forIPv6 15 April 2001 can be arbitrary, although it SHOULDthe release. If the client is configured to use authentication, the client generates the appropriate authentication option, and adds this option to the "options" field. Note that the authentication option MUST bepossible using athe last option in the "options" field. See section 18.9 for more details about the authentication option. The client sends the Release message to the All DHCP Agents multicast address. 14.3.7. Time out and retransmission of Release Messages A clientconfiguration facilityMAY choose tosetwait for aspecific source port value. TheReply message from the serverwill respondin response to theRequest message withRelease message. If the client does wait for aReplyReply, the client MAY choose to retransmit the Release message. If no Reply message is received within REP_MSG_TIMEOUT milliseconds, the client retransmits theRequest with the same transaction-ID, andRelease, doubles the REP_MSG_TIMEOUT value, and waits again. The client continues this process until a Reply is received orREQUEST_MSG_ATTEMPTSREL_MSG_ATTEMPTS unsuccessful attempts have been made, at which time the clientMUSTSHOULD abort theconfigurationrelease attempt. The client SHOULDreportreturn the abort status to the application, if an applicationlayer.initiated the release. Default and initial values for REP_MSG_TIMEOUT andREQ_MSG_ATTEMPTSREL_MSG_ATTEMPTS are documented in section 7.5.13.3.2. Creation and sending of Confirm messages Whenever a client may have moved to a new link, its IPv6 addresses 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 cells In any situation when aNote that if the clientmay have movedfails toa new link,release theclient MUST initiate a Confirm/Reply message exchange. The client includes any IAs, along withIA, the addressesassociated with those IAs, in its Confirm message. The serverassigned to the IA willindicatebe reclaimed by theacceptability ofserver when theaddresseslease associated withthe status in the IAitreturns to the client. DISCUSSION: This section used to allow servers to change the addressesexpires. 14.3.8. Receipt of Reply message inan IA. Without some additional mechanism, servers respondingresponse toConfirm messages can't change safely changea Release message Upon receipt of a valid Reply message, theaddresses in IAs (although theyclient canchangeconsider thelifetimes), because servers may send back different addresses.Release event successful, and SHOULD return the successful status to the application layer, if an application initiated the release. 14.3.9. Creation and sending of Decline messages The client sets the "msg-type" field toCONFIRM,DECLINE, and places the link-local address of the interface associated with the configuration Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 30] Internet Draft DHCP for IPv6 30 June 2001 information it wishes toacquire configuration information fordecline in the "client-link-local-address" field. The client generates a transaction IDinsertsand places this value in the "transaction-ID" field.Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page 25] Internet Draft DHCP for IPv6 15 April 2001 The client sets the "server-address" field to 0.The clientadds any appropriate options, including one or more IA options (if the client is requesting that the server confirm the validity of some network addresses). If the client does include any IA options, it MUST includeplaces thelistIP address ofaddressestheclient currently has associated withserver thatIA. The client sendsallocated theConfirm message toaddress(es) in theAll DHCP Agents multicast address, destination port 547."server-address" field. Thesource port selection can be arbitrary, although it SHOULD be possible using aclientconfiguration facility to setadds aspecific source port value. Servers will respondDUID option to identify itself to theConfirm message with a Reply message. If no Confirm message is received within REP_MSG_TIMEOUT milliseconds, the client retransmits the Confirm with the same transaction-ID, and doubles the REP_MSG_TIMEOUT value, and waits again. The client continues this process until a Reply is received or QRY_MSG_ATTEMPTS unsuccessful attempts have been made, at which time theserver. The client includes options containing the IAs it is declining in the "options" field. The addresses to be released MUSTabortbe included in theconfiguration attempt.IAs. Theclient SHOULD reportappropriate "status" field in theabort statusoptions MUST be set to indicate theapplication layer. Default and initial valuesreason forREP_MSG_TIMEOUT and QRY_MSG_ATTEMPTS are documented in section 7.5.declining the address. If the clientreceives no responseis configured toits Confirm message, it MAY restartuse authentication, theconfiguration process by locating a DHCP server with an Advertise message and sending a Request to that server, as described in section 13.3.1. 13.3.3. Creation and sending of Renew messages IPv6 addresses assigned to aclientthrough an IA usegenerates thesame preferred and valid lifetimes as IPv6 addresses obtained through stateless autoconfiguration. The server assigns preferredappropriate authentication option, andvalid lifetimesadds this option to theIPv6 addresses it assigns to an IA. To extend those lifetimes,"options" field. Note that theclient sends a Request toauthentication option MUST be theserver containing an "IA option" forlast option in theIA and its associated addresses. The server determines new lifetimes"options" field. See section 18.9 for more details about theaddresses inauthentication option. The client send theIA accordingDecline message to theserver's administrative configuration. The server may also add new addresses toAll DHCP Agents multicast address. 14.3.10. Time out and retransmission of Decline Messages If no Reply message is received within REP_MSG_TIMEOUT milliseconds, theIA. The server remove addresses fromclient retransmits theIA by settingDecline, doubles thepreferredREP_MSG_TIMEOUT value, andvalid lifetimes of those addresses to zero.waits again. Theserver controls the timeclient continues this process until a Reply is received or REL_MSG_ATTEMPTS unsuccessful attempts have been made, at which time the clientcontactsSHOULD abort theserverattempt toextenddecline thelifetimes on assigned addresses throughaddress. The client SHOULD return theT1 and T2 parameters assignedabort status toan IA. Iftheserver does not assign an explicit value to T1 or T2 forapplication, if anIA, T1 defaults to 0.5 timesapplication initiated theshortest preferred lifetimerelease. Default and initial values for REP_MSG_TIMEOUT and REL_MSG_ATTEMPTS are documented in section 7.5. 14.3.11. Receipt ofany address assignedReply message in response to a Release message Upon receipt of a valid Reply message, theIAclient can consider the Release event successful, andT2 defaultsSHOULD return the successful status to0.875 timestheshortest preferred lifetimeapplication layer, if an application initiated the release. 14.4. Server Behavior For this discussion, the Server is assumed to have been configured in an implementation specific manner with configuration ofany address assignedinterest tothe IA.clients. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page26]31] Internet Draft DHCP for IPv615 April30 June 2001At time T1 for an IA,14.4.1. Receipt of Request messages Upon theclient initiatesreceipt of aRequest/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 Request message. The client multicasts thisvalid Request messageto the All DHCP Agents multicast address. Thefrom a clientsets the "msg-type" field to RENEW, and placesthelink-local address ofserver can respond to, (implementation-specific administrative policy satisfied) theinterface it wishes to acquire configuration information for inserver scans the"client-link-local-address"options field. Theclient generatesserver then constructs atransaction ID inserts this value inReply message and sends it to the"transaction-ID" field.client. Theclient places the address of the destinationserverinSHOULD process each option for the"server-address" field. Theclientadds any appropriate options, including one or more IA options (ifin an implementation-specific manner. The server MUST construct a Reply message containing theclient is requesting thatfollowing values: msg-type REPLY preference Enter theserver extendserver's preference to provide services to thelease on some IAs; note thatclient. transaction-ID Enter theclient may checktransaction-ID from thestatus of other configuration parameters without asking for lease extensions). IfRequest message. client-link-local address Enter theclient does include any IA options, it MUST includeclient-link-local address from thelist of addressesRequest message. server address Enter theclient currently has associated with that IA. The client sendsIP address of theRenew message toserver. When theAll DHCP Agents multicast address, destination port 547. The source port selection can be arbitrary, although it SHOULD be possible using a client configuration facility to set a specific source port value. Theserverwill respond to the Renew message withreceives aReply message. If no Reply messageRequest and IA option isreceived within REP_MSG_TIMEOUT milliseconds,included the clientretransmits the Renew withis requesting thesame transaction-ID, and doublesconfiguration of a new IA by theREP_MSG_TIMEOUT value, and waits again.server. Theclient continues this process until a Reply is received or until time T2 is reached (see section 13.3.4). Default and initial values for REP_MSG_TIMEOUT are documented in section 7.5. 13.3.4. Creationserver MUST take the clients IA andsending of Rebind messages At time T2associate a binding for that client in anIA (which will only be reached ifimplementation-specific manner within the server's configuration parameter database for DHCP clients. If the server cannot provide addresses towhich the Renew message was sent at time T1 has not responded),the clientinitiates a Rebind/Reply message exchange. The client includesit SHOULD send back an empty IAoption with all addresses currently assignedto theIA in its Rebind message. Theclientmulticasts this messagewith the status field set to Unavail. If the server can provide addresses to theAll DHCP Agents multicast address. Theclientsetsit MUST send back the"msg-type" fieldIA toREBIND, and placesthelink-local addressclient with all fields entered and a status of Success, and add theinterface it wishesIA as a new client binding. The server adds options toacquirethe Reply message for any other configuration informationfor into be assigned to the"client-link-local-address"client. 14.4.2. Receipt of Confirm messages Upon the receipt of a valid Confirm message from a client the server can respond to, (implementation-specific administrative policy satisfied) the server scans the options field. The server then constructs a Reply message and sends it to the client. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page27]32] Internet Draft DHCP for IPv615 April30 June 2001 The server SHOULD process each option for the clientgenerates a transaction ID inserts this valuein an implementation-specific manner. The server MUST construct a Reply message containing the following values: msg-type REPLY preference Enter the server's preference to provide services to the client. transaction-ID Enter the transaction-ID from the Confirm message. client-link-local address Enter the client-link-local address from the"transaction-ID" field. The client setsConfirm message. server address Enter the"server-address" field to 0. The client adds any appropriate options, including one or more IA options. Ifserver's address. When theclient does include anyserver receives a Confirm and an IAoptions (ifoption is included the client is requesting confirmation that theserver extendaddresses in thelease on some IAs; note thatIA are valid. The server SHOULD locate theclient may checkclients binding and verify thestatus of other configuration parameters without asking for lease extensions), it MUST includeinformation in thelist of addressesIA from the clientcurrently has associated with that IA. The client sendsmatches theRebind message toinformation stored for that client. If theAll DHCP Agents multicast address, destination port 547. The source port selection can be arbitrary, although it SHOULD be possible usingserver cannot find a clientconfiguration facility to set a specific source port value. The server will respond toentry for this IA theRebind messageserver SHOULD return an empty IA witha Reply message.status set to NoBinding. Ifno Reply message is received within REP_MSG_TIMEOUT milliseconds, the client retransmitstheRebind withserver finds that thesame transaction-ID, and doublesinformation for theREP_MSG_TIMEOUT value, and waits again. Theclientcontinues this process until a Replydoes not match what isreceived. Default and initial values for REP_MSG_TIMEOUT are documentedinsection 7.5. DISCUSSION: Thethe server's records for that clienthas several alternativesthe server should send back an empty IA with status set tochoose from if it receives no responseConf_NoMatch. If the server finds a match toits Rebind message. - Whenthelease onConfirm then the server should send back the IAexpires,to the clientmay choosewith status set tousesuccess. 14.4.3. Receipt of Renew messages Upon the receipt of aSolicitvalid Renew messageto locatefrom anew DHCPclient the serverand send a Request forcan respond to, (implementation-specific administrative policy satisfied) theexpired IA toserver scans thenewoptions field. The server- Some addresses inthen constructs a Reply message and sends it to theIA may have lifetimes that extend beyondclient. The server SHOULD process each option for thelease ofclient in an implementation-specific manner. The server MUST construct a Reply message containing theIA, sofollowing values: msg-type REPLY preference Enter theclient may chooseserver's preference tocontinueprovide services touse those addresses; once all of the addresses have expired,theclient may choose to locate a newclient. Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 33] Internet Draft DHCP for IPv6 30 June 2001 transaction-ID Enter the transaction-ID from the Confirm message. client-link-local address Enter the client-link-local address from the Confirm message. server- The client may have other addresses in other IAs, soaddress Enter theclient may choose to discardserver's address. When theexpiredserver receives a Renew and IA option from a client it SHOULD locate the clients binding anduseverify theaddressesinformation in theother IAs 13.3.5. Receipt of Reply message in response to a Reply, Confirm, Renew or Rebind message UponIA from thereceipt ofclient matches the information stored for that client. If the server cannot find avalid Reply message in responseclient entry for this IA the server SHOULD return an empty IA with status set toa Request, Confirm, Renew or Rebind message,NoBinding. If theclient extractsserver finds that theconfiguration information containedaddresses in theReply. If the "status" Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page 28] Internet Draft DHCPIA forIPv6 15 April 2001 field contains a non-zero value,the clientreportsdo not match theerrorclients binding the server should return an empty IA with status set to Renw_NoMatch. If theapplication layer. The client records the T1 and T2 timesserver cannot Renew addresses foreachthe client it SHOULD send back an empty IAinto theReply message. Theclientrecords any addresses includedwithIAs intheReply message. The client updatesstatus field set to Unavail. If thepreferred and valid lifetimes forserver finds the addresses in the IAfromfor thelifetime information inclient then the server SHOULD send back the IAoption. The client leaves any addresses thatto the clienthas associatedwith new lease times and T1/T2 times if theIA that aredefault is notincluded in the IA option unchanged. Managementbeing used, and set status to Success. 14.4.4. Receipt of Rebind messages Upon thespecific configuration information is detailed in the definitionreceipt ofeach option, in section 16. When the client receives an Unavail error status in an IAa valid Rebind message from a client the serverfor a Request messagecan respond to, (implementation-specific administrative policy satisfied) theclient will have to find a newserverto create an IA. Whenscans theclient receivesoptions field. The server then constructs aNoBinding error statusReply message and sends it to the client. The server SHOULD process each option for the client in anIA from theimplementation-specific manner. The serverforMUST construct aConfirmReply message containing theclient can assume it needsfollowing values: msg-type REPLY preference Enter the server's preference tosend a Requestprovide services toreestablish an IA withtheserver. Whenclient. transaction-ID Enter theclient receives a Conf_NoMatch error status in an IAtransaction-ID from theserver for aConfirmmessagemessage. client-link-local address Enter theclient can send a Renew message toclient-link-local address from the Confirm message. serverto extendaddress Enter theleaseserver's address. Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 34] Internet Draft DHCP forthe addresses.IPv6 30 June 2001 When theclientserver receives aNoBinding error status in anRebind and IA option fromthe server foraRenew message theclientcan assumeitneeds to send a Request to reestablish an IA withSHOULD locate theserver. Whenclients binding and verify theclient receives a Renw_NoMatch error statusinformation inanthe IA from theserver for a Renew message theclientcan assume it needs to send a Request to reestablish an IA withmatches theserver. Wheninformation stored for that client. If the server cannot find a clientreceives an Unavail error status in anentry for this IAfromthe serverfor a Renew message the client can assume it needs to send a Request to reestablishSHOULD return an empty IA with status set to NoBinding. If theserver. Whenserver finds that theclient receives a NoBinding error statusaddresses inan IA fromtheserverIA fora Rebind messagethe clientcan assume it needs to send a Request to reestablish an IA withdo not match theserver or try another server. Whenclients binding theclient receives a Rebd_NoMatch error status inserver should return an empty IAfromwith status set to Rebd_NoMatch. If the serverfor acannot Rebindmessageaddresses for the clientcan assumeitneeds toSHOULD senda Request to reestablishback an empty IA to the client with the status field set to Unavail. If the serveror try another server. Whenfinds theclient receives an Unavail error statusaddresses inanthe IAfromfor the client then the serverforSHOULD send back the IA to the client with new lease times and T1/T2 times if the default is not being used, and set status to Success. DISCUSSION: There is a significant difference between Renew and Rebind messages: Because the Rebind message is processed by a single server, theclientrespnding server canassume it needsactually change the addresses in the IA. However, because multiple servers may repsond tosendaRequest to reestablish an IA withRebind, all they can safely do is update T1, T2 (for theserver or try another server. Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page 29] Internet Draft DHCP for IPv6 15 April 2001 13.3.6. CreationIA) andsendinglifetimes (for individual addresses). 14.4.5. Receipt of Release messagesThe client setsUpon the"msg-type" field to RELEASE,receipt of a valid Release message, the server examines the IAs andplacesthelink-local address ofaddresses in theinterface associated withIAs for validity. If theconfiguration information it wishes to releaseIAs in the"client-link-local-address" field. The client generatesmessage are in atransaction IDbinding for the client andplaces this valuethe addresses in the"transaction-ID" field. The client placesIAs have been assigned by theIP address ofserver to those IA, the serverthat allocateddeletes theaddress(es) inaddresses from the IAs and makes the"server-address" field.addresses available for assignment to other clients. Theclient includes options containingserver then generates a Reply message. If all of the IAsit is releasing inwere valid and the"options" field. Theaddressesto be released MUST be included insuccessfully released,, the server sets theIAs. The appropriate"status" fieldin the options MUST be settoindicate"Success". If any of thereason forIAs were invalid or if any of therelease. Ifaddresses were not successfully released, theclient is configured to use authentication,server releases none of theclient generatesaddresses in theappropriate authentication option,message andadds this option tosets the"options" field. Note that"status" field to "NoBinding"(section 7.4). If theauthentication option MUST beclient successfully releases some but not all of thelast optionaddresses in an IA, the"options" field. See section 16.9 for more details aboutIA continues to exist and holds theauthentication option. Theremaining, unreleased addresses. A client can sendthe Release messagean option containing an IA with no listed addresses tothe All DHCP Agents multicast address. 13.3.7. Time out and retransmissionrelease implicitly all ofRelease Messages If no Reply message is received within REP_MSG_TIMEOUT milliseconds, the client retransmitstheRelease, doublesaddresses in theREP_MSG_TIMEOUT value, and waits again. The client continues this process until a ReplyIA. Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 35] Internet Draft DHCP for IPv6 30 June 2001 A server isreceived or REL_MSG_ATTEMPTS unsuccessful attemptsnot required to (but may choose to as an implementation strategy) retain any record of an IA from which all of the addresses have beenmade, at which timereleased. 14.4.6. Sending of Reply messages If the Request, Confirm, Renew, Rebind or Release message from the clientSHOULD abortwas originally received by therelease attempt. The client SHOULD returnserver, theabort statusserver unicasts the Reply message to theapplication, if an application initiatedlink-local address in therelease. Default and initial values for REP_MSG_TIMEOUT and REL_MSG_ATTEMPTS are documented"client-link-local-address" field. If the message was originally received insection 7.5. Note that ifa Forward-request or Forward-release message from a relay, theclient fails to releaseserver places theIA,Reply message in theaddresses assignedoptions field of a Response-reply message and unicasts the message to theIA will be reclaimed byrelay's address from the original message. 15. DHCP Server-Initiated Configuration Exchange A server initiates a configuration exchange to force DHCP clients to obtain new addresses and other configuration information. For example, an administrator may use a server-initiated configuration exchange when links in thelease associatedDHCP 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 (system or application). 15.1. Reconfigure-init Message Validation Agents MUST silently discard any received Reconfigure-init messages. Clients MUST discard any Reconfigure-init messages that do not contain an authentication option or that fail the client's authentication check. 15.2. Server Behavior A server sends a Reconfigure-init message to cause a client to initiate immediately a Request/Reply message exchange withit expires. 13.3.8.the server. 15.2.1. Creation and sending ofDeclineReconfigure-init messages Theclientserver sets the "msg-type" field toDECLINE,RECONFIG-INIT. The server generates a transaction-ID andplacesinserts it in thelink-local"transaction-ID" field. The server places its addressof the interface associated with the configuration information it wishes to decline(of appropriate scope) in the"client-link-local-address""server-address" field. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page30]36] Internet Draft DHCP for IPv615 April30 June 2001 Theclient generates a transaction ID and places this value inserver MAY include an ORO option to inform the"transaction-ID" field. Theclientplaces the IP addressof what information has been changed or new information that has been added. In particular, the serverthat allocatedspecifies theaddress(es)IA option in the"server-address" field. The client includes options containingORO if theIAs it is declining inserver wants the"options" field. The addressesclient tobe released MUST be included in the IAs.obtain new address information. Theappropriate "status" field in the optionsserver MUSTbe set to indicate the reason for declining the address. If the client is configured to use authentication, the client generates the appropriateinclude an authenticationoption, and adds thisoptiontowith the"options" field. Noteappropriate settings and add thatthe authenticationoptionMUST beas the last option in the "options"field. See section 16.9 for more details aboutfield of theauthentication option.Reconfigure-init message. The server MUST NOT include any other options in the Reconfigure-init except as specifically allowed in the definition of individual options. The server unicasts the Reconfigure-init message to one client. The server may unicast Reconfigure-init messages to more than one clientsendconcurrently; for example, to reliably reconfigure all known clients, theDeclineserver will unicast a Reconfigure-init message to each client. After theAll DHCP Agents multicast address. 13.3.9.server sends the Reconfigure-init message, it waits for a Request message from those clients confirming that each client has received the Reconfigure-init and are thus initiating a Request/Reply transaction with the server. 15.2.2. Time out and retransmission ofDecline MessagesReconfigure-init messages Ifno Replythe server does not receive a Request messageis received within REP_MSG_TIMEOUT milliseconds,from the client in RECREP_MSG_TIMEOUT milliseconds, the server retransmits theDecline,Reconfigure-init message, doubles theREP_MSG_TIMEOUT value,RECREP_MSG_TIMEOUT value and waits again. Theclientserver continues this process untila Reply is received or REL_MSG_ATTEMPTSREC_MSG_ATTEMPTS unsuccessful attempts have been made, at whichtime the client SHOULD abort the attempt to declinepoint theaddress. The clientserver SHOULDreturn theabortstatus to the application, if an application initiatedtherelease.reconfigure process. Default and initial values forREP_MSG_TIMEOUTRECREP_MSG_TIMEOUT andREL_MSG_ATTEMPTSREC_MSG_ATTEMPTS are documented in section 7.5.13.3.10. Receipt of Reply message in response to a Release message Upon receipt of a valid Reply message, the client can consider the Release event successful, and SHOULD return the successful status to the application layer, if an application initiated the release. 13.4. Server Behavior For this discussion, the Server is assumed to have been configured in an implementation specific manner with configuration of interest to clients. Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page 31] Internet Draft DHCP for IPv6 15 April 2001 13.4.1.15.2.3. Receipt of Request messagesUpon the receipt of a valid Request message from a client the server can respond to, (implementation-specific administrative policy satisfied) the server scans the options field.The serverthen constructs a Reply messagegenerates and sendsitReply message(s) to theclient. The server SHOULD process each option for theclient as described in section 14.4.6, including inan implementation-specific manner. The server MUST construct a Reply message containing the following values: msg-type REPLY preference Enter the servers preference to provide services to the client. transaction-ID Enter the transaction-ID from the Request message. client-link-local address Enter the client-link-local address from the Request message. server address EntertheIP address of"options" field new values for configuration parameters. It is possible that theserver. Whenclient may send a Request message after the serverreceiveshas sent aRequest and IA option is includedReconfigure-init but before theclientReconfigure-init isrequesting the configuration of a new IAreceived by theserver. The server MUST takeclient. In this case, theclients IAclient's Request message may not include all of the IAs andassociate a bindingrequests forthat client in an implementation-specific manner withinparameters to be reconfigured by theservers configuration parameter database for DHCP clients. Ifserver. To accommodate this scenario, the servercannot provide addressesMAY choose tothe client it SHOULDsendback an empty IA to the clienta Reply with thestatus field setIAs and other parameters toUnavail. Ifbe reconfigured, even if those IAs and parameters were not in theserver can provide addresses toRequest message from the client. Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 37] Internet Draft DHCP for IPv6 30 June 2001 15.3. Client Behavior A clientitMUSTsend backalways monitor UDP port 546 for Reconfigure-init messages on interfaces upon which it has acquired DHCP parameters. Since theIA toresults of a reconfiguration event may affect application layer programs, the clientwith all fields enteredSHOULD log these events, anda statusMAY notify these programs ofSuccess, and addtheIA aschange through an implementation-specific interface. 15.3.1. Receipt of Reconfigure-init messages Upon receipt of anewvalid Reconfigure-init message, the clientbinding. The server adds options toinitiates a Request/Reply transaction with theReply message for any other configuration information to be assigned toserver. While theclient. 13.4.2. Receipt of ConfirmRequest/Reply transaction is in progress, the client silently discards any Reconfigure-init messagesUpon the receipt of a valid Confirmit receives. DISCUSSION: The Reconfigure-init messagefromacts as a trigger that signals the client to complete a successful Request/Reply message exchange. Once theserver can respond to, (implementation-specific administrative policy satisfied)client has received a Recongfigure-init, theserver scansclient proceeds with theoptions field. The server then constructs a ReplyRequest/Reply messageand sends it toexchange (retransmitting theclient. Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page 32] Internet Draft DHCP for IPv6 15 April 2001 The server SHOULD process each option forRequest if necessary); the client ignores any additional Reconfigure-init messages (regardless of the transaction ID inan implementation-specific manner. The server MUST construct a Reply message containingthefollowing values: msg-type REPLY preference EnterReconfigure-init message) until theservers preference to provide services toRequest/Reply exchange is complete. Subsequent Reconfigure-init messages (again independent of theclient. transaction-ID Entertransaction ID) cause thetransaction-ID fromclient to initiate a new Request/Reply exchange. How does this mechanism work in theConfirm message. client-link-local address Enterface of duplicated or retransmitted Reconfigure-init messages? Duplicate messages will be ignored because theclient-link-local address fromclient will begin theConfirm message. server address EnterRequest/Reply exchange after theserver's address. Whenreceipt of theserver receives a Confirm and an IA option is includedfirst Reconfigure-init. Retransmitted messages will either trigger theclient is requesting confirmation thatRequest/Reply exchange (if theaddresses infirst Reconfigure-init was not received by theIA are valid.client) or will be ignored. The serverSHOULD locatecan discontinue retransmission of Reconfigure-init messages to theclients binding and verifyclient once theinformation inserver receives theIA fromclient's Request. It might be possible for a duplicate or retransmitted Reconfigure-init to be sufficiently delayed (and delivered out of order) to arrive at the clientmatchesafter theinformation stored for that client. IfRequest/Reply exchange (initiated by theserver cannot find a client entry fororiginal Reconfigure-init) has been completed. In thisIAcase, theserver SHOULD return an empty IA with status setclient would initiate a redundant Request/Reply exchange. The likelihood of delayed and out of order delivery is small enough toNoBinding. If the server finds thatbe ignored. The consequence of theinformationredundant exchange is inefficiency rather than incorrect operation. Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 38] Internet Draft DHCP for IPv6 30 June 2001 15.3.2. Creation and sending of Request messages When responding to a Reconfigure-init, the clientdoes not match what is increates and sends theservers records for that clientRequest message in exactly theserver should send back an empty IAsame manner as outlined in section 14.3.1 withstatus set to Conf_NoMatch. If the server finds a match totheConfirm thenfollowing difference: IAs The client includes IA options containing theserver should send backaddresses theIAclient currently has assigned to those IAs for the interface through which the Reconfigure-init message was received. 15.3.3. Time out and retransmission of Request messages The client uses the same variables and retransmission algorithm as it does withstatus set to success. 13.4.3.Request messages generated as part of a client-initiated configuration exchange. See section 14.3.1 for details. 15.3.4. Receipt ofRenewReply messages Upon the receipt of a validRenew message from a clientReply message, theserver can respond to, (implementation-specific administrative policy satisfied)client extracts theserver scanscontents of theoptions field. The server then constructs a Reply message"options" field, andsends it to the client.sets (or resets) configuration parameters appropriately. Theserver SHOULD process each option for theclient records and updates the lifetimes for any addresses specified inan implementation-specific manner. The server MUST construct aIAs in the Replymessage containingmessage. If thefollowing values: msg-type REPLY preference Enterconfiguration parameters changed were requested by theservers preference to provide services toapplication layer, theclient. Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page 33] Internet Draft DHCP for IPv6 15 April 2001 transaction-ID Enterclient notifies thetransaction-ID fromapplication layer of theConfirm message. client-link-local address Enterchanges using an implementation-specific interface. As discussed in section 15.2.3, theclient-link-local addressReply from theConfirm message. server address Enter the server's address. When theserverreceives a Renewmay include IAs andIA optionparameters that were not included in the Request message fromathe client. The clientit SHOULD locateMUST configure itself with all of theclients bindingIAs andverify the informationparameters in theIAReply from theclient matches the information stored for that client. If the server cannot find a client entry forserver. 16. Relay Behavior For thisIAdiscussion, theserver SHOULD return an empty IA with status setRelay may be configured toNoBinding. If theuse a list of serverfinds thatdestination addresses, which may include unicast addresses, the All DHCP Servers multicast address, or other multicast addressesinselected by theIA fornetwork administrator. If theclient doRelay has notmatch the clients binding the server should return an empty IA with status set to Renw_NoMatch. Ifbeen explicitly configured, it will use theserver cannot Renew addresses forAll DHCP Servers multicast address as the default. 16.1. Relaying of client messages When a Relay receives a valid client message, itSHOULD send backconstructs a Relay-forward message. The relay places anempty IA toaddress from the interface on which the clientwithmessage was received in thestatus"relay-address" fieldset to Unavail. If the server finds the addresses inand theIAprefix length for that address in theclient then"prefix-length" field. This address will be used by the serverSHOULD send backto identify theIAlink to which the clientwith new lease times and T1/T2 times if the defaultisnot being used,connected andset statuswill be used Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 39] Internet Draft DHCP for IPv6 30 June 2001 by the relay toSuccess. 13.4.4. Receipt of Rebind messages Uponforward thereceipt of a valid RebindAdvertise message froma client the server can respond to, (implementation-specific administrative policy satisfied) the server scanstheoptions field. Theserverthen constructs a Reply message and sends itback to the client. Theserver SHOULD process eachrelay constructs a "client-message" optionfor18.5 that contains the entire message from the client inan implementation-specific manner. The server MUST construct a Reply message containingthefollowing values: msg-type REPLY preference Enterdata field of theservers preference to provide services tooption. The relay places theclient. transaction-ID Enter"relay-message" option along with any "relay-specific" options in thetransaction-ID fromoptions field of theConfirmRelay-forward message.client-link-local address EnterThe Relay then sends theclient-link-local address fromRelay-forward message to theConfirm message.list of serveraddress Enter the server's address. Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page 34] Internet Draft DHCP for IPv6 15 April 2001destination addresses that it has been configured with. 16.2. Relaying of server messages When theserverrelay receives aRebind and IA option from a clientRelay-reply message, itSHOULD locateextracts theclients binding and verifyserver message from theinformation in"server-message" option and forwards theIA frommessage to theclient matchesaddress in theinformation stored for that client. Ifclient-link-local-address field in the servercannot find a client entry for this IAmessage. The relay forwards the serverSHOULD return an empty IA with status setmessage through the interface identified in the "relay-address" field in the Relay-reply message. 17. Authentication of DHCP messages Some network administrators may wish toNoBinding. Ifprovide authentication of theserver finds thatsource and contents of DHCP messages. For example, clients may be subject to denial of service attacks through the use of bogus DHCP servers, or may simply be misconfigured due to unintentionally instantiated DHCP servers. Network administrators may wish to constrain the allocation of addresses to authorized hosts to avoid denial of service attacks in "hostile" environments where theIAnetwork medium is not physically secured, such as wireless networks or college residence halls. Because of the risk of denial of service attacks against DHCP clients, the use of authentication is mandated in Reconfigure-init messages. A DHCP server MUST include an authentication option in Reconfigure-init messages sent to clients. The DHCP authentication mechanism is based on the design of authentication for DHCP for IPv4 [8]. 17.1. DHCP threat model The threat to DHCP is inherently an insider threat (assuming a properly configured network where DHCPv6 ports are blocked on the enterprise's perimeter gateways.) Regardless of the gateway configuration, however, the potential attacks by insiders and outsiders are the same. The attack specific to a DHCP clientdo not matchis theclients bindingpossibility of the establishment of a "rogue" servershould return an empty IAwithstatus setthe intent of providing incorrect configuration information toRebd_NoMatch. Iftheserver cannot Rebind addressesclient. The motivation Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 40] Internet Draft DHCP for IPv6 30 June 2001 for doing so may be to establish a "man in theclientmiddle" attack or itSHOULD send back an empty IAmay be for a "denial of service" attack. There is another threat totheDHCP clients from mistakenly or accidentally configured DHCP servers that answer DHCP client requests withthe status field setunintentionally incorrect configuration parameters. The threat specific toUnavail. If thea DHCP serverfinds the addresses in the IA for theis an invalid clientthen the server SHOULD send back the IAmasquerading as a valid client. The motivation for this may be for "theft of service", or to circumvent auditing for any number of nefarious purposes. The threat common to both the clientwith new lease timesandT1/T2 times ifthedefaultserver isnot being used, and set status to Success. 13.4.5. Receiptthe resource "denial ofRelease messages Uponservice" (DoS) attack. These attacks typically involve thereceiptexhaustion ofavalidRelease message, the server examinesaddresses, or theIAsexhaustion of CPU or network bandwidth, and are present anytime there is a shared resource. In current practice, redundancy mitigates DoS attacks theaddresses inbest. 17.2. Summary of DHCP authentication Authentication of DHCP messages is accomplished through theIAs for validity. Ifuse of theIAsAuthentication option. The authentication information carried in themessage are in a binding forAuthentication option can be used to reliably identify theclientsource of a DHCP message and to confirm that theaddresses incontents of theIAsDHCP message have not beenassigned by the server to those IA, the server deletestampered with. The Authentication option provides a framework for multiple authentication protocols. Two such protocols are defined here. Other protocols defined in theaddresses fromfuture will be specified in separate documents. The protocol field in theIAs and makesAuthentication option identifies theaddresses available for assignmentspecific protocol used toother clients.generate the authentication information carried in the option. Theserver then generatesalgorithm field identifies aReply message. If all ofspecific algorithm within theIAs were valid andauthentication protocol; for example, theaddresses successfully released,,algorithm field specifies theserver setshash algorithm used to generate the"status"message authentication code (MAC) in the authentication option. The replay detection method (RDM) fieldto "Success". If any ofspecifies theIAs were invalid or if anytype of replay detection used in theaddresses were not successfully released,replay detection field. 17.3. Replay detection The Replay Detection Method (RDM) field determines theserver releases nonetype ofthe addressesreplay detection used in themessage and setsReplay Detection field. If the"status"RDM field contains 0x00, the replay detection field MUST be set to"NoBinding"(section 7.4). DISCUSSION: What isthebehaviorvalue ofthe server relative toa"partially released" IA; i.e., an IA for which some but not all addresses are released? Canmonotonically increasing counter. Using aclient send an empty IA to release all addresses in the IA? If the IA becomes empty - all addresses are released - cancounter value such as theserver discard any recordcurrent time of day (e.g., an NTP-format timestamp [12]) can reduce theIA? 13.4.6. Sendingdanger ofReply messages If the Request, Confirm, Renew, Rebind or Release message from the client was originally receivedreplay attacks. This method MUST be supported bythe server, the serverall protocols. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page35]41] Internet Draft DHCP for IPv615 April30 June 2001unicasts the Reply message to the link-local address in the "client-link-local-address" field.17.4. Configuration token protocol If themessage was originally received in a Forward-request or Forward-release message from a relay, the server places the Reply message inprotocol field is 0, theoptionsauthentication information fieldofholds aResponse-replysimple configuration token. The configuration token is an opaque, unencoded value known to both the sender and receiver. The sender inserts the configuration token in the DHCP message andunicaststhe receiver matches the token from the message to therelay's addressshared token. If the configuration option is present and the token from theoriginalmessage does not match the shared token, the receiver MUST discard the message.14. DHCP Server-InitiatedConfigurationExchange A server initiates a configuration exchange to force DHCP clients to obtain new addresses and other configuration information. For example, an administratortoken mayusebe used to pass aserver-initiatedplain-text configurationexchange when links in thetoken and provides only weak entity authentication and no message authentication. This protocol is only useful for rudimentary protection against inadvertently instantiated DHCPdomain areservers. DISCUSSION: The intent here is tobe renumbered.pass a constant, non-computed token such as a plain-text password. Otherexamples include changes in the location of directory servers, additiontypes ofnew servicesentity authentication using computed tokens such asprinting, and availability of new software (systemKerberos tickets orapplication). 14.1. Reconfigure-init Message Validation Agents MUST silently discard any received Reconfigure-init messages. Clients MUST discard any Reconfigure-init messages that do not contain anone-time passwords will be defined as separate protocols. 17.5. Delayed authenticationoption or that failprotocol If theclient's authentication check. Clients MUST discard any Reconfigure-init messages that contain a transaction-ID that matchesprotocol field is 1, thetransaction-ID in a Reconfigure-initmessagepreviously received fromis using thesame DHCP server. 14.2. Server Behavior A server sends a Reconfigure-init message to trigger a client to initiate immediately a Request/Reply message exchange with"delayed authentication" mechanism. In delayed authentication, theserver. A server may unicast a Reconfigure-init message directly to a singleclientor use multicast to deliver a Reconfigure-initrequests authentication in its Solicit messageto multiple clients. 14.2.1. Creationandsending of Reconfigure-init messages Thethe serversetsreplies with an Advertise message that includes authentication information. This authentication information contains a nonce value generated by the"msg-type" fieldsource as a message authentication code (MAC) toRECONFIG.provide message authentication and entity authentication. Theserver generatesuse of atransaction-ID and inserts it inparticular technique based on the"transaction-ID" field. The server places its address (of appropriate scope)HMAC protocol [10] using the MD5 hash [19] is defined here. 17.5.1. Management issues in the"server-address" field.delayed authentication protocol Theserver MAY include an ORO option"delayed authentication" protocol does not attempt toinform theaddress 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 where the out-of-band exchange ofwhat information has been changed or new information that has been added.a shared secret is feasible. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page36]42] Internet Draft DHCP for IPv615 April30 June 2001The server MUST include an authentication option with the appropriate settings and add that option as17.5.2. Use of thelastAuthentication option in the"options" field of the Reconfigure-init message. The server MAY includedelayed authentication protocol In aReconfigure-delaySolicit message, the Authentication optionin a Reconfigure-init message to be unicast to a client,carries the Protocol, Algorithm, RDM andMUST include a Reconfigure-delayReplay detection fields, but no Authentication information. In an Advertise, Request, Renew, Rebind or Confirm message, the Authentication optionin a Reconfigure-init message to be multicast to a group of clients.carries the Protocol, Algorithm, RDM and Replay detection fields and Authentication information. Theserver MUST NOT include any other optionsformat of the Authentication 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 in theReconfigure-init exceptdescription of the authentication information for delayed authentication, algorithm 1: Replay Detection - asspecifically allowed indefined by thedefinition of individual options. The server may either unicastRDM field K - a secret value shared between theReconfigure-init message to one client or multicastsource and destination of themessage to one or more Reconfigure Multicast Addresses previously sent as options tomessage; each secret has a unique identifier (secret ID) secret ID - theclients. The server may unicast Reconfigure-init messages to more than one client concurrently;unique identifier forexample, to reliably reconfigure all clients,theserver will unicast a Reconfigure-init messagesecret value used toeach client. Ifgenerate theserver unicasts to one or more clients, it waitsMAC fora Requestthis messagefrom those clients confirming that it has received the Reconfigure-init and are thus initiating a Request/Reply transaction withHMAC-MD5 - theserver.MAC generating function. Theserver can determine that a Request message is in response to a Reconfigure-init becausesender computes thetransaction-ID inMAC using theRequest will beHMAC generation algorithm [10] and thesame valueMD5 hash function [19]. The entire DHCP message (except aswas used in the Reconfigure-init message. If the server multicastsnoted below), including theReconfigure-init message, it must use some TBD authentication mechanism that can authenticateDHCP message header and theserver to multiple clients. Thereoptions field, isno reliability mechanism for multicast Reconfigure-init messages. A server might use multicast inused as input to thecase where it does not have a list of its clients; for example, a server that distributes configuration informationHMAC-MD5 computation function. The 'secret ID' field MUST be set toclients using stateless autoconfiguration might not keep a list of clients it has communicated with. DISCUSSION: Authenticationthe identifier ofmulticast reconfigure-init is still an open issue. See section 18.2 for recommendations onthe secret used to generate the MAC. DISCUSSION: Algorithm 1 specifies the use ofmulticast and unicast Reconfigure-init messages for reliable client reconfiguration. 14.2.2. Time out and retransmissionHMAC-MD5. Use ofunicast Reconfigure-init messages If the server does not receiveaRequest message from thedifferent technique, such as HMAC-SHA, will be specified as a separate protocol. Delayed authentication requires a shared secret key for each clientin RECREP_MSG_TIMEOUT milliseconds, theon each DHCP serverretransmits the Reconfigure-init message, doubleswith which that client may wish to use theRECREP_MSG_TIMEOUT value and waits again. The server continues this process untilDHCP protocol. Each secret key has a unique identifier that can be used by a receiver to determine which Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page37]43] Internet Draft DHCP for IPv615 April30 June 2001REC_MSG_ATTEMPTS unsuccessful attempts have been made, atsecret was used to generate the MAC in the DHCP message. Therefore, delayed authentication may not scale well in an architecture in whichpointa DHCP client connects to multiple administrative domains. 17.5.3. Message validation To validate an incoming message, theserver SHOULD abortreceiver first checks that thereconfigure process. Defaultvalue in the replay detection field is acceptable according to the replay detection method specified by the RDM field. Next, the receiver computes the MAC as described in [10]. The receiver MUST set the 'MAC' field of the authentication option to all 0s for computation of the MAC, andinitialbecause a DHCP relay agent may alter the valuesfor RECREP_MSG_TIMEOUTof the 'giaddr' andREC_MSG_ATTEMPTS are documented'hops' fields insection 7.5. 14.2.3. Time out and retransmissionthe DHCP message, the contents ofmulticast Reconfigure-init messages Afterthose two fields MUST also be set to zero for theserver transmitscomputation of theinitial Reconfigure-init message,MAC. If the MAC computed by the receiver does not match the MAC contained in theserver waits RECREP_MSG_TIMEOUT milliseconds. The server then retransmitsauthentication option, theReconfigure-init message, doublesreceiver MUST discard theRECREP_MSG_TIMEOUT value and waits again. The server repeats this process untilDHCP message. 17.5.4. Key utilization Each DHCP client has atotal of REC_MSG_ATTEMPTS Reconfigure-initkey, K. The client uses its key to encode any messageshave been transmitted. Defaultit sends to the server andinitial values for RECREP_MSG_TIMEOUTto authenticate andREC_MSG_ATTEMPTS are documented in section 7.5. 14.2.4. Receipt of Requestverify any messages it receives from the server. Theserver generates and sends Reply message(s)client's key SHOULD be initially distributed to the clientas described in section 13.4.6, includingthrough some out-of-band mechanism, and SHOULD be stored locally on the client for use in all authenticated DHCP messages. Once the"option" field new valuesclient has been given its key, it SHOULD use that key for all transactions even if the client's configurationparameters. 14.3. Client Behavior Achanges; e.g., if the client is assigned a new network address. Each DHCP server MUSTalways monitor UDP port 546know, or be able to obtain in a secure manner, the keys forReconfigure-initall authorized clients. If all clients use the same key, clients can perform both entity and message authentication for all messageson interfaces upon which it has acquired DHCP parameters. Sincereceived from servers. However, theresultssharing of keys is strongly discouraged as it allows for unauthorized clients to masquerade as authorized clients by obtaining areconfiguration event may affect application layer programs, the client SHOULD log these events, and MAY notify these programscopy of thechange through an implementation-specific interface. 14.3.1. Receipt of Reconfigure-init messages Upon receipt of a valid Reconfigure-init message,shared key. To authenticate the identity of individual clients, each clientinitiates a Request/Reply transactionMUST be configured withthe server. 14.3.2. Creation and sending of Requesta unique key. 17.5.5. Client considerations for delayed authentication protocol 17.5.5.1. Sending Solicit messages Whenresponding to a Reconfigure-init,the clientcreates andsendsthe Requesta Solicit messagein exactlyand wishes to use authentication, it includes an Authentication option with thesame mannerdesired protocol, algorithm, RDM and replay detection field asoutlineddescribed in section13.3.1 with the following differences: transaction-ID17.5. The clientcopies the transaction-ID fromdoes not include any authentication information in the Authentication option. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page38]44] Internet Draft DHCP for IPv615 April30 June 2001Reconfigure-init message into the Request message. IAs17.5.6. Receiving Advertise messages The clientincludes IA optionsvalidates any Advertise messages containing an Authentication option specifying theaddressesdelayed authentication protocol using theclient currently has assigned to those IAs forvalidation test described in section 17.5.3. Client behavior if no Advertise messages include authentication information or pass theinterface through whichvalidation test is controlled by local policy on theReconfigure-init message was received. Pause before sending Request Theclient. According to clientpauses before sendingpolicy, theRequest forclient MAY choose to respond to arandom value withinAdvertise message that has not been authenticated. The decision to set local policy to accept unauthenticated messages should be made with care. Accepting an unauthenticated Advertise message can make therange REC_REP_MINclient vulnerable to spoofing andREC_REP_MAX seconds. This delay helps reduceother attacks. If local users are not explicitly informed that theload onclient has accepted an unauthenticated Advertise message, theserver generated by processing large numbers of triggered Request messages from a multicast Reconfigure-init message. 14.3.3. Time outusers may incorrectly assume that the client has received an authenticated address andretransmission of Request messages Theis not subject to DHCP attacks through unauthenticated messages. A clientuses the same variablesMUST be configurable to discard unauthenticated messages, andretransmission algorithm as it does with Request messages generated as part of a client-initiated configuration exchange. See section 13.3.1 for details. 14.3.4. Receipt of ReplySHOULD be configured by default to discard unauthenticated messages. A client MAY choose to differentiate between Advertise messagesUponwith no authentication information and Advertise messages that do not pass thereceipt ofvalidation test; for example, avalid Reply message, theclientextracts the contents ofmight accept the"option" field,former andsets (or resets) configuration parameters appropriately. Thediscard the latter. If a clientrecords and updatesdoes accept an unauthenticated message, thelifetimes forclient SHOULD inform anyaddresses specified in IAs inlocal users and SHOULD log theReply message.event. 17.5.6.1. Sending Request, Confirm, Renew, Rebind or Release messages If theconfiguration parameters changed were requested byclient authenticated theapplication layer,Advertise message through which the clientnotifies the application layer ofselected thechanges using an implementation-specific interface. 15. Relay Behavior For this discussion,server, theRelay may be configuredclient MUST generate authentication information for subsequent Request, Confirm, Renew, Rebind or Release messages sent touse a list ofthe serverdestination addresses, which may include unicast addresses,as described in section 17.5. When theAll DHCP Servers multicast address, or other multicast addresses selectedclient sends a subsequent message, it MUST use the same secret used by thenetwork administrator.server to generate the authentication information. 17.5.6.2. Receiving Reply messages If theRelay has not been explicitly configured,client authenticated the Advertise itwill useaccepted, theAll DHCP Servers multicast address asclient MUST validate thedefault. 15.1. Relaying ofassociated Reply message from the server. The clientmessages When a Relay receives a validMUST discard the Reply if the message fails to pass validation and MAY log the validation failure. If the Reply fails to pass validation, the clientmessage, it constructsMUST restart the DHCP configuration process by sending aRelay-forwardSolicit message. Therelay places an addressclient MAY choose to remember which server replied with a Reply message that failed to pass validation and discard subsequent messages from that server. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page39]45] Internet Draft DHCP for IPv615 April30 June 2001the interface on whichIf the client accepted an Advertise messagewas received in the "relay-address" field and the prefix length forthataddress in the "prefix-length" field. This address will be used by the server to identifydid not include authentication information or did not pass thelink to whichvalidation test, the clientis connected and will be used by the relay to forward the AdvertiseMAY accept an unauthenticated Reply message from theserver back to the client.server. 17.5.7. Server considerations for delayed authentication protocol 17.5.7.1. Receiving Solicit messages and Sending Advertise messages Therelay constructsserver selects a"client-message" option 16.4 that containssecret for theentireclient and includes authentication information in the Advertise messagefromreturned to the client as specified in section 17.5. The server MUST record thedata fieldidentifier of theoption. The relay placessecret selected for the"relay-message" option alongclient and use that same secret for validating subsequent messages withany "relay-specific" optionsthe client. 17.5.7.2. Receiving Request, Confirm, Renew, Rebind or Release messages and Sending Reply messages The server uses the secret identified in theoptions field ofmessage and validates theRelay-forward message. The Relay then sendsmessage as specified in section 17.5.3. If theRelay-forwardmessage fails to pass validation or thelist of server destination addresses that it has been configured with. 15.2. Relaying ofservermessages Whendoes not know therelay receives a Relay-reply message, it extractssecret identified by the 'secret ID' field, the servermessage fromMUST discard the"server-message" optionmessage andforwardsMAY choose to log the validation failure. If the message passes the validation procedure, the server responds to theaddressspecific message as described in section 14.4. The server MUST include authentication information generated using the secret identified in theclient-link-local-address fieldreceived message as specified inthe server message.section 17.5. 17.5.7.3. Sending Reconfigure-Init messages Therelay forwards theservermessage through the interface identifiedMUST include authentication information inthe "relay-address" fielda Reconfigure-Init message, generated as specified in section 17.5 using theRelay-reply message. 16.secret the server initially selected for the client to which the Reconfigure-Init message is to be sent. 18. DHCP options Options are used to carry additional information and parameters in DHCP messages. Every option shares a common base format, as described in section16.1. this18.1. This document describes the DHCP options defined as part of the base DHCP specification. Other options may be defined in the future in a separate document.16.1.Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 46] Internet Draft DHCP for IPv6 30 June 2001 18.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 the specific option type carried in this option. option-len An unsigned integer giving the length of the data in this option in octets.Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page 40] Internet Draft DHCP for IPv6 15 April 2001option-data The data for the option; the format of this data depends on the definition of the option.16.2.18.2. DHCP unique identifier option The DHCP unique identifier option is used to carry a DUID. The format for the DUID is keyed to mark the type of identifier and is of variable length. The format of the DUID 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 DUID | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DUID type | DUID len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DUID | . . . . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 18.3. Identity association option The identity association option is used to carry an identity association, the parameters associated with the IA and the addresses assigned to the IA. The format of the IA option is: Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 47] Internet Draft DHCP for IPv6 30 June 2001 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |IA DUID | | (8IAID (4 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | T1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | T2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IA status | num-addrs||T| addr status | prefix length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | IPv6 address | | (16 octets) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | preferred lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | valid lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+||T| addr status | prefix length | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | IPv6 address | | (16 octets) | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | preferred lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | pref. lifetime (cont.) | valid lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | valid lifetime (cont.) |T| addr status |IPv6 addressprefix length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |...|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_IA (1) Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page 41] Internet Draft DHCP for IPv6 15 April 2001IPv6 address | | (16 octets) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_IA (1) option-len Variable; equal to1824 +num-addrs*25num-addrs*26 IADUIDID The unique identifier for this IA; chosen by the client T1 The time at which the client contacts the server from which the addresses in the IA Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 48] Internet Draft DHCP for IPv6 30 June 2001 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 of the addresses assigned to the IA. T When set to 1, indicates that this address is a "temporary address" [15]; when set to 0, the address is not a temporary address. IA status Status of the IA in this option. num-addrs An unsigned integer giving the number of addresses carried in this IA option (MAY be zero). addr status Status of the addresses in thisaddress.IA. prefix length Prefix length for this address. IPv6 address An IPv6 address assigned to this IA. preferred lifetime The preferred lifetime for the associated IPv6 address. valid lifetime The valid lifetime for the associated IPv6 address. The "IPv6 address", "preferred lifetime" and "valid lifetime" fields are repeated for each address in the IA option (as determined by the "num-addrs" field).DISCUSSION: The details of the format and the selection of an IA's DUID are TBD.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 as having expired. T1 and T2 are included to give servers explicit control over when a client recontacts the server about a specific IA. The 'T' bit identifies the associated address as a temporary address. If the server is configured to assign temporary addresses to the client, the server marks those temporary addresses with the 'T' bit. The number of temporary addresses assigned to the client and the lifetimes of those addresses is determined by the administrative configuration of the server. The 'T' bit only identifies an address as a temporary address; identification of an address as ``temporary'' has no implication on the lifetime of the extensibility of the lifetime of the address. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page42]49] Internet Draft DHCP for IPv615 April30 June 200116.3.18.4. Option request 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_ORO | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | requested-option-code-1 | requested-option-code-2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_ORO (2) option-len Variable; equal to twice the number of option codes carried in this option. option-data A list of the option codes for the options requested in this option.16.4.18.5. 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 (3) option-len Variable; equal to the length of the forwarded DHCP client message. option-data The message received from the client; forwarded verbatim to the server. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page43]50] Internet Draft DHCP for IPv615 April30 June 200116.5.18.6. 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_SERVER_MSGOPTION_SERVER_MSG | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DHCP server message | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_SERVER_MSG (4) option-len Variable; equal to the length of the forwarded DHCP server message. option-data The message received from the server; forwarded verbatim to the client. 18.7. Retransmission parameter 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_RETRANS_PARM | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |DHCP server messageoption-data | | (option-len octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-codeOPTION_SERVER_MSG (4)OPTION_RETRANS_PARM (5) option-lenVariable; equal toAn unsigned integer giving the length of theforwarded DHCP server message.data in this option in octets. option-data TBD - Themessage receiveddetails of the operational parameters to be set in the client 18.8. DSTM Global IPv4 Address Option The DSTM Global IPv4 Address Option informs a client or server that the Identity Association Option (IA) following this option will contain an IPv4-Mapped IPv6 Address [9] in the case of a Client receiving the option, or is a Request for an IPv4-Mapped IPv6 Address from a client in theserver; forwarded verbatimcase of a DHCPv6 Server receiving the option. The option can also provide a set of IPv6 addresses to be used as theclient. 16.6. Retransmission parameterTunnel Endpoint (TEP) to encapsulate an IPv6 packet within IPv6. Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 51] Internet Draft DHCP for IPv6 30 June 2001 This option can be used with the Request, Reply, and Reconfigure-Init Messages for cases where a server wants to assign to clients IPv4-Mapped IPv6 Addresses, thru the Option Request Option (ORO). 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_RETRANS_PARMOPTION_DSTM |option-lenoption-length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |option-dataTunnel End Point (TEP) | |(option-len(If Present) | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+option-code OPTION_RETRANS_PARM (5) option-len An unsigned integer giving theoption code OPTION_DSTM (7) option length Variable: 0 or multiple of 16 tunnel end point IPv6 Address or addresses if Present A DSTM IPv4 Global Address Option MUST only apply to the IA following this option. 18.9. Authentication option The Authentication option carries authentication information to authenticate the identity and contents of DHCP messages. The use of thedata in thisAuthentication option is described inoctets. option-data TBD -section 17. Thedetailsformat of theoperational parameters to be set in the client 16.7. Reconfigure-delay option The Reconfigure-delayAuthentication optionspecifies the amount of time a client should delay before sending a Request message in response to a Reconfigure-init message. Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page 44] Internet Draft DHCP for IPv6 15 April 2001is: 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_DELAYOPTION_AUTH |option-lenoption-length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |minimum delay time (msec)Protocol | Algorithm | RDM | Replay detect.| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Replay Detection (64 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Replay cont. | Auth. Info | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Authentication Information | |maximum delay time (msec)| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-codeOPTION_RECONF_DELAY (6) option-len An unsigned integer giving the length of the dataOPTION_AUTH (TBD) Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 52] Internet Draft DHCP for IPv6 30 June 2001 option-length Variable protocol The authentication protocol used in this authentication option algorithm The algorithm used inoctets. minimum delay time An unsigned integer giving the minimum delay time in milliseconds maximum delay time An unsigned integer givingthemaximum delay timeauthentication protocol RDM The replay detection method used inmillisecondsthis authentication option Replay detection Theclient chooses a random number between the minimum delay time andreplay detection information for themaximum delay time and delays that number of milliseconds before sending its Request message. 16.8. DSTM Global IPv4 Address OptionRDM Authentication information TheDSTM Global IPv4 Address Option informs a client or server thatauthentication information, as specified by theIdentity Association Option (IA) followingprotocol and algorithm used in this authentication option 18.10. Server unicast option This optionwill contain an IPv4-Mapped IPv6 Address [7] in the case of a Client receiving the option, oris used by aRequest for an IPv4-Mapped IPv6 Address fromserver to send to a clientinto inform thecase ofclient it can send aDHCPv6 Server receivingRequest, Renew, Confirm, Release, and Decline by unicasting directly to theoption. The option can also provide an IPv6server instead of the ALL-DHCPv6-Agents Multicast addressto be usedasthe Tunnel Endpoint (TEP) to encapsulateanIPv4 packet within IPv6. This option can be used withoptimization, when theRequest, Reply, and Reconfigure-Init Messages for cases where a server wants to assignclient as an address of sufficient scope toclients IPv4-Mapped IPv6 Addresses, thrureach theOption Request Option (ORO).server. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |OPTION_DSTMOPTION_UNICAST | option-length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Tunnel End Point (TEP) | | (If Present) | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page 45] Internet Draft DHCP for IPv6 15 April 2001 option code OPTION_DSTM (7) option length Variable:option-code OPTION_UNICAST (TBD) option-length 0or 16 tunnel end point IPv6 Address if Present A DSTM IPv4 Global Address Option MUSTThis option onlyapplyapplies to theIA followingserver address that sends thisoption. 16.9. Authentication option The authentication option is TBD. 17. DHCP Client Implementor Notesto the client. 18.11. Domain Search Option Thissectionoption provideshelpful information for the client implementor regarding their implementations. The text described here is not part of the protocol, but ratheradiscussionlist ofimplementation features we feel the implementor should consider during implementation. 17.1. Primary Interface Since configuration parameters acquired throughdomain names a client can use to resolve DNS names. 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_DOMAIN_SEARCH_LIST | option-length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 53] Internet Draft DHCPcan be interface-specific or more general, the client implementor SHOULD provide a mechanism by whichfor IPv6 30 June 2001 | Domain Search List | | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ msg type OPTION_DOMAIN_SEARCH_LIST (TBD) option-length variable Domain Search List The DNS domain search list the clientimplementation can be configuredshould use tospecify which interface is the primary interface. The client SHOULD always query the DHCP data associated withresolve names. So that theprimary interface for non-interface specific configuration parameters. An implementation MAY implement asearch listof interfaces which wouldmay bescannedencoded compactly and uniformly, search strings inorder to satisfy the general request. In either case,thefirst interface scanned is consideredsearch list are concatenated and encoded using theprimary interface. By allowingtechnique described in section 4.1 of [13]. For use in this specification, thespecificationcompression pointer (see section 4.1.4 ofa primary interface,[13]) refers to theclient implementor identifies which interface is authoritative for non-interface specific parameters, which prevents configuration information ambiguityoffset within theclient implementation. 17.2. Advertise Message and Configuration Parameter Caching If the hardware the client is running on permits it,SearchString portion of theimplementor SHOULD provideoption. 18.12. Domain Name Server Option This option provides acache for Advertise messages andlist of Domain Name System [13] that acacheclient name resolver can use to access DNS services. There must be at least 1 server listed in this 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_DNS_SERVERS | option_length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | DNS server (IP address) | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | DNS server (IP address) | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ msg-type OPTION_DNS_SERVERS (TBD) option-length variable DNS server IPv6 address ofconfiguration parameters received through DHCP. Providing these caches prevents unnecessary DHCP traffic and the subsequent load this generates on the servers. The implementor SHOULD provideaconfiguration knobDNS name server forsetting the amount of timethecache(s)client to use. The DNS servers arevalid.listed in Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page46]54] Internet Draft DHCP for IPv615 April30 June 200117.3. Time out and retransmission variables Note thatthe order of preference for use by the clienttime out and retransmission variables outlined inresolver. 19. DHCP Client Implementor Notes This section7.5 can be configured on the server and sent toprovides helpful information for the clientthrough the useimplementor regarding their implementations. The text described here is not part of the"DHCP Retransmission Parameter Option", which is documented in section 16.6. A clientprotocol, but rather a discussion of implementationSHOULDfeatures we feel the implementor should consider during implementation. 19.1. Primary Interface Since configuration parameters acquired through DHCP can beable to reset these variables usinginterface-specific or more general, thevalues from this option. 17.4. Server Preference AclientMUST wait for SRVR_PREF_WAIT seconds after sendingimplementor SHOULD provide aDHCP Solicit messagemechanism by which the client implementation can be configured tocollect Advertise messages and compare their preferences (see section 18.3), unless it receives an Advertise message with a preference of 255. Ifspecify which interface is the primary interface. The clientreceives an Advertise messageSHOULD always query the DHCP data associated with the primary interface for non-interface specific configuration parameters. An implementation MAY implement apreferencelist of255, theninterfaces which would be scanned in order to satisfy theclient MAY act immediately on that Advertise without waiting for any more additional Advertise messages. 18. DHCP Server Implementor Notes This section provides helpful information forgeneral request. In either case, theserver implementor. 18.1. Client Bindings A server implementation MUST usefirst interface scanned is considered theIA's DUID andprimary interface. By allowing theprefixspecificationfrom whichof a primary interface, the clientsent its Request message(s) as an indeximplementor identifies which interface is authoritative forfindingnon-interface specific parameters, which prevents configurationparameters assigned toinformation ambiguity within theclient. While it isn't critical to keep track ofclient implementation. 19.2. Advertise Message and Configuration Parameter Caching If theother parameters assigned to a client,hardware theserver MUST keep track ofclient is running on permits it, theaddresses it has assigned to an IA. The server should periodically scan its bindingsimplementor SHOULD provide a cache foraddresses whose leases have expired. When the server finds expired addresses, it MUST delete the assignmentAdvertise messages and a cache ofthose addresses, thereby makingconfiguration parameters received through DHCP. Providing theseaddresses available to other clients. The client bindings MUST be stored in non-volatile storage.caches prevents unnecessary DHCP traffic and the subsequent load this generates on the servers. Theserver implementation shouldimplementor SHOULD providepolicy knobs to control whether or nota configuration knob for setting the amount of time thelifetimes on assigned addressescache(s) arerenewable,valid. 19.3. Time out andby how long. 18.2. Reconfigure-init Considerations Aretransmission variables Note that the client time out and retransmission variables outlined in section 7.5 can be configured on the serverimplementation MUST provide an interfaceand sent to theadministrator for initiating reconfigure-init events.client through the use of the "DHCP Retransmission Parameter Option", which is documented in section 18.7. Aserverclient implementationmay provide a mechanism for allowingSHOULD be able to reset these variables using thespecification of how many clients comprise a reconfigure multicastvalues from this option. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page47]55] Internet Draft DHCP for IPv615 April30 June 2001group. This enables the administrator to control the processing load impact of the multicast of19.4. Server Preference A client MUST wait for SRVR_PREF_WAIT seconds after sending aReconfigure-init message. 18.2.1. Reliable transmission of multicast Reconfigure-init messages Because clients will ignore Reconfigure-initDHCP Solicit message to collect Advertise messages and compare their preferences (see section 20.3), unless it receives an Advertise message withthe same transaction-ID, a server can retransmitaReconfigure-init message (usingpreference of 255. If thesame transaction-ID) without causing anyclientto reply more than once. A server SHOULD retransmit a multicast Reconfigure-init message several times to maximize the probability that all clients in the multicast group have received the Reconfigure-init message. If a server does not receive a Replyreceives an Advertise messagefrom some clients inwith amulticast group,preference of 255, then theserverclient MAYchoose to unicast a Reconfigure-init message to those clients. Because the clients may have received the multicast Reconfigure-init messages whileact immediately on that Advertise without waiting for any more additional Advertise messages. 20. DHCP Server Implementor Notes This section provides helpful information for the serverdid not receive the clients' Reply messages, theimplementor. 20.1. Client Bindings A serverSHOULDimplementation MUST usea different transaction-ID intheunicast Reconfigure-init messages to triggerIA's DUID and the prefix specification from which the client sent its Request message(s) as an index for finding configuration parameters assigned toreconfigure. 18.3. Server Preference The server implementation SHOULD allowthesettingclient. While it isn't critical to keep track of the other parameters assigned to a client, the serverpreference value byMUST keep track of theadministrator.addresses it has assigned to an IA. The serverpreference variable is an unsigned single octet value (0--255), withshould periodically scan its bindings for addresses whose leases have expired. When thelowest preference being 0 andserver finds expired addresses, it MUST delete thehighest 255. Clients will choose higher preference servers overassignment of thosewith lower preference values. If you don't chooseaddresses, thereby making these addresses available toimplement this feature in your server, youother clients. The client bindings MUSTset the server preference field to 0be stored inthe Advertise messages generated by your server. 18.4. Request Message Transaction-ID Cache In order to improve performance, anon-volatile storage. The server implementationMAY include an in memory transaction-ID cache. This cache is indexed by client binding and transaction-ID, and enables the servershould provide policy knobs toquickly determinecontrol whethera Request is a retransmissionora new Request withoutnot thecost of a database lookup. If an implementor chooses to implement this cache, then they SHOULDlifetimes on assigned addresses are renewable, and by how long. 20.2. Reconfigure-init Considerations A server implementation MUST providea configuration knoban interface totunethelifetime of the cache entries. 19. DHCP Relay Implementor Notes A relayadministrator for initiating reconfigure-init events. 20.3. Server Preference The server implementation SHOULD allow thespecification of a list of destination addresses for forwarded messages. This list MAY contain any mixturesetting ofunicast addresses and multicast addresses. Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page 48] Internet Draft DHCP for IPv6 15 April 2001 If a relay receives an ICMP message in response toaDHCP message it has forwarded, it SHOULD log this event. 20. Open Issues for Working Group Discussion This section contains some items for discussionserver preference value by theworking group. 20.1. Authentication Authentication is not discussed in this document. Authentication will be modeled on DHCPv4 authentication. Authentication of multicast Reconfigure-init messagesadministrator. The server preference variable isa special problem. 20.2. Identification of IAs by servers Do servers identifyanIA just by its DUID or by <prefix, DUID>? If just by DUID, are DUIDs guaranteed unique (withinunsigned single octet value (0--255), with theDHCP universe)? If so, how is that guarantee implemented? 20.3. DHCP-DNS interaction Interaction among DHCP servers, clientslowest preference being 0 andDNS servers is not discussed in this document. 20.4. Temporary addresses How does DHCPv6 interact with temporary addresses? Iftheserver assigns temporary addresses (e.g., addresses with short lifetimes), how can a client applicationhighest 255. Clients will choose higher preference servers over those with lower preference values. If you don't choosean temporary address as a source address in preference to a non-temporary address? 20.5. Use of term "agent" The term "agent", taken to mean "relay agent or server", may be confusing. "relay agent or server" might be clearer. 20.6. Client behavior when responsetoRebind is not received Section 13.3.4 describes several plausible waysimplement this feature inwhich a client might respond when it does not receive a Reply to a Rebind message. The acceptable client behaviors needyour server, you MUST set the server preference field tobe defined and described0 in13.3.4.the Advertise messages generated by your server. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page49]56] Internet Draft DHCP for IPv615 April30 June 200120.7. Additional options Which additional options should be included in this base spec document? 20.8. Operational parameters Should servers have20.4. Request Message Transaction-ID Cache In order to improve performance, a server implementation MAY include anoptionin memory transaction-ID cache. This cache is indexed by client binding and transaction-ID, and enables the server toset operational parameters -quickly determine whether a Request is a retransmissiontimeouts, numberor a new Request without the cost ofretries - in clients? 21. Security This document referencesa database lookup. If an"authentication option" which is TBD. DISCUSSION: Based onimplementor chooses to implement this cache, then they SHOULD provide a configuration knob to tune thediscussionlifetime ofsecurity issues atthe8/31/00 design team teleconference and subsequent DHC WG mailing list discussion, DHCPv6 will usecache entries. 21. DHCP Relay Implementor Notes A relay implementation SHOULD allow thesecurity model from DHCPv4, as describedspecification of a list of destination addresses for forwarded messages. This list MAY contain any mixture of unicast addresses and multicast addresses. If a relay receives an ICMP message indraft-ietf-dhc-authentication-16.txt (which is soonresponse tobe an RFC).a DHCP message it has forwarded, it SHOULD log this event. 22. Security Section 17 describes a threat model and an option that provides an authentication framework to defend against that threat model. 23. 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.23.24. 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. New values in each of these name spaces should be approved by the process of IETF Consensus [14]. 24.1. DHCPv6 options This document defines message types TBD to be received by UDP at port numbers 546 and 547. Additional message types may be defined in the future. Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 57] Internet Draft DHCP for IPv6 30 June 2001 24.2. Multicast addresses Section 7.1 lists several multicast addresses used by DHCP.This document alsoAdditional multicast addresses may be defined in the future. 24.3. Status codes Section 9.7 defines several status codes that are to be returned with the Replymessage (seemessage. The non-zero values for these status codes that are currently specified are shown in the table in section 7.4. 24.4. Retransmission parameter option There is a DHCPv6 option described in section 18.7, which allows clients and servers to exchange values for some of the timing and retransmission parameters defined in section 7.5. Adding new parameters in the future would require extending the values by which the parameters are indicated in the DHCP option. Since there needs to be a list kept, the default values for each parameter should also be stored as part of the list. 24.5. Authentication option Section 17 defines three new name spaces associated with the Authentication Option (section 18.9), which are to be created and maintained by IANA: Protocol, Algorithm and RDM. Initial values assigned from the Protocol name space are 0 (for the configuration token Protocol in section 17.4) and 1 (for the delayed authentication Protocol in section9.7).17.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. Thenon-zeroguidelines for assigning Algorithm name space values forthese status codes which are currentlya particular protocol should be specifiedare shown inalong with thetable in section 7.4. There isdefinition of aDHCPv6 optionnew Protocol. For the configuration token Protocol, the Algorithm field MUST be 0, as described in section16.6, which allows clients and servers17.4. For the delayed authentication Protocol, the Algorithm value 1 is assigned toexchange values for some ofthetiming and retransmission parametersHMAC-MD5 generating function as defined in section7.5. Adding new parameters in the future would require extending the values by which17.5. Additional algorithms for theparameters are indicateddelayed authentication protocol may be defined in theDHCP option. Since there needsfuture. The initial value of 0 from the RDM name space is assigned tobe a list kept,thedefault values for each parameter should also be stored as partuse of a monotonically increasing value as defined in section 17.3. Additional replay detection methods may be defined in thelist.future. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page50]58] Internet Draft DHCP for IPv615 April30 June 2001All of these protocol elements may be specified to assume new values at some point in the future. New values should be approved by the process of IETF Consensus [9]. 24.25. Acknowledgments Thanks to the DHC Working Group for their time and input into the specification. Ralph Droms and Thomas Narten have had a major role in shaping the continued improvement of the protocol by their careful reviews. Many thanks to Matt Crawford, Erik Nordmark, Gerald Maguire, and Mike Carney for their studied review as part of the Last Call process. Thanks also for the consistent input, ideas, and review by (in alphabetical order) Brian Carpenter, Francis DuPont, Ted Lemon, Jack McCann, Yakov Rekhter, Matt Thomas, Sue Thomson, Bernie Volz 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 section 17. The Domain Search option described in section 18.11 is based on the DHCPv4 domain search option, [1], and was reviewed by Bernard Aboba. A. Comparison between DHCPv4 and DHCPv6 This appendix is provided for readers who will find it useful to see a model and architecture comparison between DHCPv4[6, 1][7, 2] and DHCPv6. There are three key reasons for the differences: o IPv6 inherently supports a new model and architecture for communications and autoconfiguration of addresses. o DHCPv6 benefits from the new IPv6 features. o New features were added to support the expected evolution and the existence of more complicated Internet network service requirements. IPv6 Architecture/Model Changes: o The link-local address permits a node to have an address immediately when the node boots, which means all clients have a source IP address at all times to locate an on-link server or relay. o The need for BOOTP compatibility and the broadcast flag have been removed. o Multicast and address scoping in IPv6 permit the design of discovery packets that would inherently define their range by the multicast address for the function required.o Stateful autoconfiguration has to coexist and integrate with stateless autoconfiguration supporting Duplicate AddressBound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page51]59] Internet Draft DHCP for IPv615 April30 June 2001 o Stateful autoconfiguration has to coexist and integrate with stateless autoconfiguration supporting Duplicate Address Detection and the two IPv6 lifetimes, to facilitate the dynamic renumbering of addresses and the management of those addresses. o Multiple addresses per interface are inherently supported in IPv6. o Some DHCPv4 options are unnecessary now because the configuration parameters are either obtained through IPv6 Neighbor Discovery or the Service Location protocol[14].[21]. DHCPv6 Architecture/Model Changes: o The message type is the first octet in the packet. o IPv6 Address allocations are now handled in a message option as opposed to the message header. o Client/Server bindings are now mandatory and take advantage of the client's link-local address to always permit communications either directly from an on-link server, or from a off-link server through an on-link relay. o Servers are discovered by a client Solicit, followed by a server Advertise message o The client will know if the server is on-link or off-link. o The on-link relay may locate off-link server addresses from system configuration or by the use of a site-wide multicast packet. o ACKs and NAKs are not used. o The server assumes the client receives its responses unless it receives a retransmission of the same client request. This permits recovery in the case where the network has faulted. o Clients can issue multiple, unrelated Request messages to the same or different servers. o The function of DHCPINFORM is inherent in the new packet design; a client can request configuration parameters other than IPv6 addresses in the optional option headers. o Clients MUST listen to their UDP port for the newReconfigureReconfigure-init message from servers. o New options have been defined. With the changes just enumerated, we can support newuser features, including o Configuration of Dynamic Updates to DNSuser features, including Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page52]60] Internet Draft DHCP for IPv615 April30 June 2001 o Configuration of Dynamic Updates to DNS o Address deprecation, for dynamic renumbering. o Relays can be preconfigured with server addresses, or use of multicast. o Authentication o Clients can ask for multiple IP addresses. o Addresses can be reclaimed using the Reconfigure-init message. o Integration between stateless and stateful address autoconfiguration. o Enabling relays to locate off-link servers. B. Full Copyright Statement Copyright (C) The Internet Society (2001). All Rights Reserved. This document and translations of it may be copied and furnished toothers, and derivative works that comment on or otherwise explain it or assistothers, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. C. Changes in this draft This section describes the changes between this version of the DHCPv6 specification and draft-ietf-dhc-dhcpv6-19.txt. Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 61] Internet Draft DHCP for IPv6 30 June 2001 C.1. Reconfigure-init The client behavior in response to a Reconfigure-init message described inits implementation may be prepared, copied, published and distributed,section 15 has been changed. When the client receives a Reconfigure-init message, the client goes into "Reconfigure" mode. The client initiates a Request/Reply exchange inwhole orwhich the XID inpart, without restrictionclient Request is independent ofany kind, provided thatserver Reconfigure-init XID. The server waits for theabove 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 removingnext Request message from thecopyright notice or referencesclient to determine if theInternet Society or other Internet organizations, except as needed forclient has received thepurpose of developing Internet standards in which caseReconfigure-init. To avoid redundant Request/Reply messages exchanges, theproceduresclient ignores subsequent Reconfigure-init messages until it completes the Request/Reply exchange. Use of multicast forcopyrights definedReconfigure-init message delivery has been removed: - Multicast only saves, at most, 1/3 of the messages when reconfiguring multiple clients - Multicast might cause an implosion of Request messages; additional complexity in theInternet Standards process mustclient and protocol messages would befollowed, or asrequired totranslate it into languagesadd delay to spread out Request messages - Authentication of multicast Reconfigure-init messages (where a single message must be authenticated by multiple clients) is an open problem Text has been added clarifying that the ORO option applies to IAs as well as otherthan English.options. Thelimited permissions granted above are perpetual and will not be revokedserver may choose to omit the IA option from the ORO in the Reconfigure-init message. The Reconfigure-delay option (used only by multicast Reconfigure-init) has been removed. The transaction ID feild in theInternet Society or its successors or assigns. This document and the information contained hereinReconfigure-init message header isprovided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. C. Changes innow marked as "(unused) MUST be zero". C.2. Authentication DHCPv4-style authentication has been added to this draftThisin sectiondescribes17. C.3. Confirm message The following DISCUSSION was removed from thechanges between this versiondescription of theDHCPv6 specification and draft-ietf-dhc-dhcpv6-16.txt.Confirm message: DISCUSSION: Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page53]62] Internet Draft DHCP for IPv615 April30 June 2001C.1. New messages for confirming addresses and extending the lease on an IA Four new messages, DHCP Confirm, DHCP Renew, DHCP Rebind and DHCP Decline, have been added and are described inThis section13. Client behavior - when and how to send these new messages - and server behavior - how to respond to each - has been defined. The message type codes for these messages have been addedused tosection 7.3. C.2. New message formats Section 9 has been restructuredallow servers toinclude only one copy of the DHCP message header, because now allchange the addresses in an IA. Without some additional mechanism, servers responding to Confirm messageshavecan't change safely change thesame header format. Descriptions ofaddresses in IAs (although they can change theuselifetimes), because servers may send back different addresses. C.4. Failure ofheader fields in the Confirm, Renew,Rebindand Decline messages have been added to 9. C.3. Renamed Server-forwardmessageSection 10.2 has been renamed "relay-reply"In section 14.3.4, the alternatives forconsistency withclient behavior in therest ofcase that thedocument C.4. Clarified relay forwarding of messages Added text to sections on relay behaviorclient receives no response toclarify encapsulationa Rebind message were taken out of a DISCUSSION section anddecapsulationmade part ofclient messages in Relay-forwardthe spec. These alternatives are really an implementation issue andRelay-reply messages.not part of the DHCPv6 spec. C.5.Addresses and optionsServer behavior inAdvertise messages Modified section 12.4.2 so that servers include addressesresponse tobe assigned and other options in Advertise messages. Also addedRelease message The following DISCUSSION was merged into the textto section 12.3.1 to disallow option values (except as noteddescribing server behavior inoption definitions)response to a Release message inSolicit messages. C.6. Clarification of IA option format Changedsection 14.4.5: DISCUSSION: What is thelabelbehavior of theprefix length field inserver relative to a "partially released" IA; i.e., an IAoptionfor which some but not all addresses are released? Can a client send an empty IA to"prefix length"release all addresses in the IA? If the IA becomes empty - all addresses are released - can the server discard any record of the IA? C.6. Client behavior when sending a Release message Text has been added to section 14.3.6 clarifying that a client MAY (but not MUST) wait for a Reply to a Release message. C.7. IA option The formatdiagram, and moveddiagram has been corrected to include the prefixbefore thelength and addressfor consistencystatus withrelay messages and other IPv6 protocols. C.7. Specification of transaction IDeach address. PROPOSAL - use left-most bit inSolicit message Add text (which was missing)address status tospecify the insertionindicate whether an address is "temporary". C.8. DSTM option Definition ofa transaction ID in Solicit messages.DSTM option has been updated to carry multiple IPv6 addresses as tunnel endpoints. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page54]63] Internet Draft DHCP for IPv615 April30 June 2001C.8. EditsC.9. Server unicast option An option todefinitions Some of the definitionsallow clients to use unicast where possible has been added in section6 have18.10. C.10. Domain search option An option to pass a domain name search list to a client has beenedited for clarity. C.9. Relay agent messages The formats of relay agent messages are now describedadded in section 18.11. C.11. DNS servers option An option to pass aseparate section, 10. C.10. Relay agent behavior The behaviorlist ofrelay agents for allDNS options to a client has been added in section 18.12. C.12. DUID andserver messagesIAID The "DHCP unique identifier" isnow described indefined as asingle section, 15. C.11. Transmissiontyped, variable length value (see section 18.2). The DUID is carried in an option. The details ofall client messages through relays All client messages are now multicast totheAll Agents multicast address and forwarded by relaysDUID are TBD. The "IA identifier" is defined asappropriate. C.12. Reconfigure-init messages Client behavior in response toaReconfigure-init messages4 octet identifier, unique among all IAIDs for IAs from a client. C.13. Continuing to poll with Solicit Text has beenextendedadded toaccommodate receipt of multiple copies ofsection 13.3.2 allowing aReconfigure-init message dueclient toduplicatecontinue to send Solicit messagesor retransmission. Server use of multicast Reconfigure-initat low frequency indefinitely. C.14. Using DHCPv6 without address assignment Text has beenspecified. Hints about useadded to section 14.3.1 allowing a client to send a Solicit message containing no IAs to request other configuration information without address assignment (equivalent to DHCPv4 DHCPINFORM). C.15. Potential crossing in flight ofmulticastRequest andunicast for reliable reconfiguration haveReconfigure-init messages Text has been added to section 15 addressing the case in which the client sends a Request after a serverimplementor's hints. C.13. Ordering of sections Several sections have been re-ordered for clarity. C.14. DSTM option The DSTM optionhasbeen added (section 16.8). C.15. Message and option numbering (In rev -18) Replaced TBDsent a Reconfigure-init but before the client receives the Reconfigure-init. D. Open Issues formessage and option code numbering with names and temporary values.Working Group Discussion This section contains some items for discussion by the working group. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page55]64] Internet Draft DHCP for IPv615 April30 June 2001C.16. InclusionD.1. Generation and use ofIAs in Solicit message byDUID and IAID Details for generation and use of DUID and IA identifiers is TBD. D.2. Address registration Should there be a way for a DHCP clientAdded texttosection 12.3.1 explaining that clients include empty IA(s) inregister stateless autoconfig addresses with the server? D.3. Prefix advertisement Can aSolicit message andDHCP server advertise prefixes? This function might be used tosection 12.3.3 explaining thatprovide managed temporary addresses - the server advertises a prefix and the client then registers selected addresses with the DHCP server. D.4. DHCP-DNS interaction Interaction among DHCP servers, clients and DNS servers should be discussed inclient IAs. C.17. Clarification of destinationthis document. What is relationship between DHCP-DNS for IPv4 (work-in-progress) and DHCP-DNS interaction requirements for IPv6? D.5. Use ofclient messages Added textterm "agent" The term "agent", taken tosection 13 clarifying the destination (specific servermean "relay agent orany available server) of client messages C.18. Clarification of client use of Confirm messages Changed textserver", may be confusing. "relay agent or server" might be clearer. D.6. Additional options Which additional options should be included in this base spec document? How should we reserve space for "local options" (as insection 13.3.2DHCPv4)? D.7. Operational parameters Should servers have an option tocorrectly describe behaviorset operational parameters - retransmission timeouts, number ofclientsretries - inresponse to Replay messages from servers.clients? References [1] B. Aboba. DHCP Domain Search Option. Internet Draft, Internet Engineering Task Force, December 2000. Work in progress. Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 65] Internet Draft DHCP for IPv6 30 June 2001 [2] S. Alexander and R. Droms. DHCP Options and BOOTP Vendor Extensions. Request for Comments (Draft Standard) 2132, Internet Engineering Task Force, March 1997.[2][3] S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. Request for Comments (Best Current Practice) 2119, Internet Engineering Task Force, March 1997.[3][4] S. Bradner and A. Mankin. The Recommendation for the IP Next Generation Protocol. Request for Comments (Proposed Standard) 1752, Internet Engineering Task Force, January 1995.[4][5] W. J. Croft and J. Gilmore. Bootstrap Protocol. Request for Comments 951, Internet Engineering Task Force, September 1985.[5][6] S. Deering and R. Hinden. Internet Protocol, Version 6 (IPv6) Specification. Request for Comments (Draft Standard) 2460, Internet Engineering Task Force, December 1998.[6][7] R. Droms. Dynamic Host Configuration Protocol. Request for Comments (Draft Standard) 2131, Internet Engineering Task Force, March 1997.[7][8] R. Droms and W. Arbaugh. Authentication for DHCP Messages. Internet Draft, Internet Engineering Task Force, January 2001. Work in progress. [9] R. Hinden and S. Deering. IP Version 6 Addressing Architecture. Request for Comments (Proposed Standard) 2373, Internet Engineering Task Force, July 1998.[8][10] H. Krawczyk, M. Bellare, and R. Canetti. HMAC: Keyed-Hashing for Message Authentication. Request for Comments (Informational) 2104, Internet Engineering Task Force, February 1997. [11] J. McCann, S. Deering, and J. Mogul. Path MTU Discovery for IP version 6. Request for Comments (Proposed Standard) 1981, Internet Engineering Task Force, August 1996.Bound, Carney, Perkins, Droms (ed.) Expires 15 October 2001 [Page 56][12] David L. Mills. Network Time Protocol (Version 3) Specification, Implementation. Request for Comments (Draft Standard) 1305, InternetDraft DHCPEngineering Task Force, March 1992. [13] P. V. Mockapetris. Domain names - implementation and specification. Request forIPv6 15 April 2001 [9]Comments (Standard) 1035, Internet Engineering Task Force, November 1987. [14] T. Narten and H. Alvestrand. Guidelines for Writing an IANA Considerations Section in RFCs. Request for Comments (Best Current Practice) 2434, Internet Engineering Task Force, October 1998.[10]Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 66] Internet Draft DHCP for IPv6 30 June 2001 [15] T. Narten and R. Draves. Privacy Extensions for Stateless Address Autoconfiguration in IPv6. Request for Comments (Proposed Standard) 3041, Internet Engineering Task Force, January 2001. [16] T. Narten, E. Nordmark, and W. Simpson. Neighbor Discovery for IP Version 6 (IPv6). Request for Comments (Draft Standard) 2461, Internet Engineering Task Force, December 1998.[11][17] D. C. Plummer. Ethernet Address Resolution Protocol: Or converting network protocol addresses to 48.bit Ethernet address for transmission on Ethernet hardware. Request for Comments (Standard) 826, Internet Engineering Task Force, November 1982.[12][18] J. Postel. User Datagram Protocol. Request for Comments (Standard) 768, Internet Engineering Task Force, August 1980.[13][19] R. Rivest. The MD5 Message-Digest Algorithm. Request for Comments (Informational) 1321, Internet Engineering Task Force, April 1992. [20] S. Thomson and T. Narten. IPv6 Stateless Address Autoconfiguration. Request for Comments (Draft Standard) 2462, Internet Engineering Task Force, December 1998.[14][21] J. Veizades, E. Guttman, C. Perkins, and S. Kaplan. Service Location Protocol. Request for Comments (Proposed Standard) 2165, Internet Engineering Task Force, June 1997.[15][22] P. Vixie, Ed., S. Thomson, Y. Rekhter, and J. Bound. Dynamic Updates in the Domain Name System (DNS UPDATE). Request for Comments (Proposed Standard) 2136, Internet Engineering Task Force, April 1997. Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page57]67] Internet Draft DHCP for IPv615 April30 June 2001 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 Author's Address Questions about this memo can be directed to: Bound, Carney, Perkins, Droms (ed.) Expires 30 November 2001 [Page 68] Internet Draft DHCP for IPv6 30 June 2001 Jim BoundNokia Networks 5 WaysideCompaq Computer Corporation ZK3-3/W20 110 Spit Brook RoadBurlington, MA 01803Nashua, NH 03062-2698 USA Phone:+1-781-492-6010+1 603 884 0062 Email:jim.bound@nokia.comJim.Bound@compaq.com Mike Carney Sun Microsystems, Inc Mail Stop: UMPK17-202 901 San Antonio Road Palo Alto, CA 94303-4900 USA Phone: +1-650-786-4171 Email: mwc@eng.sun.com Charles E. Perkins Communications Systems Lab Nokia Research Center 313 Fairchild Drive Mountain View, California 94043 USA Phone: +1-650 625-2986EMail:Email: charliep@iprg.nokia.com Fax: +1 650 625-2502 Ralph Droms Cisco Systems 300 Apollo Drive Chelmsford, MA 01824 USA Phone: +1 978 244 4733 Email: rdroms@cisco.com Bound, Carney, Perkins, Droms (ed.) Expires15 October30 November 2001 [Page58]69] ----