view Side-By-Side changes
INTERNET-DRAFT J. Bound DHC Working Group Digital Equipment Corp Obsoletes:draft-ietf-dhc-dhcpv6-01.txt July 95draft-ietf-dhc-dhcpv6-02.txt November 1995 Dynamic Host Configuration Protocol for IPv6draft-ietf-dhc-dhcpv6-02.txt(DHCPv6) draft-ietf-dhc-dhcpv6-03.txt Status of this 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-DraftsInternet- 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 theInternet-DraftsInternet- 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. AbstractDHCPv6This document is an Internet applicationprotocolprotocol, for IP version 6 (IPv6), thatusesspecifies aClient/Serverclient/server modelto communicatefor communications betweenhosts. DHCPv6 executes over the UDP [RFC-768] transport protocol,hosts to dynamically configure parameters for a network, and autoconfigure addresses within a stateful model. This document supports theInternet Protocol Version 6 (IPv6) [IPv6-SPEC]. DHCPv6 is an IPv6 specificationmodel fora statefull implementation of address autoconfiguration as referenced inIPv6 Stateless AddressConfiguration [IPv6-ADDRCONF]. DHCPv6 supports mechanisms to autoconfigure host IPv6 addresseses, autoregister host names dynamically in the Domain Name System (DNS),Autoconfiguration, where there are clear integration points between stateless andspecifies the format to add future Configuration Parameter options to the protocolstateful address autoconfiguration forextensibility. The work on this protocol will take place in the Dynamic Host Configuration (DHC) Working group. One may join the Working Group mail list by sending mail to host-conf-request@sol.eg.bucknell.edu.IPv6. ExpiresDecember 1995May 1996 [Page 1]INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt JulyINTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 Table of Contents: 1.Introduction................................................3 1.1 Requirements................................................3Introduction.................................................3 1.1. Requirements...............................................3 2. Terminology andDefinitions.................................5 2.1Definitions..................................4 2.1. IPv6Terminology............................................5 2.2Terminology...........................................4 2.2. DHCPv6Terminology..........................................6Terminology.........................................6 3. Protocol DesignModel.......................................8 3.1 Related Work in IPv6........................................8 3.2Model........................................9 3.1. DesignGoals................................................9 3.3Goals...............................................9 3.2. Request/ResponseModel.....................................10 3.4Model....................................10 3.3. Leased AddressModel.......................................11 3.5Model......................................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 AutoregistrationModel.......................12 3.6 Defining Optional Configuration-Data.......................13Model......................13 4.DatagramRequest/Response Processing.................................13 4.1. Processing when Server Address is not Known...............14 4.2. Processing when Server Address is Known...................16 4.3. Retransmission andData Formats..................................14 4.1 Datagram...................................................14 4.2 Data Formats...............................................14Configuation Variables.................16 5. Datagram and Field Definitions..............................18 5.1. Datagram..................................................18 5.2. Field Definitions.........................................19 6. Client/Server Message Formats...............................21 6.1. Client/ServerProcessing...................................16 5.1UDP Ports, Multicast Group, and Addresses...21 6.2. ClientTransmission........................................16 5.2DISCOVER and CONF-REQUEST Messages.................21 6.3. ServerTransmission........................................16 5.3 Client/Server Bindings.....................................17 5.4CONF-RESPONSE Message..............................23 6.4. ClientRequests............................................17 5.5ACCEPT Message.....................................24 6.5. ServerResponse............................................18 5.6SERVER-ACK Message.................................25 6.6. ClientConfirmations/Rejections............................19 6.RELEASE Message....................................27 7. Relay-AgentProcessing.....................................19 Draft ***Open Issues***........................................21Processing......................................28 8. Security Considerations.....................................29 Appendix A - Related Work in IPv6..............................29 ChangeHistory.................................................22 Acknowledgements...............................................23 References.....................................................23History.................................................31 Acknowledgements...............................................33 References.....................................................33 Authors'Addresses.............................................24Address...............................................34 ExpiresDecember 1995May 1996 [Page 2]INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt JulyINTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 1. Introduction DHCPv6 is an Internet applicationprotocolprotocol, for IP version 6 (IPv6), thatusesspecifies aClient/Serverclient/server modelto communicatefor communications betweenhosts. DHCPv6 executes over the UDP [RFC-768] transport protocol,hosts to dynamically configure parameters for a network, andthe Internet Protocol Version 6 (IPv6) [IPv6-SPEC].autoconfigure addresses within a stateful model. DHCPv6is an IPv6 specificationsupports the model fora statefull implementation of address autoconfiguration as referenced inIPv6 Stateless AddressConfiguration [IPv6-ADDRCONF].Autoconfiguration [IPv6-ADDRCONF], where there are clear integration points between stateless and stateful address autoconfiguration for IPv6. DHCPv6supports mechanisms to autoconfigure host IPv6 addresseses, autoregister host names dynamically inuses a set of request/response messages to support a transaction processing model where a commit to theDomain Name System (DNS),data can be verified by both the client andspecifiesserver. This affords DHCPv6 the ability in theformat to addfutureConfiguration Parameter optionsto support dynamic updates to data located within a sites network. In addition to theprotocol for extensibility. The IPv6 new versioncapability ofthe Internet Protocol,verifying commits to transactions a recovery mechanism is specified, should commits need to be rolled back during the course of a DHCPv6 transaction beingdeveloped with 128bit addresses.processed. DHCPv6 supports optional configuration parameters and processing for hosts through its companion document Options for the Dynamic Host Configuration Protocol for IPv6 [DHCPv6-OPT]. The IPv6addressing architectureAddressing Architecture [IPv6-ADDR] andstateless address configuration [IPv6-ADDRCONF]IPv6 Stateless Address Autoconfiguration specifications provide new functionality not present inthe Internet ProtocolIP version 4(IPv4), which provide(IPv4). This new IPv6 functionality provides inherent benefits to autoconfigure IPv6 addresses forhostnodes. In addition the IETF DNS Working Group haswork in progressdefined a method to support Dynamic Updates to DNS[DYN- UPD],[DYN-UPD], which can be used by a node to add, delete, and changehostnode names dynamically. DHCPv6uses the enhancements in IPv6 and DNS to define an efficient protocol, and is not required to support any IPv4 protocol for backward compatibility. DHCPv6 does use manyused several of thearchitecturalarchitecture principlesin DHCP for IPv4 (DHCPv4) [DHCP-v4]. Itfrom DHCPv4 [DHCP-v4], but it isnot withinbeyond the scope of this document tocompare andcontrastDHCPv4and compare DHCPv6 withDHCPv6. 1.1 Requirements ThroughoutDHCPv4. Section 2 provides definitions for terminology used throughout thisdocument,document. Section 3 provides a review of thewordsprotocol design model parts that areused to defineinherent in thesignificancespecification. Section 4 provides the request/response model and interaction between the set of messages and theparticular requirements are capitalized. These words are: o "MUST" This word orsemantics for those messages. Section 5 provides theadjective "REQUIRED" meansdatagram packet format and field definitions for that datagram. Section 6 provides theitem is an absolute requirement of this specification. o "MUST NOT" This phrase meansmessage formats and field contents for processing the client and server messages. Section 7 provides the specification of how relay-agents and servers interact with clients, 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. Appendix A provides a summary of related work in IPv6 that will help put DHCPv6 in the context of IPv6 for the reader, and is not part of this specification, but here for information purposes. 1.1. Requirements Throughout this document, the words that are used to define the significance of the particular requirements are capitalized. These words are: Expires May 1996 [Page 3] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 o "MUST" This word or the adjective "REQUIRED" means that the item is an absolute requirement of this specification. o "MUST NOT" This phrase means the item is an absolute prohibition of this specification. o "SHOULD" This word or the adjective "RECOMMENDED" means that there may exist valid reasons in particular circumstances to ignore this item, but the fullimpliciationsimplications should be understood and the case carefully weighed before choosing a different course. o "SHOULD NOT" This phrase means that there may exist valid reasons in particular circumstances when the listed behavior is acceptable or evenExpires December 1995 [Page 3] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July 1995useful, but the full implications should be understood and the case carefully weighted before implementing any behavior described with this label. o "MAY" This word or the adjective "OPTIONAL" means that this item is truly optional. One vendor may choose to include the item because a particular marketplace requires it or because it enhances the product, for example, another vendor may omit the same item.Expires December 1995 [Page 4] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July 19952. Terminology and DefinitionsTerminology and Definitions are critical to the understanding of any IETF specification. This Section will provide the terms and definitions used throughout this specification.Relevant terminology from the IPv6specificationProtocol [IPv6-SPEC], IPv6 AddressingArchitecture [IPv6-ADDR],Architecture, and IPv6StatelssStateless AddressConfiguration [IPv6-ADDRCONF] terminologyAutoconfiguration will be provided, and then the DHCPv6 terminology.2.12.1. IPv6 Terminologynode: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.router:router - A node that forwards IPv6 packets not explicitly addressed to itself.host:host - Any node that is not a router.link: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 areEthernetsEthernet (simple or bridged); PPP links, X.25, Frame Relay, or ATM networks; and internet (or higher) layer "tunnels", such as tunnels over IPv4 or IPv6 itself.neighbors:neighbors - Nodes attached to the same link.interface:interface - Anodes'snode's attachment to the link.address:address - AnIPv6IP layer identifier for an interface or a set of interfaces.packet:packet - AnIPv6IP header plus payload.link MTU: The maximum transmission unit, i.e., maximumcommunication - Any packetsize in octets,exchange between nodes thatcan be conveyedrequires that the address of each node used inone piece over a link. path MTU: The minimum link MTUthe exchange remain the same for the duration ofallthelinks in a path between a source node andpacket exchange. Examples are adestination node.TCP connection or UDP request/response. unicastaddress:address - An identifier for a single interface. A packet sent to a unicast address is delivered to the interface identified by that address. multicastaddress:address - An identifier for a set of interfaces (typically belonging to different nodes). A packet sent to a multicast address is delivered to all interfaces identified by that address.link-local address: The link-local address is for use onlink-layer identifier - asingle link. On initialization oflink-layer identifier for aninterface, a host forms ainterface. Examples include IEEE 802 addresses for Ethernet links, and E.164 addresses for ISDN links. link-local addressby concatenating- An address having link-only scope that can be used to reach neighboring nodes attached to the same link. All interfaces have awell-knownlink-localprefixaddress. preferred address - An address assigned toa token thatan interface whose use by upper layer protocols isunique per link. For example, inunrestricted. Preferred addresses may be used as thecasesource or destination address ofa host attachedpackets sent from or toa link that uses IEEE 802 addresses, the token is an IEEE 802 address associated withthe interface.validation-lifetime: Thisdeprecated address - An address assigned to an interface whose use isthediscouraged, but not forbidden. A deprecated addresslifetime forshould no longer be used as asinglesource addressprovidedin new communications. but packets sent to ahost. The validation-timer is in absolute timeExpiresDecember 1995May 1996 [Page 5]INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt JulyINTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995and in seconds (e.g. 3 hours would have the value 10800). deprecation-liftetime: This is the lifetime for a singledeprecated addressthe host usesare delivered as expected. A deprecated address may continue tobeginbe used as a source address for thedeprecationduration ofanexisting communications. valid addressprior to- A preferred or deprecated address. A valid address may appear as thevalidation-lifetime expiring, so that the host can determine ifsource or destination address of a packet, and the internet routing system is expected to be able to deliver packets sent to a valid address. invalid addresscan receive- An address that is not assigned to any interface. A valid address becomes invalid when its valid lifetime expires. Invalid addresses should not appear as the source or destination of anew validation-lifetime. The deprecation-packet. preferred lifetime - The length of time that a valid address isin absolutepreferred. When the preferred lifetime expires, the address becomes deprecated. valid lifetime - The length of timeandthe address remains inseconds (e.g. 3 hours would havethevalue 10800).valid state. Thedeprecation-lifetimevalid lifetime MUST benogreater than or equal to thevalidation-lifetime. deprecated-address: Thispreferred lifetime. When the valid lifetime expires, the address becomes invalid. interface token - A link-dependent identifier for an interface that is (at least) unique per link. Stateless Address Autoconfiguration combines an interface token with asingleprefix to form an address. From an addressthatautoconfiguration perspective, an interface token isin the deprecated state onahost becausebit string of known length. The exact length of an interface token and thedeprecation-lifetime period has expired. invalid-address: Thisway it is created is defined in asingle address whose validation-lifetime has expired. 2.2separate link-specific document that covers issues related to the transmission of IP over a particular link type (e.g., [IPv6-ETHER]). In many cases the token will be the same as the link-layer address. 2.2. DHCPv6 Terminologyconfiguration-type: Configuration Type defines an optionalconfiguration parameters - Is any parameterin the DHCPv6 protocol. configuration-data: Configuration Data is information a hostthat canusebe used by a node to configurea host on a network,their network environment sothatthehostnode caninteroperate with other hostscommunicate on anetwork. Configuration Data will vary in length dependinglink or onthe configuration type. client:an internet. client - AClientclient is a host that initiates requests on a link to obtain: addresses,DNS host name processing,dynamic updates to DNS, orconfiguration-data. server:other configuration parameters. server - AServerserver is ahostnode that responds to requests from clients on a link to provide: addresses,DNS host name processing,dynamic updates to DNS, orconfiguration-data. relay-agent:other configuration parameters. Expires May 1996 [Page 6] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 relay-agent - ARelay-Agentrelay-agent is arouternode that listens onthea link forclientsclient requests, and then forwards therequestpacket to a server on the network. The server will respond back to theRelay-Agent,relay-agent, who will forward thereplyresponse to the client on theRelay-Agentsrelay-agents link.message-type:message-type - TheMessage-Typemessage-type defines the DHCPv6 protocoloperationtype for this packet.message-code:message-flag - TheMessage-Codemessage-flag definesaan optional processing notification fora message- typeDHCPv6. The message-flag can also be used by the Options for DHCPv6 specification. error-code - The error-code specifies errors from a client or server.name-length:TheName-Length defineserror-code can also be used by thelength ofOptions for DHCPv6 specification. total-addresses - The total-addresses specifies thehost nametotal number of addresses being providedby a client orfrom a serverfor DNS Autoregistration of host names. interface-token: The Interface-Tokento a client. For each address there isspecified by the clienta preferred and valid lifetime. completed-transaction - A completed-transaction is aunique opaque identifer forcommunications exchange between aclients interface,client andmust be accessbile after aserver, using the required set of DHCPv6 request/response message-types, where the final response message in the request/response set has been received by the clientreboots (e.g. IEEE 802 MAC address). address-count:and by the server. transaction-ID - Theaddress-counttransaction-ID is an integer identifier specified by the clientwith any request sent to a server,andrepresentsis used by thenumberclient and server as a transaction identifier to define the set ofaddressesrequest/response messages between the clienthas received from a serverand server, for aspecified interface-token. Expires December 1995 [Page 6] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July 1995 client-address:clients interface token. client-link address - TheClient-Address is the field in the DHCPv6 protocol that contains theclient-link addressforspecifies the clientsinterface-token. server-address:link-local address. TheServer-Addressclient-link address isthe field in the DHCPv6 protocol that containsused by a relay-agent to respond to a client on a link, after receiving a server response. server address - The server address specifies the addressoffor the server responding tothe clients request. gateway-address:a client. gateway address - TheGateway-Address isgateway address specifies thefield inaddress of theDHCPv6 protocol that contains the relay-agents address, sorelay-agent for a server,thatwhich may be multiple relay-agent hops away from theorginal relay-agent, can respond directly to the relay-agent that forwarded the request, by extracting the Gateway- Address to be used as the server packets destination address. client-link-address: The client-link-address is the field in the DHCPv6 protocol the relay-agents use to save the clients sourceoriginal relay-agent. client addressin the IPv6 header, so they can respond back to the server on the link. transaction-ID:- TheTransaction-ID is specified by theclientasaddress specifies anopaque transaction identifier, which uniquely identifies the current operation between the client and the server. The server may utilize this transaction identifier in order to detect duplicate transactions and to provide context between messages in a multi-message exchange withaddress from aclient who has multiple requests for the same interface-token. host-name: The Host-Name is the nameserver to beassociated with an address. If the name-length is zero then the Host-Name is not present in the DHCPv6 request or response. binding: The Bindingused by a client. binding - A binding in DHCPv6 isaan N-tuple that a client and server MUST maintain in DHCPv6 foreach completed transaction,a Expires May 1996 [Page 7] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 completed-transaction, where N is the number ofconfiguration-data identifiersconfiguration parameters for a client. An implementation MUST support at least a4-tuple Binding5-tuple binding consisting ofthea clientsinterface-token,interface token, client address,validation-lifetime,preferred lifetime anddeprecation-lifetimevalid lifetime forthat address. An example of a completed transaction in DHCPv6 is when theeach clientrequests an address for an interface-token and receives an address and lease for that token. It is implementation defined if greater than a 4-tuple Binding is supported by an implementation,address, andis not prohibited by this specification.the transaction-ID. ExpiresDecember 1995May 1996 [Page7] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July8] 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.It provides related workAny conceptual models presented inIPv6this specification thatinfluenced the protocol design and the design goals. The request/response protocol model is discussed and the objectiveprovide implementation examples are not a requirement ofthis model inthedesign. The leased address strategy and purpose is discussed.DHCPv6 protocol. 3.1. Design Goals Theobjective of the autoregistrationfollowing list gives general design goals forDNS Host Names is discussedDHCPv6. DHCPv6 should be a mechanism rather than a policy. DHCPv6 must allow local system administrators control over configuration parameters where desired; e.g., local system administrators should be able to enforce local policies concerning allocation andthe capabilities that are possible in this specification. The client/server model is discussedaccess toprepare an implementor for the client/server processing provided later in the specification. Then thelocal resources where desired. Hosts should require no manual configuration. Each host should be able to discover appropriate local configurationoptions are definedparameters without user intervention, andhow they are used to build additional extensible configuration-dataincorporate those parameters into its own configuration. Networks should require no hand configuration forDHCPv6. 3.1 Related Work in IPv6 The related work in IPv6 that would best serve an implementor to study is the IPv6 Specification [IPv6-SPEC],individual hosts. Under normal circumstances, theIPv6 Addressing Architecture [IPv6-ADDR], IPv6 Stateless Address Configuration [IPv6-ADDRCONF], IPv6 Neighbor Discovery Processing [IPv6-ND], and Dynamic Updatesnetwork manager should not have toDNS [DYN-UPD]. These specifications affordenter any per-host configuration parameters. DHCPv6to build upon the IPv6 work to provide both robust statefull autoconfiguration and autoregistration of DNS Host Names. In addition related work for DHCPshould not require a server on each link. To allow forIPv4 is directly related to DHCPv6. The IPv6 Specification provides the base architecturescale anddesign of IPv6.economy, DHCPv6 must work across relay agents. Akey point forDHCPv6implementorsclient must be prepared to receive multiple responses tounderstand is that IPv6 requires that every link in the internet have an MTU of 576 octets or greater (in IPv4 the requirement is 68 octets). This means thataUDP datagram of 536 octets will always pass through an internet (less 40 octetsrequest forthe IPv6 header),configuration parameters. Some installations may include multiple, overlapping DHCPv6 servers to enhance reliability and increase performance. DHCPv6 must coexist with statically configured, non-participating hosts and with existing network protocol implementations. DHCPv6 should aslongmuch asthere are no options prior to the UDP datagram inpossible be compatible with IPv6 Stateless Address Autoconfiguration. DHCPv6 must support thepacket. But,requirements of automated renumbering of IPv6does notaddresses. DHCPv6 servers should be able to supportfragmentation at routers and fragmentation must take place end-to-end between hosts. IfDynamic Updates to DNS [DYN-UPD]. It is NOT a design goal of DHCPv6implementation needstosendspecify apacket greater than 536 octets it can either fragment the UDP datagram in UDP or use Path MTU Discovery [IPv6-SPEC]server todetermine the size of the packet that will traverse a network path.server protocol. It isimplementation definedNOT a design goal of DHCPv6 to specify howthisa server configuration parameter database isaccomplished in DHCPv6.maintained or determined. TheIPv6 Addressing Architecture Specification provides the address scope that can be used in an IPv6 implementation, andfollowing list gives design goals specific to thevarious configuration architecture guidelines for network designerstransmission of theIPv6 address space. Two advantages of IPv6 isnetwork layer parameters. Guarantee thatmulticast addressing is well defined and nodes can create link-local addresses during initialization of the nodes environment. This means that a host immediately can ascertain an IPv6 address at initialization for an interface, before communicating inanymanner on the link. The host can then use a well-known multicastspecific network addressto begin communications to discover neighbors on the link, or aswill not bediscussed laterinthe specification locateuse by more than one host at aDHCPv6 server or relay-agent. The IPv6 Stateless Address Configuration Specification (addrconf)time. ExpiresDecember 1995May 1996 [Page8] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July9] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995defines howGuarantee that client addresses that are not provided by DHCPv6 will not be added to a servers configuration parameter database or the servers binding for a clients interface token. Retain hostcan autoconfigure addresses based on neighbor discovery router advertisements, andconfiguration parameters across client reboots. A client should, whenever possible, be assigned theuse ofsame configuration parameters in response to avalidation-lifetime andrequest. Retain host configuration across server reboots, and, whenever possible, adeprecation-lifetime for addresses. In additionhost should be assigned theaddrconf specification definessame configuration parameters despite restarts of theprotocol interaction for a hostDHCPv6 mechanism, Allow automatic assignment of configuration parameters tobegin statelessnew hosts to avoid hand configuration for new hosts. Support fixed orstatefull autoconfiguration.permanent allocation of configuration parameters to specific hosts. 3.2. Request/Response Model DHCPv6is one vehicleuses a message-type toperform statefull autoconfiguration. Compatibility with addrconf isdefine whether the packet originated from adesign goalDHCPv6 server or client. The set of packets used to complete a DHCPv6where possible. IPv6 Neighbor Discovery (ND) istransaction are defined as thenode discovery protocol in IPv6 (replacesrequest andenhances functions of IPv4 ARP Model). To truly understand IPv6response set. The message types are as follows: 01 DISCOVER The DISCOVER message is a DHCPv6 multicast packet from a client to locate andaddrconf itrequest configuration parameters on a network, when the client does not know the servers address. 02 CONF-REQUEST The CONF-REQUEST isstrongly recommended that implementors understandan IPv6ND. Dynamic Updatesunicast packet from a client toDNS isaspecification that supportsserver, when thedynamic update of DNS records for both IPv4 and IPv6. This will be discussed further later in this section ofclient knows thespecification. An implementor cannot implement DHCPv6 without understanding Dyanmic UpdatesIPv6 unicast address of a server, toDNS. 3.2 Design Goalsrequest configuration parameters on a network. 03 CONF-RESPONSE Thefollowing list gives general design goals for DHCPv6. Most DHCPv4 Design Goals [DHCP-v4] are keptCONF-RESPONSE is an IPv6 unicast packet from a server inthis specification. DHCPv6 should beresponse to amechanism rather thanclient DISCOVER or CONF-REQUEST, which provides the requested configuration parameters. 04 ACCEPT The ACCEPT is apolicy. DHCPv6 must allow local system administrators control overclient response to a server CONF-RESPONSE. When the client used DISCOVER to locate a server and request configuration parameterswhere desired; e.g., local system administratorson a network, the ACCEPT should beablesent using the DHCPv6 multicast address, which also serves toenforce local policies concerning allocation and accessinform other servers that responded tolocal resources where desired. Hosts should require no manual configuration. Each host should be ablethe DISCOVER they were not selected. When the client used CONF-RESPONSE todiscover appropriate localrequest configuration parameterswithout user intervention and incorporate those parameters into its own configuration. Networksfrom a server whose address was known, the ACCEPT shouldrequire no hand configuration for individual hosts. Under normal circumstances, the network manager should not have to enter any per-host configuration parameters. DHCPv6 should not require a server on each link. To allow for scale and economy, DHCPv6 must work across relay agents. A DHCPv6 client mustbeprepared to receive multiple responses to a request for configuration parameters. Some installations may include multiple, overlapping DHCPv6 servers to enhance reliability and increase performance. DHCPv6 must coexist with statically configured, non-participating hosts and with existing network protocol implementations. DHCPv6 should as muchsent aspossible be compatible withan IPv6Stateless Address Configuration. DHCPv6 servers should be able to support Dynamic Updates to DNS [DYN-UPD]. Itunicast packet. The ACCEPT isNOT a design goal of DHCPv6 to specify a serveralso an implied acknowledgment to the server selected that the client has received the servers configuration ExpiresDecember 1995May 1996 [Page9] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July10] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995protocol. Itparameters from the CONF-RESPONSE. 05 SERVER-ACK The SERVER-ACK isNOTan IPv6 unicast packet sent by adesign goal of DHCPv6server tospecify howinform aserver configuration database is maintained or determined.client that it received an ACCEPT. Thefollowing list gives design goals specificSERVER-ACK is used by the server to inform thetransmission ofclient it has received an acknowledgment that thenetwork layer parameters. Guaranteeclient has received the configuration parameters from the server, and denotes a completed-transaction to a server. The server at that point MUST commit its bindings and anyspecific network address will not be in use by more than one host atupdates it may do for the client. The SERVER-ACK for the client denotes atime. Guarantee thatcompleted-transaction. The clientaddressesat thatare not providedpoint MUST commit its bindings. 06 RELEASE The RELEASE is used byDHCPv6 will not be added to a servers configuration database ortheservers bindingclient fora clients interface-token. Retain host configuration across host reboot. Atwo reasons: 1. To inform the server that the clientshould, whenever possible, be assigneddid not receive thesame configuration-data in responseSERVER-ACK required toeach request. Retain host configuration acrosscomplete the client transaction, and the serverreboots, and, whenever possible, a hostshouldbe assigned the same configuration parameters despite restartsdelete that binding and any updates it may have done on behalf of theDHCPv6 mechanism, Allow automatic assignment of configuration parameters to new hosts to avoid hand configuration for new hosts. Support fixedclient. 2. To inform the server that the client is releasing a particular address orpermanent allocationset ofconfiguration parameters to specific hosts. Clients mustaddresses, even though the lifetimes for those addresses may notassume thathave become invalid. The processing and algorithms for the request/response set of message-types will be discussed in section 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 areupdatedmeant to support site renumbering, and are completely compatible with theDNS, unlessleasing model in IPv6 Stateless Address Autoconfiguration. The DHCPv6 philosophy is that theserver providesclient has the responsibility to renew ahost-name withlease for an address that is about to expire, or request aclient. 3.3 Request/Response Model DHCPv6 usesnew address or the same address before the lease actually expires. If the client does not request amessage type to define whethernew lease for an address, thepacket orginated fromserver MUST assume the client does not want aDHCPv6 Server or Client.new lease for that address. Themessage types are as follows: 01 - client-configuration-request 02 - client-confirm-response 03 - client-reject-response 04 - server-configuration-response Request/Response Model States 1. Request (client) 2. Response with configuration-data or error found (server). 3. Confirmation Response or reject (client). The time out period for a client orserver MAY provide that address towait for a response MUST NOT exceed 3 minutes. When aanother clientor server times out waiting for a responserequesting an address, after all other addresses available toa packet sent, the implementation MUST NOT commit any binding based on the configuration-data sent in the packet. It is implementation defined iftheclient orserverpacket is Expires December 1995 [Page 10] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July 1995 retransmitted. 3.4 Leasedhave been exhausted. 3.3.1. AddressModelLifetimes An address returned to a client has avalidation-lifetimepreferred anddeprecation-lifetime.valid lifetime. The lifetimes represent the lease for addresses provided to the client, from the server. The client MAY request asingle addressvalue for the lifetimes returned by aclient. The serverserver, but the client MUSTprovideuse the lifetimes provided by the server Expires May 1996 [Page 11] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 response. When an address for avalidation-lifetime and SHOULD provideclient interface becomes deprecated the processing of the lease MUST be as follows: When the preferred lifetime of an address expires, the clients address becomes adeprecation-lifetime todeprecated address. A deprecated address can be used as aclientsource address in new communications and existing communications. But aserver response packet todeprecated address means the node will soon have an address whose valid lifetime will expire, when this happens the address cannot be used in any communications. An address is aclients request fordeprecated until its valid lifetime expires at which point the address becomes an invalid address.The client may suggestAn invalid address MUST NOT be used as avalue for the lifetimessource address in outgoing communications, and MUST NOT be recognized as a valid destination address for incoming communications. Once an address is deprecated an implementation SHOULD request a new lease or address for that interface. If the clients preferred lifetime is zero for an address the address is immediately deprecated. Implementors of DHCPv6 would find it beneficial to coordinate the use of the preferred lifetime and valid lifetime for layers below the DHCPv6 application layer with their implementation of Stateless Address Autoconfiguration. It is suggested that implementations use the same 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 be the default behavior. 3.3.2. Duplicate Address Detection DHCPv6 clients MUST support Duplicate Address Detection as specified in IPv6 Stateless Address Autoconfiguration. This will provide a high guarantee that DHCPv6 client addresses are not duplicated on a link. It is an option for a server to inform the client it does not have to perform Duplicate Address Detection by the server setting a value of 01 in the message-flag in client responses. In this case it is assumed that the server implementation is providing the guarantee that the client addresses returned are unique on the link. It is implementation defined how a server verifies the uniqueness of client addresses on a link. A conceptual model of an implementation for DHCPv6 duplicate address detection is that the client DHCPv6 module, which supports updating the network interfaces for a host, would use the same application configuration interface for DHCPv6 as is used for IPv6 Stateless Address Autoconfiguration on an IPv6 conforming implementation. An implementation can integrate and reuse the same modules in the network operating system kernel to spawn duplicate address detection, address lifetime 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 not be able to support such a feature in a client. But DHCPv6 does permit the client to request an infinite lease for addresses. The problem in this case is that though the server has permitted an infinite lease for a client it may later be required that the client give up that lease or the addresses, for some organizational reason. This specification leaves it as implementation defined how this problem is solved in a DHCPv6 network environment. One solution to the problem is to define an SNMP MIB for DHCPv6 clients that when set by a network management agent causes a client to revalidate all of its addresses with the DHCPv6 server or issue a RELEASE to the server. 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 as specified in the Options for DHCPv6 specification. The minimum requirements to support DYNDNS in DHCPv6 are as follows: 1. Clients SHOULD be able to request or change names for addresses. 2. Servers SHOULD be able to provide names for addresses provided to a client. 3. If servers support DYNDNS then they MUST support the following: a) Create, Update, and Delete of IPv6 AAAA Records [IPv6-DNS] as specified in DYNDNS [DYN-UPD]. b) Create, Update, and Delete of IPv6 IP6.INT Domain PTR records for any IPv6 AAAA addresses defined in a client DYNDNS request, or that the server automatically generated for a client. 4. Request/Response Processing The request/response processing for DHCPv6 is transaction based and uses a best-effort set of messages to guarantee a completed- transaction. The case where the client does not know the servers address is depicted, and then the case where the client does know the servers address is depicted. Then the timeout and retransmission guidelines and configuration variables are discussed. Expires May 1996 [Page 13] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 4.1. Processing when Server Address is not Known The processing for the DHCPv6 request/response model when the client does not know the server address 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-ACK | | | | | Transaction Complete | | Client commits Bindings | | | | | IF the Client did not | | receive the SERVER-ACK | | delete the Bindings | | (Unicast) | | | | | | _____________ | | | RELEASE | | | | | | Server deletes the Bindings | | and rolls back any updates that | | that may have been done for the | | client. | | | v v v DHCPv6 uses the UDP [RFC-768] protocol to communicate 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 that the completed set of request/response messages were received by both the client and the Expires May 1996 [Page 14] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 server to define aserver, or leave them as zero.completed-transaction. Theclient MUST use the lifetimes providedrequest/response set is always started by a client either with a DISCOVER when theserver response ifclient does not know thevalues are different thanservers address, or a CONF-REQUEST when thelifetimes requested byclient does know theclient.servers address. TheDHCPv6 philosophysecond message is from the server and isthatthe CONF-RESPONSE. The clienthasthen acknowledges theresponsibility to renew a lease forservers CONF-RESPONSE with anaddress thatACCEPT. At this point in the flow all data has been received and additional messages are defined to insure the transaction isaboutcompleted, and toexpire, or requestprovide anew addressmethod of recovery if either the client or server do not receive thesame address beforemessages to complete thelease actually expires. Iftransaction. The server after receiving theclient does not requestACCEPT sends anew lease forSERVER-ACK, which is anaddress,acknowledgment to the client the serverMUST assumehas received theclient does not want a new lease forclients ACCEPT. At thataddress, andpoint the time vs reliability trade-off in DHCPv6 is for the serverMAY provide that addresstoanothercommit its bindings, and perform any updates as a result of the clientrequesting an address.messages (e.g. Update DNS). If thetheclienthas a deprecation-lifetime for an addressreceives theprocessing ofSERVER-ACK, then thelease SHOULD be as follows: Whenclient can commit its bindings. But if thedeprecation-lifetime of an address expires,client does not receive theclients address becomes a deprecated-address. A deprecated address SHOULD NOT be used as a source address in new communications. However, a deprecated-address SHOULD continue to be used as a source address ifSERVER-ACK then itis in use in existing communications. Implementors of DHCPv6 SHOULD coordinateshould send theuse ofserver a RELEASE to inform thevalidation-lifetimeserver that any bindings should be deleted anddeprecation-lifetimeany updates forlayers belowthe client should be rolled back. The client RELEASE provides the final recovery check in the DHCPv6application layer with their implementationrequest/response set to complete a transaction. Retransmission ofIPv6 Stateless Address Configuration [IPv6-ADDRCONF]. An addressmessages isa deprecated-address until its invalidation-lifetime expires at which point the address becomes an invalid-address. An invalid-address MUST NOT be used as a source addressdiscussed inoutgoing communications, and MUST NOT be recognized as a valid destination addresssection 4.3. The ACCEPT inincoming communications. Iftheclients deprecation-lifetimeflow above iszero fora multicast packet which serves anaddressoverloaded function, to respond to theprocessing forselected server, and to inform other servers on thelease SHOULD be as follows: Therenetwork the client isno concept of a deprecated-addressnot selecting them. Expires May 1996 [Page 15] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 4.2. Processing when Server Address is Known The processing fora client ifthedeprecation-lifetime is zeroDHCPv6 request/response model whenprovided tothe clientin adoes knows the serverresponse.address is as 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 | | | | | IF the Client did not | | receive the SERVER-ACK | | | | | | _____________ | | | RELEASE | | | | | | Server deletes the Bindings | | and rolls back any updates that | | that may have been done for the | | client. | | | v v v Theaddress for the clientprocessing above isvalid until the validation-lifetime expires at which pointtheaddress becomes an invalid-address. An invalid-address MUST NOT be used as a source address in outgoing communications, and MUST NOT be recognizedsame asa valid destination addresswas discussed inincoming communications. Expires December 1995 [Page 11] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July 1995 3.5 DNS Host Name Autoregistration Model DHCPv6 supports4.1, except theautoregistration of DNS Host names and providing DNS Host Names with addresses for clients. AutoregistrationCONF-REQUEST issupportedused by thepresence of the name field in DHCPv6, which theclientmay provideto request configuration parameters from theserver in a request. In addition a server may provideserver, and the CONF-REQUEST and ACCEPT are unicast packets. 4.3. Retransmission and Configuation Variables Configuration variables for aDNS Host Name with an IPv6 address toDHCPv6 implementation that MUST be configurable by a client or server are as follows: Retranstimer - The time in seconds that aresponse. If the name-length field is zero, there is no name field contained in the packet.DHCPv6only specifies the name-field, and not the actual protocolclient orprimitives to interact with DNS.server should wait before retransmitting a message. Expires May 1996 [Page 16] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 Default: 3 seconds. Maxretrans - Thefunctionsmaximum retransmissions thatthea DHCPv6 client or serveruses to interact with the DNS to provide autoregistration is defined in Dynamic Updates to DNS [DYN-UPD].should retransmit, before logging a DHCPv6servers SHOULD support Dynamic UpdatesSystem Error toDNS. Iftheclient providesuser. Default: 3 retransmissions. The problem with retransmissions occurs when they are continually received by aHost Name (HN)client ora Fully Qualified Domain Name (FQDN) [RFC 1034&1035]: TheserverSHOULD perform a DNS query for the HN(e.g. duplicate bindings or updates). To support informing a client orFQDN IPv6 DNS AAAA resource record [IPv6-DNS]: If the name is found and the address does not match the clients address for the name provided by the client, theserverSHOULD add this address to the DNS name record (multiple addressesthat a retransmission is being done a second set of message-types are supportedfor names at this timeinDNS and theDHCPv6 as follows: 20 - DISCOVER-Retrans 21 - CONF-REQUEST-Retrans 22 - CONF-RESPONSE-Retrans 23 - ACCEPT-Retrans 24 - SERVER-ACK-Retrans 25 - RELEASE-Retrans When a clientmay wantor server retransmits a DHCPv6 packet at the application layer over UDP, they MUST change the message-type tousethe samename for multiple addresses on an interface). If the name is not foundmessage-type with theclient supplied nameRetrans suffix. A response to a retransmission SHOULD beadded to the DNS. In either condition above the server MUST add the associated DNS inverse address mapping as an IP6.INT domain PTR record [IPv6-DNS] for this clients address and name. If the server returnsaname after updating the DNS it MUST returnduplicate of aFQDNprevious response to theclient. If theclientdoes not request a HNorFQDN from a server, the server MAY provide,server. It is implementation defined how this is accomplished. One method of retransmitting duplicates inits response with the addressan implementation conceptually is toa client, a FQDN the client canuse the 5-Tuple binding forthat address. The server MUST NOT providea clientwith aor servergenerated FQDN, unlessto search for a previous response. At a minimum theassociated IPv6 AAAA recordclient interface token andIP6.INT domain PTR record existstransaction-ID will be present inthe DNS. Whenall messages; hence aclientsbinding can be searched (whether committed or in process) to verify if a previous response has been sent. Expires May 1996 [Page 17] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 5. Datagram and Field Definitions 5.1. Datagram DHCPv6 Datagram +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type | msg-flag | error-code | total-addrs | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RESERVED | transaction-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | interface token | | (8 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | server address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | gateway address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | client-link address | | (16 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | preferred lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | valid lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | client addressinvalidation-lifetime expires on the server, the server SHOULD delete the clients IPv6 AAAA record| | (16 octets) | | (can be multiple addresses andIP6.INT domain PTR record from the DNS.lifetimes present) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | options (variable number and length) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ExpiresDecember 1995May 1996 [Page12] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July18] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 19953.6 Defining Optional Configuration-Data Optional configuration-data5.2. Field Definitions All fields in the datagram MUST bespecified for DHCPv6 as followsinitialized to binary zeroes by both the client andaligned on anserver messages unless otherwise noted in Section 6. msg-type - 1 octet integermultiple of 8 octets: option-type: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 - 1Octet This field permits 254 options for DHCPv6 and will represent the tag for the option. The values of 0 andoctet 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 areused for pad options discussed below. option-length: 2 Octets This field specifies the length of the configuration-datanotincluding theavailable at this time. 02 Server - Address not known by theoption-type and and option-length fields. option-data: VariableServer 03-255 RESERVED total-addrs - 1 octet integer value (total-addresses) RESERVED - 2 octets Reserved for future use. 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 value in seconds Expires May 1996 [Page 19] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 client address - 16 octets address options - variable number ofOctets The option-data is the configuration-data that immediately follows the option-length field. If theoctets [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, and Addresses A client MUST transmit all messages over UDP using UDP Server Port 547. A serverdoes not support an option-type requested itor relay-agent MUSTreturn the option-type and the option-length set to zero in the response to the client.transmit all messages over UDP using UDP Client Port 546. A client MUST receive all messages over UDP using UDP Client Port 546. A serverimplementationor relay-agent MUSTstart any options afterreceive all messages over UDP using UDP Server Port 547. A server or relay-agent MUST join thefirst option returned to a clientDHCPv6 Server/Relay-Agent multicast group well-known multicast address FF02:0:0:0:0:0:1:0. Servers onan integer multiple of 8 octets. This is an architectural REQUIREMENT, andtheclient when parsing options can assumesame link as thenext option, if it exists will begin onclient MUST use thenext integer multiple of 8 octets boundary. This specification does not define any options. DHCPv6 options are definedsource address inXXXXXXXXX. It is permissible for options to also create new message-types and message-codesthe IPv6 header from the client asrequired. Expires December 1995 [Page 13] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July 1995 4. Datagram and Data Formats 4.1 Datagram DHCPv6 Datagram 0 8 16 24 31 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type | msg-code | name-lgth | addr-count | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | transaction-ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | interface-token | | (8 Octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | client-address | | (16 Octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | server-address | | (16 Octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | gateway-address | | (16 Octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | client-link-address | | (16 Octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | validation-lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | deprecation-lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | host-name | | (variable octets 0-255) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | option-type | option-lgth | option-data (variable octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4.2 Data Formats All fieldsthe destination address in thedatagram MUST be initializedservers response packet. Servers that respond tobinary zeroes by bothrelay-agents and relay-agent processing are discussed in section 7. In the cases where a clientandor server must retransmit messagesunless otherwise noted in Section 5. Client and Server processing of messages.the msg-type: 1 Octet integer value (message-type) Value Description 1 - Client request for configuration data. 2 - Server responsecodes in this section are used as stated in section 4.3 withconfiguration data. 3 -the values that represent the Retrans suffix for the msg-types. 6.2. Clientconfirmation ofDISCOVER and CONF-REQUEST Messages msg-type: If the client does not know the serverresponse. 4 - Client rejection ofaddress or wants to locate a new serverresponse. Expires December 1995 [Page 14] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July 1995 msg-code : 1 Octet integer value (message-code) Value Description 1 - Server Response - Client address-count is in error. 2 - Server Response - Dynamic UpdatestoDNS not supported. name-lgth : 1 Octet integer value (name-length) addr-count : 1 Octet integer value (address-count) transaction-ID : 4 Octets integer value interface-token : 4 Octets integer value client-address : 16 Octetsreceive configuration parameters the client sets the msg-type to DISCOVER. In this case the client MUST use as the destination IP addressserver-address : 16 Octetsthe DHCPv6 Server/Relay-Agent multicast addressgateway-address : 16 OctetsFF02:0:0:0:0:0:1:0. If the client knows the server addressclient-link-address : 16 Octetsthe client sets the msg-type to CONF-REQUEST. In this case the client MUST use as the destination IP addressvalidation-lifetime : 4 Octets integer value deprecation-lifetime : 4 Octets integer value host-name : 0-255 Octets character(s) value(s) option-type : 1 Octet integer value option-length : 1 Octet integer value option-data : Variable Octets variant value(s)the server address. msg-flag: Set to binary zeroes. error-code: Set to binary zeroes. total-addrs: Set to the number of addresses the client is requesting. transaction-ID: ExpiresDecember 1995May 1996 [Page15] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July21] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 19955. Client/Server Processing 5.1 Client Transmission UDP DHCPv6 Server Port 546 MUST be used bySet to an integer value. interface token: Set to a unique link dependent identifier for the clients interface. server address: Set to binary zeroes for DISCOVER. Set to server address 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 transmitted the packet. preferred lifetime: Set tosend UDP datagramsbinary zeroes if the client is not requesting a lifetime. Set to theserver. Ifnumber of seconds the clientknows its address it MUST be put inwants for thesourcelifetime. Set to all 1's (oxffffffff) if the client wants an infinite lifetime. The client must provide a preferred lifetime for each addressfieldrequested. valid lifetime: Set to binary zeroes if the client is not requesting a lifetime. Set to the number of seconds theIPv6 Header. Otherwiseclient wants for theclients link-locallifetime. Set to all 1's (oxffffffff) if the client wants an infinite lifetime. The client must provide a valid lifetime for each addressMUSTrequested. The valid lifetime must beused asgreater than or equal to thesource address field inpreferred lifetime. client address: Set to binary zeroes if theIPv6 Header [IPv6- ADDRCONF]. Ifclient is not requesting a renewal for an existing address it received from a server. Set to an address the clientknowspreviously received from a server when theaddressclient is requesting a new set of lifetimes for theserver on its link itaddress. A client MUSTput that address in the destinationNOT provide a server with an addressfield ofthat was not given to the client by a server. DHCPv6 does not permit a server to create leases for manual configured addresses, or update leases for addresses created by IPv6Header. OtherwiseStateless 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: Set to 01 if theclient MUST putserver knows addresses provided are verified to be unique, otherwise set to binary zeroes. error-code: Set to 01 if theDHCP Server/Relay-Agent well-known multicast address FF02:0:0:0:0:0:1:0 using link-local scope [IPv6- ADDR] asserver cannot provide any addresses to the client at this time. Set to 02 if thedestinationserver detects an addressfield infrom theIPv6 Header. TheclientMUST set msg-type to 1 to transmit a requestit did not provide to theserver. The client MUST set msg type to 3client. total-addrs: Set toconfirmtheacceptancenumber ofpacket from aaddresses the serverresponse. The client MUST set msg typeis returning the client. transaction-ID: Set to4the value the client provided in the DISCOVER or CONF-REQUEST msg-type. interface token: Set toreject a packet fromaserver response. The client MUST use UDP DHCPv6 Client Port 546unique link dependent identifier for the clients interface as provided in theUDP port to acceptclients DISCOVER or CONF-REQUEST msg-type. serverresponses in an implementation. 5.2 Server Transmission UDP DHCPv6 Client Port 546 MUST be used byaddress: The address of the serverto send UDP datagramsresponding. gateway address: Set to theclient. A server, onsame value that existed when the server received the packet. client-link address: Set to the samelink asvalue that existed when theclient, MUST useserver received thesource address inpacket. preferred lifetime: Set to theIPv6 Header fromvalue requested by the clientasor thedestination address invalue required by theservers response packet. Servers not onserver. valid lifetime: Set to thesame link are discussed in Section 6 Relay-Agent Processing.value requested by the client or the value required by the server. Theservervalid lifetime MUSTset msg type to 2 to transmit a responsebe greater than or equal toa client. The server MUST use UDP DHCPv6 Server Port 547 astheUDP port to acceptpreferred lifetime. clientrequests inaddress: Expires May 1996 [Page 23] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 Set to animplementation. Theaddress provided by the serverMUST joinif theDHCP Server/Relay-Agent mulicast group well-known multicast address FF02:0:0:0:0:0:1:0 using link-local scope [IPv6-ADDR], to listen forclientrequests, that dois notknowattempting to renew existing addresses, meaning the addressoffields from the client have a value of binary zeroes. If the error-code is set to 02 the serveronwill only return the addresses that theclients link. Expires December 1995 [Page 16] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July 1995 5.3 Client/Server Bindings Client andserverbindings MUSTcan verify were provided by the server. If no addresses could bemaintained at least as a 4-tuple consisting ofverified theclients interface-token, address, validation- lifetime,total-addrs field, lifetimes, anddeprecation-lifetime in an implementaiton. Itclient address will be set to binary zeroes. In the case as far as the server iscritical forconcerned theinteroperability ofDHCPv6that the clients bindings remain consistent withtransaction is completed and theservers bindings across reboots. Whenserver will not expect a clientsendsACCEPT message to its CONF-RESPONSE message. options: See Options for DHCPv6 specification [DHCPv6-OPT]. 6.4. Client ACCEPT Message msg-type: Set msg-type to ACCEPT. If the client sent a DISCOVER to requestit MUST enter inconfiguration parameters on theaddr-count fieldlink, then thenumber of addresses that it has for a particular interface-token inclient should use as theclients bindings. WhenIP destination address theserver receivesDHCPv6 Server/Relay-Agent multicast address FF02:0:0:0:0:0:1:0. If the clientrequest, it MUST verify thatsent a CONF-REQUEST to request configuration parameters on theaddr-count field provided bylink, then the clientmatchesshould use as thenumber of addressesIP destination address the serverhas for that clients binding, foraddress in theinterface-token provided byCONF-RESPONSE from theclient.server. If theserver has a different addr-count than theclientfor a particular interface token,sees an error-code of 02 and the total-addrs field is zero, the serverMUST send a response tocannot process any of the addresses requested and the clientsetting msg-codeshould not send an ACCEPT to1 informingthe server. If the clientaddr-count atsees an error-code of 02 and total-addrs does not equal zero it means the serverisdropped addresses that it could notin synch withlocate requested by the client.Once the client receives a response with a msg-code setmsg-flag: Set to1 it MUST set addr-countbinary zeroes. error-code: Set tozero on subsequent requestsbinary zeroes. total-addrs: Set to 1. transaction-ID: Set to theserver, forinteger value thatinterface-token. When a server receives a request from athe clientandused on its initial DISCOVER or CONF-REQUEST msg-type to theaddr-count is setserver. interface token: Set tozero, buttheclient has a bindingunique link dependent identifier for the clients interface thatinterface-token,was used for theserver MUST reissueclients initial DISCOVER or CONF-REQUEST msg-type Expires May 1996 [Page 24] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 to theconfiguration-data in those bindingsserver. server address: Set to theclient. 5.4 Client Requests The client setsaddress provided by thefollowing fields for a request for configuration-data: msg-type:servers CONF-RESPONSE. gateway address: Set to1. name-lgth:binary zeroes. client-link address: Set to thelength ofclients link-local address for thehost-name if provided. addr-count:link on which the client transmitted the packet. preferred lifetime: Set to thenumber of addresses the client hasfirst or only preferred lifetime returned for an address by theinterface-token specified in this request. transaction-ID:server. valid lifetime: Set toa unqiue integer value. interface-token: Setthe first or only valid lifetime returned for an address by the server. The valid lifetime MUST be greater than or equal toa unqiue opaque identifier. client-address: Set ONLY ifthe preferred lifetime. clientis requesting a host name for a particular address, else not set. validation-lifetime:address: Set to thevaluefirst or only address provided by the server. If the clientwould likedid receive more than one address and lifetime, it MUST store this data in an implementation defined manner, so that it can issue a complete RELEASE for all addresses provided from the serverto use, elseCONF-RESPONSE, if necessary later. But the ACCEPT does notset. deprecation-lifetime: Setneed to carry all those addresses to acknowledge thevalueservers CONF-RESPONSE packet in an ACCEPT. options: No options are present. 6.5. Server SERVER-ACK Message msg-type: Set msg-type to SERVER-ACK. If the clientwould likesent the ACCEPT to acknowledge a servers CONF-RESPONSE message on the DHCPv6 Server/Relay-Agent multicast address FF02:0:0:0:0:0:1:0, the server MUST look at the server address in the packet touse, else not set. host-name: Set onlydetermine ifname-lgth is greater than zero otherwise Expires December 1995 [Page 17] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July 1995 this fieldthe ACCEPT isnot present. option-type: Set to a future option requestforconfiguration- data, otherwisethem or not. If thefieldmessage is notpresent. Multiple option-types may be set adjacentfor a particular server then this is an indirect message toeach other. 5.5 Server Response Thethat particular serversetsthefollowing fieldsclient 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, and MUST NOT send aresponseSERVER-ACK toa client for configuration-data: msg-type:the clients ACCEPT. msg-flag: Set to2. msg-code:binary zeroes. error-code: Set to1 if addr-count not equalbinary zeroes. total-addrs: Set toservers bindings for the clients specified interface-token.1. transaction-ID: Set to2 iftheserver cannot support Dynamic Updates to DNS becauseinteger value that the clientrequested a host-name for an address provided,used on its initial DISCOVER orfrom the servers set of addresses. If the server determines that addr-count is not equalCONF-REQUEST msg-type toits bindings it stops all other DHCPv6 processing, hence, the server would not be inthesituation of setting msg-code to both 1 and 2. The server sets msg-codeserver. interface token: Set to1 and MUST put all other values supplied bytheclients request inunique link dependent identifier for theresponse packet exceptclients interface that was used for the clients initial DISCOVER or CONF-REQUEST msg-typeand msg-code fields. Processing of msg-code setto1 fortheclient andserver. serveris done as specified in 5.3 Client/Server Bindings. name-lgth:address: Set to thelength ofservers address. gateway address: Set to thehost-name if present. addr-count:same value that existed when the server received the packet. client-link address: Set to the same valuespecifiedthat existed when the server received the packet. preferred lifetime: Set to the value provided by the client.transaction-ID:valid lifetime: Set to thesamevaluespecifiedprovided by the client.interface-token:The valid lifetime MUST be greater than or equal to the preferred lifetime. client address: Set to thesame value specifiedaddress provided by the client.client-address: If the client-address from the request packet is zeroAt this point the serversetsMUST commit theclient-addressconfiguration parameters provided to thenext available address for this interface-token. If there is a client-address inclient from therequest packetservers CONF-RESPONSE. options: Expires May 1996 [Page 26] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 No options are present. 6.6. Client RELEASE Message msg-type: Set msg-type to RELEASE. If the clientis requestinghad sent an ACCEPT to the server and received ahost-nameSERVER-ACK forthis address, andthat message then theserverclient MUSTreturncommit theaddressconfiguration parameters provided by theclient if the server supports Dynmic Updates to DNS,servers CONF-RESPONSE andhas updateda RELEASE message is not required. But if theDNS withclient did not receive ahost-name for that address. server-address: The server MUST set this field to its addressSERVER-ACK inallresponsepackets. validation-lifetime: The server sets this addressto thevalidation-lifetime ofclients ACCEPT, then theservers configuration database. It is implementation defined ifclient MUST issue a RELEASE to theserver will useserver. If thevalidiation- lifetime if specified by aclientrequest packet. deprecation-lifetime: The server sets thisno longer needs an address or has been notified to return an address to thedeprecation-lifetime of the servers configuration database. It is implementation defined if the server will useserver, then thedeprecation- Expires December 1995 [Page 18] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July 1995 lifetime if specified by aclientrequest packet. host-name: The server returnsSHOULD issue ahostname or msg-code setRELEASE to2, ifthename-lgth field is greater than zero. Processingserver. msg-flag: Set to binary zeroes. error-code: Set to binary zeroes. total-addrs: Set to the total number ofhost-nameaddresses the client isspecified in Section 3.5 DNS Host Name Autoregistration Model. option-type: The server returnsreleasing. In thesame option-types specified bycase of a RELEASE where the clientrequests. option-lgth: The server returnsdid not receive thelength ofSERVER-ACK this value MUST equal theconfiguration- data or zeroes iftotal number of addresses for theoption is not supported. option-data: The server returnsservers CONF-RESPONSE. transaction-ID: Set to theconfiguration-data requested byinteger value that theclient. 5.6 Client Confirmations/Rejections Theclientsetsused on its initial DISCOVER or CONF-REQUEST msg-type to thefollowing fieldsserver. interface token: Set to the unique link dependent identifier fora confirmationthe clients interface that was used for the clients initial DISCOVER orrejection after receiving configuration-data fromCONF-REQUEST msg-type to the server.configuration- data: msg-type:server address: Set to3 ifbinary zeroes. gateway address: Set to binary zeroes. client-link address: Set to the clients link-local address for the link on which the clientis confirming a servers response.Expires May 1996 [Page 27] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 transmitted the packet. preferred lifetime: Set to4 iftheclient is rejecting a servers response. Whenvalid lifetime returned for an address by theserver receives a rejection msg-type 4 from a clientserver. valid lifetime: Set to theserver MUST assumevalid lifetime returned for an address by theclient is using anotherserver. Theserver then MUST remove any bindings for that client it may have created, andvalid lifetime MUSTdelete any DNS HNbe greater than orFQDN records it may have added on behalf ofequal to theclient. transaction-ID: Same value as specified inpreferred lifetime. client address: Set to theservers response. interface-token: Same value as specified inaddress provided by theservers response. client-address: Same value as specifiedserver. The client will return the number of addresses and associated lifetimes provided in the serversresponse. 6.CONF-RESPONSE. options: No options are present. 7. Relay-Agent Processing The relay-agent MUST use UDP DHCPv6 Server Port 547 as the UDP port to accept client responses in an implementation. The relay-agent MUST join the DHCP Server/Relay-Agentmulicastmulticast group well-known multicast addressFF02:0:0:0:0:0:1:0 using link-local scope [IPv6-ADDR], to listen for client requests.FF02:0:0:0:0:0:1:0. When a DHCPv6 Relay-Agent hears a request from a DHCPv6 Client it MUST: If thegateway-addressgateway address is NOT zero then the relay-agentMUST: PutMUST: Put the relay-agents IP address in the gateway address field of the clients request packet. All relay-agents MUST: Put their relay-agent address as the source address for the IP header. Put the next relay-agent or known server address as the destination address in the IP header. Forward the packet to the to the next hop relay-agent or known server. When the remote server receives the client request from the relay-agent it will know its a remote client request (not on therelay-agents IPv6servers link), because there is a gateway address in thegateway-address field of the clients request packet. Put therequest. So servers MUST verify thesourcegateway addressfrom the IPv6 Header ofis not zero, to determine if the clients request is from a remote link. ExpiresDecember 1995May 1996 [Page19] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July28] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995request packetThe server responds as specified in section 6.0, but uses the gateway address as the destination address in the IP header. When theclient-link-address. All relay-agents MUST: Put theirrelay-agent receives the remote servers response, it MUST forward the packet to the client, by using the client-link address as the source address for theIPv6IP Header.Put8. Security Considerations Security for DHCPv6 can be used as specified in [IPv6-SA], [IPv6-AUTH], and [IPv6-ESP], which are implementation requirements for IPv6. Appendix A - Related Work in IPv6 The related work in IPv6 that would best serve an implementor to study is thenext relay-agentIPv6 Specification [IPv6-SPEC], the IPv6 Addressing Architecture [IPv6-ADDR], IPv6 Stateless Address Autoconfiguration [IPv6-ADDRCONF], IPv6 Neighbor Discovery Processing [IPv6-ND], and Dynamic Updates to DNS [DYN-UPD]. These specifications afford DHCPv6 to build upon the IPv6 work to provide both robust stateful autoconfiguration and autoregistration of DNS Host Names. The IPv6 Specification provides the base architecture and design of IPv6. A key point for DHCPv6 implementors to understand is that IPv6 requires that every link in the internet have an MTU of 576 octets orknown server addressgreater (in IPv4 the requirement is 68 octets). This means that a UDP datagram of 536 octets will always pass through an internet (less 40 octets for the IPv6 header), as long as there are no IP options prior to thedestination addressUDP datagram in the packet. But, IPv6Header. Forward the packet to thedoes not support fragmentation at routers and fragmentation must take place end-to-end between hosts. If a DHCPv6 implementation needs to send a packet greater than 536 octets it can either fragment thenext hop relay-agentUDP datagram in UDP orknown server. When the remote server receivesuse Path MTU Discovery [IPv6-SPEC] to determine theclient request fromsize of therelay- agent itpacket that willknow its a remote client request (not on the servers link), because there istraverse agateway-address in the request. So servers MUST test the gateway-addressnetwork path. It isnot zero, to determine if the clients requestimplementation defined how this isfrom a remote link. The server responds as specifiedaccomplished in5.5 Server Response, but uses the gateway-address asDHCPv6. The IPv6 Addressing Architecture Specification provides thedestinationaddress scope that can be used inthean IPv6Header. When the relay-agent receives the remote servers response, it MUST forward the packet toimplementation, and theclient, by usingvarious configuration architecture guidelines for network designers of theclient-link-address asIPv6 address space. Two advantages of IPv6 is that multicast addressing is well defined and nodes can create link-local addresses during initialization of thesourcenodes environment. This means that a host immediately can configure an IPv6 address at initialization for an interface, before communicating in any manner on theIPv6 Header. Expires December 1995 [Page 20] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July 1995 Draft ***Open Issues*** 1.link. Thepresent model uses UDP withhost can then use a well-known multicast address to begin communications to discover neighbors on the link, or as was discussed in the specification to locate aclient request,DHCPv6 serverresponse, and then client confirmationorrejection.relay-agent. Theserver will set state or remove stateIPv6 Stateless Address Autoconfiguration Specification (addrconf) defines how a host can autoconfigure addresses based onthis model. There is alwaysneighbor discovery router advertisements, and thepossibilityuse of a validation lifetime to support renumbering of addresses on theclassic transactional error whenInternet. In addition theclient-to- server response is not received byaddrconf specification defines theserver,protocol interaction for a host to begin stateless or stateful autoconfiguration. DHCPv6 is one vehicle to perform stateful autoconfiguration. Compatibility with addrconf is a design goal of DHCPv6 Expires May 1996 [Page 29] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 where possible. IPv6 Neighbor Discovery (ND) is theclient assumes the server received the responsenode discovery protocol in IPv6 (replaces and enhances functions of IPv4 ARP Model). To truly understand IPv6 and addrconf itdid not (seeis strongly recommended that implementors understand IPv6 ND. Dynamic Updates to DNS is a specification that supports thedraft). This can be greatly alleviated by using TCP insteaddynamic update ofUDPDNS records for both IPv4 and IPv6. DHCPv6 can use thetransaction. This would have great benefits such as: 1. Guranteed virtual link, hence if the transaction completes the serverdynamic updates to DNS to now integrate addresses andclient know immediately upon returnname space tothe application. 2. PATH MTU Discovery for TCP is inherentnot only support autoconfiguration, but also autoregistration inan implementationIPv6. 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 codes andthe DHCPv6 application does not haveprocessing to support transaction processing model. Permit multiple addresses and lifetimes in a request and response. Moved Dynamic Updates to DNS as an Option to be defined in that specification. Settled on using UDP as it supports DHCP client server model as opposed toadjustTCP which has overhead forIPv6 fragmentationthis model.We can also use UDPReformatted specification tolocate serverssupport analysis, packet formats, andTCP for the transaction. 2. Dynamic Updatesprocessing in their own sections toDNS need careful reviewmake it easier forclarity and whatimplementors to read. Removed address count as it isrequirednot necessary forjust host name processing in DHCPv6. 3. We needsynchronization. Added error-code, msg-flag, and total-addrs fields. Made transaction-ID 2 octets. Updated terminology todetermine the integration requiredcoordinate with IPv6 Stateless AddressConfiguration when both stateless and statefull is being used by a client host. 4. In the Design Goals section should the MUSTs, SHOULDs, etc be capitalized and REQUIRED? Its notAutoconfiguration. Added more implementation notes. Moved IPv6 Related Work to an Appendix. Fixed various bugs inDHCPv4? 5. Charlie Perkinsthe spec from DHC WG input. Added Security reference pointers. Removed options format, which will bedoing our option spec for DHCPv6. We need to make sure it synchs up with thisin the options spec.Expires December 1995 [Page 21] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July 1995 Change HistoryAdded retransmission configuration variables, msg-types, and logic. Changes from March 95 to July 95 Drafts: Used integer values instead of bit values for type and code fields. Used message-type and message-code fields and rely on looking at the fields in the datagram instead of multiple over-lapping request/response codes. Added address-count field processing to be specified by the client as opposed to the server, and the processing for when client and server address-counts become disjoint. Added Requirements wording for MUST, SHOULD, MAY, etc. Added Design Goals section.Re-DefinedRedefined 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 model to support Dynamic Updates to DNS for Host Names. Reduced the request/response model to 3 packets by not doing a server confirm to a clients confirm to a servers response. Added model to support like lifetime fields for lease management to coordinate with IPv6 Stateless AddressConfiguration.Autoconfiguration. Added model and processing definitions for future DHCPv6 Options Specification. Added gateway-address and client-link-address for relay-agent processing. Removed excessive use of theacroynymacronym DHCPv6 for section titles and when referencing clients and servers. Added Draft ***Open Issues*** Section for review by the DHC Working Group. Added Change History. ExpiresDecember 1995May 1996 [Page22] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July32] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 Acknowledgements The DHC Working Group for their time and input into the specification. A special thanks for the consistent input, ideas, and review by (in alphabetical order) Brian Carpenter, Ralph Droms, Thomas Narten, Jack Mccann,andCharliePerkins. A big warm and extended thanks toPerkins, Yakov Rekhter, Matt Thomas, Sue Thomson,Yakov Rehkter,and PhilWells, who spent many hours in person and on the phone with the author to get the work done. Sue Thomson and Yakov Rehkter were co-authors on the first specification, and with the author have since March 1994 kept a consistent view and belief that autoregistration MUST be part of the Next Generation Internet Protocol version 6 and integrated into autoconfiguration.Wells. The author would also like to thank Steve Deering and Bob Hinden, who have consistently taken the time to discuss the more complex parts of the IPv6 specifications. The author MUST also thank his employer for the opportunity and funding to work on DHCPv6 and IPv6 ingeneral.general as an individual in the IETF. References [DHCPv6-OPT] C. Perkins, "Options for the Dynamic Host Configuration Protocol for IPv6 (ODHCPv6)" Internet Draft, November 1995 <draft TBD> [IPv6-SPEC] S. Deering and R. Hinden, "Internet Protocol Version 6 [IPv6] Specification" Internet Draft, June 1995 <draft-ietf-ipngwg-ipv6-spec-02.txt> [IPv6-ADDR] R. Hinden, S. Deering, Editors, "IP Version 6 Addressing Architecture" Internet Draft, June 1995 <draft-ietf-ipngwg-ipv6-addr-arch-03.txt> [IPv6-ADDRCONF] S. Thomson, T. Narten, "IPv6 Stateless AddressConfiguration"Autoconfiguration" Internet Draft,JuneNovember 1995<draft-ietf-addrconf-ipv6-auto-02.txt><draft-ietf-addrconf-ipv6-auto-05.txt> [IPv6-ND] T. Narten, E. Nordmark, and W. A. Simpson, "IPv6 Neighbor Discovery" Internet Draft,JuneSeptember 1995<draft-ietf-ipngwg-discovery-00.txt><draft-ietf-ipngwg-discovery-02.txt> [IPv6-DNS] S. Thompson and C. Huitema, "DNS Extensions to support IP version 6", Internet Draft, March 1995 <draft-ietf-ipngwg-dns-00.txt> [RFC-1034] P. Mockapetris, "Domain Names - implementation and specification" STD-13, 11/01/87 ExpiresDecember 1995May 1996 [Page23] INETERNET-DRAFT draft-ietf-dhc-dhcpv6-02.txt July33] INTERNET-DRAFT draft-ietf-dhc-dhcpv6-03.txt November 1995 [RFC-1035] P. Mockapetris, "Domain Names - concepts and facilities" STD-13, 11/01/87 [DYN-UPD] S. Thomson, Y. Rekhter, J. Bound, "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", Internet Draft, October 1995 <draft-ietf-ipngwg-ethernet-ntwrks-01.txt> [IPv6-SA] R. Atkinson, "Security Architecture for the Internet 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'AddressesAddress Jim Bound Digital Equipment Corporation 110 Spitbrook Road, ZKO3-3/U14 Nashua, NH 03062 Phone: (603) 881-0400 Email: bound@zk3.dec.com ExpiresDecember 1995May 1996 [Page24]34] ----