view Side-By-Side changes
INTERNET-DRAFTInternet Engineering Task Force J. Bound INTERNET DRAFT Digital Equipment Corp. DHC Working GroupDigital Equipment CorpC. Perkins Obsoletes:draft-ietf-dhc-dhcpv6-02.txt November 1995draft-ietf-dhc-dhcpv6-03.txt IBM Research 12 February 1996 Dynamic Host Configuration Protocol for IPv6 (DHCPv6)draft-ietf-dhc-dhcpv6-03.txtdraft-ietf-dhc-dhcpv6-04.txt Status ofthisThis Memo This document is a submission to the DHC Working Group of the Internet Engineering Task Force (IETF). Comments should be submitted to the dhcp-v6@bucknell.edu mailing list. This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to useInternet-Internet Drafts as reference material or to cite them other than as ``work in progress.'' To learn the current status of any Internet-Draft, please check the ``1id-abstracts.txt'' listing contained in the Internet- Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast). Distribution of this document is unlimited. AbstractThis document is an Internet application protocol, for IP version 6 (IPv6), that specifiesThe Dynamic Host Configuration Protocol (DHCP) provides aclient/server modelframework forcommunications between hostspassing configuration information, via options, todynamically configure parameters for a network, and autoconfigureIPv6 hosts. It offers the capability of automatic allocation of reusable network addresseswithinand additional configuration options. This protocol should be considered a statefulmodel. This document supportscounterpart to themodel forIPv6 Stateless AddressAutoconfiguration, where there are clear integration points between stateless and stateful address autoconfiguration for IPv6.Autoconfiguration protocol specification. Bound, Perkins ExpiresMay12 August 1996 [Page1] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 Tablei] Internet Draft DHCP Version 6 12 February 1996 Contents Status ofContents:This Memo i Abstract i 1.Introduction.................................................3Introduction 1 1.1.Requirements...............................................3Specification Language . . . . . . . . . . . . . . . . . 1 2. Terminology andDefinitions..................................4Definitions 2 2.1. IPv6Terminology...........................................4Terminology . . . . . . . . . . . . . . . . . . . . 2 2.2. DHCPv6Terminology.........................................6Terminology . . . . . . . . . . . . . . . . . . . 4 3. Protocol DesignModel........................................9Model 5 3.1. DesignGoals...............................................9Goals . . . . . . . . . . . . . . . . . . . . . . 5 3.2.Request/Response Model....................................10DHCPv6 Messages . . . . . . . . . . . . . . . . . . . . . 6 3.3.Leased Address Model......................................11 3.3.1. Address Lifetimes.......................................11 3.3.2. Duplicate Address Detection.............................12 3.3.3. Releasing Infinite Lifetime Addresses...................13 3.4. DNS Host Name Autoregistration Model......................13 4.Request/ResponseProcessing.................................13 4.1.Processingwhen Server Address is not Known...............14Model . . . . . . . . . . . . 7 4. DHCPv6 Message Formats and Field Definitions 8 4.1. UDP Ports used for DHCPv6 messages . . . . . . . . . . . 8 4.2.Processing when Server Address is Known...................16DHCP Solicit Message Format . . . . . . . . . . . . . . . 8 4.3.Retransmission and Configuation Variables.................16DHCP Advertise Message Format . . . . . . . . . . . . . . 9 4.4. DHCP Request Message Format . . . . . . . . . . . . . . . 10 4.5. DHCP Reply Message Format . . . . . . . . . . . . . . . . 12 4.6. DHCP Release Message Format . . . . . . . . . . . . . . . 13 4.7. DHCP Reconfigure Message Format . . . . . . . . . . . . . 14 5.Datagram and Field Definitions..............................18DHCP Client Considerations 15 5.1.Datagram..................................................18DHCP Solicit Message Processing . . . . . . . . . . . . . 15 5.2.Field Definitions.........................................19 6. Client/ServerDHCP Advertise Message Processing . . . . . . . . . . . . 15 5.3. DHCP Request Message Processing . . . . . . . . . . . . . 16 5.4. DHCP Reply MessageFormats...............................21Processing . . . . . . . . . . . . . . 17 5.5. DHCP Release Message Processing . . . . . . . . . . . . . 18 5.6. DHCP Reconfigure Message Processing . . . . . . . . . . . 18 6. DHCP Server Considerations 19 6.1.Client/Server UDP Ports, Multicast Group,DHCP Solicit andAddresses...21Advertise Message Processing . . . . . . 19 6.2.Client DISCOVERDHCP Request andCONF-REQUEST Messages.................21Reply Message Processing . . . . . . . . 19 6.3.Server CONF-RESPONSE Message..............................23DHCP Release Message Processing . . . . . . . . . . . . . 20 6.4.Client ACCEPT Message.....................................24 6.5. Server SERVER-ACK Message.................................25 6.6. Client RELEASE Message....................................27DHCP Reconfigure Message Processing . . . . . . . . . . . 21 7.Relay-Agent Processing......................................28 8. Security Considerations.....................................29 Appendix A - Related Work in IPv6..............................29 Change History.................................................31 Acknowledgements...............................................33 References.....................................................33 Authors' Address...............................................34DHCP Relay Considerations 22 7.1. DHCP Solicit and DHCP Advertise Message Processing . . . 22 7.2. DHCP Request Message Processing . . . . . . . . . . . . . 23 Bound, Perkins ExpiresMay12 August 1996 [Page2] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 1. Introduction DHCPv6 is anii] Internetapplication protocol, for IP versionDraft DHCP Version 6(IPv6), that specifies12 February 1996 7.3. DHCP Reply Message Processing . . . . . . . . . . . . . . 23 7.4. Retransmission and Configuation Variables . . . . . . . . 23 8. Security Considerations 25 9. Acknowledgements 25 A. Related Work in IPv6 26 B. Change History 27 B.1. Changes from November 95 to February 96 Drafts . . . . . 27 Chair's Address 29 Author's Address 29 Bound, Perkins Expires 12 August 1996 [Page iii] Internet Draft DHCP Version 6 12 February 1996 1. Introduction The Dynamic Host Configuration Protocol (DHCP) provides configuration parameters to Internet hosts. DHCP consists of aclient/server modelprotocol forcommunications betweendelivering host-specific configuration parameters from a DHCP server to a host, and a mechanism for allocation of network addresses and other related parameters to IPv6 hosts. DHCP is built on a client-server model, where designated DHCP server hosts allocate network addresses and automatically deliver configuration parameters to dynamicallyconfigure parameters forconfigured hosts. Throughout the remainder of this document, the term "server" refers to anetwork,host providing initialization parameters through DHCP, andautoconfigure addresses withinthe term "client" refers to astateful model.host requesting initialization parameters from a DHCP server. DHCPv6supports the modelservers maintain state for their clients, in contrast to IPv6 Stateless Address Autoconfiguration[IPv6-ADDRCONF],[9], wherethere are clear integration points between stateless and stateful addressIPv6 hosts should get the same results if they repeat the autoconfigurationfor IPv6.procedure multiple times. DHCPv6 usesa set of request/responseRequest and Reply messages to support atransactionclient/server processing modelwhere a commit to the data can be verified bywhereby boththeclient andserver. This affords DHCPv6 the ability in the future to support dynamic updates to data located within a sites network. In addition to the capability of verifying commits to transactions a recovery mechanism is specified, should commits need to be rolled back duringserver are assured that requested configuration parameters have been received and accepted by thecourse of a DHCPv6 transaction being processed.client. DHCPv6 supports optional configuration parameters and processing for hosts through its companion documentOptionsExtensions for the Dynamic Host Configuration Protocol for IPv6[DHCPv6-OPT].[5]. The IPv6 Addressing Architecture[IPv6-ADDR][3] and IPv6 Stateless Address Autoconfiguration specifications provide newfunctionalityfeatures notpresentavailable in IP version 4(IPv4). This new IPv6 functionality provides inherent benefits(IPv4) [8], which are used toautoconfigure IPv6 addresses for nodes. In additionsimplify and generalize theIETF DNS Working Group has defined a method to support Dynamic Updates to DNS [DYN-UPD], which can be used by a node to add, delete, and change node names dynamically. DHCPv6 used several of the architecture principles from DHCPv4 [DHCP-v4], but it is beyond the scopeoperation ofthis document to contrast and compareDHCPv6with DHCPv4.clients. Section 2 provides definitions for terminology used throughout this document. Section 3 provides areviewoverview of the protocol design modelpartsthatare inherent inguides thespecification. Section 4 providesdesign choices in therequest/response model and interaction betweenspecification; section 3.2 briefly describes theset ofprotocol messages andthe semantics for those messages. Section 5 provides the datagram packet format and field definitions for that datagram.their semantics. Section64 provides the message formats and fieldcontentsdefinitions used forprocessing the clienteach message. Sections 5, 6, andserver messages. Section7provides the specification ofspecify howrelay-agents and servers interact withclients,when the server is not on the same link as the client. Section 8 provides the security specifications that can be used to support security in DHCPv6.servers, and relays interact. Appendix Aprovides a summary ofsummarizes related work in IPv6 that willhelp put DHCPv6 in the context of IPv6 for the reader, andprovide helpful context; it is not part of this specification, buthereincluded forinformationinformational purposes. 1.1.Requirements ThroughoutSpecification Language In this document,theseveral wordsthatare used todefinesignify thesignificancerequirements of theparticular requirements are capitalized.specification. These wordsare:are often capitalized. Bound, Perkins ExpiresMay12 August 1996 [Page3] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 o "MUST"1] Internet Draft DHCP Version 6 12 February 1996 MUST Thiswordword, or the adjective"REQUIRED""required", means that theitemdefinition is an absolute requirement ofthisthe specification.o "MUST NOT"MUST NOT This phrase means that theitemdefinition is an absolute prohibition ofthisthe specification.o "SHOULD"SHOULD Thiswordword, or the adjective"RECOMMENDED""recommended", means that there may exist valid reasons in particular circumstances to ignore this item, but the full implicationsshouldmust be understood andthe casecarefully weighed before choosing a different course.o "SHOULD NOT" This phrase means that thereUnexpected results mayexist valid reasons in particular circumstances when the listed behavior is acceptable or even useful, but the full implications should be understood and the case carefully weighted before implementing any behavior described with this label. o "MAY"result otherwise. MAY Thiswordword, or the adjective"OPTIONAL""optional", means that this item istruly optional. One vendor may chooseone of an allowed set of alternatives. An implementation which does not include this option MUST be prepared to interoperate with another implementation which does include theitem because a particular marketplace requires it or because it enhances the product, for example, another vendor may omitoption. silently discard The implementation discards thesame item.datagram without further processing, and without indicating an error to the sender. The implementation SHOULD provide the capability of logging the error, including the contents of the discarded datagram, and SHOULD record the event in a statistics counter. 2. Terminology and Definitions Relevant terminology from the IPv6 Protocol[IPv6-SPEC],[2], IPv6 Addressing Architecture, and IPv6 Stateless Address Autoconfiguration will be provided, and then the DHCPv6 terminology. 2.1. IPv6 Terminology IP-Internet Protocol Version 6 (IPv6). The terms IPv4 and IPv6 are used only in contexts where necessary to avoid ambiguity. node-A device that implements IPv6. Bound, Perkins Expires 12 August 1996 [Page 2] Internet Draft DHCP Version 6 12 February 1996 router-A node that forwards IPv6packetsdatagrams not explicitly addressed to itself. host-Any node that is not a router.upper-layer - A protocol layer immediately above IP. Examples are transport protocols such as TCP and UDP, control protocols such as ICMP, routing protocols such as OSPF, and internet or lower-layer protocols being Expires May 1996 [Page 4] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 "tunneled" over (e.g. encapsulated in) IP such as IPX, Appletalk, or IP itself.link-A communication facility or medium over which nodes can communicate at the link layer, i.e., the layer immediately below IPv6. Examples are Ethernet (simple or bridged); PPP links, X.25, Frame Relay, or ATM networks; and internet (or higher) layer "tunnels", such as tunnels over IPv4 or IPv6 itself. link-layer identifier a link-layer identifier for an interface. Examples include IEEE 802 addresses for Ethernet links, and E.164 addresses for ISDN links. link-local address An address having link-only scope that can be used to reach neighboring nodes attached to the same link. All interfaces have a link-local address. neighbors-Nodes attached to the same link. interface-A node's attachment to the link. address-An IP layer identifier for an interface or a set of interfaces.packet -message The data exchanged between DHCP agents and clients; in this specification, messages are delivered via IPv6 and UDP. Bound, Perkins Expires 12 August 1996 [Page 3] Internet Draft DHCP Version 6 12 February 1996 datagram An IP header plus payload.communication - Any packet exchange between nodes that requires that the address of each node used in the exchange remain the same for the duration of the packet exchange. Examples are a TCP connection or UDP request/response.unicast address-An identifier for a single interface. Apacketdatagram sent to a unicast address is delivered to the interface identified by that address. multicast address-An identifier for a set of interfaces (typically belonging to different nodes). Apacketdatagram sent to a multicast address is delivered to all interfaces identified by that address.link-layer identifier - a link-layer identifier for an interface. Examples include IEEE 802 addresses for Ethernet links, and E.164 addresses for ISDN links. link-local address - An address having link-only scope2.2. DHCPv6 Terminology configuration parameter Any parameter that can be usedto reach neighboring nodes attached to the same link. All interfaces haveby alink-local address. preferred address - An address assignednode toan interface whose use by upper layer protocols is unrestricted. Preferred addresses may be used as the sourceconfigure its network environment and enable communication on a link ordestination address of packets sentinternetwork. client A host that initiates requests on a link to obtain configuration parameters. server A server is a node that responds to requests fromorclients on a link tothe interface. deprecated address - An address assignedprovide: addresses, dynamic updates toan interface whose use is discouraged, but not forbidden.DNS, or other configuration parameters. relay Adeprecated address should no longer be usednode that may advertise DHCP server addresses, or may act asa source address in new communications. but packets sentan intermediary to deliver DHCP messages between clients and servers. DHCP Agent Either a DHCPv6 server or a DHCPv6 relay. Bound, Perkins ExpiresMay12 August 1996 [Page5] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 deprecated address are delivered as expected. A deprecated4] Internet Draft DHCP Version 6 12 February 1996 agent addressmay continue to be used as a sourceThe addressfor the durationofexisting communications. valid address - A preferreda neighboring DHCP relay ordeprecated address. A valid address may appearDHCP server on the same link as thesource or destination address ofDHCP client. msg-type The msg-type defines the DHCPv6 protocol type for apacket, andmessage. transaction-ID The transaction-ID is a monotonically increasing integer identifier specified by theinternet routing systemclient and isexpected to be ableused by the client todeliver packets sentmatch a DHCP Reply to avalid address. invalidpending DHCP Request. server address- AnThe server addressthat is not assignedspecifies the address for the server responding toany interface.a client. binding Avalid address becomes invalid when its valid lifetime expires. Invalid addresses should not appear asbinding in DHCPv6 contains thesource or destination ofdata which apacket. preferred lifetime - The lengthDHCPv6 server MUST maintain for each oftime that a valid address is preferred. When the preferred lifetime expires, the address becomes deprecated. valid lifetime - The length of time the address remains in the valid state. The valid lifetimeits clients. An implementation MUSTbe greater than or equal to thesupport bindings consisting of at least a client's link-local address, agent address, preferredlifetime. When thelifetime and valid lifetimeexpires, the address becomes invalid. interface token - A link-dependent identifier[9] foran interface thateach client address, and the transaction-ID. 3. Protocol Design Model This section is(at least) unique per link. Stateless Address Autoconfiguration combines an interface token with a prefixprovided for implementors toform an address. From an address autoconfiguration perspective,understand the DHCPv6 protocol design model from aninterface token is a bit string of known length.architectural perspective. Theexact length of an interface tokengoals, conceptual models andthe way it is created is definedimplementation examples presented ina separate link-specific document that covers issues related to the transmissionthis section do not specify requirements ofIP over a particular link type (e.g., [IPv6-ETHER]). In many casesthetoken willDHCPv6 protocol. 3.1. Design Goals The following list gives general design goals for this DHCPv6 specification. - DHCPv6 should bethe same as the link-layer address. 2.2.a mechanism rather than a policy. DHCPv6Terminologymust allow local system administrators control over configuration parameters- Is any parameter that canwhere desired; e.g., local system administrators should beused by a nodeable toconfigure their network environment so the node can communicate on a link or on an internet. clientenforce local policies concerning allocation and access to local resources where desired. Bound, Perkins Expires 12 August 1996 [Page 5] Internet Draft DHCP Version 6 12 February 1996 -ADHCPv6 MUST NOT introduce any requirement for manual configuration of DHCPv6 clientis ahosts, except possibly for manually configured keys. Each hostthat initiates requests on a link to obtain: addresses, dynamic updatesshould be able toDNS, or otherdiscover appropriate local configurationparameters. serverparameters without user intervention, and incorporate those parameters into its own configuration. -A server isDHCPv6 MUST NOT require anode that responds to requests from clientsserver ona link to provide: addresses, dynamic updates to DNS, or other configuration parameters. Expires May 1996 [Page 6] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 relay-agenteach link. To allow for scale and economy, DHCPv6 must work across relay agents. - Arelay-agent is a node that listens on a link forDHCPv6 clientrequests, and then forwards the packetmust be prepared toa server on the network. The server will respond backreceive multiple responses tothe relay-agent, who will forward the responsesolicitations for DHCP servers. Some installations may include multiple, overlapping DHCPv6 servers tothe client on the relay-agents link. message-typeenhance reliability and/or to increase performance. -The message-type defines theDHCPv6 must coexist with statically configured, non-participating hosts and with existing network protocoltype for this packet. message-flagimplementations. -The message-flag defines an optional processing notification for DHCPv6. The message-flag can also be used by the Options forDHCPv6specification. error-code - The error-code specifies errors from a client or server. The error-code can alsoMUST beused by the Options for DHCPv6 specification. total-addressescompatible with IPv6 Stateless Address Autoconfiguration. -The total-addresses specifiesDHCPv6 must support thetotal numberrequirements of automated renumbering of IPv6 addressesbeing provided from a[1]. - DHCPv6 servers should be able to support Dynamic Updates to DNS [10]. - A DHCPv6 server toa client. For each address thereserver protocol isa preferred and valid lifetime. completed-transactionNOT part of this DHCPv6 specification. -A completed-transactionIt is NOT acommunications exchange between a client and server, using the required setdesign goal of DHCPv6request/response message-types, where the final response message into specify how a server configuration parameter database is maintained or determined. Methods for configuring DHCP servers are outside therequest/response set has been received byscope of this document. 3.2. DHCPv6 Messages Each DHCPv6 message contains a type, which defines whether the message originated from a DHCPv6 server or client. The message types are as follows: 01 DHCP Solicit The DHCP Solicit message is a DHCPv6 multicast (or in special circumstances unicast) message from a clientand by the server. transaction-ID -to one or more neighboring DHCPv6 Agents. Bound, Perkins Expires 12 August 1996 [Page 6] Internet Draft DHCP Version 6 12 February 1996 02 DHCP Advertise Thetransaction-IDDHCP Advertise is aninteger identifier specified by theIPv6 unicast message from a DHCP Agent in response to a clientandDHCP Solicit. 03 DHCP Request The DHCP Request isused by the client and server asan IPv6 unicast message from atransaction identifierclient todefine the set of request/response messages betweena server, when the clientandknows the IPv6 unicast address of a server,forto request configuration parameters on aclients interface token. client-link address - The client-link address specifies the clients link-local address.network. 04 DHCP Reply Theclient-link addressDHCP Reply isusedan IPv6 unicast message sent by arelay-agentserver to respond to aclient on a link, after receiving a server response. server address - The server address specifiesclient's DHCP Request. Extensions [5] to theaddress forDHCP Reply describe theserver responding to a client. gateway address - The gateway address specifiesresources that theaddress ofDHCP Server has committed and allocated to therelay-agent for a server, whichclient, and maybe multiple relay-agent hops away fromcontain other information for use by theoriginal relay-agent. client address -client. 05 DHCP Release Theclient address specifies an address from a server to beDHCP Release message is used by aclient. binding - A binding inDHCPv6is an N-tuple that aclientandto inform the serverMUST maintainthat the client is releasing a particular address, or set of addresses or resources, even though the addresses or resources may still be marked valid inDHCPv6the server's binding fora Expires May 1996 [Page 7] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 completed-transaction, where Nthe client. 06 DHCP Reconfigure The DHCP Reconfigure message is used by a DHCPv6 server to inform thenumber ofclient that the server has new configurationparameters for ainformation of importance to the client.An implementation MUST support at leastThe client is expected to initiate a5-tuple binding consistingnew Request/Reply transaction. 3.3. Request/Response Processing Model Processing details for the DHCP messages listed above are specified in Sections 5, 6, and 7. The request/response processing for DHCPv6 is transaction based and uses a best-effort set of messages to guarantee aclients interface token, client address, preferred lifetimecompleted transaction. The timeout andvalid lifetime for eachretransmission guidelines and configuration variables are discussed in Section 7.4. The request/response set is always started by a clientaddress,with a DHCP Request, which may be issued after the client knows the server's address. The response message is from the server and is thetransaction-ID.DHCP Bound, Perkins ExpiresMay12 August 1996 [Page8] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 3. Protocol Design Model This section is provided for implementors to understand the DHCPv6 protocol design model from an architectural perspective. Any conceptual models presented in7] Internet Draft DHCP Version 6 12 February 1996 Reply. At thisspecification thatpoint in the flow all data has been received. To provideimplementation examples are notarequirementmethod of recovery if either theDHCPv6 protocol. 3.1. Design Goals The following list gives general design goals for DHCPv6. DHCPv6 should be a mechanism rather thanclient or server do not receive the messages to complete the transaction, the client is required to retransmit any DHCP Request message until it elicits apolicy. DHCPv6 must allow local system administrators control over configuration parameters where desired; e.g., local system administrators shouldDHCP Reply, or until it can beable to enforce local policies concerning allocationreasonably certain that the desired DHCP Server is unavailable. 4. DHCPv6 Message Formats andaccess to local resources where desired. Hosts should require no manual configuration. Each host shouldField Definitions All fields in DHCPv6 messages MUST beableinitialized todiscover appropriate local configuration parameters without user intervention, and incorporate those parameters into its own configuration. Networks should require no hand configuration for individual hosts. Under normal circumstances,binary zeroes by both thenetwork manager should not have to enter any per-host configuration parameters.client and server unless otherwise noted. DHCPv6shouldmessage types notrequire a server on each link. To allow for scaledefined here (msg-types 0 andeconomy, DHCPv6 must work across relay agents. A7-255) are reserved. All DHCP Agents MUST join the DHCPv6 Server/Relay-Agent multicast group at the well-known multicast address FF02:0:0:0:0:0:1:0. Servers on the same link as the clientmust be prepared to receive multiple responses to a requestMUST use the source address in the IPv6 header from the client as the destination address in the server's response datagrams. 4.1. UDP Ports used forconfiguration parameters. Some installations may include multiple, overlappingDHCPv6serversmessages DHCPv6 uses the UDP [7] protocol toenhance reliabilitycommunicate between clients andincrease performance.servers. UDP is not reliable, but DHCPv6 mustcoexist with statically configured, non-participating hostsprovide some reliability between clients andwith existing network protocol implementations. DHCPv6 should as much as possible be compatible with IPv6 Stateless Address Autoconfiguration. DHCPv6 must support the requirements of automated renumberingservers. If a response is not received after transmission ofIPv6 addresses. DHCPv6 servers shoulda DHCP message, the message MUST beableretransmitted according tosupport Dynamic Updates to DNS [DYN-UPD]. It is NOT a design goal ofthe rules specified in 7.4. A Client MUST transmit all messages over UDP using UDP port 547 as the destination port. A client MUST receive all messages from UDP port 546. A DHCP Agent MUST transmit all messages over UDP using UDP port 546 as the destination port. A DHCP Agent MUST receive all messages over UDP using UDP port 547. 4.2. DHCP Solicit Message Format A DHCPv6 client transmits a DHCP Solicit message tospecifyobtain the address of aserverneighboring DHCP Agent, and toserver protocol. Itobtain one or more addresses for DHCP servers which the DHCP Agent isNOTconfigured to advertise. If adesign goal ofDHCPv6 client does not know any DHCP Agent address, or wants tospecify howlocate a new serverconfiguration parameter database is maintained or determined. The following list gives design goals specifictothe transmission of the network layer parameters. Guarantee that any specific network address will not be in use by more than one host at a time.receive configuration parameters, Bound, Perkins ExpiresMay12 August 1996 [Page9] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 Guarantee that client addresses that are not provided by DHCPv6 will not be added to a servers configuration parameter database or8] Internet Draft DHCP Version 6 12 February 1996 theservers binding for a clients interface token. Retain host configuration parameters acrossclientreboots. A client should, whenever possible, be assignedSHOULD use, as thesame configuration parameters in response to a request. Retain host configuration across server reboots, and, whenever possible, a host should be assigned the same configuration parameters despite restarts of the DHCPv6 mechanism, Allow automatic assignment of configuration parameters to new hosts to avoid hand configuration for new hosts. Support fixed or permanent allocation of configuration parameters to specific hosts. 3.2. Request/Response Model DHCPv6 uses a message-type to define whetherdestination IP address, thepacket originated from a DHCPv6 server or client. The set of packets used to complete aDHCPv6transaction are defined as the requestServer/Relay-Agent multicast address FF02:0:0:0:0:0:1:0. 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 | msg-flags | RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | extensions (variable number andresponse set. The message typeslength) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ msg-type 1 msg-flags 0 RESERVED 0 extensions No extensions areas follows: 01 DISCOVER The DISCOVER message is adefined at this time. 4.3. DHCP Advertise Message Format A DHCPv6multicast packet from a client to locate and request configuration parameters on a network, when the client does not know the servers address. 02 CONF-REQUEST The CONF-REQUEST is an IPv6 unicast packet fromagent sends aclientDHCP Advertise message to inform aserver, when theprospective clientknowsabout the IPv6unicastaddress of aserver, to request configuration parameters on a network. 03 CONF-RESPONSE The CONF-RESPONSE is an IPv6 unicast packet from a server in responseDHCP Agent toa client DISCOVER or CONF-REQUEST,whichprovides the requested configuration parameters. 04 ACCEPT The ACCEPT is a client response to a server CONF-RESPONSE. When the client used DISCOVER to locate a server and request configuration parameters onanetwork, the ACCEPT shouldDHCP Request message may besent using thesent. A DHCPv6multicast address, which also serves to inform other servers that respondedagent MAY periodically transmit DHCP Advertise messages to theDISCOVER they were not selected. When the client used CONF-RESPONSE to request configuration parameters from a server whoseAll-DHCPv6 Clients multicast address, no more often than once per second, and with TTL == 1. 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 |S| msg-flags | server-count | reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | agent addresswas known,| | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | server addresses | | (16 octets each) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | extensions (variable number and length) ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ msg-type 2 S If set, theACCEPT should be sent as an IPv6 unicast packet. The ACCEPTagent address is alsoan implied acknowledgment to thea serverselected that the client has received the servers configurationaddress. Bound, Perkins ExpiresMay12 August 1996 [Page10] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 parameters from9] Internet Draft DHCP Version 6 12 February 1996 msg-flags 0 server-count The number of addresses listed in theCONF-RESPONSE. 05 SERVER-ACKserver addresses field. RESERVED 0 agent address TheSERVER-ACK is anIPv6unicast packet sent byaddress of a neighboring DHCP Agent interface serverto inform a client that it received an ACCEPT.addresses TheSERVER-ACK is used by the server to informIPv6 address(es) of theclient it has received an acknowledgment thatDHCPv6 server(s) which theclientDHCP Agent hasreceived the configuration parameters from the server, and denotes a completed-transactionbeen configured to advertise. extensions See [5]. Note that if aserver. Theneighboring DHCPv6 serverat that point MUST commit its bindings and any updates it may do forissues theclient. The SERVER-ACK forDHCP Advertise, then theclient denotes a completed-transaction. The client at that point MUST commit its bindings. 06 RELEASE The RELEASE is used byagent address will be theclient for two reasons: 1. To informIPv6 address of one of theserver thatserver's interfaces, theclient did not receive'S' bit will be set, theSERVER-ACK required to completeagent address will be an address of theclient transaction,server, andthe server should delete that binding and any updates itthere mayhave done on behalf of the client. 2. To inform thebe zero serverthat the client is releasing a particular address or set of addresses, even though the lifetimes for thoseaddressesmay not have become invalid. The processing and algorithms for the request/response set of message-types will be discussedsent insection 4.0. 3.3. Leased Address Model The leased address model specifies a set of lifetimes associated with addresses returned by the server. These lifetimes are meant to support site renumbering, and are completely compatible withtheleasing model in IPv6 Stateless Address Autoconfiguration. The DHCPv6 philosophyDHCP Advertise message. It isthat the client has the responsibility to renew a lease foranaddress thaterror for server-count to be zero if the 'S' bit isaboutnot set. 4.4. DHCP Request Message Format In order toexpire, orrequest parameters from anew address orDHCP server, a client sends a DHCP Request message and appends thesame address beforeextensions which are appropriate for obtaining thelease actually expires.needed parameters [5]. If the client does notrequest a new lease for anknow any DHCPv6 server address,theit must first obtain a serverMUST assumeaddress by multicasting a DHCP Solicit message (see Section 4.2). If the client does notwanthave anew lease for that address. The server MAY provide thatvalid IPv6 addressto anotherwhich is reachable by the DHCPv6 server, the clientrequesting an address, after all other addresses available toMUST use theserver have been exhausted. 3.3.1. Address Lifetimes Anunicast IP addressreturned to a client hasof apreferred and valid lifetime. The lifetimes represent the lease for addresses provided tolocal DHCPv6 relay as theclient, fromdestination IP address. Otherwise, theserver. Theclient MAYrequest a value foromit thelifetimes returned by a server, butserver address in the DHCP Request message; in this case, the client MUSTusesend thelifetimes provided byDHCP Request message directly to the server just Bound, Perkins ExpiresMay12 August 1996 [Page11] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 response. When an address for a client interface becomes deprecated10] Internet Draft DHCP Version 6 12 February 1996 as it would any other datagram destined for theprocessing ofserver, using thelease MUST beserver address asfollows: Whenthepreferred lifetime of anIPv6 destination addressexpires,in theclientsIPv6 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 |S|C| reserved | transaction-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | (if present) | | server addressbecomes a deprecated address. A deprecated(16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | agent addresscan be used as a source| | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | link-local addressin new communications| | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | extensions (variable number andexisting communications. But a deprecated address means the node will soon have an address whose valid lifetime will expire, when this happenslength) .... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ msg-type 3 S If set, theaddress cannot be used in any communications. Anserver address isa deprecated until its valid lifetime expires at which pointpresent C If set, theaddress becomes an invalid address. An invalid address MUST NOT be used as a source address in outgoing communications,client requests the server to clear all existing resources andMUST NOT be recognizedbindings currently associated with the client, deallocating asa valid destination address for incoming communications. Once an address is deprecated an implementation SHOULD request a new lease or address forneeded. reserved 0 transaction-ID A monotonically increasing number which the client asks the server to copy into its DHCP Reply, so thatinterface. Iftheclients preferred lifetime is zero for anclient can match Replies with pending Requests. server address If present, the IPv6 addressis immediately deprecated. Implementorsof the DHCPv6would find it beneficial to coordinateserver which should receive theuseclient's DHCP Request message. agent address The IPv6 address of thepreferred lifetime and valid lifetime for layers below the DHCPv6 application layer with their implementation of Stateless Address Autoconfiguration. It is suggested that implementations userelay or server interface from which thesame modules to configure addresses for stateless and stateful address autoconfiguration. Implementors might want to consider an option to stop all new communications for a deprecated address, to support a very robust renumbering strategy, but this cannot beclient received thedefault behavior. 3.3.2. Duplicate Address Detection DHCPv6 clients MUST support Duplicate Address Detection as specified inDHCP Advertise message link-local address The IPv6Stateless Address Autoconfiguration. This will provide a high guarantee that DHCPv6link-local address of the clientaddresses are not duplicated on a link. It is an option for ainterface from which the the client issued the DHCP Request message Bound, Perkins Expires 12 August 1996 [Page 11] Internet Draft DHCP Version 6 12 February 1996 extensions See [5]. 4.5. DHCP Reply Message Format The server sends a DHCP Reply message in response toinformevery DHCP Request received. If the request comes with the 'S' bit set, the clientit doescould nothavedirectly send the Request toperform Duplicate Address Detection bythe serversettingand had to use avalue of 01 in the message-flag in client responses.neighboring relay agent. Inthis case it is assumedthat case, the serverimplementation is providingsends back theguarantee thatDHCP Reply with theclient addresses returned are unique on'L' bit set, and thelink. ItDHCP Reply isimplementation defined how a server verifiesaddressed to theuniqueness of client addresses on a link. A conceptual model of an implementation for DHCPv6 duplicateagent addressdetection is that the client DHCPv6 module, which supports updatingfound in thenetwork interfaces for a host, would useDHCP Request message. If thesame application configuration interface for DHCPv6 as'L' bit isused for IPv6 Stateless Address Autoconfiguration on an IPv6 conforming implementation. An implementation can integrate and reuse the same modules inset, then thenetwork operating system kernel to spawn duplicate address detection,client's link-local addresslifetime processing, and the processing of deprecated and invalid addresses for existing and new connections. Expires May 1996 [Page 12] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 3.3.3. Releasing Infinite Lifetime Addresses DHCPv6 specifies no behavior which would require a client to listen for asynchronous messages from servers on a well known UDP port. The reason for this is that minimal implementations may notwill also beable to support such a feature in a client. But DHCPv6 does permitpresent. 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 | error code | transaction-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |L| RESERVED | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | (if present) | | link-local address (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | extensions (variable number and length) .... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ msg-type 3 error code One of theclient tofollowing values: 0 Success 1 Failure, reason unspecified 2 Authentication failed or nonexistent 3 Poorly formed requestan infinite lease for addresses. The problem4 Resources unavailable 5 Client record unavailable 16 Wrong phase of moon 32 Dogbert didn't like it 64 Server unreachable (ICMP error) transaction-ID Copied from the transaction-ID which the DHCPv6 server received in the DHCP Request. to help the client match thiscasereply with an outstanding Request. L If set, the link-local address isthat thoughpresent Bound, Perkins Expires 12 August 1996 [Page 12] Internet Draft DHCP Version 6 12 February 1996 RESERVED 0 link-local address If present, theserver has permitted an infinite lease for a client it may later be required thatIPv6 address of the clientgive up that lease orinterface which issued theaddresses, for some organizational reason. This specification leaves it as implementation defined how this problemcorresponding DHCP Request message. extensions See [5]. If the 'L' bit is set, and thus the link-local address issolvedpresent ina DHCPv6 network environment. One solution totheproblemReply message, the Reply isto define an SNMP MIB for DHCPv6 clients that when setsent bya network management agent causes a client to revalidate all of its addresses withtheDHCPv6serveror issue a RELEASEto theserver. 3.4. DNS Host Name Autoregistration Model It is important that DHCPv6 provide a server implementation set of options for Dynamic Updates to DNS (DYNDNS), to support the autoregistration of addresses to names in IPv6. DYNDNS SHOULD be supported as a set of options in DHCPv6 asrelay's address which was specifiedinas theOptions for DHCPv6 specification. The minimum requirements to support DYNDNSagent address inDHCPv6 are as follows: 1. Clients SHOULD be able to request or change names for addresses. 2. Servers SHOULD be ablethe DHCP Request message, and the relay uses the link-local address toprovide names for addresses provideddeliver the Reply message toathe client.3. If servers support DYNDNS then they MUST support4.6. DHCP Release Message Format The DHCP Release message is sent without thefollowing: a) Create, Update, and Deleteassistance ofIPv6 AAAA Records [IPv6-DNS] as specified in DYNDNS [DYN-UPD]. b) Create, Update, and Delete of IPv6 IP6.INT Domain PTR records foranyIPv6 AAAA addresses defined inDHCPv6 relay. When a clientDYNDNS request, or that the server automatically generated forsends aclient. 4. Request/Response Processing The request/response processing for DHCPv6Release message, it istransaction based and uses a best-effort set of messagesassumed toguaranteehave acompleted- transaction. The case where the client does not know the serversvalid IPv6 addressis depicted, and then the case wherewith sufficient scope to allow access to theclient does knowtarget server. Only theservers address is depicted. Thenparameters which are specified in thetimeout and retransmission guidelines and configuration variablesextensions arediscussed. Expires May 1996 [Page 13] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 4.1. Processing when Server Address is not Knownreleased. Theprocessing for the DHCPv6 request/response model when the client does not know theDHCP serveraddress is as follows: Server Client Server (not selected) (selected) v v v | | | | Begin Transaction | | | | | _____________ | _____________ | | DISCOVER | DISCOVER | | (DHCPv6 Multicast) | | | | Determine Client Configuration | Determine Client Configuration | (Unicast) | | ___________ | ____________ | | CONF-RESPONSE | CONF-RESPONSE | | | | | Collects replies | | | | | Selects configuration | | | | | _____________ | _____________ | | ACCEPT | ACCEPT | | (DHCPv6 Multicast) | | | | | | Commits Client Bindings | | (Unicast) | | | | | _____________ | | | SERVER-ACKacknowledges the Release message by sending a DHCP Reply (Section 6.2). 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 |D| msg-flags | transaction-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | agent address |Transaction Complete| (16 octets) |Client commits Bindings+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | link-local address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |IFextensions (variable number and length) .... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ msg-type 5 D If theClient did not | | receive'D' ("Direct") flag is set, theSERVER-ACK | | deleteclient instructs theBindings | | (Unicast) | | | | | | _____________ | | | RELEASE | | | | | | Server deletesserver to send theBindings | | and rollsDHCP Reply directly backany updates that | | that may have been done for the | | client. | | | v v v DHCPv6 uses the UDP [RFC-768] protocoltocommunicate between clients and servers. UDP is not reliable, but DHCPv6 must provide some reliabilty between clients and servers. The network trade-off is time versus the reliability thatthecompleted setclient, instead ofrequest/response messages were received by bothusing theclientgiven agent address and link-local address to relay the Reply message. msg-flags 0 Bound, Perkins ExpiresMay12 August 1996 [Page14] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 199513] Internet Draft DHCP Version 6 12 February 1996 transaction-ID A monotonically increasing number which the client asks the server todefine a completed-transaction. The request/response set is always started by a client either with a DISCOVER whenuse in its DHCP Reply, to help the clientdoes not knowmatch Replies with outstanding Releases. agent address The IPv6 address of theservers address, or a CONF-REQUEST whenagent interface to which the clientdoes knowissued theservers address. The secondDHCP Request messageislink-local address The IPv6 link-local address of the client interface from which theserver and istheCONF-RESPONSE. Theclientthen acknowledgesissued theservers CONF-RESPONSE with an ACCEPT. At this pointDHCP Request message extensions See [5] If the client knows that the address it uses as the source IP address in its IPv6 header will still be valid after theflow all data has been received and additional messages are defined to insureserver performs thetransaction is completed, andoperations requested in the extensions toprovide a method of recovery if eitherthe DHCP Release message, the clientor server do not receivecan then specify themessages to complete'D' flag. When the 'D' flag is set, thetransaction. Theserverafter receivingMUST send theACCEPT sends a SERVER-ACK, which is an acknowledgmentDHCP Reply back to theclientclient's address as shown in theserver has receivedsource address of theclients ACCEPT. At that pointIPv6 header of thetime vs reliability trade-off in DHCPv6Release message. Otherwise, when the 'D' bit isfornot set, the serverto commit its bindings,MUST use the agent address andperformlink-local address in its DHCP Reply message to forward the Reply message back to the releasing client. 4.7. DHCP Reconfigure Message Format The DHCP Reconfigure message is sent without the assistance of anyupdates asDHCPv6 relay. When aresult ofserver sends a Reconfigure message, the clientmessages (e.g. Update DNS). Ifto which it is sent is assumed to have a valid IPv6 address with sufficient scope to be accessible by theclient receivesserver. Only theSERVER-ACK, thenparameters which are specified in the extensions to the Reconfigure message need be requested again by the client. The clientcan commit its bindings. But ifSHOULD listen at UDP port 546 to receive possible DHCP Reconfigure messages. If the client does notreceive the SERVER-ACK thenlisten for DHCP Reconfigure messages, itshould sendis possible that the client will not receive notification that its DHCP servera RELEASEhas deallocated the client's IPv6 address and/or other resources allocated toinformtheserver that any bindings should be deletedclient. Bound, Perkins Expires 12 August 1996 [Page 14] Internet Draft DHCP Version 6 12 February 1996 See discussion in 6.3. 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 | msg-flags | reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | extensions (variable number and length) .... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ msg-type 6 msg-flags 0 reserved 0 extensions See [5] 5. DHCP Client Considerations A DHCPv6 client MUST silently discard anyupdates for theDHCP Solicit, DHCP Request, or DHCP Release message it receives. A DHCPv6 client shouldbe rolled back. Theretain its configured parameters and resources across clientRELEASE provides the final recovery checksystem reboots and DHCPv6 client program restarts. However, inthethese circumstances a DHCPv6request/response set to completeclient SHOULD also formulate atransaction. RetransmissionDHCP Request message to verify that its configured parameters and resources are still valid. This Request message MUST have the 'C' bit set, to clear client binding information at the server, ofmessages is discussed in section 4.3. The ACCEPT inwhich theflow above isclient may no longer have any record. 5.1. DHCP Solicit Message Processing If amulticast packet which serves an overloaded function,node wishes torespondbecome a new DHCPv6 client, it must first locate a neighboring DHCP Agent. The client does this by multcasting a DHCP Solicit message to theselected server, andwell-known multicast address FF02:0:0:0:0:0:1:0, setting the TTL == 1. 5.2. DHCP Advertise Message Processing When a DHCPv6 client receives a DHCP Advertise message, it may formulate a DHCP Request message toinform otherreceive configuration information and resources from the DHCP serversonlisted in thenetworkadvertisement. If theclient isAdvertise message has zero server addresses and does notselecting them.have the 'S' bit set, the client MUST silently discard the message. Bound, Perkins ExpiresMay12 August 1996 [Page 15]INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 4.2. Processing when Server Address is Known The processing for the DHCPv6 request/response model when the client does knowsInternet Draft DHCP Version 6 12 February 1996 If theserver address'S' bit isas follows (all packets are Unicast): Client Server v v v | | | | Begin Transaction | | | | | | _____________ | | | CONF-REQUEST | | | | | | Determine Client Configuration | | | | | ____________ | | | CONF-RESPONSE | | | | | | _____________ | | | ACCEPT | | | | | | Commits Client Bindings | | | | | _____________ | | | SERVER-ACK | | | | | Transaction Complete | | Client commits Bindings | | | | | IFset, theClient did not | | receive the SERVER-ACK | | | | | | _____________ | | | RELEASE | | | | | | Server deletesDHCP Advertise message was transmitted by a DHCPv6 server. In this case, theBindings | | and rolls back any updates that | | thatAdvertise message may havebeen done for the | | client. | | | v v v The processing above is the same as was discussed in 4.1, except the CONF-REQUEST is used byExtensions; this might allow the DHCPv6 client torequestselect the configurationparametersthat best meets its needs from among several prospective servers. Also in this case, theserver, andclient MUST use theCONF-REQUEST and ACCEPT are unicast packets. 4.3. Retransmission and Configuation Variables Configuration variablesagent address as the address of its server forafuture DHCPv6 message transactions. 5.3. DHCP Request Message Processing A DHCPv6implementation that MUST be configurable by aclientor server are as follows: Retranstimer - The time in seconds thatobtains configuration information from a DHCPv6client orservershould wait before retransmittingby sending a DHCP Request message.Expires May 1996 [Page 16] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 Default: 3 seconds. Maxretrans -Themaximum retransmissions that a DHCPv6clientor server should retransmit,must know the server's address beforelogging a DHCPv6 System Error tosending theuser. Default: 3 retransmissions. The problem with retransmissions occurs when they are continually received byRequest message. In addition, the client must have acquired a valid DHCP agent address. If the clientorand server(e.g. duplicate bindings or updates). To support informing aare on the same link, the agent address used by the clientorMUST be the same as the DHCP server's address. If the client has no valid IPv6 address and the DHCP serverthat a retransmissionisbeing done a secondoff-link, then the client MUST include the server address in the appropriate field of the DHCP Request message and set the 'S' bit. In this case, the IPv6 destination address ofmessage-types are supported in DHCPv6 as follows: 20 - DISCOVER-Retrans 21 - CONF-REQUEST-Retrans 22 - CONF-RESPONSE-Retrans 23 - ACCEPT-Retrans 24 - SERVER-ACK-Retrans 25 - RELEASE-Retrans When athe Request message MUST be the agent address. Otherwise, if the clientor server retransmitsalready has aDHCPv6 packet atvalid IPv6 address and knows theapplication layer over UDP, theyIPv6 address of a candidate IPv6 server, it MUSTchangesend themessage-typeRequest message directly to thesame message-type withDHCPv6 server without requiring theRetrans suffix. A response to a retransmission SHOULD be a duplicateservices of the local DHCPv6 relay. If aprevious responseclient wishes to instruct a DHCP server to deallocate all previous resources, configuration information, and bindings associated with its agent address and link-local address, it sets the 'C' bit in the DHCP Request. A clientor server. It is implementation defined how this is accomplished. One method of retransmitting duplicatesMAY send inan implementation conceptuallysuch a Request even when it is no longer attached tousethe5-Tuple binding for alink on which the relay address is attached. A clientorMAY maintain information about which relay address and serverto searchaddress it has been using for use after aprevious response. At a minimumreboot. When the clientinterface token and transaction-ID will be present in all messages; hencehas abinding can be searched (whether committed orpending DHCP Request and reboots before the corresponding DHCP Reply is received, the client MUST issue its next DHCP Request after rebooting with the 'C' bit set. In any case, after choosing a transaction-ID which is numerically greater than its previous transaction-ID, and filling inprocess)the appropriate fields of the DHCP Request message, the client MAY append various DHCPv6 Extensions toverify ifthe message. These Extensions denote specific requests by the client; for example, aprevious response has been sent.client may request a particular IP address, or request that the server send an update Bound, Perkins ExpiresMay12 August 1996 [Page17] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 5. Datagram and Field Definitions 5.1. Datagram16] Internet Draft DHCP Version 6 12 February 1996 containing the client's new IP address to a Domain Name Server. When all Extensions have been applied, the DHCPv6Datagram +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type | msg-flag | error-code | total-addrs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RESERVED |client unicasts the DHCP Request to the appropriate DHCP Agent. For each pending DHCP Request message, a client MUST maintain the following information: - The transaction-ID| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | interface token | | (8 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |of the Request message, - The serveraddress | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | gateway address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | client-link address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | preferred lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | valid lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | client address | | (16 octets) | | (canaddress, - The agent address, - The time at which the next retransmission will bemultiple addresses and lifetimes present) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | options (variable numberattempted, andlength) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Expires May 1996 [Page 18] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 5.2. Field Definitions- Allfields in the datagram MUST be initializedExtensions appended tobinary zeroes by boththe reply message. If a clientand server messages unless otherwise noted in Section 6. msg-type - 1 octet integer value (message-type) Value Description 01 DISCOVER 02 CONF-REQUEST 03 CONF-RESPONSE 04 ACCEPT 05 SERVER-ACK 06 RELEASE 07-19 RESERVED 20 DISCOVER-Retrans 21 CONF-REQUEST-Retrans 22 CONF-RESPONSE 23 ACCEPT-Retrans 24 SERVER-ACK-Retrans 25 RELEASE-Retrans 26-255 RESERVED msg-flag - 1 octet integer value (message-flag) Value Description 01 Server - Duplicate Address Detection not Required. 02-255 RESERVED error-code - 1 octet integer value Value Description 01 Server - Addresses are not available at this time. 02 Server - Addressdoes notknown byreceive a DHCP Reply message with theServer 03-255 RESERVED total-addrs - 1 octet integer value (total-addresses) RESERVED - 2 octets Reserved for future use.same transaction-ID- 2 octets integer value interface token - 8 octets link-dependent identifier server address - 16 octets address gateway address - 16 octets address client-link address - 16 octets link-local address preferred lifetime - 4 octets integer value in seconds valid lifetime - 4 octets integer valueas a pending DHCP Request message within REPLY_MSG_INITIAL_TIMEOUT seconds, it MUST retransmit the Request with the same transaction-ID and continue to retransmit according to the rules inseconds Expires May 1996 [Page 19] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995Section 7.4. Note that if a clientaddress - 16 octets address options - variable number of octets [DHCPv6-OPT] Expires May 1996 [Page 20] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 6. Client/Server Message Formats 6.1. Client/Server UDP Ports, Multicast Group,crashes while its DHCP Request is still pending, no state is maintained, andAddresses Athe client MUSTtransmit all messages over UDP using UDP Server Port 547. A server or relay-agent MUST transmit all messages over UDP using UDP Client Port 546. Areissue a DHCP Request after it restarts. 5.4. DHCP Reply Message Processing When a client receives a DHCP Reply message, it MUSTreceive all messages over UDP using UDP Client Port 546. A server or relay-agentcheck whether the transaction-ID in the Reply message matches the transaction-ID of a pending DHCP Request message. If no match is found, the Reply message MUSTreceive all messages over UDP using UDP Server Port 547. A server or relay-agentbe silently discarded, and an error SHOULD be logged. If the transaction-ID matches that of a pending Request, and the 'L' bit is set, but the source address in the IPv6 header does not match the pending agent address, the client MUSTjoindiscard theDHCPv6 Server/Relay-Agent multicast group well-known multicastmessage, and SHOULD log the event. Likewise, if the transaction-ID matches that of a pending Request, and the 'L' bit is not set, but the source addressFF02:0:0:0:0:0:1:0. Servers onin thesame link asIPv6 header does not match the pending server address, the client MUST discard the message, and SHOULD log the event. If the Reply message is acceptable, the client processes each Extension [5], extracting the relevant configuration information and parameters for its network operation. Some configuration information extracted from theclient MUST useExtensions to thesource address inDHCP Reply message must remain associated with theIPv6 header fromDHCP server that Bound, Perkins Expires 12 August 1996 [Page 17] Internet Draft DHCP Version 6 12 February 1996 sent theclient asmessage. The particular extensions that require this extra measure of association with thedestination addressserver are indicated in theservers response packet. ServersDHCPv6 Extensions document [5]. These associations may be useful with DHCP Release messages. 5.5. DHCP Release Message Processing If a DHCPv6 client determines thatrespondsome of its network configuration parameters are no longer valid, it may enable the DHCPv6 server torelay-agents and relay-agent processingrelease allocated resources which arediscussedno longer insection 7. In the cases whereuse by sending a DHCP Release message to the server. The clientor servermustretransmit messages the msg-type codes in this section are used as statedconsult its list of resource-server associations insection 4.3 with the values that represent the Retrans suffix fororder to determine which server should receive themsg-types. 6.2. Client DISCOVER and CONF-REQUEST Messages msg-type:desired Release message. Ifthea clientdoes not knowwishes to ask the serveraddress or wantstolocate a new serverrelease all information and resources relevent toreceive configuration parameterstheclient setsclient, themsg-typeclient specifies no Extensions. A client wishes to release resources which were granted toDISCOVER.it at another link-local address. Inthis casethat case, the clientMUST use asmust instruct thedestination IP addressserver to send theDHCPv6 Server/Relay-Agent multicast address FF02:0:0:0:0:0:1:0.DHCP Reply directly back to the client, instead of performing the default processing of sending the DHCP Reply back through the agent-address included in the DHCP Release. This is done by setting the 'D' bit in the DHCP Release message. 5.6. DHCP Reconfigure Message Processing DISCUSSION: On the one hand, clients REALLY SHOULD listen for Reconfigure messages. On the other hand, some implementors claim that requiring a client to always listen at a port is asking too much. This issue needs further discussion. If a DHCPv6 client receives a DHCP Reconfigure message, it is a request for the clientknowsto initiate a new DHCP Request/Reply transaction with the serveraddresswhich sent theclient setsReconfigure message. The server sending themsg-type to CONF-REQUEST. In this caseReconfigure message MAY be different than theclient MUST use asserver which sent a DHCP Reply message containing thedestination IP addressoriginal configuration information. For each Extension which is present in theserver address. msg-flag: SetReconfigure message, the client appends a matching Extension tobinary zeroes. error-code: Setits DHCP Request message which it formulates tobinary zeroes. total-addrs: Setsend to thenumberDHCPv6 server which is found in the IP source address ofaddressesthe message. The client also selects a transaction-ID numerically greater than its last choice and inserts it into the Request message. From then on, processing isrequesting. transaction-ID:the same as specified above in Section 5.3. Bound, Perkins ExpiresMay12 August 1996 [Page21] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 Set to an integer value. interface token: Set to a unique link dependent identifier for the clients interface.18] Internet Draft DHCP Version 6 12 February 1996 6. DHCP Server Considerations A serveraddress: Set to binary zeroes for DISCOVER. Set toMUST ignore any DHCP Advertise, DHCP Reply, or DHCP Reconfigure message it receives. A serveraddress for CONF-REQUEST. gateway address: Set to binary zeroes. client-link address: Set to the clients link-local address for the link on which the client transmitteduses thepacket. preferred lifetime: Setcombination <link-local address, agent address> tobinary zeroes if theindex into its records of clientis not requestingbindings. A DHCPv6 server should retain its client's bindings across server reboots, and, whenever possible, alifetime. Set to the number of seconds theDHCPv6 clientwants forshould be assigned thelifetime. Setsame configuration parameters despite server host system reboots and DHCPv6 server program restarts. A DHCPv6 server MUST support fixed or permanent allocation of configuration parameters toall 1's (oxffffffff) if the client wants an infinite lifetime. The client must providespecific hosts. 6.1. DHCP Solicit and Advertise Message Processing Upon receiving apreferred lifetime for each address requested. valid lifetime: Set to binary zeroes if the client is not requestingDHCP Solicit message from a client, a server constructs alifetime. SetDHCP Advertise message and transmits it to thenumber of seconds thesoliciting clientwants foron thelifetime. Set to all 1's (oxffffffff) ifsame link as theclient wants an infinite lifetime.solicitation was received from. Theclient must provide a valid lifetime for eachdestination addressrequested. The valid lifetime mustof the advertisement MUST begreater than or equal tothepreferred lifetime. client address: Set to binary zeroes ifsource address of theclient is not requestingsolicitation. The DHCP server must use arenewal for an existingIPv6 address of the interface on which it receivedfrom a server. Set to anthe client's DHCP Solicit message as the source address field of theclient previously received from a server whenIPv6 header of theclient is requestingmessage. 6.2. DHCP Request and Reply Message Processing The DHCPv6 server MUST check to ensure that anew setvalid link-local address is present in the client's link-local address field oflifetimesthe Request message. If not, the message MUST be silently discarded. Otherwise, it checks for theaddress. A clientpresence of the 'S' bit. If the 'S' bit is set, the server MUSTNOT provide acheck that the serverwith anaddressthat was not given tomatches theclientdestination IPv6 address at which the Request message was received byathe server.DHCPv6If the server address does notpermit amatch, the Request message MUST be silently discarded. If the message is accepted, the server extracts the client's link-local address and the agent address, and uses the information tocreate leases for manual configured addresses,locate orupdate leases for addresses created by IPv6 Stateless Address Autoconfiguration. options: See Options for DHCPv6 specification [DHCPv6-OPT]. Expires May 1996 [Page 22] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 6.3. Server CONF-RESPONSE Message msg-type: Set msg-type to CONF-RESPONSE. msg-flag: Setcreate an appropriate client record (called a binding) used to01 ifstore all theserver knows addresses provided are verifiedrelevant information, resources, and configuration data which will be associated with the client. Each client record is uniquely identifiable by the ordered pair <link-local address, agent address>, since the link-local address is guaranteed to beunique, otherwise set to binary zeroes. error-code: Set to 01 ifunique [9] on theserver cannot provide any addresses tolink identified by theclient at this time. Set to 02 ifagent address. If theserver detects anreceived agent addressfrom the client it didand link-local address do notprovidecorrespond tothe client. total-addrs: Setany binding known to thenumberserver, then the server MAY create a new binding for the Bound, Perkins Expires 12 August 1996 [Page 19] Internet Draft DHCP Version 6 12 February 1996 previously unknown client; otherwise, it SHOULD return a DHCP Reply with a error code ofaddresses5. Before processing the Request, the server must determine whether or not the Request isreturninga retransmission of an earlier DHCP Request from the same client.transaction-ID: Set toThis is done by comparing thevaluetransaction-ID to all those transaction-IDs received from the same clientprovided induring theDISCOVER or CONF-REQUEST msg-type. interface token: Set to a unique link dependent identifier forprevious TRANSACTION_ID_TIMEOUT seconds. If theclients interfacetransaction-ID is the same asprovided inone received during that time, theclients DISCOVER or CONF-REQUEST msg-type.serveraddress: The address ofMUST take theserver responding. gateway address: Setsame action (e.g., retransmit the same DHCP Reply to the client) as it did after processing the previous DHCP Request with the samevalue that existedtransaction-ID. Otherwise (the transaction-ID has not been recently used), when the serverreceivedhas identified and allocated all the relevant information, resources, and configuration data that is associated with the client, it sends that information to its DHCPv6 client by constructing a DHCP Reply message and including thepacket. client-link address: Setclient's information in DHCPv6 Extensions to the Reply message. The DHCP Reply message uses the samevalue that existed whentransaction-ID as found in theserverreceived DHCP Request message. If thepacket. preferred lifetime: Set toDHCP Request message has thevalue requested by'S' bit set in theclient ormessage header, thevalue required byDHCPv6 server MUST send theserver. valid lifetime: Setcorresponding DHCP Reply message to thevalue requested byagent address found in the Request. The DHCP Request may contain Extensions, which are interpreted as advisory (or mandatory) information from the client about its configuration preferences. For instance, if the IP Address Extension is present, theclientDHCPv6 server SHOULD attempt to allocate or extend thevalue required by the server. The validlifetimeMUST be greater than or equal toof thepreferred lifetime. client address: Expires May 1996 [Page 23] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 Set to anaddressprovidedindicated by theserver ifExtension. 6.3. DHCP Release Message Processing If theclientserver receives a DHCP Release Message, it MUST verify that a valid link-local address isnot attempting to renew existing addresses, meaningpresent in the link-local addressfields from the client have a valuefield ofbinary zeroes.the message. If not, theerror-code is setmessage MUST be silently discarded. In response to02a DHCP Release Message with a valid link-local address, the DHCPv6 serverwill only return the addressesformulates a DHCP Reply message that will be sent back to theserver can verify were providedreleasing client by way of theserver. If no addresses couldclient's link-local address. A DHCP Reply message sent in response to a DHCP Release message MUST beverifiedsent to thetotal-addrs field, lifetimes, and clientclient's link-local addresswill bevia the agent address in the Release message and setto binary zeroes. Inthecase as far as'L' bit in theserver is concernedReply, (unless theDHCPv6 transaction'D' bit iscompleted andset in theserver willRelease message). Bound, Perkins Expires 12 August 1996 [Page 20] Internet Draft DHCP Version 6 12 February 1996 If the received agent address and link-local address do notexpect a client ACCEPT messagecorrespond toits CONF-RESPONSE message. options: See Options for DHCPv6 specification [DHCPv6-OPT]. 6.4. Client ACCEPT Message msg-type: Set msg-typeany binding known toACCEPT. Iftheclient sentserver, then the server SHOULD return a DHCP Reply with a error code of 5. Otherwise, if the agent address and link-local address indicate aDISCOVERbinding known torequest configuration parameters onthelink,server, then theclient should use as the IP destination addressserver continues processing for theDHCPv6 Server/Relay-Agent multicast address FF02:0:0:0:0:0:1:0.Release message. If there are any Extensions, the server releases the particular configuration items specified in the extensions. Otherwise, if there are no extensions, theclient sent a CONF-REQUEST to requestserver releases all configurationparameters oninformation in thelink, thenclient's binding. After performing theclient should use asoperations indicated in theIP destination addressDHCP Release message and its Extensions, the DHCPv6 serveraddress informulates a DHCP Reply message, copying theCONF-RESPONSEtransaction-ID, from theserver. IfDHCP Release message. For each Extension in theclient sees an error-code of 02 andDHCP Release message successfully processed by thetotal-addrs fieldserver, a matching Extension iszero,appended to theserver cannot process any ofDHCP Reply message. Extensions in theaddresses requested andDHCP Release message which cannot be successfully processed by theclient should not send an ACCEPTserver MUST NOT correspond to any Extension appended to the Reply by the server. 6.4. DHCP Reconfigure Message Processing If a DHCPv6 server needs to change theclient sees an error-codeconfiguration associated to any of02 and total-addrs does not equal zeroits clients, itmeans the server dropped addresses thatconstructs a DHCP Reconfigure message and sends itcould not locate requested by the client. msg-flag: Set to binary zeroes. error-code: Set to binary zeroes. total-addrs: Set to 1. transaction-ID: Setto each such client. The Reconfigure message MUST contain theinteger value thatparticular Extensions which inform the clientused on its initial DISCOVER or CONF-REQUEST msg-typeabout which configuration information needs tothe server. interface token: Setbe changed. DISCUSSION: Perhaps a DHCPv6 server should be allowed tothe unique link dependent identifier for the clients interface that was used for the clients initial DISCOVER or CONF-REQUEST msg-type Expires May 1996 [Page 24] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995multicast a DHCP Reconfigure message tothe server. server address: Setits clients. There are issues tothe address provided by thebe resolved here. There is concern about encouraging serversCONF-RESPONSE. gateway address: Settobinary zeroes. client-link address: Setsend such messages to any DHCP-wide multicast address. Perhaps a new extension should be defined so that the server can ask (some of) its clientslink-local address for the link on which the client transmitted the packet. preferred lifetime: Set to the first or only preferred lifetime returned for an address by the server. valid lifetime: Setto join a specific multicast group. Then thefirst or only valid lifetime returned for an address by the server. The valid lifetime MUST be greater than or equalserver could efficiently multicast Reconfigure messages to whatever group it wants. This would have thepreferred lifetime. client address: Setadditional advantage that clients could receive Reconfigure messages without listening to any specific UDP port. If multiple clients can receive thefirst or only address provided bysame Reconfigure message, some algorithm must be specified so that theserver. Ifclients stagger their Bound, Perkins Expires 12 August 1996 [Page 21] Internet Draft DHCP Version 6 12 February 1996 responses (i.e., their DHCP Requests) so that the server isn't deluged all at once with some arbitrarily large number of clientdid receive more than one address and lifetime, it MUST store this data in an implementation defined manner,Requests. 7. DHCP Relay Considerations The DHCPv6 protocol is constructed so thatit can issueacomplete RELEASE for all addresses provided from the server CONF-RESPONSE, if necessary later. But the ACCEPTrelay does notneed to carry all those addresseshave toacknowledge the servers CONF-RESPONSE packetmaintain any state inan ACCEPT. options: No options are present. 6.5. Server SERVER-ACK Message msg-type: Set msg-type to SERVER-ACK. If the client sent the ACCEPTorder toacknowledge a servers CONF-RESPONSE message on thefacilitate DHCPv6Server/Relay-Agent multicast address FF02:0:0:0:0:0:1:0, the serverclient/server interactions. All relays MUSTlook atuse theserverIPv6 addressinof thepacket to determine ifinterface from which theACCEPTDHCPv6 message is transmitted as the source address forthem or not. Ifthe IP header of that DHCPv6 message. 7.1. DHCP Solicit and DHCP Advertise Message Processing Upon receiving a DHCP Solicit messageis not forfrom aparticular server then this is an indirectclient, a relay constructs a DHCP Advertise messageto that particular server the client is not accepting them as Expires May 1996 [Page 25] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 their server for this transaction,andMUST NOT send a SERVER-ACK to the clients ACCEPT. msg-flag: Set to binary zeroes. error-code: Set to binary zeroes. total-addrs: Set to 1. transaction-ID: Settransmits it to theinteger value that thesoliciting clientusedonits initial DISCOVER or CONF-REQUEST msg-type totheserver. interface token: Set tosame link as the solicitation was received from. The destination address of the advertisement MUST be theunique link dependent identifier forsource address of theclients interface that was used forsolicitation. DISCUSSION: If theclients initial DISCOVER or CONF-REQUEST msg-typeSolicit is delivered to a server and theserver.serveraddress: Setis allowed to send theservers address. gateway address: Setcorresponding Advertise back tothe same value that existed whena client, the serverreceived the packet. client-link address: Setcould then include some prospective information tothe same value that existed when"entice" a client to use its services. For instance, a server could include proposed lifetime information, and a client could pick the serverreceivedwith thepacket. preferred lifetime: Setbest "terms". Presumably, this forwarding behavior should be a matter of relay configuration instead of client request. I'll assume that for now and try to make thevalue provided byprotocol reflect theclient. valid lifetime: Setability of DHCP Advertise messages to contain Extensions and come from DHCP servers off-link. That may take a little more doing which isn't in thevalue provided by the client. The valid lifetime MUSTprotocol right now, begreater than or equal to the preferred lifetime. client address: Setpatient. When transmitting a DHCP Advertise message, a relay indicates how many server addresses which it was configured totheadvertise, and includes each addressprovided byin theclient. At this pointDHCP Advertise message. The DHCP Advertise message must use a routeable IPv6 address in theserver MUST commitsource address of theconfiguration parameters provided toIPv6 header of theclient frommessage. In particular, theservers CONF-RESPONSE. options:source address of any DHCP Advertise message sent by a DHCPv6 relay MUST NOT be a link-local address. Bound, Perkins ExpiresMay12 August 1996 [Page26] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 No options are present. 6.6. Client RELEASE22] Internet Draft DHCP Version 6 12 February 1996 7.2. DHCP Request Messagemsg-type: Set msg-type to RELEASE. IfProcessing When a relay receives a DHCP Request message, it MUST check that theclient had sentmessage is received from a link-local address, that the link-local address matches the link-local address field in the Request message header, and that the agent address field of the message matches anACCEPTIPv6 address associated to theserver and received a SERVER-ACK for that message theninterface from which theclientDHCP Request message was received. The relay MUSTcommit the configuration parameters provided byalso check whether theservers CONF-RESPONSE and a RELEASE message'S' bit isnot required. But if the client did not receive a SERVER-ACKset inresponse totheclients ACCEPT, thenmessage header. If any of these checks fail, theclientmessage is not acceptable and MUSTissue a RELEASE to the server.be silently discarded. If theclient no longer needs an address or has been notified to return an address toreceived request message is acceptable, theserver,relay then transmits theclient SHOULD issue a RELEASEDHCP Request message to theserver. msg-flag: Set to binary zeroes. error-code: Set to binary zeroes. total-addrs: Set toDHCPv6 server found in thetotal numberServer Address field ofaddresses the client is releasing. Inthecasereceived DHCP Request message. All ofa RELEASE where the client did not receive the SERVER-ACK this value MUST equalthetotal numberfields ofaddresses for the servers CONF-RESPONSE. transaction-ID: Set toDHCP Request message header transmitted by theinteger value thatrelay are copied over unchanged from theclient used on its initial DISCOVER or CONF-REQUEST msg-type toDHCP Request received from theserver. interface token: Set toclient. Only theunique link dependent identifier forfields in theclients interface that was used forIPv6 header will differ from theclients initial DISCOVER or CONF-REQUEST msg-type todatagram received from theserver. server address: Set to binary zeroes. gateway address: Set to binary zeroes. client-link address: Set toclient, not theclients link-local address forpayload. 7.3. DHCP Reply Message Processing When thelink on whichrelay receives a DHCP Reply, it MUST check whether theclient Expires May 1996 [Page 27] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 transmittedmessage has thepacket. preferred lifetime: Set to'L' bit set. It must check whether thevalid lifetime returned for anlink-local addressby the server. valid lifetime: Set to the valid lifetime returned forfield contains an IPv6 addressby the server. The valid lifetime MUST be greater than or equal tothat has prefix FE80::00 . If all thepreferred lifetime. client address: Setchecks are satisfied, the relay MUST send a DHCP Reply message to the link-local addressprovided bylisted in theserver. The client will returnreceived Reply message. Only thenumber of addresses and associated lifetimes providedfields in theservers CONF-RESPONSE. options: No options are present. 7. Relay-Agent Processing The relay-agent MUST use UDP DHCPv6 Server Port 547 asIPv6 header will differ from theUDP port to accept client responses in an implementation. The relay-agent MUST joindatagram received from theDHCP Server/Relay-Agent multicast group well-known multicast address FF02:0:0:0:0:0:1:0.server, not the payload. 7.4. Retransmission and Configuation Variables When a DHCPv6Relay-Agent hearsclient does not receive arequest fromDHCP Reply in response to aDHCPv6 Client it MUST: Ifpending DHCP Request, thegateway address is NOT zero thenclient MUST retransmit therelay-agent MUST: Putidentical DHCP Request to therelay-agents IP address insame server again until it can be reasonably sure that thegateway address field ofDHCPv6 server is unavailable and an alternative can be chosen. It is important for theclients request packet. All relay-agents MUST: Put their relay-agent address asDHCP Server to be sure that its client has received thesource address forconfiguration information included with theIP header. PutExtensions to thenext relay-agent or knownDHCP Reply message. Likewise, but less commonly, when a DHCP serveraddress as the destination addressdoes not receive a DHCP Request message inthe IP header. Forward the packetresponse totheits DHCP Reconfigure message to thenext hop relay-agent or known server. Whenclient, theremoteserverreceivesMUST retransmit the identical DHCP Reconfigure to the clientrequestuntil it is reasonably certain that the client is not available for reconfiguration. If no corresponding DHCP Request is ever received by the server, the server MAY erase or deallocate information as needed from therelay-agent it will know itsclient's binding. Bound, Perkins Expires 12 August 1996 [Page 23] Internet Draft DHCP Version 6 12 February 1996 These retransmissions occur using the following configuration variables for a DHCPv6 implementation that MUST be configurable by a client or server are as follows: REPLY_MSG_INITIAL_TIMEOUT The time in seconds that aremoteDHCPv6 clientrequest (not on the servers link), because there iswaits to receive agateway address inserver's DHCP Reply before retransmitting a DHCP Request. Default: 2 seconds. REPLY_MSG_MIN_RETRANS The minimum number of DHCP Request transmissions that a DHCPv6 client should retransmit, before aborting therequest. So servers MUST verifyrequest, possibly retrying thegateway address is not zero,Request with another Server, and logging DHCPv6 System Error. Default: 10 retransmissions. RECONF_MSG_INITIAL_TIMEOUT The time in seconds that a DHCPv6 server waits todetermine if the clients request is fromreceive aremote link. Expires May 1996 [Page 28] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995client's DHCP Request before retransmitting its DHCP Reconfigure. Default: 2 seconds. RECONF_MSG_MIN_RETRANS The minimum number of DHCP Reconfigure messages that a DHCPv6 serverresponds as specified in section 6.0, but uses the gateway address as the destination address inshould retransmit, before assuming theIP header. Whentherelay-agent receivesclient is unavailable and that theremote servers response, it MUST forwardserver can proceed with thepacketneeded reconfiguration of that client's resources, and logging DHCPv6 System Error. Default: 10 retransmissions. The following parameter specifies how long a DHCPv6 server has tothe client, bykeep track of client transaction-IDs in order to make sure that client retransmissions using theclient-link address as the source address for the IP Header.same transaction-ID are idempotent. TRANSACTION_IT_TIMEOUT Default: 10800 seconds Bound, Perkins Expires 12 August 1996 [Page 24] Internet Draft DHCP Version 6 12 February 1996 8. Security ConsiderationsSecurity for DHCPv6 canIt may often beused as specified in [IPv6-SA], [IPv6-AUTH], and [IPv6-ESP], which are implementation requirementsvery important forIPv6. Appendix A - Related Work in IPv6 The related work in IPv6 that would best serve an implementor to study is the IPv6 Specification [IPv6-SPEC], the IPv6 Addressing Architecture [IPv6-ADDR], IPv6 Stateless Address Autoconfiguration [IPv6-ADDRCONF], IPv6 Neighbor Discovery Processing [IPv6-ND],DHCP clients andDynamic Updatesservers toDNS [DYN-UPD]. These specifications afford DHCPv6be able tobuild uponauthenticate theIPv6 workmessages they exchange. For instance, a DHCP server may wish toprovide both robust stateful autoconfiguration and autoregistration of DNS Host Names. The IPv6 Specification providesbe certain that a DHCP Request originated from thebase architecture and design of IPv6. A key pointclient identified by the <link-local address, agent address> fields included within the Request message header. Conversely, it is often essential forDHCPv6 implementorsa DHCP client tounderstand is that IPv6 requiresbe certain thatevery link intheinternet haveconfiguration parameters and addresses it has received were sent to it by anMTUauthoritative DHCP server. Similarly, a DHCP server should only accept a DHCP Release message which seems to be from one of576 octets or greater (in IPv4its clients, if it has some assurance that therequirementclient actually did transmit the Release message. At the time of this writing, there is68 octets). This meansno generally accepted mechanism useful with DHCPv4 thata UDP datagram of 536 octets will always pass through an internet (less 40 octetscan be extended for use with DHCPv6. There has been some discussion about the advisability and desirability of using IPv6header), as long as there are no IP options priorAuthentication tothe UDP datagramallow DHCPv6 clients and servers to authenticate messages which they exchange. However, inthe packet. But, IPv6 does not support fragmentation at routersmany circumstances a client has only a link-local address, andfragmentation must take place end-to-end between hosts. IfaDHCPv6 implementation needslink-local address cannot be forwarded tosendapacket greater than 536 octets it can either fragmentserver which is off-link. Thus, theUDP datagram in UDP or use Path MTU Discovery [IPv6-SPEC] to determineDHCP relay _has_to be involved, for instance, with thesize ofDHCP Request when thepacket that will traverseclient has only anetwork path. It is implementation defined howlink-local address, and therefore the DHCP Request (in thisis accomplished in DHCPv6. The IPv6 Addressing Architecture Specification providescircumstance) MUST have the relay's addressscope that can be usedinan IPv6 implementation, and the various configuration architecture guidelines for network designers ofthe IPv6 destination addressspace. Two advantages of IPv6 isfield. That means thatmulticast addressing is well defined and nodes can create link-local addresses during initialization ofthenodes environment. Thisauthentication (in this circumstance) CANNOT be end-to-end. That means that IPsec cannot apply. Thus, in order to authenticate DHCP Request messages in many circumstances will require ahost immediately can configure an IPv6 address at initializationmore specialized technique foran interface, before communicatingmessage authentication, as specified inany manner onthelink. The host can then use a well-known multicast addressDHCPv6 Extensions companion document [5]. One possibility is tobegin communicationsallow relays todiscover neighbors onencapsulate thelink, orDHCP Request before delivery to the server. Then the client could apply end-to-end authentication (such aswas discussed inafforded by IPSec) which would nevertheless remain untouched by thespecification to locate a DHCPv6 server or relay-agent.relay. TheIPv6 Stateless Address Autoconfiguration Specification (addrconf) defines how a host can autoconfigure addresses based on neighbor discovery router advertisements, and the use of a validation lifetimerelay could, if desired, apply its own authentication header tosupport renumbering of addresses ontheInternet. In additionencapsulated datagrams. 9. Acknowledgements Thanks to theaddrconf specification definesDHC Working Group for their time and input into theprotocol interactionspecification. A special thanks fora hostthe consistent input, ideas, and review by (in alphabetical order) Brian Carpenter, Ralph Droms, Thomas Narten, Jack McCann, Yakov Rekhter, Matt Thomas, Sue Thomson, and Phil Wells. Bound, Perkins Expires 12 August 1996 [Page 25] Internet Draft DHCP Version 6 12 February 1996 Thanks tobegin stateless or stateful autoconfiguration. DHCPv6 is one vehicleSteve Deering and Bob Hinden, who have consistently taken the time toperform stateful autoconfiguration. Compatibility with addrconf is a design goaldiscuss the more complex parts of the IPv6 specifications. The authors MUST also thank their employers for the opportunity and funding to work on DHCPv6Expires May 1996 [Page 29] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 where possible.and IPv6Neighbor Discovery (ND) isin general as an individual in thenode discovery protocolIETF. A. Related Work in IPv6(replaces and enhances functions of IPv4 ARP Model). To truly understandThe related work in IPv6and addrconf it is strongly recommendedthatimplementors understandwould best serve an implementor to study is the IPv6ND.Specification [2], the IPv6 Addressing Architecture [3], IPv6 Stateless Address Autoconfiguration [9], IPv6 Neighbor Discovery Processing [4], and Dynamic Updates to DNSis a specification that supports the dynamic update of DNS records for both IPv4 and IPv6.[10]. These specifications afford DHCPv6can use the dynamic updatestoDNSbuild upon the IPv6 work tonow integrate addressesprovide both robust stateful autoconfiguration andname space to not only support autoconfiguration, but alsoautoregistrationin IPv6. Expires May 1996 [Page 30] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 Change History Changes from July 95 to November 95 Drafts: Refined request/response codesof DNS Host Names. The IPv6 Specification provides the base architecture andprocessingdesign of IPv6. A key point for DHCPv6 implementors tosupport transaction processing model. Permit multiple addresses and lifetimesunderstand is that IPv6 requires that every link ina request and response. Moved Dynamic Updates to DNS asthe internet have anOption to be defined inMTU of 576 octets or greater (in IPv4 the requirement is 68 octets). This means thatspecification. Settled on usinga UDPas it supports DHCP client server model as opposed to TCP which has overheaddatagram of 536 octets will always pass through an internet (less 40 octets forthis model. Reformatted specificationthe IPv6 header), as long as there are no IP options prior to the UDP header in the datagram. But, IPv6 does not supportanalysis, packet formats,fragmentation at routers andprocessing in their own sectionsfragmentation must take place end-to-end between hosts. If a DHCPv6 implementation needs tomakesend a datagram greater than 536 octets iteasier for implementorscan either fragment the UDP datagram in UDP or use Path MTU Discovery [2] toread. Removed address count as itdetermine the size of the datagram that will traverse a network path. It isnot necessary for synchronization. Added error-code, msg-flag, and total-addrs fields. Made transaction-ID 2 octets. Updated terminology to coordinate with IPv6 Stateless Address Autoconfiguration. Added moreimplementationnotes. Moved IPv6 Related Work to an Appendix. Fixed various bugsdefined how this is accomplished in DHCPv6. The IPv6 Addressing Architecture Specification provides thespec from DHC WG input. Added Security reference pointers. Removed options format, which willaddress scope that can be used in an IPv6 implementation, and theoptions spec. Added retransmissionvarious configurationvariables, msg-types, and logic. Changes from March 95 to July 95 Drafts: Used integer values instead of bit valuesarchitecture guidelines fortype and code fields. Used message-type and message-code fields and rely on looking at the fields in the datagram insteadnetwork designers ofmultiple over-lapping request/response codes. Added address-count field processing to be specified by the client as opposed totheserver,IPv6 address space. Two advantages of IPv6 is that multicast addressing is well defined and nodes can create link-local addresses during initialization of theprocessingnodes environment. This means that a host immediately can configure an IPv6 address at initialization forwhen client and server address-counts become disjoint. Added Requirements wording for MUST, SHOULD, MAY, etc. Added Design Goals section. Redefined transaction-ID and interface-token. Expires May 1996 [Page 31] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 Added Client/Server Binding definition and processing section to handle those bindings. Added more terminology, definitions, and rationale. Added modelan interface, before communicating in any manner on the link. The host can then use a well-known multicast address tosupport Dynamic Updatesbegin communications toDNS for Host Names. Reduceddiscover neighbors on therequest/response modellink, or as was discussed in the specification to3 packets by not doinglocate a DHCPv6 serverconfirm toor relay. The IPv6 Stateless Address Autoconfiguration Specification [9] defines how aclients confirm tohost can autoconfigure addresses based on neighbor discovery router advertisements, and the use of aservers response. Added modelvalidation lifetime Bound, Perkins Expires 12 August 1996 [Page 26] Internet Draft DHCP Version 6 12 February 1996 to supportlike lifetime fieldsrenumbering of addresses on the Internet. In addition the addrconf specification defines the protocol interaction forlease managementa host tocoordinate with IPv6 Stateless Address Autoconfiguration. Added model and processing definitions for futurebegin stateless or stateful autoconfiguration. DHCPv6Options Specification. Added gateway-address and client-link-address for relay-agent processing. Removed excessive useis one vehicle to perform stateful autoconfiguration. Compatibility with addrconf is a design goal of DHCPv6. IPv6 Neighbor Discovery (ND) [4] is theacronym DHCPv6 for section titlesnode discovery protocol in IPv6 (replaces andwhen referencing clientsenhances functions of IPv4 ARP Model [6]). To truly understand IPv6 andservers. Added Draft ***Open Issues*** Section for review byaddrconf it is strongly recommended that implementors understand IPv6 ND. Dynamic Updates to DNS [10] is a specification that supports theDHC Working Group. Added Change History. Expires May 1996 [Page 32] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 Acknowledgements The DHC Working Groupdynamic update of DNS records fortheir timeboth IPv4 andinput into the specification. A special thanks forIPv6. DHCPv6 can use theconsistent input, ideas, and review by (in alphabetical order) Brian Carpenter, Ralph Droms, Thomas Narten, Jack Mccann, Charlie Perkins, Yakov Rekhter, Matt Thomas, Sue Thomson,dynamic updates to DNS to now integrate addresses andPhil Wells. The author wouldname space to not only support autoconfiguration, but alsolikeautoregistration in IPv6. B. Change History B.1. Changes from November 95 tothank Steve DeeringFebruary 96 Drafts Substituted use of client's link-local address for previous uses of client's interface token. Reorganized DHCP messages into Solicit/Advertise, Request/Reply, Release, andBob Hinden, who have consistently taken the time to discuss the more complex partsReconfigure. Made message-specific formats instead of using theIPv6 specifications. The author MUST also thank his employersame DHCP header forthe opportunityeach message. Eliminated retransmission message types. Server commits after receiving DHCP Request, andfunding to workoptimistically depends onDHCPv6client retransmissions as negative acknowledgement. Eliminated total-addrs. Eliminated all definitions and most fields related to allocating IPv6in general as an individual inaddresses (moved to theIETF.Extensions specification). Renamed "gateway address" to be "agent address". Bound, Perkins Expires 12 August 1996 [Page 27] Internet Draft DHCP Version 6 12 February 1996 References[DHCPv6-OPT] C. Perkins, "Options[1] S. Bradner and A. Mankin. The Recommendation for theDynamic Host Configuration Protocol for IPv6 (ODHCPv6)" Internet Draft, November 1995 <draft TBD> [IPv6-SPEC]IP Next Generation Protocol. RFC 1752, January 1995. [2] S. Deering and R.Hinden, "Internet ProtocolHinden. Internet Protocol, Version 6[IPv6] Specification" Internet Draft, June 1995 <draft-ietf-ipngwg-ipv6-spec-02.txt> [IPv6-ADDR](IPv6) Specification. RFC 1883, December 1995. [3] R.Hinden,Hinden and S.Deering, Editors, "IPDeering. IP Version 6 AddressingArchitecture" Internet Draft, June 1995 <draft-ietf-ipngwg-ipv6-addr-arch-03.txt> [IPv6-ADDRCONF] S. Thomson, T. Narten, "IPv6 Stateless Address Autoconfiguration" Internet Draft, November 1995 <draft-ietf-addrconf-ipv6-auto-05.txt> [IPv6-ND]Architecture. RFC 1883, December 1995. [4] T. Narten, E. Nordmark, and W.A. Simpson, "IPv6Simpson. IPv6 NeighborDiscovery" Internet Draft, September 1995 <draft-ietf-ipngwg-discovery-02.txt> [IPv6-DNS] S. Thompson andDiscovery. draft-ietf-ipngwg-discovery-03.txt -- work in progress, November 1995. [5] C.Huitema, "DNSPerkins. Extensions tosupport IP version 6",DHCPv6. draft-ietf-dhc-dhcpv6ext-00.txt -- work in progress, November 1995. [6] David C. Plummer. An Ethernet Address Resolution Protocol: Or Converting Network Protocol Addresses to 48.bit Ethernet Addresses for Transmission on Ethernet Hardware. RFC 826, November 1982. [7] J. B. Postel. User Datagram Protocol. RFC 768, August 1980. [8] J. B. Postel, editor. InternetDraft, March 1995 <draft-ietf-ipngwg-dns-00.txt> [RFC-1034] P. Mockapetris, "Domain Names - implementationProtocol. RFC 791, September 1981. [9] S. Thomson andspecification" STD-13, 11/01/87 Expires May 1996 [Page 33] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 [RFC-1035] P. Mockapetris, "Domain NamesT. Narten. IPv6 Stateless Address Autoconfiguration. draft-ietf-addrconf-ipv6-auto-06.txt -concepts and facilities" STD-13, 11/01/87 [DYN-UPD]work in progress, November 1995. [10] S. Thomson, Y. Rekhter, and J.Bound, "DynamicBound. Dynamic Updates in the Domain Name System(DNS)" Internet Draft, March 1995 <draft-ietf-dnsind-dynDNS-01.txt> [RFC-768] J. Postel, "User Datagram Protocol" STD-6, 08/28/80. [DHCP-v4] R. Droms, "Dynamic Host Configuration Protocol" RFC 1541 Proposed Standard, October 1993 [IPv6-Ether] M. Crawford, "A Method for the Transmission of IPv6 Packets over Ethernet Networks",(DNS). draft-ietf-dnsind-dynDNS-06.txt -- work in progress, February 1996. Bound, Perkins Expires 12 August 1996 [Page 28] InternetDraft, October 1995 <draft-ietf-ipngwg-ethernet-ntwrks-01.txt> [IPv6-SA] R. Atkinson, "Security Architecture forDraft DHCP Version 6 12 February 1996 Chair's Address The working group can be contacted via theInternet Protocol" RFC 1825, August 1995 [IPv6-AUTH] R. Atkinson, "IP Authentication Header" RFC 1826, August 1995 [IPv6-ESP] R. Atkinson, "IP Encapsulating Security Payload (ESP)" RFC 1827, August 1995 Authors'current chair: Ralph Droms Computer Science Department 323 Dana Engineering Bucknell University Lewisburg, PA 17837 Phone: (717) 524-1145 E-mail: droms@bucknell.edu Author's Address Questions about this memo can be directed to: Jim Bound Charles Perkins Digital Equipment Corporation T. J. Watson Research Center 110 Spitbrook Road, ZKO3-3/U14 IBM Corporation Nashua, NH 03062 30 Saw Mill River Rd., Rm J1-A25 Hawthorne, NY 10532 Phone:(603) 881-0400 Email:+1-603-881-0400 +1-914-784-7350 Fax: +1-914-784-6205 E-mail: bound@zk3.dec.com perk@watson.ibm.com Bound, Perkins ExpiresMay12 August 1996 [Page34]29] ----