diff options
-rw-r--r-- | doc/draft-ietf-dhc-authentication-14.txt | 893 | ||||
-rw-r--r-- | doc/draft-ietf-dhc-dhcp-09.txt | 2519 | ||||
-rw-r--r-- | doc/draft-ietf-dhc-dhcp-dns-02.txt | 356 | ||||
-rw-r--r-- | doc/draft-ietf-dhc-dhcp-dns-12.txt | 1072 | ||||
-rw-r--r-- | doc/draft-ietf-dhc-new-options-00.txt | 110 | ||||
-rw-r--r-- | doc/draft-ietf-dhc-options-1533update-06.txt | 2127 | ||||
-rw-r--r-- | doc/rfc2485.txt | 227 | ||||
-rw-r--r-- | doc/rfc2489.txt | 283 |
8 files changed, 2475 insertions, 5112 deletions
diff --git a/doc/draft-ietf-dhc-authentication-14.txt b/doc/draft-ietf-dhc-authentication-14.txt new file mode 100644 index 00000000..43a1f8ae --- /dev/null +++ b/doc/draft-ietf-dhc-authentication-14.txt @@ -0,0 +1,893 @@ +Network Working Group R. Droms, Editor +INTERNET DRAFT Bucknell University +Obsoletes: draft-ietf-dhc-authentication-13.txt W. Arbaugh, Editor + University of Maryland + July 2000 + Expires December 2000 + + + Authentication for DHCP Messages + <draft-ietf-dhc-authentication-14.txt> + +Status of this memo + + This document is an Internet-Draft and is in full conformance with + all provisions of Section 10 of RFC2026. Internet-Drafts are working + documents of the Internet Engineering Task Force (IETF), its areas, + and its working groups. Note that other groups may also distribute + working documents as Internet-Drafts. + + Internet-Drafts are draft documents valid for a maximum of six months + and may be updated, replaced, or obsoleted by other documents at any + time. It is inappropriate to use Internet- Drafts as reference + material or to cite them other than as "work in progress." + + The list of current Internet-Drafts can be accessed at + http://www.ietf.org/ietf/1id-abstracts.txt, and the list of + Internet-Draft Shadow Directories can be accessed at + http://www.ietf.org/shadow.html. + + +Abstract + + The Dynamic Host Configuration Protocol (DHCP) provides a framework + for passing configuration information to hosts on a TCP/IP network. + In some situations, network administrators may wish to constrain the + allocation of addresses to authorized hosts. Additionally, some + network administrators may wish to provide for authentication of the + source and contents of DHCP messages. This document defines a new + DHCP option through which authorization tickets can be easily + generated and newly attached hosts with proper authorization can be + automatically configured from an authenticated DHCP server. + +1. Introduction + + DHCP [1] transports protocol stack configuration parameters from + centrally administered servers to TCP/IP hosts. Among those + parameters are an IP address. DHCP servers can be configured to + dynamically allocate addresses from a pool of addresses, eliminating + + + +Droms, Arbaugh [Page 1] + +DRAFT Authentication for DHCP Messages March 2000 + + + a manual step in configuration of TCP/IP hosts. + + Some network administrators may wish to provide authentication of the + source and contents of DHCP messages. For example, clients may be + subject to denial of service attacks through the use of bogus DHCP + servers, or may simply be misconfigured due to unintentionally + instantiated DHCP servers. Network administrators may wish to + constrain the allocation of addresses to authorized hosts to avoid + denial of service attacks in "hostile" environments where the network + medium is not physically secured, such as wireless networks or + college residence halls. + + This document defines a technique that can provide both entity + authentication and message authentication. + + DISCUSSION: + + This draft combines the original Schiller-Huitema-Droms + authentication mechanism defined in a previous Internet Draft with + the "delayed authentication" proposal developed by Bill Arbaugh. + +1.1 DHCP threat model + + The threat to DHCP is inherently an insider threat (assuming a + properly configured network where BOOTP ports are blocked on the + enterprise's perimeter gateways.) Regardless of the gateway + configuration, however, the potential attacks by insiders and + outsiders are the same. + + The attack specific to a DHCP client is the possibility of the + establishment of a "rogue" server with the intent of providing + incorrect configuration information to the client. The motivation for + doing so may be to establish a "man in the middle" attack or it may + be for a "denial of service" attack. + + There is another threat to DHCP clients from mistakenly or + accidentally configured DHCP servers that answer DHCP client requests + with unintentionally incorrect configuration parameters. + + The threat specific to a DHCP server is an invalid client + masquerading as a valid client. The motivation for this may be for + "theft of service", or to circumvent auditing for any number of + nefarious purposes. + + The threat common to both the client and the server is the resource + "denial of service" (DoS) attack. These attacks typically involve the + exhaustion of valid addresses, or the exhaustion of CPU or network + bandwidth, and are present anytime there is a shared resource. In + + + +Droms, Arbaugh [Page 2] + +DRAFT Authentication for DHCP Messages March 2000 + + + current practice, redundancy mitigates DoS attacks the best. + +1.2 Design goals + + These are the goals that were used in the development of the + authentication protocol, listed in order of importance: + + 1. Address the threats presented in Section 1.1. + 2. Avoid changing the current protocol. + 3. Limit state required by the server. + 4. Limit complexity (complexity breeds design and implementation + errors). + +1.3 Requirements Terminology + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" and "OPTIONAL" in this + document are to be interpreted as described in RFC 2119 [5]. + +1.4 DHCP Terminology + + This document uses the following terms: + + o "DHCP client" + + A DHCP client or "client" is an Internet host using DHCP to obtain + configuration parameters such as a network address. + + o "DHCP server" + + A DHCP server or "server" is an Internet host that returns + configuration parameters to DHCP clients. + +2. Format of the authentication option + + The following diagram defines the format of the DHCP + authentication option: + + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Code | Length | Protocol | Algorithm | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | RDM | Replay Detection (64 bits) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Replay cont. | | + +-+-+-+-+-+-+-+-+ | + + + +Droms, Arbaugh [Page 3] + +DRAFT Authentication for DHCP Messages March 2000 + + + | | + | Authentication Information | + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + + + The code for the authentication option is TBD, and the length field + contains the length of the protocol, RDM, algorithm, Replay Detection + fields and authentication information fields in octets. + + The protocol field defines the particular technique for + authentication used in the option. New protocols are defined as + described in Section 6. + + The algorithm field defines the specific algorithm within the + technique identified by the protocol field. + + The Replay Detection field is per the RDM, and the authentication + information field is per the protocol in use. + + The Replay Detection Method (RDM) field determines the type of replay + detection used in the Replay Detection field. + + If the RDM field contains 0x00, the replay detection field MUST be + set to the value of a monotonically increasing counter. Using a + counter value such as the current time of day (e.g., an NTP-format + timestamp [4]) can reduce the danger of replay attacks. This + method MUST be supported by all protocols. + + Other values of the RDM field are reserved for future definition + according to the procedures described in section 6. + + This document defines two protocols in sections 4 and 5, encoded with + protocol field values 0 and 1. Protocol field values 2-254 are + reserved for future use. Other protocols may be defined according to + the procedure described in section 6. + +3. Interaction with Relay Agents + + Because a DHCP relay agent may alter the values of the 'giaddr' and + 'hops' fields in the DHCP message, the contents of those two fields + MUST be set to zero for the computation of any hash function over the + message header. Additionally, a relay agent may append the DHCP relay + agent information option 82 [7] as the last option in a message to + servers. If a server finds option 82 included in a received message, + the server MUST compute any hash function as if the option were NOT + included in the message without changing the order of options. + + + +Droms, Arbaugh [Page 4] + +DRAFT Authentication for DHCP Messages March 2000 + + + Whenever the server sends back option 82 to a relay agent, the server + MUST not include the option in the computation of any hash function + over the message. + + +4. Protocol 0 + + If the protocol field is 0, the authentication information field + holds a simple authentication token: + + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Code | Length |0 0 0 0 0 0 0 0|0 0 0 0 0 0 0 0| + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |0 0 0 0 0 0 0 0| Replay Detection (64 bits) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Replay cont. | | + +-+-+-+-+-+-+-+-+ | + | | + | Authentication Information | + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + + The authentication token is an opaque, unencoded value known to both + the sender and receiver. The sender inserts the authentication token + in the DHCP message and the receiver matches the token from the + message to the shared token. If the authentication option is present + and the token from the message does not match the shared token, the + receiver MUST discard the message. + + Protocol 0 may be used to pass a plain-text password and provides + only weak entity authentication and no message authentication. This + protocol is only useful for rudimentary protection against + inadvertently instantiated DHCP servers. + + DISCUSSION: + + The intent here is to pass a constant, non-computed token such as + a plain-text password. Other types of entity authentication using + computed tokens such as Kerberos tickets or one-time passwords + will be defined as separate protocols. + + +5. Protocol 1 + + + + +Droms, Arbaugh [Page 5] + +DRAFT Authentication for DHCP Messages March 2000 + + + If the protocol field is 1, the message is using the "delayed + authentication" mechanism. In delayed authentication, the client + requests authentication in its DHCPDISCOVER message and the server + replies with a DHCPOFFER message that includes authentication + information. This authentication information contains a nonce value + generated by the source as a message authentication code (MAC) to + provide message authentication and entity authentication. + + This document defines the use of a particular technique based on the + HMAC protocol [3] using the MD5 hash [2]. + +5.1 Management Issues + + The "delayed authentication" protocol does not attempt to address + situations where a client may roam from one administrative domain to + another, i.e. interdomain roaming. This protocol is focused on + solving the intradomain problem where the out-of-band exchange of a + shared secret is feasible. + +5.2 Format + + The format of the authentication request in a DHCPDISCOVER message + for protocol 1 is: + + + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Code | Length |0 0 0 0 0 0 0 1| Algorithm | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | RDM | Replay Detection (64 bits) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Replay cont. | + +-+-+-+-+-+-+-+-+ + + + The format of the authentication information for protocol 1 is: + + + + + + + + + + + + + +Droms, Arbaugh [Page 6] + +DRAFT Authentication for DHCP Messages March 2000 + + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Code | Length |0 0 0 0 0 0 0 1| Algorithm | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | RDM | Replay Detection (64 bits) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Replay cont. | Secret ID (32 bits) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | secret id cont| HMAC-MD5 (128 bits) .... + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + + This document defines one technique for use with protocol 1, which is + identified by setting the algorithm field to 1. Other techniques + that use different algorithms may be defined by future + specifications, see section 6. The following definitions will be + used in the description of the authentication information for + protocol 1, algorithm 1: + + Replay Detection - as defined by the RDM field + K - a secret value shared between the source and + destination of the message; each secret has a + unique identifier (not shown in figures) + secret ID - the unique identifier for the secret value + used to generate the MAC for this message + HMAC-MD5 - the MAC generating function [3, 2]. + + The sender computes the MAC using the HMAC generation algorithm [3] + and the MD5 hash function [2]. The entire DHCP message (except as + noted below), including the DHCP message header and the options + field, is used as input to the HMAC-MD5 computation function. The + 'secret ID' field MUST be set to the identifier of the secret used to + generate the MAC. + + DISCUSSION: + + Algorithm 1 specifies the use of HMAC-MD5. Use of a different + technique, such as HMAC-SHA, will be specified as a separate + protocol. + + Protocol 1 requires a shared secret key for each client on each + DHCP server with which that client may wish to use the DHCP + protocol. Each secret key has a unique identifier that can be + used by a receiver to determine which secret was used to generate + the MAC in the DHCP message. Therefore, protocol 1 may not scale + well in an architecture in which a DHCP client connects to + multiple administrative domains. + + + +Droms, Arbaugh [Page 7] + +DRAFT Authentication for DHCP Messages March 2000 + + + Note that the meaning of an authentication option can be changed + by removing the secret ID, and MAC, transforming an authentication + option with authentication information into a request for + authentication. Therefore, the authentication request form of + this option can only appear in a DHCPDISCOVER message or a + DHCPINFORM message. + +5.3 Message validation + + To validate an incoming message, the receiver first checks that + the value in the replay detection field is acceptable according to + the replay detection method specified by the RDM field. Next, the + receiver computes the MAC as described in [3]. The receiver MUST + set the 'MAC' field of the authentication option to all 0s for + computation of the MAC, and because a DHCP relay agent may alter + the values of the 'giaddr' and 'hops' fields in the DHCP message, + the contents of those two fields MUST also be set to zero for the + computation of the MAC. If the MAC computed by the receiver does + not match the MAC contained in the authentication option, the + receiver MUST discard the DHCP message. + + Section 3 provides additional information on handling messages + that include option 82 (Relay Agents). + +5.4 Key utilization + + Each DHCP client has a key, K. The client uses its key to encode + any messages it sends to the server and to authenticate and verify + any messages it receives from the server. The client's key SHOULD + be initially distributed to the client through some out-of-band + mechanism, and SHOULD be stored locally on the client for use in + all authenticated DHCP messages. Once the client has been given + its key, it SHOULD use that key for all transactions even if the + client's configuration changes; e.g., if the client is assigned a + new network address. + + Each DHCP server MUST know, or be able to obtain in a secure + manner, the keys for all authorized clients. If all clients use + the same key, clients can perform both entity and message + authentication for all messages received from servers. However, + the sharing of keys is strongly discouraged as it allows for + unauthorized clients to masquerade as authorized clients by + obtaining a copy of the shared key. To authenticate the identity + of individual clients, each client MUST be configured with a + unique key. Appendix A describes a technique for key management. + +5.5 Client considerations + + + + +Droms, Arbaugh [Page 8] + +DRAFT Authentication for DHCP Messages March 2000 + + + This section describes the behavior of a DHCP client using + authentication protocol 1. + +5.5.1 INIT state + + When in INIT state, the client uses protocol 1 as follows: + + 1. The client MUST include the authentication request option in + its DHCPDISCOVER message along with option 61 [6] to identify + itself uniquely to the server. + + 2. The client MUST validate any DHCPOFFER messages that include + authentication information using the mechanism specified in + section 5.3. The client MUST discard any messages which fail + to pass validation and MAY log the validation failure. The + client selects one DHCPOFFER message as its selected + configuration. If none of the DHCPOFFER messages received by + the client include authentication information, the client MAY + choose an unauthenticated message as its selected + configuration. The client SHOULD be configurable to accept or + reject unauthenticated DHCPOFFER messages. + 3. The client replies with a DHCPREQUEST message that MUST include + authentication information encoded with the same secret used by + the server in the selected DHCPOFFER message. + 4. The client MUST validate the DHCPACK message from the server. + The client MUST discard the DHCPACK if the message fails to + pass validation and MAY log the validation failure. If the + DHCPACK fails to pass validation, the client MUST revert to + INIT state and returns to step 1. The client MAY choose to + remember which server replied with a DHCPACK message that + failed to pass validation and discard subsequent messages from + that server. + +5.5.2 INIT-REBOOT state + + When in INIT-REBOOT state, the client MUST use the secret it used + in its DHCPREQUEST message to obtain its current configuration to + generate authentication information for the DHCPREQUEST message. + The client MAY choose to accept unauthenticated DHCPACK/DHCPNAK + messages if no authenticated messages were received. The client + MUST treat the receipt (or lack thereof) of any DHCPACK/DHCPNAK + messages as specified in section 3.2 of [1]. + +5.5.3 RENEWING state + + When in RENEWING state, the client uses the secret it used in its + initial DHCPREQUEST message to obtain its current configuration to + generate authentication information for the DHCPREQUEST message. + + + +Droms, Arbaugh [Page 9] + +DRAFT Authentication for DHCP Messages March 2000 + + + If client receives no DHCPACK messages or none of the DHCPACK + messages pass validation, the client behaves as if it had not + received a DHCPACK message in section 4.4.5 of the DHCP + specification [1]. + +5.5.4 REBINDING state + + When in REBINDING state, the client uses the secret it used in its + initial DHCPREQUEST message to obtain its current configuration to + generate authentication information for the DHCPREQUEST message. + If client receives no DHCPACK messages or none of the DHCPACK + messages pass validation, the client behaves as if it had not + received a DHCPACK message in section 4.4.5 of the DHCP + specification [1]. + +5.5.5 DHCPINFORM message + + Since the client already has some configuration information, the + client may also have established a shared secret value, K, with a + server. Therefore, the client SHOULD use the authentication + request as in a DHCPDISCOVER message when a shared secret value + exists. The client MUST treat any received DHCPACK messages as it + does DHCPOFFER messages, see section 5.5.1. + +5.5.6 DHCPRELEASE message + + Since the client is already in the BOUND state, the client will + have a security association already established with the server. + Therefore, the client MUST include authentication information with + the DHCPRELEASE message. + +5.6 Server considerations + + This section describes the behavior of a server in response to + client messages using authentication protocol 1. + +5.6.1 General considerations + + Each server maintains a list of secrets and identifiers for those + secrets that it shares with clients and potential clients. This + information must be maintained in such a way that the server can: + + * Identify an appropriate secret and the identifier for that + secret for use with a client that the server may not have + previously communicated with + * Retrieve the secret and identifier used by a client to which the + server has provided previous configuration information + + + + +Droms, Arbaugh [Page 10] + +DRAFT Authentication for DHCP Messages March 2000 + + + Each server MUST save the counter from the previous authenticated + message. A server MUST discard any incoming message which fails + the replay detection check as defined by the RDM avoid replay + attacks. + + DISCUSSION: + + The authenticated DHCPREQUEST message from a client in INIT- + REBOOT state can only be validated by servers that used the + same secret in their DHCPOFFER messages. Other servers will + discard the DHCPREQUEST messages. Thus, only servers that used + the secret selected by the client will be able to determine + that their offered configuration information was not selected + and the offered network address can be returned to the server's + pool of available addresses. The servers that cannot validate + the DHCPREQUEST message will eventually return their offered + network addresses to their pool of available addresses as + described in section 3.1 of the DHCP specification [1]. + +5.6.2 After receiving a DHCPDISCOVER message + + The server selects a secret for the client and includes + authentication information in the DHCPOFFER message as specified + in section 5, above. The server MUST record the identifier of the + secret selected for the client and use that same secret for + validating subsequent messages with the client. + +5.6.3 After receiving a DHCPREQUEST message + + The server uses the secret identified in the message and validates + the message as specified in section 5.3. If the message fails to + pass validation or the server does not know the secret identified + by the 'secret ID' field, the server MUST discard the message and + MAY choose to log the validation failure. + + If the message passes the validation procedure, the server + responds as described in the DHCP specification. The server MUST + include authentication information generated as specified in + section 5.2. + +5.6.4 After receiving a DHCPINFORM message + + The server MAY choose to accept unauthenticated DHCPINFORM + messages, or only accept authenticated DHCPINFORM messages based + on a site policy. + + When a client includes the authentication request in a DHCPINFORM + message, the server MUST respond with an authenticated DHCPACK + + + +Droms, Arbaugh [Page 11] + +DRAFT Authentication for DHCP Messages March 2000 + + + message. If the server does not have a shared secret value + established with the sender of the DHCPINFORM message, then the + server MAY respond with an unauthenticated DHCPACK message, or a + DHCPNAK if the server does not accept unauthenticated clients + based on the site policy, or the server MAY choose not to respond + to the DHCPINFORM message. + +6. IANA Considerations + + The author of a new DHCP authentication protocol, algorithm or + replay detection method will follow these steps to obtain + acceptance of the new procedure as a part of the DHCP Internet + Standard: + + 1. The author devises the new authentication protocol, algorithm + or replay detection method. + 2. The author documents the new technique as an Internet Draft. + The protocol, algorithm or RDM code for any new procedure is + left as "To Be Determined" (TBD). + 3. The author submits the Internet Draft for review through the + IETF standards process as defined in "Internet Official + Protocol Standards" (STD 1). + 4. The new protocol progresses through the IETF standards process; + the specification of the new protocol will be reviewed by the + Dynamic Host Configuration Working Group (if that group still + exists), or as an Internet Draft not submitted by an IETF + working group. If the option is accepted as a Standard, the + specification for the option is published as a separate RFC. + 5. At the time of acceptance as a Proposed Internet Standard and + publication as an RFC, IANA assigns a DHCP authentication + protocol number to the new protocol. + + This procedure for defining new authentication protocols will + ensure that: + + * allocation of new protocol numbers is coordinated from a single + authority, + * new protocols are reviewed for technical correctness and + appropriateness, and + * documentation for new protocols is complete and published. + + + DISCUSSION: + This procedure is patterned after the procedure for acceptance + of new DHCP options. + +7. References + + + + +Droms, Arbaugh [Page 12] + +DRAFT Authentication for DHCP Messages March 2000 + + + [1] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, + Bucknell University, March 1997. + + [2] Rivest, R., "The MD5 Message-Digest Algorithm", + RFC-1321, April 1992. + + [3] Krawczyk H., M. Bellare and R. Canetti, "HMAC: Keyed-Hashing for + Message Authentication," RFC-2104, February 1997. + + [4] Mills, D., "Network Time Protocol (Version 3)", RFC-1305, March + 1992. + + [5] Bradner, S., "Key words for use in RFCs to Indicate Requirement + Levels," RFC-2219, March 1997. + + [6] Henry, M., "DHCP Option 61 UUID Type Definition," + <draft-henry-DHCP-opt61-UUID-type-00.txt> (work in + progress, November 1998. + + [7] Patrick, M., "DHCP Relay Agent Information Option," + <draft-ietf-dhc-agent-options-05.txt> (work in progress), + November 1998. + + [8] Gupta, V., "Flexible Authentication for DHCP Messages," + <draft-gupta-dhcp-auth-00.txt> (work in progress, June + 1998. + +8. Acknowledgments + + Jeff Schiller and Christian Huitema developed this scheme during a + terminal room BOF at the Dallas IETF meeting, December 1995. The + editor transcribed the notes from that discussion, which form the + basis for this document. The editor appreciates Jeff's and + Christian's patience in reviewing this document and its earlier + drafts. + + The "delayed authentication" mechanism used in section 5 is due to + Bill Arbaugh. The threat model and requirements in sections 1.1 + and 1.2 come from Bill's negotiation protocol proposal. The + attendees of an interim meeting of the DHC WG held in June, 1998, + including Peter Ford, Kim Kinnear, Glenn Waters, Rob Stevens, Bill + Arbaugh, Baiju Patel, Carl Smith, Thomas Narten, Stewart Kwan, + Munil Shah, Olafur Gudmundsson, Robert Watson, Ralph Droms, Mike + Dooley, Greg Rabil and Arun Kapur, developed the threat model and + reviewed several alternative proposals. + + The replay detection method field is due to Vipul Gupta [8]. + + + + +Droms, Arbaugh [Page 13] + +DRAFT Authentication for DHCP Messages March 2000 + + + Other input from Bill Sommerfield is gratefully acknowledged. + + Thanks also to John Wilkins, Ran Atkinson, Shawn Mamros and Thomas + Narten for reviewing earlier drafts of this document. + +9. Security considerations + + This document describes authentication and verification mechanisms + for DHCP. + +10. Editors' addresses + + Ralph Droms + Computer Science Department + 323 Dana Engineering + Bucknell University + Lewisburg, PA 17837 + + Phone: (717) 524-1145 + EMail: droms@bucknell.edu + + Bill Arbaugh + Department of Computer Science + University of Maryland + A.V. Williams Building + College Park, MD 20742 + + Phone: (301) 455-2774 + Email: waa@cs.umd.edu + +10. Expiration + + This document will expire on December 31, 2000. + + + + + + + + + + + + + + + + + + +Droms, Arbaugh [Page 14] + +DRAFT Authentication for DHCP Messages March 2000 + + + Full Copyright Statement + + Copyright (C) The Internet Society (2000). All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published and + distributed, in whole or in part, without restriction of any kind, + provided that the above copyright notice and this paragraph are + included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of developing + Internet standards in which case the procedures for copyrights defined + in the Internet Standards process must be followed, or as required to + translate it into languages other than English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assigns. + + This document and the information contained herein is provided on an + "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING + TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT + NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN + WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + + + + + + + + + + + + + + + + + + + + + + + + + +Droms, Arbaugh [Page 15] + +DRAFT Authentication for DHCP Messages March 2000 + + + Appendix A - Key Management Technique + + To avoid centralized management of a list of random keys, suppose K + for each client is generated from the pair (client identifier [6], + subnet address, e.g. 192.168.1.0), which must be unique to that + client. That is, K = MAC(MK, unique-id), where MK is a secret master + key and MAC is a keyed one-way function such as HMAC-MD5. + + Without knowledge of the master key MK, an unauthorized client cannot + generate its own key K. The server can quickly validate an incoming + message from a new client by regenerating K from the client-id. For + known clients, the server can choose to recover the client's K + dynamically from the client-id in the DHCP message, or can choose to + precompute and cache all of the Ks a priori. + + To avoid compromis of this key management system, the master key, MK, + MUST NOT be stored by any clients. The client SHOULD only be given + its key, K. If MK is compromised, a new MK SHOULD be chosen and all + clients given new individual keys. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Droms, Arbaugh [Page 16] + diff --git a/doc/draft-ietf-dhc-dhcp-09.txt b/doc/draft-ietf-dhc-dhcp-09.txt deleted file mode 100644 index 399e2de3..00000000 --- a/doc/draft-ietf-dhc-dhcp-09.txt +++ /dev/null @@ -1,2519 +0,0 @@ - - -Network Working Group R. Droms -INTERNET DRAFT Bucknell University -Obsoletes: draft-ietf-dhc-dhcp-08.txt December 1996 - Expires June 1997 - - - Dynamic Host Configuration Protocol - <draft-ietf-dhc-dhcp-09.txt> - -Status of this memo - - 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 use 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). - -Abstract - - The Dynamic Host Configuration Protocol (DHCP) provides a framework - for passing configuration information to hosts on a TCP/IP network. - DHCP is based on the Bootstrap Protocol (BOOTP) [7], adding the - capability of automatic allocation of reusable network addresses and - additional configuration options [19]. DHCP captures the behavior of - BOOTP relay agents [7, 21], and DHCP participants can interoperate - with BOOTP participants [9]. - - -Table of Contents - - 1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . 2 - 1.1 Changes to RFC1541. . . . . . . . . . . . . . . . . . . . . . 4 - 1.2 Related Work. . . . . . . . . . . . . . . . . . . . . . . . . 4 - 1.3 Problem definition and issues . . . . . . . . . . . . . . . . 5 - 1.4 Requirements. . . . . . . . . . . . . . . . . . . . . . . . . 5 - 1.5 Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 - 1.6 Design goals. . . . . . . . . . . . . . . . . . . . . . . . . 6 - 2. Protocol Summary. . . . . . . . . . . . . . . . . . . . . . . 8 - - - -Droms [Page 1] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - 2.1 Configuration parameters repository . . . . . . . . . . . . . 11 - 2.2 Dynamic allocation of network addresses . . . . . . . . . . . 12 - 3. The Client-Server Protocol. . . . . . . . . . . . . . . . . . 13 - 3.1 Client-server interaction - allocating a network address. . . 13 - 3.2 Client-server interaction - reusing a previously allocated - network address . . . . . . . . . . . . . . . . . . . . . . . 17 - 3.3 Interpretation and representation of time values. . . . . . . 20 - 3.4 Obtaining parameters with externally configured network - address . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 - 3.5 Client parameters in DHCP . . . . . . . . . . . . . . . . . . 20 - 3.6 Use of DHCP in clients with multiple interfaces . . . . . . . 22 - 3.7 When clients should use DHCP. . . . . . . . . . . . . . . . . 22 - 4. Specification of the DHCP client-server protocol. . . . . . . 22 - 4.1 Constructing and sending DHCP messages. . . . . . . . . . . . 22 - 4.2 DHCP server administrative controls . . . . . . . . . . . . . 25 - 4.3 DHCP server behavior. . . . . . . . . . . . . . . . . . . . . 26 - 4.4 DHCP client behavior. . . . . . . . . . . . . . . . . . . . . 33 - 5. Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . .40 - 6. References . . . . . . . . . . . . . . . . . . . . . . . . . .41 - 7. Security Considerations. . . . . . . . . . . . . . . . . . . .42 - 8. Author's Address . . . . . . . . . . . . . . . . . . . . . . .43 - A. Host Configuration Parameters . . . . . . . . . . . . . . . .44 - -List of Figures - - 1. Format of a DHCP message . . . . . . . . . . . . . . . . . . . 9 - 2. Format of the 'flags' field. . . . . . . . . . . . . . . . . . 11 - 3. Timeline diagram of messages exchanged between DHCP client and - servers when allocating a new network address. . . . . . . . . 15 - 4. Timeline diagram of messages exchanged between DHCP client and - servers when reusing a previously allocated network address. . 18 - 5. State-transition diagram for DHCP clients. . . . . . . . . . . 34 - -List of Tables - - 1. Description of fields in a DHCP message. . . . . . . . . . . . 10 - 2. DHCP messages. . . . . . . . . . . . . . . . . . . . . . . . . 14 - 3. Fields and options used by DHCP servers. . . . . . . . . . . . 28 - 4. Client messages from various states. . . . . . . . . . . . . . 33 - 5. Fields and options used by DHCP clients. . . . . . . . . . . . 37 - -1. Introduction - - The Dynamic Host Configuration Protocol (DHCP) provides configuration - parameters to Internet hosts. DHCP consists of two components: a - protocol for delivering host-specific configuration parameters from a - DHCP server to a host and a mechanism for allocation of network - addresses to hosts. - - - -Droms [Page 2] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - DHCP is built on a client-server model, where designated DHCP server - hosts allocate network addresses and deliver configuration parameters - to dynamically configured hosts. Throughout the remainder of this - document, the term "server" refers to a host providing initialization - parameters through DHCP, and the term "client" refers to a host - requesting initialization parameters from a DHCP server. - - A host should not act as a DHCP server unless explicitly configured - to do so by a system administrator. The diversity of hardware and - protocol implementations in the Internet would preclude reliable - operation if random hosts were allowed to respond to DHCP requests. - For example, IP requires the setting of many parameters within the - protocol implementation software. Because IP can be used on many - dissimilar kinds of network hardware, values for those parameters - cannot be guessed or assumed to have correct defaults. Also, - distributed address allocation schemes depend on a polling/defense - mechanism for discovery of addresses that are already in use. IP - hosts may not always be able to defend their network addresses, so - that such a distributed address allocation scheme cannot be - guaranteed to avoid allocation of duplicate network addresses. - - DHCP supports three mechanisms for IP address allocation. In - "automatic allocation", DHCP assigns a permanent IP address to a - client. In "dynamic allocation", DHCP assigns an IP address to a - client for a limited period of time (or until the client explicitly - relinquishes the address). In "manual allocation", a client's IP - address is assigned by the network administrator, and DHCP is used - simply to convey the assigned address to the client. A particular - network will use one or more of these mechanisms, depending on the - policies of the network administrator. - - Dynamic allocation is the only one of the three mechanisms that - allows automatic reuse of an address that is no longer needed by the - client to which it was assigned. Thus, dynamic allocation is - particularly useful for assigning an address to a client that will be - connected to the network only temporarily or for sharing a limited - pool of IP addresses among a group of clients that do not need - permanent IP addresses. Dynamic allocation may also be a good choice - for assigning an IP address to a new client being permanently - connected to a network where IP addresses are sufficiently scarce - that it is important to reclaim them when old clients are retired. - Manual allocation allows DHCP to be used to eliminate the error-prone - process of manually configuring hosts with IP addresses in - environments where (for whatever reasons) it is desirable to manage - IP address assignment outside of the DHCP mechanisms. - - The format of DHCP messages is based on the format of BOOTP messages, - to capture the BOOTP relay agent behavior described as part of the - - - -Droms [Page 3] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - BOOTP specification [7, 21] and to allow interoperability of existing - BOOTP clients with DHCP servers. Using BOOTP relay agents eliminates - the necessity of having a DHCP server on each physical network - segment. - -1.1 Changes to RFC 1541 - - This document updates the DHCP protocol specification that appears in - RFC1541. A new DHCP message type, DHCPINFORM, has been added; see - section 3.4, 4.3 and 4.4 for details. The classing mechanism for - identifying DHCP clients to DHCP servers has been extended to include - "vendor" classes as defined in sections 4.2 and 4.3. The minimum - lease time restriction has been removed. Finally, many editorial - changes have been made to clarify the text as a result of experience - gained in DHCP interoperability tests. - -1.2 Related Work - - There are several Internet protocols and related mechanisms that - address some parts of the dynamic host configuration problem. The - Reverse Address Resolution Protocol (RARP) [10] (through the - extensions defined in the Dynamic RARP (DRARP) [5]) explicitly - addresses the problem of network address discovery, and includes an - automatic IP address assignment mechanism. The Trivial File Transfer - Protocol (TFTP) [20] provides for transport of a boot image from a - boot server. The Internet Control Message Protocol (ICMP) [16] - provides for informing hosts of additional routers via "ICMP - redirect" messages. ICMP also can provide subnet mask information - through the "ICMP mask request" message and other information through - the (obsolete) "ICMP information request" message. Hosts can locate - routers through the ICMP router discovery mechanism [8]. - - BOOTP is a transport mechanism for a collection of configuration - information. BOOTP is also extensible, and official extensions [17] - have been defined for several configuration parameters. Morgan has - proposed extensions to BOOTP for dynamic IP address assignment [15]. - The Network Information Protocol (NIP), used by the Athena project at - MIT, is a distributed mechanism for dynamic IP address assignment - [19]. The Resource Location Protocol RLP [1] provides for location - of higher level services. Sun Microsystems diskless workstations use - a boot procedure that employs RARP, TFTP and an RPC mechanism called - "bootparams" to deliver configuration information and operating - system code to diskless hosts. (Sun Microsystems, Sun Workstation - and SunOS are trademarks of Sun Microsystems, Inc.) Some Sun - networks also use DRARP and an auto-installation mechanism to - automate the configuration of new hosts in an existing network. - - In other related work, the path minimum transmission unit (MTU) - - - -Droms [Page 4] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - discovery algorithm can determine the MTU of an arbitrary internet - path [14]. The Address Resolution Protocol (ARP) has been proposed - as a transport protocol for resource location and selection [6]. - Finally, the Host Requirements RFCs [3, 4] mention specific - requirements for host reconfiguration and suggest a scenario for - initial configuration of diskless hosts. - -1.3 Problem definition and issues - - DHCP is designed to supply DHCP clients with the configuration - parameters defined in the Host Requirements RFCs. After obtaining - parameters via DHCP, a DHCP client should be able to exchange packets - with any other host in the Internet. The TCP/IP stack parameters - supplied by DHCP are listed in Appendix A. - - Not all of these parameters are required for a newly initialized - client. A client and server may negotiate for the transmission of - only those parameters required by the client or specific to a - particular subnet. - - DHCP allows but does not require the configuration of client - parameters not directly related to the IP protocol. DHCP also does - not address registration of newly configured clients with the Domain - Name System (DNS) [12, 13]. - - DHCP is not intended for use in configuring routers. - -1.4 Requirements - - Throughout this document, the words that are used to define the - significance of particular requirements are capitalized. These words - are: - - 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 that the item is an absolute prohibition - of this specification. - - - - - - - - - -Droms [Page 5] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - o "SHOULD" - - This word or the adjective "RECOMMENDED" means that there - may exist valid reasons in particular circumstances to ignore - this item, but the full implications 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 even useful, but the full implications should be understood - and the case carefully weighed 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. - -1.5 Terminology - - This document uses the following terms: - - o "DHCP client" - - A DHCP client is an Internet host using DHCP to obtain - configuration parameters such as a network address. - - o "DHCP server" - - A DHCP server is an Internet host that returns configuration - parameters to DHCP clients. - - o "BOOTP relay agent" - - A BOOTP relay agent or relay agent is an Internet host or router that - passes DHCP messages between DHCP clients and DHCP servers. DHCP is - designed to use the same relay agent behavior as specified in - the BOOTP protocol specification. - - - - - - - - -Droms [Page 6] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - o "binding" - - A binding is a collection of configuration parameters, including - at least an IP address, associated with or "bound to" a DHCP - client. Bindings are managed by DHCP servers. - -1.6 Design goals - - The following list gives general design goals for DHCP. - - o DHCP should be a mechanism rather than a policy. DHCP must - allow local system administrators control over configuration - parameters where desired; e.g., local system administrators - should be able to enforce local policies concerning allocation - and access to local resources where desired. - - o Clients should require no manual configuration. Each client should - be able to discover appropriate local configuration parameters - without user intervention and incorporate those parameters into - its own configuration. - - o Networks should require no manual configuration for individual - clients. Under normal circumstances, the network manager should - not have to enter any per-client configuration parameters. - - o DHCP should not require a server on each subnet. To allow for - scale and economy, DHCP must work across routers or through the - intervention of BOOTP relay agents. - - o A DHCP client must be prepared to receive multiple responses to a - request for configuration parameters. Some installations may - include multiple, overlapping DHCP servers to enhance - reliability and increase performance. - - o DHCP must coexist with statically configured, non-participating - hosts and with existing network protocol implementations. - - o DHCP must interoperate with the BOOTP relay agent behavior as - described by RFC 951 and by RFC 1542 [21]. - - o DHCP must provide service to existing BOOTP clients. - - The following list gives design goals specific to the transmission of - the network layer parameters. DHCP must: - - - - - - - -Droms [Page 7] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - o Guarantee that any specific network address will not be in - use by more than one DHCP client at a time, - - o Retain DHCP client configuration across DHCP client reboot. A DHCP - client should, whenever possible, be assigned the same configuration - parameters (e.g., network address) in response to each request, - - o Retain DHCP client configuration across server reboots, and, whenever - possible, a DHCP client should be assigned the same configuration - parameters despite restarts of the DHCP mechanism, - - o Allow automated assignment of configuration parameters to new - clients to avoid hand configuration for new clients, - - o Support fixed or permanent allocation of configuration - parameters to specific clients. - -2. Protocol Summary - - From the client's point of view, DHCP is an extension of the BOOTP - mechanism. This behavior allows existing BOOTP clients to - interoperate with DHCP servers without requiring any change to the - clients' initialization software. RFC 1542 [2] details the - interactions between BOOTP and DHCP clients and servers [9]. There - are some new, optional transactions that optimize the interaction - between DHCP clients and servers that are described in sections 3 and - 4. - - Figure 1 gives the format of a DHCP message and table 1 describes - each of the fields in the DHCP message. The numbers in parentheses - indicate the size of each field in octets. The names for the fields - given in the figure will be used throughout this document to refer to - the fields in DHCP messages. - - There are two primary differences between DHCP and BOOTP. First, - DHCP defines mechanisms through which clients can be assigned a - network address for a finite lease, allowing for serial reassignment - of network addresses to different clients. Second, DHCP provides the - mechanism for a client to acquire all of the IP configuration - parameters that it needs in order to operate. - - DHCP introduces a small change in terminology intended to clarify the - meaning of one of the fields. What was the "vendor extensions" field - in BOOTP has been re-named the "options" field in DHCP. Similarly, - the tagged data items that were used inside the BOOTP "vendor - extensions" field, which were formerly referred to as "vendor - extensions," are now termed simply "options." - - - - -Droms [Page 8] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - 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 - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | op (1) | htype (1) | hlen (1) | hops (1) | - +---------------+---------------+---------------+---------------+ - | xid (4) | - +-------------------------------+-------------------------------+ - | secs (2) | flags (2) | - +-------------------------------+-------------------------------+ - | ciaddr (4) | - +---------------------------------------------------------------+ - | yiaddr (4) | - +---------------------------------------------------------------+ - | siaddr (4) | - +---------------------------------------------------------------+ - | giaddr (4) | - +---------------------------------------------------------------+ - | | - | chaddr (16) | - | | - | | - +---------------------------------------------------------------+ - | | - | sname (64) | - +---------------------------------------------------------------+ - | | - | file (128) | - +---------------------------------------------------------------+ - | | - | options (variable) | - +---------------------------------------------------------------+ - - Figure 1: Format of a DHCP message - - DHCP defines a new 'client identifier' option that is used to pass an - explicit client identifier to a DHCP server. This change eliminates - the overloading of the 'chaddr' field in BOOTP messages, where - 'chaddr' is used both as a hardware address for transmission of BOOTP - reply messages and as a client identifier. The 'client identifier' - is an opaque key, not to be interpreted by the server; for example, - the 'client identifier' may contain a hardware address, identical to - the contents of the 'chaddr' field, or it may contain another type of - identifier, such as a DNS name. The 'client identifier' chosen by a - DHCP client MUST be unique to that client within the subnet to which - the client is attached. If the client uses a 'client identifier' in - one message, it MUST use that same identifier in all subsequent - messages, to ensure that all servers correctly identify the client. - - - - -Droms [Page 9] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - DHCP clarifies the interpretation of the 'siaddr' field as the - address of the server to use in the next step of the client's - bootstrap process. A DHCP server may return its own address in the - 'siaddr' field, if the server is prepared to supply the next - bootstrap service (e.g., delivery of an operating system executable - image). A DHCP server always returns its own address in the 'server - identifier' option. - - FIELD OCTETS DESCRIPTION - ----- ------ ----------- - - op 1 Message op code / message type. - 1 = BOOTREQUEST, 2 = BOOTREPLY - htype 1 Hardware address type, see ARP section in "Assigned - Numbers" RFC; e.g., '1' = 10mb ethernet. - hlen 1 Hardware address length (e.g. '6' for 10mb - ethernet). - hops 1 Client sets to zero, optionally used by relay agents - when booting via a relay agent. - xid 4 Transaction ID, a random number chosen by the - client, used by the client and server to associate - messages and responses between a client and a - server. - secs 2 Filled in by client, seconds elapsed since client - began address acquisition or renewal process. - flags 2 Flags (see figure 2). - ciaddr 4 Client IP address; only filled in if client is in - BOUND, RENEW or REBINDING state and can respond to ARP - requests. - yiaddr 4 'your' (client) IP address. - siaddr 4 IP address of next server to use in bootstrap; - returned in DHCPOFFER, DHCPACK by server. - giaddr 4 Relay agent IP address, used in booting via a - relay agent. - chaddr 16 Client hardware address. - sname 64 Optional server host name, null terminated string. - file 128 Boot file name, null terminated string; "generic" - name or null in DHCPDISCOVER, fully qualified - directory-path name in DHCPOFFER. - options var Optional parameters field. See the options - documents for a list of defined options. - - Table 1: Description of fields in a DHCP message - - The 'options' field is now variable length. A DHCP client must be - prepared to receive DHCP messages with an 'options' field of at least - length 312 octets. This requirement implies that a DHCP client must - be prepared to receive a message of up to 576 octets, the minimum IP - - - -Droms [Page 10] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - datagram size an IP host must be prepared to accept [3]. DHCP - clients may negotiate the use of larger DHCP messages through the - 'maximum DHCP message size' option. The options field may be further - extended into the 'file' and 'sname' fields. - - In the case of a client using DHCP for initial configuration (before - the client's TCP/IP software has been completely configured), DHCP - requires creative use of the client's TCP/IP software and liberal - interpretation of RFC 1122. The TCP/IP software SHOULD accept and - forward to the IP layer any IP packets delivered to the client's - hardware address before the IP address is configured; DHCP servers - and BOOTP relay agents may not be able to deliver DHCP messages to - clients that cannot accept hardware unicast datagrams before the - TCP/IP software is configured. - - - - To work around some clients that cannot accept IP unicast datagrams - before the TCP/IP software is configured as discussed in the previous - paragraph, DHCP uses the 'flags' field [21]. The leftmost bit is - defined as the BROADCAST (B) flag. The semantics of this flag are - discussed in section 4.1 of this document. The remaining bits of the - flags field are reserved for future use. They MUST be set to zero by - clients and ignored by servers and relay agents. Figure 2 gives the - format of the 'flags' field. - - 1 1 1 1 1 1 - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - |B| MBZ | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - - B: BROADCAST flag - - MBZ: MUST BE ZERO (reserved for future use) - - Figure 2: Format of the 'flags' field - - -2.1 Configuration parameters repository - - The first service provided by DHCP is to provide persistent storage - of network parameters for network clients. The model of DHCP - persistent storage is that the DHCP service stores a key-value entry - for each client, where the key is some unique identifier (for - example, an IP subnet number and a unique identifier within the - subnet) and the value contains the configuration parameters for the - client. - - - -Droms [Page 11] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - For example, the key might be the pair (IP-subnet-number, hardware- - address) (note that the "hardware-address" should be typed by the - type of hardware to accommodate possible duplication of hardware - addresses resulting from bit-ordering problems in a mixed-media, - bridged network) allowing for serial or concurrent reuse of a - hardware address on different subnets, and for hardware addresses - that may not be globally unique. Alternately, the key might be the - pair (IP-subnet-number, hostname), allowing the server to assign - parameters intelligently to a DHCP client that has been moved to a - different subnet or has changed hardware addresses (perhaps because - the network interface failed and was replaced). The protocol defines - that the key will be (IP-subnet-number, hardware-address) unless the - client explicitly supplies an identifier using the 'client - identifier' option. - - A client can query the DHCP service to retrieve its configuration - parameters. The client interface to the configuration parameters - repository consists of protocol messages to request configuration - parameters and responses from the server carrying the configuration - parameters. - -2.2 Dynamic allocation of network addresses - - The second service provided by DHCP is the allocation of temporary or - permanent network (IP) addresses to clients. The basic mechanism for - the dynamic allocation of network addresses is simple: a client - requests the use of an address for some period of time. The - allocation mechanism (the collection of DHCP servers) guarantees not - to reallocate that address within the requested time and attempts to - return the same network address each time the client requests an - address. In this document, the period over which a network address - is allocated to a client is referred to as a "lease" [11]. The - client may extend its lease with subsequent requests. The client may - issue a message to release the address back to the server when the - client no longer needs the address. The client may ask for a - permanent assignment by asking for an infinite lease. Even when - assigning "permanent" addresses, a server may choose to give out - lengthy but non-infinite leases to allow detection of the fact that - the client has been retired. - - In some environments it will be necessary to reassign network - addresses due to exhaustion of available addresses. In such - environments, the allocation mechanism will reuse addresses whose - lease has expired. The server should use whatever information is - available in the configuration information repository to choose an - address to reuse. For example, the server may choose the least - recently assigned address. As a consistency check, the allocating - server SHOULD probe the reused address before allocating the address, - - - -Droms [Page 12] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - e.g., with an ICMP echo request, and the client SHOULD probe the - newly received address, e.g., with ARP. - - -3. The Client-Server Protocol - - DHCP uses the BOOTP message format defined in RFC 951 and given in - table 1 and figure 1. The 'op' field of each DHCP message sent from - a client to a server contains BOOTREQUEST. BOOTREPLY is used in the - 'op' field of each DHCP message sent from a server to a client. - - The first four octets of the 'options' field of the DHCP message - contain the (decimal) values 99, 130, 83 and 99, respectively (this - is the same magic cookie as is defined in RFC 1497 [17]). The - remainder of the 'options' field consists of a list of tagged - parameters that are called "options". All of the "vendor extensions" - listed in RFC 1497 are also DHCP options. RFC 1533 gives the - complete set of options defined for use with DHCP. - - Several options have been defined so far. One particular option - - the "DHCP message type" option - must be included in every DHCP - message. This option defines the "type" of the DHCP message. - Additional options may be allowed, required, or not allowed, - depending on the DHCP message type. - - Throughout this document, DHCP messages that include a 'DHCP message - type' option will be referred to by the type of the message; e.g., a - DHCP message with 'DHCP message type' option type 1 will be referred - to as a "DHCPDISCOVER" message. - -3.1 Client-server interaction - allocating a network address - - The following summary of the protocol exchanges between clients and - servers refers to the DHCP messages described in table 2. The - timeline diagram in figure 3 shows the timing relationships in a - typical client-server interaction. If the client already knows its - address, some steps may be omitted; this abbreviated interaction is - described in section 3.2. - - 1. The client broadcasts a DHCPDISCOVER message on its local physical - subnet. The DHCPDISCOVER message MAY include options that suggest - values for the network address and lease duration. BOOTP relay - agents may pass the message on to DHCP servers not on the same - physical subnet. - - - - - - - -Droms [Page 13] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - 2. Each server may respond with a DHCPOFFER message that includes an - available network address in the 'yiaddr' field (and other - configuration parameters in DHCP options). Servers need not - reserve the offered network address, although the protocol will - work more efficiently if the server avoids allocating the offered - network address to another client. When allocating a new address, - servers SHOULD check that the offered network address is not - already in use; e.g., the server may probe the offered address - with an ICMP Echo Request. Servers SHOULD be implemented so that - network administrators MAY choose to disable probes of newly - allocated addresses. The server transmits the DHCPOFFER message - to the client, using the BOOTP relay agent if necessary. - - Message Use - ------- --- - - DHCPDISCOVER - Client broadcast to locate available servers. - - DHCPOFFER - Server to client in response to DHCPDISCOVER with - offer of configuration parameters. - - DHCPREQUEST - Client message to servers either (a) requesting - offered parameters from one server and implicitly - declining offers from all others, (b) confirming - correctness of previously allocated address after, - e.g., system reboot, or (c) extending the lease on a - particular network address. - - DHCPACK - Server to client with configuration parameters, - including committed network address. - - DHCPNAK - Server to client indicating client's notion of network - address is incorrect (e.g., client has moved to new - subnet) or client's lease as expired - - DHCPDECLINE - Client to server indicating network address is already - in use. - - DHCPRELEASE - Client to server relinquishing network address and - cancelling remaining lease. - - DHCPINFORM - Client to server, asking only for local configuration - parameters; client already has externally configured - network address. - - Table 2: DHCP messages - - - - - -Droms [Page 14] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - Server Client Server - (not selected) (selected) - - v v v - | | | - | Begins initialization | - | | | - | _____________/|\_____________ | - |/ DHCPDISCOVER | DHCPDISCOVER \| - | | | - Determines | Determines - configuration | configuration - | | | - |\ | ____________/| - | \_________ | /DHCPOFFER | - | DHCPOFFER\ |/ | - | \ | | - | Collects replies | - | \| | - | Selects configuration | - | | | - | _____________/|\_____________ | - |/ DHCPREQUEST | DHCPREQUEST \| - | | | - | | Commits configuration - | | | - | | _____________/| - | |/ DHCPACK | - | | | - | Initialization complete | - | | | - . . . - . . . - | | | - | Graceful shutdown | - | | | - | |\_____________ | - | | DHCPRELEASE \| - | | | - | | Discards lease - | | | - v v v - Figure 3: Timeline diagram of messages exchanged between DHCP - client and servers when allocating a new network address - - - - - - - -Droms [Page 15] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - 3. The client receives one or more DHCPOFFER messages from one or more - servers. The client may choose to wait for multiple responses. - The client chooses one server from which to request configuration - parameters, based on the configuration parameters offered in the - DHCPOFFER messages. The client broadcasts a DHCPREQUEST message - that MUST include the 'server identifier' option to indicate which - server it has selected, and that MAY include other options - specifying desired configuration values. The 'requested IP - address' option MUST be set to the value of 'yiaddr' in the - DHCPOFFER message from the server. This DHCPREQUEST message is - broadcast and relayed through DHCP/BOOTP relay agents. To help - ensure that any BOOTP relay agents forward the DHCPREQUEST message - to the same set of DHCP servers that received the original - DHCPDISCOVER message, the DHCPREQUEST message MUST use the same - value in the DHCP message header's 'secs' field and be sent to the - same IP broadcast address as the original DHCPDISCOVER message. - The client times out and retransmits the DHCPDISCOVER message if - the client receives no DHCPOFFER messages. - - 4. The servers receive the DHCPREQUEST broadcast from the client. - Those servers not selected by the DHCPREQUEST message use the - message as notification that the client has declined that server's - offer. The server selected in the DHCPREQUEST message commits the - binding for the client to persistent storage and responds with a - DHCPACK message containing the configuration parameters for the - requesting client. The combination of 'client identifier' or - 'chaddr' and assigned network address constitute a unique - identifier for the client's lease and are used by both the client - and server to identify a lease referred to in any DHCP messages. - Any configuration parameters in the DHCPACK message SHOULD NOT - conflict with those in the earlier DHCPOFFER message to which the - client is responding. The server SHOULD NOT check the offered - network address at this point. The 'yiaddr' field in the DHCPACK - messages is filled in with the selected network address. - - If the selected server is unable to satisfy the DHCPREQUEST message - (e.g., the requested network address has been allocated), the - server SHOULD respond with a DHCPNAK message. - - A server MAY choose to mark addresses offered to clients in - DHCPOFFER messages as unavailable. The server SHOULD mark an - address offered to a client in a DHCPOFFER message as available if - the server receives no DHCPREQUEST message from that client. - - 5. The client receives the DHCPACK message with configuration - parameters. The client SHOULD perform a final check on the - parameters (e.g., ARP for allocated network address), and notes the - duration of the lease specified in the DHCPACK message. At this - - - -Droms [Page 16] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - point, the client is configured. If the client detects that the - address is already in use (e.g., through the use of ARP), the - client MUST send a DHCPDECLINE message to the server and restarts - the configuration process. The client SHOULD wait a minimum of ten - seconds before restarting the configuration process to avoid - excessive network traffic in case of looping. - - If the client receives a DHCPNAK message, the client restarts the - configuration process. - - The client times out and retransmits the DHCPREQUEST message if the - client receives neither a DHCPACK or a DHCPNAK message. The client - retransmits the DHCPREQUEST according to the retransmission - algorithm in section 4.1. The client should choose to retransmit - the DHCPREQUEST enough times to give adequate probability of - contacting the server without causing the client (and the user of - that client) to wait overly long before giving up; e.g., a client - retransmitting as described in section 4.1 might retransmit the - DHCPREQUEST message four times, for a total delay of 60 seconds, - before restarting the initialization procedure. If the client - receives neither a DHCPACK or a DHCPNAK message after employing the - retransmission algorithm, the client reverts to INIT state and - restarts the initialization process. The client SHOULD notify the - user that the initialization process has failed and is restarting. - - 6. The client may choose to relinquish its lease on a network address - by sending a DHCPRELEASE message to the server. The client - identifies the lease to be released with its 'client identifier', - or 'chaddr' and network address in the DHCPRELEASE message. If the - client used a 'client identifier' when it obtained the lease, it - MUST use the same 'client identifier' in the DHCPRELEASE message. - -3.2 Client-server interaction - reusing a previously allocated network - address - - If a client remembers and wishes to reuse a previously allocated - network address, a client may choose to omit some of the steps - described in the previous section. The timeline diagram in figure 4 - shows the timing relationships in a typical client-server interaction - for a client reusing a previously allocated network address. - - 1. The client broadcasts a DHCPREQUEST message on its local subnet. - The message includes the client's network address in the - 'requested IP address' option. As the client has not received its - network address, it MUST NOT fill in the 'ciaddr' field. BOOTP - relay agents pass the message on to DHCP servers not on the same - subnet. If the client used a 'client identifier' to obtain its - address, the client MUST use the same 'client identifier' in the - - - -Droms [Page 17] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - DHCPREQUEST message. - - 2. Servers with knowledge of the client's configuration parameters - respond with a DHCPACK message to the client. Servers SHOULD NOT - check that the client's network address is already in use; the - client may respond to ICMP Echo Request messages at this point. - - Server Client Server - - v v v - | | | - | Begins | - | initialization | - | | | - | /|\ | - | ___________/ | \___________ | - | /DHCPREQUEST | DHCPREQUEST\ | - |/ | \| - | | | - Locates | Locates - configuration | configuration - | | | - |\ | /| - | \ | ___________/ | - | \ | / DHCPACK | - | \_______ |/ | - | DHCPACK\ | | - | Initialization | - | complete | - | \| | - | | | - | (Subsequent | - | DHCPACKS | - | ignored) | - | | | - | | | - v v v - - Figure 4: Timeline diagram of messages exchanged between DHCP - client and servers when reusing a previously allocated - network address - - - If the client's request is invalid (e.g., the client has moved - to a new subnet), servers SHOULD respond with a DHCPNAK message to - the client. Servers SHOULD NOT respond if their information is not - guaranteed to be accurate. For example, a server that identifies a - request for an expired binding that is owned by another server SHOULD - - - -Droms [Page 18] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - NOT respond with a DHCPNAK unless the servers are using an explicit - mechanism to maintain coherency among the servers. - - If 'giaddr' is 0x0 in the DHCPREQUEST message, the client is on - the same subnet as the server. The server MUST - broadcast the DHCPNAK message to the 0xffffffff broadcast address - because the client may not have a correct network address or subnet - mask, and the client may not be answering ARP requests. - Otherwise, the server MUST send the DHCPNAK message to the IP - address of the BOOTP relay agent, as recorded in 'giaddr'. The - relay agent will, in turn, forward the message directly to the - client's hardware address, so that the DHCPNAK can be delivered even - if the client has moved to a new network. - - 3. The client receives the DHCPACK message with configuration - parameters. The client performs a final check on the parameters - (as in section 3.1), and notes the duration of the lease specified - in the DHCPACK message. The specific lease is implicitly identified - by the 'client identifier' or 'chaddr' and the network address. At - this point, the client is configured. - - If the client detects that the IP address in the DHCPACK message - is already in use, the client MUST send a DHCPDECLINE message to the - server and restarts the configuration process by requesting a - new network address. This action corresponds to the client - moving to the INIT state in the DHCP state diagram, which is - described in section 4.4. - - If the client receives a DHCPNAK message, it cannot reuse its - remembered network address. It must instead request a new - address by restarting the configuration process, this time - using the (non-abbreviated) procedure described in section - 3.1. This action also corresponds to the client moving to - the INIT state in the DHCP state diagram. - - The client times out and retransmits the DHCPREQUEST message if - the client receives neither a DHCPACK nor a DHCPNAK message. The - client retransmits the DHCPREQUEST according to the retransmission - algorithm in section 4.1. The client should choose to retransmit - the DHCPREQUEST enough times to give adequate probability of - contacting the server without causing the client (and the user of - that client) to wait overly long before giving up; e.g., a client - retransmitting as described in section 4.1 might retransmit the - DHCPREQUEST message four times, for a total delay of 60 seconds, - before restarting the initialization procedure. If the client - receives neither a DHCPACK or a DHCPNAK message after employing - the retransmission algorithm, the client MAY choose to use the - previously allocated network address and configuration parameters - - - -Droms [Page 19] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - for the remainder of the unexpired lease. This corresponds to - moving to BOUND state in the client state transition diagram shown - in figure 5. - - 4. The client may choose to relinquish its lease on a network - address by sending a DHCPRELEASE message to the server. The - client identifies the lease to be released with its - 'client identifier', or 'chaddr' and network address in the - DHCPRELEASE message. - - Note that in this case, where the client retains its network - address locally, the client will not normally relinquish its - lease during a graceful shutdown. Only in the case where the - client explicitly needs to relinquish its lease, e.g., the client - is about to be moved to a different subnet, will the client send - a DHCPRELEASE message. - -3.3 Interpretation and representation of time values - - A client acquires a lease for a network address for a fixed period of - time (which may be infinite). Throughout the protocol, times are to - be represented in units of seconds. The time value of 0xffffffff is - reserved to represent "infinity". - - As clients and servers may not have synchronized clocks, times are - represented in DHCP messages as relative times, to be interpreted - with respect to the client's local clock. Representing relative - times in units of seconds in an unsigned 32 bit word gives a range of - relative times from 0 to approximately 100 years, which is sufficient - for the relative times to be measured using DHCP. - - The algorithm for lease duration interpretation given in the previous - paragraph assumes that client and server clocks are stable relative - to each other. If there is drift between the two clocks, the server - may consider the lease expired before the client does. To - compensate, the server may return a shorter lease duration to the - client than the server commits to its local database of client - information. - -3.4 Obtaining parameters with externally configured network address - - If a client has obtained a network address through some other means - (e.g., manual configuration), it may use a DHCPINFORM request message - to obtain other local configuration parameters. Servers receiving a - DHCPINFORM message construct a DHCPACK message with any local - configuration parameters appropriate for the client without: - allocating a new address, checking for an existing binding, filling - in 'yiaddr' or including lease time parameters. The servers SHOULD - - - -Droms [Page 20] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - unicast the DHCPACK reply to the address given in the 'ciaddr' field - of the DHCPINFORM message. - - The server SHOULD check the network address in a DHCPINFORM message - for consistency, but MUST NOT check for an existing lease. The - server forms a DHCPACK message containing the configuration - parameters for the requesting client and sends the DHCPACK message - directly to the client. - -3.5 Client parameters in DHCP - - Not all clients require initialization of all parameters listed in - Appendix A. Two techniques are used to reduce the number of - parameters transmitted from the server to the client. First, most of - the parameters have defaults defined in the Host Requirements RFCs; - if the client receives no parameters from the server that override - the defaults, a client uses those default values. Second, in its - initial DHCPDISCOVER or DHCPREQUEST message, a client may provide the - server with a list of specific parameters the client is interested - in. If the client includes a list of parameters in a DHCPDISCOVER - message, it MUST include that list in any subsequent DHCPREQUEST - messages. - - The client SHOULD include the 'maximum DHCP message size' option to - let the server know how large the server may make its DHCP messages. - The parameters returned to a client may still exceed the space - allocated to options in a DHCP message. In this case, two additional - options flags (which must appear in the 'options' field of the - message) indicate that the 'file' and 'sname' fields are to be used - for options. - - The client can inform the server which configuration parameters the - client is interested in by including the 'parameter request list' - option. The data portion of this option explicitly lists the options - requested by tag number. - - In addition, the client may suggest values for the network address - and lease time in the DHCPDISCOVER message. The client may include - the 'requested IP address' option to suggest that a particular IP - address be assigned, and may include the 'IP address lease time' - option to suggest the lease time it would like. Other options - representing "hints" at configuration parameters are allowed in a - DHCPDISCOVER or DHCPREQUEST message. However, additional options may - be ignored by servers, and multiple servers may, therefore, not - return identical values for some options. The 'requested IP address' - option is to be filled in only in a DHCPREQUEST message when the - client is verifying network parameters obtained previously. The - client fills in the 'ciaddr' field only when correctly configured - - - -Droms [Page 21] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - with an IP address in BOUND, RENEWING or REBINDING state. - - If a server receives a DHCPREQUEST message with an invalid 'requested - IP address', the server SHOULD respond to the client with a DHCPNAK - message and may choose to report the problem to the system - administrator. The server may include an error message in the - 'message' option. - -3.6 Use of DHCP in clients with multiple interfaces - - A client with multiple network interfaces must use DHCP through each - interface independently to obtain configuration information - parameters for those separate interfaces. - -3.7 When clients should use DHCP - - A client SHOULD use DHCP to reacquire or verify its IP address and - network parameters whenever the local network parameters may have - changed; e.g., at system boot time or after a disconnection from the - local network, as the local network configuration may change without - the client's or user's knowledge. - - If a client has knowledge of a previous network address and is unable - to contact a local DHCP server, the client may continue to use the - previous network address until the lease for that address expires. - If the lease expires before the client can contact a DHCP server, the - client must immediately discontinue use of the previous network - address and may inform local users of the problem. - -4. Specification of the DHCP client-server protocol - - In this section, we assume that a DHCP server has a block of network - addresses from which it can satisfy requests for new addresses. Each - server also maintains a database of allocated addresses and leases in - local permanent storage. - -4.1 Constructing and sending DHCP messages - - DHCP clients and servers both construct DHCP messages by filling in - fields in the fixed format section of the message and appending - tagged data items in the variable length option area. The options - area includes first a four-octet 'magic cookie' (which was described - in section 3), followed by the options. The last option must always - be the 'end' option. - - DHCP uses UDP as its transport protocol. DHCP messages from a client - to a server are sent to the 'DHCP server' port (67), and DHCP - messages from a server to a client are sent to the 'DHCP client' port - - - -Droms [Page 22] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - (68). A server with multiple network address (e.g., a multi-homed - host) MAY use any of its network addresses in outgoing DHCP messages. - - The 'server identifier' field is used both to identify a DHCP server - in a DHCP message and as a destination address from clients to - servers. A server with multiple network addresses MUST be prepared - to to accept any of its network addresses as identifying that server - in a DHCP message. To accommodate potentially incomplete network - connectivity, a server MUST choose an address as a 'server - identifier' that, to the best of the server's knowledge, is reachable - from the client. For example, if the DHCP server and the DHCP client - are connected to the same subnet (i.e., the 'giaddr' field in the - message from the client is zero), the server SHOULD select the IP - address the server is using for communication on that subnet as the - 'server identifier'. If the server is using multiple IP addresses on - that subnet, any such address may be used. If the server has - received a message through a DHCP relay agent, the server SHOULD - choose an address from the interface on which the message was - recieved as the 'server identifier' (unless the server has other, - better information on which to make its choice). DHCP clients MUST - use the IP address provided in the 'server identifier' option for any - unicast requests to the DHCP server. - - DHCP messages broadcast by a client prior to that client obtaining - its IP address must have the source address field in the IP header - set to 0. - - If the 'giaddr' field in a DHCP message from a client is non-zero, - the server sends any return messages to the 'DHCP server' port on the - BOOTP relay agent whose address appears in 'giaddr'. If the 'giaddr' - field is zero and the 'ciaddr' field is nonzero, then the server - unicasts DHCPOFFER and DHCPACK messages to the address in 'ciaddr'. - If 'giaddr' is zero and 'ciaddr' is zero, and the broadcast bit is - set, then the server broadcasts DHCPOFFER and DHCPACK messages to - 0xffffffff. If the broadcast bit is not set and 'giaddr' is zero and - 'ciaddr' is zero, then the server unicasts DHCPOFFER and DHCPACK - messages to the client's hardware address and 'yiaddr' address. In - all cases, when 'giaddr' is zero, the server broadcasts any DHCPNAK - messages to 0xffffffff. - - If the options in a DHCP message extend into the 'sname' and 'file' - fields, the 'option overload' option MUST appear in the 'options' - field, with value 1, 2 or 3, as specified in RFC 1533. If the - 'option overload' option is present in the 'options' field, the - options in the 'options' field MUST be terminated by an 'end' option, - and MAY contain one or more 'pad' options to fill the options field. - The options in the 'sname' and 'file' fields (if in use as indicated - by the 'options overload' option) MUST begin with the first octet of - - - -Droms [Page 23] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - the field, MUST be terminated by an 'end' option, and MUST be - followed by 'pad' options to fill the remainder of the field. Any - individual option in the 'options', 'sname' and 'file' fields MUST be - entirely contained in that field. The options in the 'options' field - MUST be interpreted first, so that any 'option overload' options may - be interpreted. The 'file' field MUST be interpreted next (if the - 'option overload' option indicates that the 'file' field contains - DHCP options), followed by the 'sname' field. - - The values to be passed in an 'option' tag may be too long to fit in - the 255 octets available to a single option (e.g., a list of routers - in a 'router' option [21]). Options may appear only once, unless - otherwise specified in the options document. The client concatenates - the values of multiple instances of the same option into a single - parameter list for configuration. - - DHCP clients are responsible for all message retransmission. The - client MUST adopt a retransmission strategy that incorporates a - randomized exponential backoff algorithm to determine the delay - between retransmissions. The delay between retransmissions SHOULD be - chosen to allow sufficient time for replies from the server to be - delivered based on the characteristics of the internetwork between - the client and the server. For example, in a 10Mb/sec Ethernet - internetwork, the delay before the first retransmission SHOULD be 4 - seconds randomized by the value of a uniform random number chosen - from the range -1 to +1. Clients with clocks that provide resolution - granularity of less than one second may choose a non-integer - randomization value. The delay before the next retransmission SHOULD - be 8 seconds randomized by the value of a uniform number chosen from - the range -1 to +1. The retransmission delay SHOULD be doubled with - subsequent retransmissions up to a maximum of 64 seconds. The client - MAY provide an indication of retransmission attempts to the user as - an indication of the progress of the configuration process. - - The 'xid' field is used by the client to match incoming DHCP messages - with pending requests. A DHCP client MUST choose 'xid's in such a - way as to minimize the chance of using an 'xid' identical to one used - by another client. For example, a client may choose a different, - random initial 'xid' each time the client is rebooted, and - subsequently use sequential 'xid's until the next reboot. Selecting - a new 'xid' for each retransmission is an implementation decision. A - client may choose to reuse the same 'xid' or select a new 'xid' for - each retransmitted message. - - Normally, DHCP servers and BOOTP relay agents attempt to deliver - DHCPOFFER, DHCPACK and DHCPNAK messages directly to the client using - unicast delivery. The IP destination address (in the IP header) is - set to the DHCP 'yiaddr' address and the link-layer destination - - - -Droms [Page 24] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - address is set to the DHCP 'chaddr' address. Unfortunately, some - client implementations are unable to receive such unicast IP - datagrams until the implementation has been configured with a valid - IP address (leading to a deadlock in which the client's IP address - cannot be delivered until the client has been configured with an IP - address). - - A client that cannot receive unicast IP datagrams until its protocol - software has been configured with an IP address SHOULD set the - BROADCAST bit in the 'flags' field to 1 in any DHCPDISCOVER or - DHCPREQUEST messages that client sends. The BROADCAST bit will - provide a hint to the DHCP server and BOOTP relay agent to broadcast - any messages to the client on the client's subnet. A client that can - receive unicast IP datagrams before its protocol software has been - configured SHOULD clear the BROADCAST bit to 0. The BOOTP - clarifications document discusses the ramifications of the use of the - BROADCAST bit [21]. - - A server or relay agent sending or relaying a DHCP message directly - to a DHCP client (i.e., not to a relay agent specified in the - 'giaddr' field) SHOULD examine the BROADCAST bit in the 'flags' - field. If this bit is set to 1, the DHCP message SHOULD be sent as - an IP broadcast using an IP broadcast address (preferably 0xffffffff) - as the IP destination address and the link-layer broadcast address as - the link-layer destination address. If the BROADCAST bit is cleared - to 0, the message SHOULD be sent as an IP unicast to the IP address - specified in the 'yiaddr' field and the link-layer address specified - in the 'chaddr' field. If unicasting is not possible, the message - MAY be sent as an IP broadcast using an IP broadcast address - (preferably 0xffffffff) as the IP destination address and the link- - layer broadcast address as the link-layer destination address. - -4.2 DHCP server administrative controls - - DHCP servers are not required to respond to every DHCPDISCOVER and - DHCPREQUEST message they receive. For example, a network - administrator, to retain stringent control over the clients attached - to the network, may choose to configure DHCP servers to respond only - to clients that have been previously registered through some external - mechanism. The DHCP specification describes only the interactions - between clients and servers when the clients and servers choose to - interact; it is beyond the scope of the DHCP specification to - describe all of the administrative controls that system - administrators might want to use. Specific DHCP server - implementations may incorporate any controls or policies desired by a - network administrator. - - In some environments, a DHCP server will have to consider the values - - - -Droms [Page 25] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - of the vendor class options included in DHCPDISCOVER or DHCPREQUEST - messages when determining the correct parameters for a particular - client. - - A DHCP server needs to use some unique identifier to associate a - client with its lease. The client MAY choose to explicitly provide - the identifier through the 'client identifier' option. If the client - supplies a 'client identifier', the client MUST use the same 'client - identifier' in all subsequent messages, and the server MUST use that - identifier to identify the client. If the client does not provide a - 'client identifier' option, the server MUST use the contents of the - 'chaddr' field to identify the client. It is crucial for a DHCP - client to use an identifier unique within the subnet to which the - client is attached in the 'client identifier' option. Use of - 'chaddr' as the client's unique identifier may cause unexpected - results, as that identifier may be associated with a hardware - interface that could be moved to a new client. Some sites may choose - to use a manufacturer's serial number as the 'client identifier', to - avoid unexpected changes in a clients network address due to transfer - of hardware interfaces among computers. Sites may also choose to use - a DNS name as the 'client identifier', causing address leases to be - associated with the DNS name rather than a specific hardware box. - - DHCP clients are free to use any strategy in selecting a DHCP server - among those from which the client receives a DHCPOFFER message. The - client implementation of DHCP SHOULD provide a mechanism for the user - to select directly the 'vendor class identifier' values. - -4.3 DHCP server behavior - - A DHCP server processes incoming DHCP messages from a client based on - the current state of the binding for that client. A DHCP server can - receive the following messages from a client: - - o DHCPDISCOVER - - o DHCPREQUEST - - o DHCPDECLINE - - o DHCPRELEASE - - o DHCPINFORM - - Table 3 gives the use of the fields and options in a DHCP message by - a server. The remainder of this section describes the action of the - DHCP server for each possible incoming message. - - - - -Droms [Page 26] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - -4.3.1 DHCPDISCOVER message - - When a server receives a DHCPDISCOVER message from a client, the - server chooses a network address for the requesting client. If no - address is available, the server may choose to report the problem to - the system administrator. If an address is available, the new address - SHOULD be chosen as follows: - - o The client's current address as recorded in the client's current - binding, ELSE - - o The client's previous address as recorded in the client's (now - expired or released) binding, if that address is in the server's - pool of available addresses and not already allocated, ELSE - - o The address requested in the 'Requested IP Address' option, if that - address is valid and not already allocated, ELSE - - o A new address allocated from the server's pool of available - addresses; the address is selected based on the subnet from which - the message was received (if 'giaddr' is 0) or on the address of - the relay agent that forwarded the message ('giaddr' when not 0). - - As described in section 4.2, a server MAY, for administrative - reasons, assign an address other than the one requested, or may - refuse to allocate an address to a particular client even though free - addresses are available. - - Note that, in some network architectures (e.g., internets with more - than one IP subnet assigned to a physical network segment), it may be - the case that the DHCP client should be assigned an address from a - different subnet than the address recorded in 'giaddr'. Thus, DHCP - does not require that the client be assigned as address from the - subnet in 'giaddr'. A server is free to choose some other subnet, - and it is beyond the scope of the DHCP specification to describe ways - in which the assigned IP address might be chosen. - - While not required for correct operation of DHCP, the server SHOULD - NOT reuse the selected network address before the client responds to - the server's DHCPOFFER message. The server may choose to record the - address as offered to the client. - - The server must also choose an expiration time for the lease, as - follows: - - o IF the client has not requested a specific lease in the - DHCPDISCOVER message and the client already has an assigned network - address, the server returns the lease expiration time previously - - - -Droms [Page 27] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - assigned to that address (note that the client must explicitly - request a specific lease to extend the expiration time on a - previously assigned address), ELSE - - o IF the client has not requested a specific lease in the - DHCPDISCOVER message and the client does not have an assigned - network address, the server assigns a locally configured default - lease time, ELSE - - o IF the client has requested a specific lease in the DHCPDISCOVER - message (regardless of whether the client has an assigned network - address), the server may choose either to return the requested - lease (if the lease is acceptable to local policy) or select - another lease. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Droms [Page 28] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - Field DHCPOFFER DHCPACK DHCPNAK - ----- --------- ------- ------- - 'op' BOOTREPLY BOOTREPLY BOOTREPLY - 'htype' (From "Assigned Numbers" RFC) - 'hlen' (Hardware address length in octets) - 'hops' 0 0 0 - 'xid' 'xid' from client 'xid' from client 'xid' from client - DHCPDISCOVER DHCPREQUEST DHCPREQUEST - message message message - 'secs' 0 0 0 - 'ciaddr' 0 'ciaddr' from 0 - DHCPREQUEST or 0 - 'yiaddr' IP address offered IP address 0 - to client assigned to client - 'siaddr' IP address of next IP address of next 0 - bootstrap server bootstrap server - 'flags' 'flags' from 'flags' from 'flags' from - client DHCPDISCOVER client DHCPREQUEST client DHCPREQUEST - message message message - 'giaddr' 'giaddr' from 'giaddr' from 'giaddr' from - client DHCPDISCOVER client DHCPREQUEST client DHCPREQUEST - message message message - 'chaddr' 'chaddr' from 'chaddr' from 'chaddr' from - client DHCPDISCOVER client DHCPREQUEST client DHCPREQUEST - message message message - 'sname' Server host name Server host name (unused) - or options or options - 'file' Client boot file Client boot file (unused) - name or options name or options - 'options' options options - - Option DHCPOFFER DHCPACK DHCPNAK - ------ --------- ------- ------- - Requested IP address MUST NOT MUST NOT MUST NOT - IP address lease time MUST MUST (DHCPREQUEST) MUST NOT - MUST NOT (DHCPINFORM) - Use 'file'/'sname' fields MAY MAY MUST NOT - DHCP message type DHCPOFFER DHCPACK DHCPNAK - Parameter request list MUST NOT MUST NOT MUST NOT - Message SHOULD SHOULD SHOULD - Client identifier MUST NOT MUST NOT MAY - Vendor class identifier MAY MAY MAY - Server identifier MUST MUST MUST - Maximum message size MUST NOT MUST NOT MUST NOT - All others MAY MAY MUST NOT - - Table 3: Fields and options used by DHCP servers - - - - -Droms [Page 29] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - Once the network address and lease have been determined, the server - constructs a DHCPOFFER message with the offered configuration - parameters. It is important for all DHCP servers to return the same - parameters (with the possible exception of a newly allocated network - address) to ensure predictable client behavior regardless of which - server the client selects. The configuration parameters MUST be - selected by applying the following rules in the order given below. - The network administrator is responsible for configuring multiple - DHCP servers to ensure uniform responses from those servers. The - server MUST return to the client: - - o The client's network address, as determined by the rules given - earlier in this section, - - o The expiration time for the client's lease, as determined by the - rules given earlier in this section, - - o Parameters requested by the client, according to the following - rules: - - -- IF the server has been explicitly configured with a default - value for the parameter, the server MUST include that value - in an appropriate option in the 'option' field, ELSE - - -- IF the server recognizes the parameter as a parameter - defined in the Host Requirements Document, the server MUST - include the default value for that parameter as given in the - Host Requirements Document in an appropriate option in the - 'option' field, ELSE - - -- The server MUST NOT return a value for that parameter, - - The server MUST supply as many of the requested parameters as - possible and MUST omit any parameters it cannot provide. The - server MUST include each requested parameter only once unless - explicitly allowed in the DHCP Options and BOOTP Vendor - Extensions document. - - o Any parameters from the existing binding that differ from the Host - Requirements Document defaults, - - o Any parameters specific to this client (as identified by - the contents of 'chaddr' or 'client identifier' in the DHCPDISCOVER - or DHCPREQUEST message), e.g., as configured by the network - administrator, - - - - - - -Droms [Page 30] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - o Any parameters specific to this client's class (as identified - by the contents of the 'vendor class identifier' - option in the DHCPDISCOVER or DHCPREQUEST message), - e.g., as configured by the network administrator; the parameters - MUST be identified by an exact match between the client's vendor - class identifiers and the client's classes identified in the - server, - - o Parameters with non-default values on the client's subnet. - - The server MAY choose to return the 'vendor class identifier' used to - determine the parameters in the DHCPOFFER message to assist the - client in selecting which DHCPOFFER to accept. The server inserts - the 'xid' field from the DHCPDISCOVER message into the 'xid' field of - the DHCPOFFER message and sends the DHCPOFFER message to the - requesting client. - -4.3.2 DHCPREQUEST message - - A DHCPREQUEST message may come from a client responding to a - DHCPOFFER message from a server, from a client verifying a previously - allocated IP address or from a client extending the lease on a - network address. If the DHCPREQUEST message contains a 'server - identifier' option, the message is in response to a DHCPOFFER - message. Otherwise, the message is a request to verify or extend an - existing lease. If the client uses a 'client identifier' in a - DHCPREQUEST message, it MUST use that same 'client identifier' in all - subsequent messages. If the client included a list of requested - parameters in a DHCPDISCOVER message, it MUST include that list in - all subsequent messages. - - Any configuration parameters in the DHCPACK message SHOULD NOT - conflict with those in the earlier DHCPOFFER message to which the - client is responding. The client SHOULD use the parameters in the - DHCPACK message for configuration. - - Clients send DHCPREQUEST messages as follows: - - o DHCPREQUEST generated during SELECTING state: - - Client inserts the address of the selected server in 'server - identifier', 'ciaddr' MUST be zero, 'requested IP address' MUST be - filled in with the yiaddr value from the chosen DHCPOFFER. - - Note that the client may choose to collect several DHCPOFFER - messages and select the "best" offer. The client indicates its - selection by identifying the offering server in the DHCPREQUEST - message. If the client receives no acceptable offers, the client - - - -Droms [Page 31] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - may choose to try another DHCPDISCOVER message. Therefore, the - servers may not receive a specific DHCPREQUEST from which they can - decide whether or not the client has accepted the offer. Because - the servers have not committed any network address assignments on - the basis of a DHCPOFFER, servers are free to reuse offered network - addresses in response to subsequent requests. As an implementation - detail, servers SHOULD NOT reuse offered addresses and may use an - implementation-specific timeout mechanism to decide when to reuse - an offered address. - - o DHCPREQUEST generated during INIT-REBOOT state: - - 'server identifier' MUST NOT be filled in, 'requested IP address' - option MUST be filled in with client's notion of its previously - assigned address. 'ciaddr' MUST be zero. The client is seeking to - verify a previously allocated, cached configuration. Server SHOULD - send a DHCPNAK message to the client if the 'requested IP address' - is incorrect, or is on the wrong network. - - Determining whether a client in the INIT-REBOOT state is on the - correct network is done by examining the contents of 'giaddr', the - 'requested IP address' option, and a database lookup. If the DHCP - server detects that the client is on the wrong net (i.e., the - result of applying the local subnet mask or remote subnet mask (if - 'giaddr' is not zero) to 'requested IP address' option value - doesn't match reality), then the server SHOULD send a DHCPNAK - message to the client. - - If the network is correct, then the DHCP server should check if the - client's notion of its IP address is correct. If not, then the - server SHOULD send a DHCPNAK message to the client. If the DHCP - server has no record of this client, then it MUST remain silent, - and MAY output a warning to the network administrator. This - behavior is necessary for peaceful coexistence of non-communicating - DHCP servers on the same wire. - - If 'giaddr' is 0x0 in the DHCPREQUEST message, the client is on the - same subnet as the server. The server MUST broadcast the DHCPNAK - message to the 0xffffffff broadcast address because the client may - not have a correct network address or subnet mask, and the client - may not be answering ARP requests. - - If 'giaddr' is set in the DHCPREQUEST message, the client is on a - different subnet. The server MUST set the broadcast bit in the - DHCPNAK, so that the relay agent will broadcast the DHCPNAK to the - client, because the client may not have a correct network address - or subnet mask, and the client may not be answering ARP requests. - - - - -Droms [Page 32] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - o DHCPREQUEST generated during RENEWING state: - - 'server identifier' MUST NOT be filled in, 'requested IP address' - option MUST NOT be filled in, 'ciaddr' MUST be filled in with - client's IP address. In this situation, the client is completely - configured, and is trying to extend its lease. This message will be - unicast, so no relay agents will be involved in its transmission. - Because 'giaddr' is therefore not filled in, the DHCP server will - trust the value in 'ciaddr', and use it when replying to the - client. - - A client MAY choose to renew or extend its lease prior to T1. The - server may choose not to extend the lease (as a policy decision by - the network administrator), but should return a DHCPACK message - regardless. - - o DHCPREQUEST generated during REBINDING state: - - 'server identifier' MUST NOT be filled in, 'requested IP address' - option MUST NOT be filled in, 'ciaddr' MUST be filled in with - client's IP address. In this situation, the client is completely - configured, and is trying to extend its lease. This message MUST be - broadcast to the 0xffffffff IP broadcast address. The DHCP server - SHOULD check 'ciaddr' for correctness before replying to the - DHCPREQUEST. - - The DHCPREQUEST from a REBINDING client is intended to accommodate - sites that have multiple DHCP servers and a mechanism for - maintaining consistency among leases managed by multiple servers. - A DHCP server MAY extend a client's lease only if it has local - administrative authority to do so. - -4.3.3 DHCPDECLINE message - - If the server receives a DHCPDECLINE message, the client has - discovered through some other means that the suggested network - address is already in use. The server MUST mark the network address - as not available and SHOULD notify the local system administrator of - a possible configuration problem. - -4.3.4 DHCPRELEASE message - - Upon receipt of a DHCPRELEASE message, the server marks the network - address as not allocated. The server SHOULD retain a record of the - client's initialization parameters for possible reuse in response to - subsequent requests from the client. - -4.3.5 DHCPINFORM message - - - -Droms [Page 33] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - The server responds to a DHCPINFORM message by sending a DHCPACK - message directly to the address given in the 'ciaddr' field of the - DHCPINFORM message. The server MUST NOT send a lease expiration time - to the client and SHOULD NOT fill in 'yiaddr'. The server includes - other parameters in the DHCPACK message as defined in section 4.3.1. - -4.3.6 Client messages - - Table 4 details the differences between messages from clients in - various states. - - --------------------------------------------------------------------- - | |INIT-REBOOT |SELECTING |RENEWING |REBINDING | - --------------------------------------------------------------------- - |broad/unicast |broadcast |broadcast |unicast |broadcast | - |server-ip |MUST NOT |MUST |MUST NOT |MUST NOT | - |requested-ip |MUST |MUST |MUST NOT |MUST NOT | - |ciaddr |zero |zero |IP address |IP address| - --------------------------------------------------------------------- - - Table 4: Client messages from different states - -4.4 DHCP client behavior - - Figure 5 gives a state-transition diagram for a DHCP client. A - client can receive the following messages from a server: - - o DHCPOFFER - - o DHCPACK - - o DHCPNAK - - The DHCPINFORM message is not shown in figure 5. A client simply - sends the DHCPINFORM and waits for DHCPACK messages. Once the client - has selected its parameters, it has completed the configuration - process. - - Table 5 gives the use of the fields and options in a DHCP message by - a client. The remainder of this section describes the action of the - DHCP client for each possible incoming message. The description in - the following section corresponds to the full configuration procedure - previously described in section 3.1, and the text in the subsequent - section corresponds to the abbreviated configuration procedure - described in section 3.2. - - - - - - -Droms [Page 34] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - -------- ------- -| | +-------------------------->| |<-------------------+ -| INIT- | | +-------------------->| INIT | | -| REBOOT |DHCPNAK/ +---------->| |<---+ | -| |Restart| | ------- | | - -------- | DHCPNAK/ | | | - | Discard offer | -/Send DHCPDISCOVER | --/Send DHCPREQUEST | | | - | | | DHCPACK v | | - ----------- | (not accept.)/ ----------- | | -| | | Send DHCPDECLINE | | | -| REBOOTING | | | | SELECTING |<----+ | -| | | / | | |DHCPOFFER/ | - ----------- | / ----------- | |Collect | - | | / | | | replies | -DHCPACK/ | / +----------------+ +-------+ | -Record lease, set| | v Select offer/ | -timers T1, T2 ------------ send DHCPREQUEST | | - | +----->| | DHCPNAK, Lease expired/ | - | | | REQUESTING | Halt network | - DHCPOFFER/ | | | | - Discard ------------ | | - | | | | ----------- | - | +--------+ DHCPACK/ | | | - | Record lease, set -----| REBINDING | | - | timers T1, T2 / | | | - | | DHCPACK/ ----------- | - | v Record lease, set ^ | - +----------------> ------- /timers T1,T2 | | - +----->| |<---+ | | - | | BOUND |<---+ | | - DHCPOFFER, DHCPACK, | | | T2 expires/ DHCPNAK/ - DHCPNAK/Discard ------- | Broadcast Halt network - | | | | DHCPREQUEST | - +-------+ | DHCPACK/ | | - T1 expires/ Record lease, set | | - Send DHCPREQUEST timers T1, T2 | | - to leasing server | | | - | ---------- | | - | | |------------+ | - +->| RENEWING | | - | |----------------------------+ - ---------- - Figure 5: State-transition diagram for DHCP clients - - - - - - - -Droms [Page 35] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - -4.4.1 Initialization and allocation of network address - - The client begins in INIT state and forms a DHCPDISCOVER message. - The client SHOULD wait a random time between one and ten seconds to - desynchronize the use of DHCP at startup. The client sets 'ciaddr' - to 0x00000000. The client MAY request specific parameters by - including the 'parameter request list' option. The client MAY - suggest a network address and/or lease time by including the - 'requested IP address' and 'IP address lease time' options. The - client MUST include its hardware address in the 'chaddr' field, if - necessary for delivery of DHCP reply messages. The client MAY - include a different unique identifier in the 'client identifier' - option, as discussed in section 4.2. If the client included a list - of requested parameters in a DHCPDISCOVER message, it MUST include - that list in all subsequent messages. - - The client generates and records a random transaction identifier and - inserts that identifier into the 'xid' field. The client records its - own local time for later use in computing the lease expiration. The - client then broadcasts the DHCPDISCOVER on the local hardware - broadcast address to the 0xffffffff IP broadcast address and 'DHCP - server' UDP port. - - If the 'xid' of an arriving DHCPOFFER message does not match the - 'xid' of the most recent DHCPDISCOVER message, the DHCPOFFER message - must be silently discarded. Any arriving DHCPACK messages must be - silently discarded. - - The client collects DHCPOFFER messages over a period of time, selects - one DHCPOFFER message from the (possibly many) incoming DHCPOFFER - messages (e.g., the first DHCPOFFER message or the DHCPOFFER message - from the previously used server) and extracts the server address from - the 'server identifier' option in the DHCPOFFER message. The time - over which the client collects messages and the mechanism used to - select one DHCPOFFER are implementation dependent. - - - - - - - - - - - - - - - - -Droms [Page 36] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - Field DHCPDISCOVER DHCPREQUEST DHCPDECLINE, - DHCPINFORM DHCPRELEASE - ----- ------------ ----------- ----------- - 'op' BOOTREQUEST BOOTREQUEST BOOTREQUEST - 'htype' (From "Assigned Numbers" RFC) - 'hlen' (Hardware address length in octets) - 'hops' 0 0 0 - 'xid' selected by client 'xid' from server selected by - DHCPOFFER message client - 'secs' 0 or seconds since 0 or seconds since 0 - DHCP process started DHCP process started - 'flags' Set 'BROADCAST' Set 'BROADCAST' 0 - flag if client flag if client - requires broadcast requires broadcast - reply reply - 'ciaddr' 0 (DHCPDISCOVER) 0 or client's 0 (DHCPDECLINE) - client's network address client's network - network address (BOUND/RENEW/REBIND) address - (DHCPINFORM) (DHCPRELEASE) - 'yiaddr' 0 0 0 - 'siaddr' 0 0 0 - 'giaddr' 0 0 0 - 'chaddr' client's hardware client's hardware client's hardware - address address address - 'sname' options, if options, if (unused) - indicated in indicated in - 'sname/file' 'sname/file' - option; otherwise option; otherwise - unused unused - 'file' options, if options, if (unused) - indicated in indicated in - 'sname/file' 'sname/file' - option; otherwise option; otherwise - unused unused - 'options' options options (unused) - - Option DHCPDISCOVER DHCPREQUEST DHCPDECLINE, - DHCPINFORM DHCPRELEASE - ------ ------------ ----------- ----------- - Requested IP address MAY MUST (in MUST - (DISCOVER) SELECTING or (DHCPDECLINE), - MUST NOT INIT-REBOOT) MUST NOT - (INFORM) MUST NOT (in (DHCPRELEASE) - BOUND or - RENEWING) - IP address lease time MAY MAY MUST NOT - (DISCOVER) - MUST NOT - - - -Droms [Page 37] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - (INFORM) - Use 'file'/'sname' fields MAY MAY MAY - DHCP message type DHCPDISCOVER/ DHCPREQUEST DHCPDECLINE/ - DHCPINFORM DHCPRELEASE - Client identifier MAY MAY MAY - Vendor class identifier MAY MAY MUST NOT - Server identifier MUST NOT MUST (after MUST - SELECTING) - MUST NOT (after - INIT-REBOOT, - BOUND, RENEWING - or REBINDING) - Parameter request list MAY MAY MUST NOT - Maximum message size MAY MAY MUST NOT - Message SHOULD NOT SHOULD NOT SHOULD - Site-specific MAY MAY MUST NOT - All others MAY MAY MUST NOT - - Table 5: Fields and options used by DHCP clients - - If the parameters are acceptable, the client records the address of - the server that supplied the parameters from the 'server identifier' - field and sends that address in the 'server identifier' field of a - DHCPREQUEST broadcast message. Once the DHCPACK message from the - server arrives, the client is initialized and moves to BOUND state. - The DHCPREQUEST message contains the same 'xid' as the DHCPOFFER - message. The client records the lease expiration time as the sum of - the time at which the original request was sent and the duration of - the lease from the DHCPACK message. The client SHOULD perform a - check on the suggested address to ensure that the address is not - already in use. For example, if the client is on a network that - supports ARP, the client may issue an ARP request for the suggested - request. When broadcasting an ARP request for the suggested address, - the client must fill in its own hardware address as the sender's - hardware address, and 0 as the sender's IP address, to avoid - confusing ARP caches in other hosts on the same subnet. If the - network address appears to be in use, the client MUST send a - DHCPDECLINE message to the server. The client SHOULD broadcast an ARP - reply to announce the client's new IP address and clear any outdated - ARP cache entries in hosts on the client's subnet. - -4.4.2 Initialization with known network address - - The client begins in INIT-REBOOT state and sends a DHCPREQUEST - message. The client MUST insert its known network address as a - 'requested IP address' option in the DHCPREQUEST message. The client - may request specific configuration parameters by including the - 'parameter request list' option. The client generates and records a - - - -Droms [Page 38] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - random transaction identifier and inserts that identifier into the - 'xid' field. The client records its own local time for later use in - computing the lease expiration. The client MUST NOT include a - 'server identifier' in the DHCPREQUEST message. The client then - broadcasts the DHCPREQUEST on the local hardware broadcast address to - the 'DHCP server' UDP port. - - Once a DHCPACK message with an 'xid' field matching that in the - client's DHCPREQUEST message arrives from any server, the client is - initialized and moves to BOUND state. The client records the lease - expiration time as the sum of the time at which the DHCPREQUEST - message was sent and the duration of the lease from the DHCPACK - message. - -4.4.3 Initialization with an externally assigned network address - - The client sends a DHCPINFORM message. The client may request - specific configuration parameters by including the 'parameter request - list' option. The client generates and records a random transaction - identifier and inserts that identifier into the 'xid' field. The - client places its own network address in the 'ciaddr' field. The - client SHOULD NOT request lease time parameters. - - The client then unicasts the DHCPINFORM to the DHCP server if it - knows the server's address, otherwise it broadcasts the message to - the limited (all 1s) broadcast address. DHCPINFORM messages MUST be - directed to the 'DHCP server' UDP port. - - Once a DHCPACK message with an 'xid' field matching that in the - client's DHCPINFORM message arrives from any server, the client is - initialized. - - If the client does not receive a DHCPACK within a reasonable period - of time (60 seconds or 4 tries if using timeout suggested in section - 4.1), then it SHOULD display a message informing the user of the - problem, and then SHOULD begin network processing using suitable - defaults as per Appendix A. - -4.4.4 Use of broadcast and unicast - - The DHCP client broadcasts DHCPDISCOVER, DHCPREQUEST and DHCPINFORM - messages, unless the client knows the address of a DHCP server. The - client unicasts DHCPRELEASE messages to the server. Because the - client is declining the use of the IP address supplied by the server, - the client broadcasts DHCPDECLINE messages. - - When the DHCP client knows the address of a DHCP server, in either - INIT or REBOOTING state, the client may use that address in the - - - -Droms [Page 39] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - DHCPDISCOVER or DHCPREQUEST rather than the IP broadcast address. - The client may also use unicast to send DHCPINFORM messages to a - known DHCP server. If the client receives no response to DHCP - messages sent to the IP address of a known DHCP server, the DHCP - client reverts to using the IP broadcast address. - -4.4.5 Reacquisition and expiration - - The client maintains two times, T1 and T2, that specify the times at - which the client tries to extend its lease on its network address. - T1 is the time at which the client enters the RENEWING state and - attempts to contact the server that originally issued the client's - network address. T2 is the time at which the client enters the - REBINDING state and attempts to contact any server. T1 MUST be - earlier than T2, which, in turn, MUST be earlier than the time at - which the client's lease will expire. - - To avoid the need for synchronized clocks, T1 and T2 are expressed in - options as relative times [2]. - - At time T1 the client moves to RENEWING state and sends (via unicast) - a DHCPREQUEST message to the server to extend its lease. The client - sets the 'ciaddr' field in the DHCPREQUEST to its current network - address. The client records the local time at which the DHCPREQUEST - message is sent for computation of the lease expiration time. The - client MUST NOT include a 'server identifier' in the DHCPREQUEST - message. - - Any DHCPACK messages that arrive with an 'xid' that does not match - the 'xid' of the client's DHCPREQUEST message are silently discarded. - When the client receives a DHCPACK from the server, the client - computes the lease expiration time as the sum of the time at which - the client sent the DHCPREQUEST message and the duration of the lease - in the DHCPACK message. The client has successfully reacquired its - network address, returns to BOUND state and may continue network - processing. - - If no DHCPACK arrives before time T2, the client moves to REBINDING - state and sends (via broadcast) a DHCPREQUEST message to extend its - lease. The client sets the 'ciaddr' field in the DHCPREQUEST to its - current network address. The client MUST NOT include a 'server - identifier' in the DHCPREQUEST message. - - Times T1 and T2 are configurable by the server through options. T1 - defaults to (0.5 * duration_of_lease). T2 defaults to (0.875 * - duration_of_lease). Times T1 and T2 SHOULD be chosen with some - random "fuzz" around a fixed value, to avoid synchronization of - client reacquisition. - - - -Droms [Page 40] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - A client MAY choose to renew or extend its lease prior to T1. The - server MAY choose to extend the client's lease according to policy - set by the network administrator. The server SHOULD return T1 and - T2, and their values SHOULD be adjusted from their original values to - take account of the time remaining on the lease. - - In both RENEWING and REBINDING states, if the client receives no - response to its DHCPREQUEST message, the client SHOULD wait one-half - of the remaining time until T2 (in RENEWING state) and one-half of - the remaining lease time (in REBINDING state), down to a minimum of - 60 seconds, before retransmitting the DHCPREQUEST message. - - If the lease expires before the client receives a DHCPACK, the client - moves to INIT state, MUST immediately stop any other network - processing and requests network initialization parameters as if the - client were uninitialized. If the client then receives a DHCPACK - allocating that client its previous network address, the client - SHOULD continue network processing. If the client is given a new - network address, it MUST NOT continue using the previous network - address and SHOULD notify the local users of the problem. - -4.4.6 DHCPRELEASE - - If the client no longer requires use of its assigned network address - (e.g., the client is gracefully shut down), the client sends a - DHCPRELEASE message to the server. Note that the correct operation - of DHCP does not depend on the transmission of DHCPRELEASE messages. - -5. Acknowledgments - - The author thanks the many (and too numerous to mention!) members of - the DHC WG for their tireless and ongoing efforts in the development - of DHCP and this document. - - - The efforts of J Allard, Mike Carney, Dave Lapp, Fred Lien and John - Mendonca in organizing DHCP interoperability testing sessions are - gratefully acknowledged. - - The development of this document was supported in part by grants from - the Corporation for National Research Initiatives (CNRI), Bucknell - University and Sun Microsystems. - - - - - - - - - -Droms [Page 41] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - -6. References - - [1] Acetta, M., "Resource Location Protocol", RFC 887, CMU, December - 1983. - - [2] Alexander, S., and R. Droms, "DHCP Options and BOOTP Vendor - Extensions", RFC 1533, Lachman Technology, Inc., Bucknell - University, October 1993. - - [3] Braden, R., Editor, "Requirements for Internet Hosts -- - Communication Layers", STD 3, RFC 1122, USC/Information Sciences - Institute, October 1989. - - [4] Braden, R., Editor, "Requirements for Internet Hosts -- - Application and Support, STD 3, RFC 1123, USC/Information - Sciences Institute, October 1989. - - [5] Brownell, D, "Dynamic Reverse Address Resolution Protocol - (DRARP)", Work in Progress. - - [6] Comer, D., and R. Droms, "Uniform Access to Internet Directory - Services", Proc. of ACM SIGCOMM '90 (Special issue of Computer - Communications Review), 20(4):50--59, 1990. - - [7] Croft, B., and J. Gilmore, "Bootstrap Protocol (BOOTP)", RFC 951, - Stanford and SUN Microsystems, September 1985. - - [8] Deering, S., "ICMP Router Discovery Messages", RFC 1256, Xerox - PARC, September 1991. - - [9] Droms, D., "Interoperation between DHCP and BOOTP", RFC 1534, - Bucknell University, October 1993. - - [10] Finlayson, R., Mann, T., Mogul, J., and M. Theimer, "A Reverse - Address Resolution Protocol", RFC 903, Stanford, June 1984. - - [11] Gray C., and D. Cheriton, "Leases: An Efficient Fault-Tolerant - Mechanism for Distributed File Cache Consistency", In Proc. of - the Twelfth ACM Symposium on Operating Systems Design, 1989. - - [12] Mockapetris, P., "Domain Names -- Concepts and Facilities", STD - 13, RFC 1034, USC/Information Sciences Institute, November 1987. - - [13] Mockapetris, P., "Domain Names -- Implementation and - Specification", STD 13, RFC 1035, USC/Information Sciences - Institute, November 1987. - - - - - -Droms [Page 42] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - - [14] Mogul J., and S. Deering, "Path MTU Discovery", RFC 1191, - November 1990. - - [15] Morgan, R., "Dynamic IP Address Assignment for Ethernet Attached - Hosts", Work in Progress. - - [16] Postel, J., "Internet Control Message Protocol", STD 5, RFC 792, - USC/Information Sciences Institute, September 1981. - - [17] Reynolds, J., "BOOTP Vendor Information Extensions", RFC 1497, - USC/Information Sciences Institute, August 1993. - - [18] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1340, - USC/Information Sciences Institute, July 1992. - - [19] Jeffrey Schiller and Mark Rosenstein. A Protocol for the Dynamic - Assignment of IP Addresses for use on an Ethernet. (Available - from the Athena Project, MIT), 1989. - - [20] Sollins, K., "The TFTP Protocol (Revision 2)", RFC 783, NIC, - June 1981. - - [21] Wimer, W., "Clarifications and Extensions for the Bootstrap - Protocol", RFC 1542, Carnegie Mellon University, October 1993. - -7. Security Considerations - - DHCP is built directly on UDP and IP which are as yet inherently - insecure. Furthermore, DHCP is generally intended to make - maintenance of remote and/or diskless hosts easier. While perhaps - not impossible, configuring such hosts with passwords or keys may be - difficult and inconvenient. Therefore, DHCP in its current form is - quite insecure. - - Unauthorized DHCP servers may be easily set up. Such servers can - then send false and potentially disruptive information to clients - such as incorrect or duplicate IP addresses, incorrect routing - information (including spoof routers, etc.), incorrect domain - nameserver addresses (such as spoof nameservers), and so on. - Clearly, once this seed information is in place, an attacker can - further compromise affected systems. - - Malicious DHCP clients could masquerade as legitimate clients and - retrieve information intended for those legitimate clients. Where - dynamic allocation of resources is used, a malicious client could - claim all resources for itself, thereby denying resources to - legitimate clients. - - - - -Droms [Page 43] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - -8. Author's Address - - Ralph Droms - Computer Science Department - 323 Dana Engineering - Bucknell University - Lewisburg, PA 17837 - - Phone: (717) 524-1145 - EMail: droms@bucknell.edu - - This document will expire on May 30, 1996. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Droms [Page 44] - -DRAFT Dynamic Host Configuration Protocol December 1996 - - -A. Host Configuration Parameters - - IP-layer_parameters,_per_host:_ - - Be a router on/off HRC 3.1 - Non-local source routing on/off HRC 3.3.5 - Policy filters for - non-local source routing (list) HRC 3.3.5 - Maximum reassembly size integer HRC 3.3.2 - Default TTL integer HRC 3.2.1.7 - PMTU aging timeout integer MTU 6.6 - MTU plateau table (list) MTU 7 - IP-layer_parameters,_per_interface:_ - IP address (address) HRC 3.3.1.6 - Subnet mask (address mask) HRC 3.3.1.6 - MTU integer HRC 3.3.3 - All-subnets-MTU on/off HRC 3.3.3 - Broadcast address flavor 0x00000000/0xffffffff HRC 3.3.6 - Perform mask discovery on/off HRC 3.2.2.9 - Be a mask supplier on/off HRC 3.2.2.9 - Perform router discovery on/off RD 5.1 - Router solicitation address (address) RD 5.1 - Default routers, list of: - router address (address) HRC 3.3.1.6 - preference level integer HRC 3.3.1.6 - Static routes, list of: - destination (host/subnet/net) HRC 3.3.1.2 - destination mask (address mask) HRC 3.3.1.2 - type-of-service integer HRC 3.3.1.2 - first-hop router (address) HRC 3.3.1.2 - ignore redirects on/off HRC 3.3.1.2 - PMTU integer MTU 6.6 - perform PMTU discovery on/off MTU 6.6 - - Link-layer_parameters,_per_interface:_ - Trailers on/off HRC 2.3.1 - ARP cache timeout integer HRC 2.3.2.1 - Ethernet encapsulation (RFC 894/RFC 1042) HRC 2.3.3 - - TCP_parameters,_per_host:_ - TTL integer HRC 4.2.2.19 - Keep-alive interval integer HRC 4.2.3.6 - Keep-alive data size 0/1 HRC 4.2.3.6 - -Key: - - MTU = Path MTU Discovery (RFC 1191, Proposed Standard) - RD = Router Discovery (RFC 1256, Proposed Standard) - - - -Droms [Page 45] - diff --git a/doc/draft-ietf-dhc-dhcp-dns-02.txt b/doc/draft-ietf-dhc-dhcp-dns-02.txt deleted file mode 100644 index b85ed12e..00000000 --- a/doc/draft-ietf-dhc-dhcp-dns-02.txt +++ /dev/null @@ -1,356 +0,0 @@ - - -Network Working Group Yakov Rekhter -Internet Draft Cisco Systems -Expiration Date: April 1997 October 1996 - - - Interaction between DHCP and DNS - draft-ietf-dhc-dhcp-dns-02.txt - - -1. Status of this Memo - - 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 use 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). - - -2. Abstract - - DHCP provides a powerful mechanism for IP host autoconfiguration. - However, the autoconfiguration provided by DHCP does not include - updating DNS, and specifically updating the name to address and - address to name mappings maintained by DNS. - - This document specifies how DHCP clients and servers should use the - Dynamic DNS Updates mechanism to update the DNS name to address and - address to name mapping, so that the mappings for DHCP clients would - be consistent with the IP addresses that the clients acquire via - DHCP. - - - - - - - - - - - -Yakov Rekhter [Page 1] - - - - - -Internet Draft draft-ietf-dhc-dhcp-dns-02.txt October 1996 - - -3. Interaction between DHCP and DNS - - DNS [RFC1034, RFC1035] maintains (among other things) the information - about mapping between hosts' Fully Qualified Domain Names (FQDNs) - [RFC1594] and IP addresses assigned to the hosts. The information is - maintained in two types of Resource Records (RRs): A and PTR. The A - RR contains mapping from a FQDN to an IP address; the PTR RR contains - mapping from an IP address to a FQDN. - - DHCP [RFC1541] provides a mechanism by which a host (a DHCP client) - could acquire certain configuration information, and specifically its - IP address(es). However, DHCP does not provide any mechanisms to - update the DNS RRs that contain the information about mapping between - the host's FQDN and its IP address(es) (A and PTR RRs). Thus the - information maintained by DNS for a DHCP client may be incorrect - a - host (the client) could acquire its address by using DHCP, but the A - RR for the host's FQDN wouldn't reflect the address that the host - acquired, and the PTR RR for the acquired address wouldn't reflect - the host's FQDN. - - Dynamic DNS Updates [DynDNS] is a mechanism that enables DNS - information to be updated DNS over a network. - - The Dynamic DNS Update protocol can be used to maintain consistency - between the information stored in the A and PTR RRs and the actual - address assignment done via DHCP. When a host with a particular FQDN - acquires its IP address via DHCP, the A RR associated with the host's - FQDN would be updated (by using the Dynamic DNS Updates protocol) to - reflect the new address. Likewise, when an IP address gets assigned - to a host with a particular FQDN, the PTR RR associated with this - address would be updated (using the Dynamic DNS Updates protocol) to - reflect the new FQDN. - - -4. Models of operations - - When a DHCP client acquires a new address, both the A RR (for the - client's FQDN) and the PTR RR (for the acquired address) have to be - updated. Therefore, we have two separate Dynamic DNS Update - transactions. Acquiring an address via DHCP involves two entities: a - DHCP client and a DHCP server. In principle each of these entities - could perform none, one, or both of the transactions. However, upon - some introspection one could realize that not all permutations make - sense. This document covers the possible design permutations: - - (1) DHCP client updates the A RR, DHCP server updates the PTR - RR - - - - -Yakov Rekhter [Page 2] - - - - - -Internet Draft draft-ietf-dhc-dhcp-dns-02.txt October 1996 - - - (2) DHCP server updates both the A and the PTR RRs - - One could observe that the only difference between these two cases is - whether the FQDN to IP address mapping is updated by a DHCP client or - by a DHCP server. The IP address to FQDN mapping is updated by a DHCP - server in both cases. - - -4.1. Client FQDN Option - - To update the IP address to FQDN mapping a DHCP server needs to know - FQDN of the client to which the server leases the address. To allow - the client to convey its FQDN to the server this document defines a - new option, called "Client FQDN". - - The code for this option is 81. Its minimum length is 4. - - - - Code Len Flags RCODE1 RCODE2 Domain Name - +------+------+------+------+------+------+-- - | TBD | n | 0/1 | | | ... - +------+------+------+------+------+------+-- - - - - The Flags field allows a DHCP client to indicate to a DHCP server - whether the client wants the server to be responsible for updating - the FQDN to IP address mapping (if Flags is set to 1), or whether the - client wants to take this responsibility (if Flags is set to 0). - - The RCODE1 and RCODE2 fields are used by a DHCP server to indicate to - a DHCP client the Response Code from Dynamic DNS Updates. - - The Domain Name part of the option carries FQDN of a client. - - - -4.2. DHCP Client behavior - - If a client wants to be responsible for updating the FQDN to IP - address mapping for the FQDN and address(es) used by the client, then - the client shall include the Client FQDN option in the DHCPREQUEST - message originated by the client. The Flags field in the option shall - be set to 0. Once the client's DHCP configuration is completed (the - client receives a DHCPACK message, and successfully completed a final - check on the parameters passed in the message), the client shall - originate an update for the A RR (associated with the client's FQDN). - - - -Yakov Rekhter [Page 3] - - - - - -Internet Draft draft-ietf-dhc-dhcp-dns-02.txt October 1996 - - - The update shall be originated following the procedures described in - [DynDNS]. - - - If a client does not want to be responsible for updating the FQDN to - IP address mapping for the FQDN and address(es) used by the client, - then the client shall include the Client FQDN option in the - DHCPREQUEST message originated by the client. The Flags field in the - option shall be set to 1. - - - A client should set the RCODE1 and RCODE2 fields in the Client FQDN - option to 0 when sending the option. - - Whether the client wants to be responsible for updating the FQDN to - IP address mapping, or whether the client wants to delegate this - responsibility to a server is a local to the client matter. The - choice between the two alternatives may be based on a particular - security model that is used with the Dynamic DNS Update protocol - (e.g., only a client may have sufficient credentials to perform - updates to the FQDN to IP address mapping for its FQDN). - - If a client releases its address lease prior to the lease expiration - time, and the client is responsible for updating its A RR(s), the - client should delete the A RR (following the procedures described in - [DynDNS]) associated with the leased address before sending DHCP - RELEASE message. - - -4.3. DHCP Server behavior - - When a server receives a DHCPREQUEST message from a client, if the - message contains the Client FQDN option, and the server replies to - the message with a DHCPACK message, the server shall originate an - update for the PTR RR (associated with the address leased to the - client). The server shall originate the update before the server - sends the DHCPACK message to the client. The update shall be - originated following the procedures described in [DynDNS]. The RCODE - from the update [DynDNS] should be carried to the client in the - RCODE1 field of the Client FQDN option in the DHCPACK message. The - RCODE2 field should be set to 0. - - In addition, if the Client FQDN option carried in the DHCPREQUEST - message has its Flags field set to 1, then the server shall originate - an update for the A RR (associated with the FQDN carried in the - option). The server shall originate the update before the server - sends the DHCPACK message to the client. The update shall be - originated following the procedures described in [DynDNS]. The RCODE - - - -Yakov Rekhter [Page 4] - - - - - -Internet Draft draft-ietf-dhc-dhcp-dns-02.txt October 1996 - - - from the update [DynDNS] should be carried to the client in the - RCODE2 field of the Client FQDN option in the DHCPACK message. - - When a server receives a DHCPREQUEST message from a client, and the - message contains the Client FQDN option, the server shall ignore the - value carried in the RCODE1 and RCODE2 fields of the option. - - When a DHCP server sends the Client FQDN option to a client in the - DHCPACK message, the server should copy the Flags and the Domain Name - fields from the Client FQDN option that the client sent to the server - in the DHCPREQUEST message. - - - If a server originates updates for both the A and PTR RRs, then the - order in which the updates are generated is not significant. - - - If a server detects that a lease on an address that the server leases - to a client expires, the server should delete the PTR RR associated - with the address. In addition, if the client authorized the server to - update its A RR, the server should also delete the A RR. The deletion - should follow the procedures described in [DynDNS]. - - If a server terminates a lease on an address prior to the lease - expiration time, the server should delete the PTR RR associated with - the address. In addition, if the client (that leased the address) - authorized the server to update its A RR, the server should also - delete the A RR. The deletion should follow the procedures described - in [DynDNS]. - - -5. Updating other RRs - - The procedures described in this document cover updates only to the A - and PTR RRs. Updating other types of RRs is outside the scope of this - document. - - - - - - - - - - - - - - - -Yakov Rekhter [Page 5] - - - - - -Internet Draft draft-ietf-dhc-dhcp-dns-02.txt October 1996 - - -6. Security Considerations - - Security issues are not discussed in this document. - - -7. References - - [RFC1034] P. Mockapetris, "Domain names - concepts and facilities", - RFC1034, 11/01/1987 - - [RFC1035] P. Mockapetris, "Domain names - implementation and - specification", RFC1035, 11/01/1987 - - [RFC1541] R. Droms, "Dynamic Host Configuration Protocol", RFC1541, - 10/27/1993 - - [RFC1594] A. Marine, J. Reynolds, G. Malkin, "FYI on Questions and - Answer Answers to Commonly asked ``New Internet User'' Questions", - RFC1594, 03/11/1994 - - [DynDNS] P. Vixie, S. Thomson, Y. Rekhter, J. Bound, "Dynamic Updates - in the Domain Name System (DNS UPDATE)", draft-ietf-dnsind-dynDNS- - 09.txt - - - -8. Acknowledgements - - Many thanks to Mark Beyer (Tandem), Jim Bound (DEC), Ralph Droms - (Bucknell University), Edie Gunter (IBM), Michael Lewis (Chevron), - and Michael Patton (BBN) for their review and comments. - - -9. Author Information - - - Yakov Rekhter - cisco Systems, Inc. - 170 Tasman Dr. - San Jose, CA 95134 - Phone: (914) 528-0090 - email: yakov@cisco.com - - - - - - - - - -Yakov Rekhter [Page 6] - - diff --git a/doc/draft-ietf-dhc-dhcp-dns-12.txt b/doc/draft-ietf-dhc-dhcp-dns-12.txt new file mode 100644 index 00000000..c97ba625 --- /dev/null +++ b/doc/draft-ietf-dhc-dhcp-dns-12.txt @@ -0,0 +1,1072 @@ + + +DHC Working Group M. Stapp +Internet-Draft Y. Rekhter +Expires: September 2000 Cisco Systems, Inc. + March 10, 2000 + + + Interaction between DHCP and DNS + <draft-ietf-dhc-dhcp-dns-12.txt> + +Status of this Memo + + This document is an Internet-Draft and is in full conformance with + all provisions of Section 10 of RFC2026. + + Internet-Drafts are working documents of the Internet Engineering + Task Force (IETF), its areas, and its working groups. Note that + other groups may also distribute working documents as + Internet-Drafts. + + Internet-Drafts are draft documents valid for a maximum of six + months and may be updated, replaced, or obsoleted by other documents + at any time. It is inappropriate to use Internet-Drafts as reference + material or to cite them other than as "work in progress." + + To view the entire list of Internet-Draft Shadow Directories, see + http://www.ietf.org/shadow.html. + + This Internet-Draft will expire on September 2000. + +Copyright Notice + + Copyright (C) The Internet Society (2000). All Rights Reserved. + +Abstract + + DHCP provides a powerful mechanism for IP host configuration. + However, the configuration capability provided by DHCP does not + include updating DNS, and specifically updating the name to address + and address to name mappings maintained in the DNS. + + This document specifies how DHCP clients and servers should use the + Dynamic DNS Updates mechanism in RFC2136[5] to update the DNS name + to address and address to name mappings so that the mappings for + DHCP clients will be consistent with the IP addresses that the + clients acquire via DHCP. + + + + + + + +Stapp & Rekhter Expires September 2000 [Page 1] + +Internet-Draft Interaction between DHCP and DNS March 2000 + + +Table of Contents + + 1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . 3 + 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 + 3. Models of Operation . . . . . . . . . . . . . . . . . . . . 3 + 4. Issues with DDNS in DHCP Environments . . . . . . . . . . . 4 + 4.1 Name Collisions . . . . . . . . . . . . . . . . . . . . . . 5 + 4.2 Multiple DHCP servers . . . . . . . . . . . . . . . . . . . 6 + 4.3 Use of the DHCID RR . . . . . . . . . . . . . . . . . . . . 6 + 4.3.1 Format of the DHCID RRDATA . . . . . . . . . . . . . . . . . 6 + 4.4 DNS RR TTLs . . . . . . . . . . . . . . . . . . . . . . . . 8 + 5. Client FQDN Option . . . . . . . . . . . . . . . . . . . . . 8 + 5.1 The Flags Field . . . . . . . . . . . . . . . . . . . . . . 9 + 5.2 The RCODE Fields . . . . . . . . . . . . . . . . . . . . . . 10 + 5.3 The Domain Name Field . . . . . . . . . . . . . . . . . . . 10 + 6. DHCP Client behavior . . . . . . . . . . . . . . . . . . . . 10 + 7. DHCP Server behavior . . . . . . . . . . . . . . . . . . . . 12 + 8. Procedures for performing DNS updates . . . . . . . . . . . 14 + 8.1 Adding A RRs to DNS . . . . . . . . . . . . . . . . . . . . 14 + 8.2 Adding PTR RR Entries to DNS . . . . . . . . . . . . . . . . 15 + 8.3 Removing Entries from DNS . . . . . . . . . . . . . . . . . 15 + 8.4 Updating other RRs . . . . . . . . . . . . . . . . . . . . . 16 + 9. Security Considerations . . . . . . . . . . . . . . . . . . 16 + 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17 + References . . . . . . . . . . . . . . . . . . . . . . . . . 17 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 18 + Full Copyright Statement . . . . . . . . . . . . . . . . . . 19 + + + + + + + + + + + + + + + + + + + + + + + + +Stapp & Rekhter Expires September 2000 [Page 2] + +Internet-Draft Interaction between DHCP and DNS March 2000 + + +1. Terminology + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in RFC 2119[6]. + +2. Introduction + + DNS (RFC1034[1], RFC1035[2]) maintains (among other things) the + information about mapping between hosts' Fully Qualified Domain + Names (FQDNs) RFC1594[4] and IP addresses assigned to the hosts. The + information is maintained in two types of Resource Records (RRs): A + and PTR. The A RR contains mapping from a FQDN to an IP address; the + PTR RR contains mapping from an IP address to a FQDN. The Dynamic + DNS Updates specification (RFC2136[5]) describes a mechanism that + enables DNS information to be updated over a network. + + DHCP RFC2131[3] provides a mechanism by which a host (a DHCP client) + can acquire certain configuration information, along with its IP + address(es). However, DHCP does not provide any mechanisms to update + the DNS RRs that contain the information about mapping between the + host's FQDN and its IP address(es) (A and PTR RRs). Thus the + information maintained by DNS for a DHCP client may be incorrect - a + host (the client) could acquire its address by using DHCP, but the A + RR for the host's FQDN wouldn't reflect the address that the host + acquired, and the PTR RR for the acquired address wouldn't reflect + the host's FQDN. + + The Dynamic DNS Update protocol can be used to maintain consistency + between the information stored in the A and PTR RRs and the actual + address assignment done via DHCP. When a host with a particular FQDN + acquires its IP address via DHCP, the A RR associated with the + host's FQDN would be updated (by using the Dynamic DNS Updates + protocol) to reflect the new address. Likewise, when an IP address + is assigned to a host with a particular FQDN, the PTR RR associated + with this address would be updated (using the Dynamic DNS Updates + protocol) to reflect the new FQDN. + + Although this document refers to the A and PTR DNS record types and + to DHCP assignment of IPv4 addresses, the same procedures and + requirements apply for updates to the analogous RR types that are + used when clients are assigned IPv6 addresses via DHCPv6. + +3. Models of Operation + + When a DHCP client acquires a new address, a site's administrator + may desire that one or both of the A RR for the client's FQDN and + the PTR RR for the acquired address be updated. Therefore, two + separate Dynamic DNS Update transactions occur. Acquiring an address + + +Stapp & Rekhter Expires September 2000 [Page 3] + +Internet-Draft Interaction between DHCP and DNS March 2000 + + + via DHCP involves two entities: a DHCP client and a DHCP server. In + principle each of these entities could perform none, one, or both of + the transactions. However, in practice not all permutations make + sense. This document covers these possible design permutations: + + 1. DHCP client updates the A RR, DHCP server updates the PTR RR + 2. DHCP server updates both the A and the PTR RRs + + The only difference between these two cases is whether the FQDN to + IP address mapping is updated by a DHCP client or by a DHCP server. + The IP address to FQDN mapping is updated by a DHCP server in both + cases. + + The reason these two are important, while others are unlikely, has + to do with authority over the respective DNS domain names. A DHCP + client may be given authority over mapping its own A RRs, or that + authority may be restricted to a server to prevent the client from + listing arbitrary addresses or associating its address with + arbitrary domain names. In all cases, the only reasonable place for + the authority over the PTR RRs associated with the address is in the + DHCP server that allocates the address. + + In any case, whether a site permits all, some, or no DHCP servers + and clients to perform DNS updates into the zones which it controls + is entirely a matter of local administrative policy. This document + does not require any specific administrative policy, and does not + propose one. The range of possible policies is very broad, from + sites where only the DHCP servers have been given credentials that + the DNS servers will accept, to sites where each individual DHCP + client has been configured with credentials which allow the client + to modify its own domain name. Compliant implementations MAY support + some or all of these possibilities. Furthermore, this specification + applies only to DHCP client and server processes: it does not apply + to other processes which initiate dynamic DNS updates. + + This document describes a new DHCP option which a client can use to + convey all or part of its domain name to a DHCP server. + Site-specific policy determines whether DHCP servers use the names + that clients offer or not, and what DHCP servers may do in cases + where clients do not supply domain names. + +4. Issues with DDNS in DHCP Environments + + There are two DNS update situations that require special + consideration in DHCP environments: cases where more than one DHCP + client has been configured with the same FQDN, and cases where more + than one DHCP server has been given authority to perform DNS updates + in a zone. In these cases, it is possible for DNS records to be + modified in inconsistent ways unless the updaters have a mechanism + that allows them to detect anomolous situations. If DNS updaters can + + +Stapp & Rekhter Expires September 2000 [Page 4] + +Internet-Draft Interaction between DHCP and DNS March 2000 + + + detect these situations, site administrators can configure the + updaters' behavior so that the site's policies can be enforced. We + use the term "Name Collisions" to refer to cases where more than one + DHCP client has been associated with a single FQDN. This + specification describes a mechanism designed to allow updaters to + detect these situations, and requires that DHCP implementations use + this mechanism by default. + +4.1 Name Collisions + + How can the entity updating an A RR (either the DHCP client or DHCP + server) detect that a domain name has an A RR which is already in + use by a different DHCP client? Similarly, should a DHCP client or + server update a domain name which has an A RR that has been + configured by an administrator? In either of these cases, the + domain name in question would either have an additional A RR, or + would have its original A RR replaced by the new record. Either of + these effects may be considered undesirable by some sites. Different + authority and credential models have different levels of exposure to + name collisions. + + 1. Client updates A RR, uses Secure DNS Update with credentials + that are associated with the client's FQDN, and exclusive to the + client. Name collisions in this scenario are unlikely (though + not impossible), since the client has received credentials + specific to the name it desires to use. This implies that the + name has already been allocated (through some implementation- or + organization-specific procedure) to that client. + + 2. Client updates A RR, uses Secure DNS Update with credentials + that are valid for any name in the zone. Name collisions in this + scenario are possible, since the credentials necessary for the + client to update DNS are not necessarily name-specific. Thus, + for the client to be attempting to update a unique name requires + the existence of some administrative procedure to ensure client + configuration with unique names. + + 3. Server updates the A RR, uses a name for the client which is + known to the server. Name collisions in this scenario are likely + unless prevented by the server's name configuration procedures. + See Section 9 for security issues with this form of deployment. + + 4. Server updates the A RR, uses a name supplied by the client. + Name collisions in this scenario are highly likely, even with + administrative procedures designed to prevent them. (This + scenario is a popular one in real-world deployments in many + types of organizations.) See Section 9 for security issues with + this type of deployment. + + + Scenarios 2, 3, and 4 rely on administrative procedures to ensure + name uniqueness for DNS updates, and these procedures may break + down. Experience has shown that, in fact, these procedures will + break down at least occasionally. The question is what to do when + + +Stapp & Rekhter Expires September 2000 [Page 5] + +Internet-Draft Interaction between DHCP and DNS March 2000 + + + these procedures break down or, for example in scenario #4, may not + even exist. + + In all cases of name collisions, the desire is to offer two modes of + operation to the administrator of the combined DHCP-DNS capability: + first-update-wins (i.e., the first updating entity gets the name) or + most-recent-update-wins (i.e., the last updating entity for a name + gets the name). + +4.2 Multiple DHCP servers + + If multiple DHCP servers are able to update the same DNS zones, or + if DHCP servers are performing A RR updates on behalf of DHCP + clients, and more than one DHCP server may be able to serve + addresses to the same DHCP clients, the DHCP servers should be able + to provide reasonable and consistent DNS name update behavior for + DHCP clients. + +4.3 Use of the DHCID RR + + A solution to both of these problems is for the updating entities + (both DHCP clients and DHCP servers) to be able to detect that + another entity has been associated with a DNS name, and to offer + administrators the opportunity to configure update behavior. + + Specifically, a DHCID RR, described in DHCID RR[12] is used to + associate client identification information with a DNS name and the + A RR associated with that name. When either a client or server adds + an A RR for a client, it also adds a DHCID RR which specifies a + unique client identity (based on a "client specifier" created from + the client's client-id or MAC address). In this model, only one A + RR is associated with a given DNS name at a time. + + By associating this ownership information with each A RR, + cooperating DNS updating entities may determine whether their client + is the first or last updater of the name (and implement the + appropriately configured administrative policy), and DHCP clients + which currently have a host name may move from one DHCP server to + another without losing their DNS name. + + The specific algorithms utilizing the DHCID RR to signal client + ownership are explained below. The algorithms only work in the case + where the updating entities all cooperate -- this approach is + advisory only and is not substitute for DNS security, nor is it + replaced by DNS security. + +4.3.1 Format of the DHCID RRDATA + + The DHCID RR used to hold the DHCP client's identity is formatted as + + +Stapp & Rekhter Expires September 2000 [Page 6] + +Internet-Draft Interaction between DHCP and DNS March 2000 + + + follows: + + The name of the DHCID RR is the name of the A or PTR RR which refers + to the DHCP client. + + The RDATA section of a DHCID RR in transmission contains RDLENGTH + bytes of binary data. From the perspective of DHCP clients and + servers, the DHC resource record consists of a 16-bit identifier + type, followed by one or more bytes representing the actual + identifier. There are two possible forms for a DHCID RR - one that + is used when the client's link-layer address is being used to + identify it, and one that is used when some DHCP option that the + DHCP client has sent is being used to identify it. + + + DISCUSSION: + Implementors should note that the actual identifying data is + never placed into the DNS directly. Instead, the client-identity + data is used as the input into a one-way hash algorithm, and the + output of that hash is then used as DNS RRDATA. This has been + specified in order to avoid placing data about DHCP clients that + some sites might consider sensitive into the DNS. + + When the updater is using the client's link-layer address, the first + two bytes of the DHCID RRDATA MUST be zero. To generate the rest of + the resource record, the updater MUST compute a one-way hash using + the MD5[13] algorithm across a buffer containing the client's + network hardware type and link-layer address. Specifically, the + first byte of the buffer contains the network hardware type as it + appears in the DHCP htype field of the client's DHCPREQUEST message. + All of the significant bytes of the chaddr field in the client's + DHCPREQUEST message follow, in the same order in which the bytes + appear in the DHCPREQUEST message. The number of significant bytes + in the chaddr field is specified in the hlen field of the + DHCPREQUEST message. + + When the updater is using a DHCP option sent by the client in its + DHCPREQUEST message, the first two bytes of the DHCID RR MUST be the + option code of that option, in network byte order. For example, if + the DHCP client identifier option is being used, the first byte of + the DHCID RR should be zero, and the second byte should be 61 + decimal. The rest of the DHCID RR MUST contain the results of + computing a one-way hash across the payload of the option being + used, using the MD5 algorithm. The payload of a DHCP option consists + of the bytes of the option following the option code and length. + + In order for independent DHCP implementations to be able to use the + DHCID RR as a prerequisite in dynamic DNS updates, each updater must + be able to reliably choose the same identifier that any other would + choose. To make this possible, we specify a prioritization which + + +Stapp & Rekhter Expires September 2000 [Page 7] + +Internet-Draft Interaction between DHCP and DNS March 2000 + + + will ensure that for any given DHCP client request, any updater will + select the same client-identity data. All updaters MUST use this + order of prioritization by default, but all implementations SHOULD + be configurable to use a different prioritization if so desired by + the site administrators. Because of the possibility of future + changes in the DHCP protocol, implementors SHOULD check for updated + versions of this draft when implementing new DHCP clients and + servers which can perform DDNS updates, and also when releasing new + versions of existing clients and servers. + + DHCP clients and servers should use the following forms of client + identification, starting with the most preferable, and finishing + with the least preferable. If the client does not send any of these + forms of identification, the DHCP/DDNS interaction is not defined by + this specification. The most preferable form of identification is + the Globally Unique Identifier Option [TBD]. Next is the DHCP + Client Identifier option. Last is the client's link-layer address, + as conveyed in its DHCPREQUEST message. Implementors should note + that the link-layer address cannot be used if there are no + significant bytes in the chaddr field of the DHCP client's request, + because this does not constitute a unique identifier. + +4.4 DNS RR TTLs + + RRs associated with DHCP clients may be more volatile than + statically configured RRs. DHCP clients and servers which perform + dynamic updates should attempt to specify resource record TTLs which + reflect this volatility, in order to minimize the possibility that + there will be stale records in resolvers' caches. A reasonable basis + for RR TTLs is the lease duration itself: TTLs of 1/2 or 1/3 the + expected lease duration might be reasonable defaults. Because + configured DHCP lease times vary widely from site to site, it may + also be desirable to establish a fixed TTL ceiling. DHCP clients and + servers MAY allow administrators to configure the TTLs they will + supply, possibly as a fraction of the actual lease time, or as a + fixed value. + +5. Client FQDN Option + + To update the IP address to FQDN mapping a DHCP server needs to know + the FQDN of the client to which the server leases the address. To + allow the client to convey its FQDN to the server this document + defines a new DHCP option, called "Client FQDN". The FQDN Option + also contains Flags and RCode fields which DHCP servers can use to + convey information about DNS updates to clients. + + Clients MAY send the FQDN option, setting appropriate Flags values, + in both their DISCOVER and REQUEST messages. If a client sends the + FQDN option in its DISCOVER message, it MUST send the option in + + +Stapp & Rekhter Expires September 2000 [Page 8] + +Internet-Draft Interaction between DHCP and DNS March 2000 + + + subsequent REQUEST messages. + + The code for this option is 81. Its minimum length is 4. + + + Code Len Flags RCODE1 RCODE2 Domain Name + +------+------+------+------+------+------+-- + | 81 | n | | | | ... + +------+------+------+------+------+------+-- + + +5.1 The Flags Field + + + 0 1 2 3 4 5 6 7 + +-+-+-+-+-+-+-+-+ + | MBZ |E|O|S| + +-+-+-+-+-+-+-+-+ + + + When a DHCP client sends the FQDN option in its DHCPDISCOVER and/or + DHCPREQUEST messages, it sets the right-most bit (labelled "S") to + indicate that it will not perform any Dynamic DNS updates, and that + it expects the DHCP server to perform any FQDN-to-IP (the A RR) DNS + update on its behalf. If this bit is clear, the client indicates + that it intends to maintain its own FQDN-to-IP mapping update. + + If a DHCP server intends to take responsibility for the A RR update + whether or not the client sending the FQDN option has set the "S" + bit, it sets both the "O" bit and the "S" bit, and sends the FQDN + option in its DHCPOFFER and/or DHCPACK messages. + + The data in the Domain Name field may appear in one of two formats: + ASCII, or DNS-style binary encoding (without compression, of + course), as described in RFC1035[2]. A client which sends the FQDN + option MUST set the "E" bit to indicate that the data in the Domain + Name field is DNS binary encoded. If a server receives an FQDN + option from a client, and intends to include an FQDN option in its + reply, it MUST use the same encoding that the client used. The DNS + encoding is recommended. The use of ASCII-encoded domain-names is + fragile, and the use of ASCII encoding in this option should be + considered deprecated. + + The remaining bits in the Flags field are reserved for future + assignment. DHCP clients and servers which send the FQDN option MUST + set the MBZ bits to 0, and they MUST ignore values in the part of + the field labelled "MBZ". + + + + +Stapp & Rekhter Expires September 2000 [Page 9] + +Internet-Draft Interaction between DHCP and DNS March 2000 + + +5.2 The RCODE Fields + + The RCODE1 and RCODE2 fields are used by a DHCP server to indicate + to a DHCP client the Response Code from any A or PTR RR Dynamic DNS + Updates it has performed. The server may also use these fields to + indicate whether it has attempted such an update before sending the + DHCPACK message. Each of these fields is one byte long. + + Implementors should note that EDNS0 describes a mechanism for + extending the length of a DNS RCODE to 12 bits. EDNS0 is specified + in RFC2671[8]. Only the least-significant 8 bits of the RCODE from a + Dynamic DNS Update will be carried in the Client FQDN DHCP Option. + This provides enough number space to accomodate the RCODEs defined + in the Dynamic DNS Update specification. + +5.3 The Domain Name Field + + The Domain Name part of the option carries all or part of the FQDN + of a DHCP client. A client may be configured with a fully-qualified + domain name, or with a partial name that is not fully-qualified. If + a client knows only part of its name, it MAY send a single label, + indicating that it knows part of the name but does not necessarily + know the zone in which the name is to be embedded. The data in the + Domain Name field may appear in one of two formats: ASCII (with no + terminating NULL), or DNS encoding as specified in RFC1035[2]. If + the DHCP client wishes to use DNS encoding, it MUST set the + third-from-rightmost bit in the Flags field (the "E" bit); if it + uses ASCII encoding, it MUST clear the "E" bit. + + A DHCP client that can only send a single label using ASCII encoding + includes a series of ASCII characters in the Domain Name field, + excluding the "." (dot) character. The client SHOULD follow the + character-set recommendations of RFC1034[1] and RFC1035[2]. A client + using DNS binary encoding which wants to suggest part of its FQDN + MAY send a non-terminal sequence of labels in the Domain Name part + of the option. + +6. DHCP Client behavior + + The following describes the behavior of a DHCP client that + implements the Client FQDN option. + + If a client that owns/maintains its own FQDN wants to be responsible + for updating the FQDN to IP address mapping for the FQDN and + address(es) used by the client, then the client MUST include the + Client FQDN option in the DHCPREQUEST message originated by the + client. A DHCP client MAY choose to include the Client FQDN option + in its DISCOVER messages as well as its REQUEST messages. The + rightmost ("S") bit in the Flags field in the option MUST be set to + + +Stapp & Rekhter Expires September 2000 [Page 10] + +Internet-Draft Interaction between DHCP and DNS March 2000 + + + 0. Once the client's DHCP configuration is completed (the client + receives a DHCPACK message, and successfully completes a final check + on the parameters passed in the message), the client MAY originate + an update for the A RR (associated with the client's FQDN). The + update MUST be originated following the procedures described in + RFC2136[5] and Section 8. If the DHCP server from which the client + is requesting a lease includes the FQDN option in its ACK message, + and if the server sets both the "S" and the "O" bits (the two + rightmost bits) in the option's flags field, the DHCP client MUST + NOT initiate an update for the name in the Domain Name field. + + A client can choose to delegate the responsibility for updating the + FQDN to IP address mapping for the FQDN and address(es) used by the + client to the server. In order to inform the server of this choice, + the client SHOULD include the Client FQDN option in its DHCPREQUEST + message. The rightmost (or "S") bit in the Flags field in the option + MUST be set to 1. A client which delegates this responsibility MUST + NOT attempt to perform a Dynamic DNS update for the name in the + Domain Name field of the FQDN option. The client MAY supply an FQDN + in the Client FQDN option, or it MAY supply a single label (the + most-specific label), or it MAY leave that field empty as a signal + to the server to generate an FQDN for the client in any manner the + server chooses. + + Since there is a possibility that the DHCP server may be configured + to complete or replace a domain name that the client was configured + to send, the client might find it useful to send the FQDN option in + its DISCOVER messages. If the DHCP server returns different Domain + Name data in its OFFER message, the client could use that data in + performing its own eventual A RR update, or in forming the FQDN + option that it sends in its REQUEST message. There is no requirement + that the client send identical FQDN option data in its DISCOVER and + REQUEST messages. In particular, if a client has sent the FQDN + option to its server, and the configuration of the client changes so + that its notion of its domain name changes, it MAY send the new name + data in an FQDN option when it communicates with the server again. + This may allow the DHCP server to update the name associated with + the PTR record, and, if the server updated the A record representing + the client, to delete that record and attempt an update for the + client's current domain name. + + A client that delegates the responsibility for updating the FQDN to + IP address mapping to a server might not receive any indication + (either positive or negative) from the server whether the server was + able to perform the update. In this case the client MAY use a DNS + query to check whether the mapping is updated. + + A client MUST set the RCODE1 and RCODE2 fields in the Client FQDN + option to 0 when sending the option. + + +Stapp & Rekhter Expires September 2000 [Page 11] + +Internet-Draft Interaction between DHCP and DNS March 2000 + + + If a client releases its lease prior to the lease expiration time + and the client is responsible for updating its A RR, the client + SHOULD delete the A RR (following the procedures described in + Section 8) associated with the leased address before sending a DHCP + RELEASE message. Similarly, if a client was responsible for updating + its A RR, but is unable to renew its lease, the client SHOULD + attempt to delete the A RR before its lease expires. A DHCP client + which has not been able to delete an A RR which it added (because it + has lost the use of its DHCP IP address) should attempt to notify + its administrator. + +7. DHCP Server behavior + + When a server receives a DHCPREQUEST message from a client, if the + message contains the Client FQDN option, and the server replies to + the message with a DHCPACK message, the server may be configured to + originate an update for the PTR RR (associated with the address + leased to the client). Any such update MUST be originated following + the procedures described in Section 8. The server MAY complete the + update before the server sends the DHCPACK message to the client. In + this case the RCODE from the update MUST be carried to the client in + the RCODE1 field of the Client FQDN option in the DHCPACK message. + Alternatively, the server MAY send the DHCPACK message to the client + without waiting for the update to be completed. In this case the + RCODE1 field of the Client FQDN option in the DHCPACK message MUST + be set to 255. The choice between the two alternatives is entirely + determined by the configuration of the DHCP server. Servers SHOULD + support both configuration options. + + When a server receives a DHCPREQUEST message containing the Client + FQDN option, the server MUST ignore the values carried in the RCODE1 + and RCODE2 fields of the option. + + In addition, if the Client FQDN option carried in the DHCPREQUEST + message has the "S" bit in its Flags field set, then the server MAY + originate an update for the A RR (associated with the FQDN carried + in the option) if it is configured to do so by the site's + administrator, and if it has the necessary credentials. The server + MAY be configured to use the name supplied in the client's FQDN + option, or it MAY be configured to modify the supplied name, or + substitute a different name. + + Any such update MUST be originated following the procedures + described in Section 8. The server MAY originate the update before + the server sends the DHCPACK message to the client. In this case the + RCODE from the update [RFC2136] MUST be carried to the client in the + RCODE2 field of the Client FQDN option in the DHCPACK message. + Alternatively the server MAY send the DHCPACK message to the client + without waiting for the update to be completed. In this case the + + +Stapp & Rekhter Expires September 2000 [Page 12] + +Internet-Draft Interaction between DHCP and DNS March 2000 + + + RCODE2 field of the Client FQDN option in the DHCPACK message MUST + be set to 255. The choice between the two alternatives is entirely + up to the DHCP server. In either case, if the server intends to + perform the DNS update and the client's REQUEST message included the + FQDN option, the server SHOULD include the FQDN option in its ACK + message, and MUST set the "S" bit in the option's Flags field. + + Even if the Client FQDN option carried in the DHCPREQUEST message + has the "S" bit in its Flags field clear (indicating that the client + wants to update the A RR), the server MAY be configured by the local + administrator to update the A RR on the client's behalf. A server + which is configured to override the client's preference SHOULD + include an FQDN option in its ACK message, and MUST set both the "O" + and "S" bits in the FQDN option's Flags field. The update MUST be + originated following the procedures described in Section 8. The + server MAY originate the update before the server sends the DHCPACK + message to the client. In this case the RCODE from the update + [RFC2136] MUST be carried to the client in the RCODE2 field of the + Client FQDN option in the DHCPACK message. Alternatively, the server + MAY send the DHCPACK message to the client without waiting for the + update to be completed. In this case the RCODE2 field of the Client + FQDN option in the DHCPACK message MUST be set to 255. Whether the + DNS update occurs before or after the DHCPACK is sent is entirely up + to the DHCP server's configuration. + + When a DHCP server sends the Client FQDN option to a client in the + DHCPACK message, the DHCP server SHOULD send its notion of the + complete FQDN for the client in the Domain Name field. The server + MAY simply copy the Domain Name field from the Client FQDN option + that the client sent to the server in the DHCPREQUEST message. The + DHCP server MAY be configured to complete or modify the domain name + which a client sent, or it MAY be configured to substitute a + different name. If the server initiates a DDNS update which is not + complete until after the server has replied to the DHCP client, the + server's The server MUST use the same encoding format (ASCII or DNS + binary encoding) that the client used in the FQDN option in its + DHCPREQUEST, and MUST set the "E" bit in the option's Flags field + accordingly. + + If a client's DHCPREQUEST message doesn't carry the Client FQDN + option (e.g., the client doesn't implement the Client FQDN option), + the server MAY be configured to update either or both of the A and + PTR RRs. The updates MUST be originated following the procedures + described in Section 8. + + If a server detects that a lease on an address that the server + leases to a client has expired, the server SHOULD delete any PTR RR + which it added via dynamic update. In addition, if the server added + an A RR on the client's behalf, the server SHOULD also delete the A + + +Stapp & Rekhter Expires September 2000 [Page 13] + +Internet-Draft Interaction between DHCP and DNS March 2000 + + + RR. The deletion MUST follow the procedures described in Section 8. + + If a server terminates a lease on an address prior to the lease's + expiration time, for instance by sending a DHCPNAK to a client, the + server SHOULD delete any PTR RR which it associated with the address + via DNS Dynamic Update. In addition, if the server took + responsibility for an A RR, the server SHOULD also delete that A RR. + The deletion MUST follow the procedures described in Section 8. + +8. Procedures for performing DNS updates + +8.1 Adding A RRs to DNS + + When a DHCP client or server intends to update an A RR, it first + prepares a DNS UPDATE query which includes as a prerequisite the + assertion that the name does not exist. The update section of the + query attempts to add the new name and its IP address mapping (an A + RR), and the DHCID RR with its unique client-identity. + + If this update operation succeeds, the updater can conclude that it + has added a new name whose only RRs are the A and DHCID RR records. + The A RR update is now complete (and a client updater is finished, + while a server might proceed to perform a PTR RR update). + + If the first update operation fails with YXDOMAIN, the updater can + conclude that the intended name is in use. The updater then + attempts to confirm that the DNS name is not being used by some + other host. The updater prepares a second UPDATE query in which the + prerequisite is that the desired name has attached to it a DHCID RR + whose contents match the client identity. The update section of + this query deletes the existing A records on the name, and adds the + A record that matches the DHCP binding and the DHCID RR with the + client identity. + + If this query succeeds, the updater can conclude that the current + client was the last client associated with the domain name, and that + the name now contains the updated A RR. The A RR update is now + complete (and a client updater is finished, while a server would + then proceed to perform a PTR RR update). + + If the second query fails with NXRRSET, the updater must conclude + that the client's desired name is in use by another host. At this + juncture, the updater can decide (based on some administrative + configuration outside of the scope of this document) whether to let + the existing owner of the name keep that name, and to (possibly) + perform some name disambiguation operation on behalf of the current + client, or to replace the RRs on the name with RRs that represent + the current client. If the configured policy allows replacement of + existing records, the updater submits a query that deletes the + + +Stapp & Rekhter Expires September 2000 [Page 14] + +Internet-Draft Interaction between DHCP and DNS March 2000 + + + existing A RR and the existing DHCID RR, adding A and DHCID RRs that + represent the IP address and client-identity of the new client. + + + DISCUSSION: + The updating entity may be configured to allow the existing DNS + records on the domain name to remain unchanged, and to perform + disambiguation on the name of the current client in order to + attempt to generate a similar but unique name for the current + client. In this case, once another candidate name has been + generated, the updater should restart the process of adding an A + RR as specified in this section. + +8.2 Adding PTR RR Entries to DNS + + The DHCP server submits a DNS query which deletes all of the PTR RRs + associated with the lease IP address, and adds a PTR RR whose data + is the client's (possibly disambiguated) host name. The server also + adds a DHCID RR specified in Section 4.3. + +8.3 Removing Entries from DNS + + The most important consideration in removing DNS entries is be sure + that an entity removing a DNS entry is only removing an entry that + it added, or for which an administrator has explicitly assigned it + responsibility. + + When a lease expires or a DHCP client issues a DHCPRELEASE request, + the DHCP server SHOULD delete the PTR RR that matches the DHCP + binding, if one was successfully added. The server's update query + SHOULD assert that the name in the PTR record matches the name of + the client whose lease has expired or been released. + + The entity chosen to handle the A record for this client (either the + client or the server) SHOULD delete the A record that was added when + the lease was made to the client. + + In order to perform this delete, the updater prepares an UPDATE + query which contains two prerequisites. The first prerequisite + asserts that the DHCID RR exists whose data is the client identity + described in Section 4.3. The second prerequisite asserts that the + data in the A RR contains the IP address of the lease that has + expired or been released. + + If the query fails, the updater MUST NOT delete the DNS name. It + may be that the host whose lease on the server has expired has moved + to another network and obtained a lease from a different server, + which has caused the client's A RR to be replaced. It may also be + that some other client has been configured with a name that matches + the name of the DHCP client, and the policy was that the last client + + +Stapp & Rekhter Expires September 2000 [Page 15] + +Internet-Draft Interaction between DHCP and DNS March 2000 + + + to specify the name would get the name. In this case, the DHCID RR + will no longer match the updater's notion of the client-identity of + the host pointed to by the DNS name. + +8.4 Updating other RRs + + The procedures described in this document only cover updates to the + A and PTR RRs. Updating other types of RRs is outside the scope of + this document. + +9. Security Considerations + + Unauthenticated updates to the DNS can lead to tremendous confusion, + through malicious attack or through inadvertent misconfiguration. + Administrators should be wary of permitting unsecured DNS updates to + zones which are exposed to the global Internet. Both DHCP clients + and servers SHOULD use some form of update request origin + authentication procedure (e.g., Simple Secure DNS Update[11]) when + performing DNS updates. + + Whether a DHCP client may be responsible for updating an FQDN to IP + address mapping, or whether this is the responsibility of the DHCP + server is a site-local matter. The choice between the two + alternatives may be based on the security model that is used with + the Dynamic DNS Update protocol (e.g., only a client may have + sufficient credentials to perform updates to the FQDN to IP address + mapping for its FQDN). + + Whether a DHCP server is always responsible for updating the FQDN to + IP address mapping (in addition to updating the IP to FQDN mapping), + regardless of the wishes of an individual DHCP client, is also a + site-local matter. The choice between the two alternatives may be + based on the security model that is being used with dynamic DNS + updates. In cases where a DHCP server is performing DNS updates on + behalf of a client, the DHCP server should be sure of the DNS name + to use for the client, and of the identity of the client. + + Currently, it is difficult for DHCP servers to develop much + confidence in the identities of its clients, given the absence of + entity authentication from the DHCP protocol itself. There are many + ways for a DHCP server to develop a DNS name to use for a client, + but only in certain relatively unusual circumstances will the DHCP + server know for certain the identity of the client. If DHCP + Authentication[10] becomes widely deployed this may become more + customary. + + One example of a situation which offers some extra assurances is one + where the DHCP client is connected to a network through an MCNS + cable modem, and the CMTS (head-end) of the cable modem ensures that + + +Stapp & Rekhter Expires September 2000 [Page 16] + +Internet-Draft Interaction between DHCP and DNS March 2000 + + + MAC address spoofing simply does not occur. Another example of a + configuration that might be trusted is one where clients obtain + network access via a network access server using PPP. The NAS itself + might be obtaining IP addresses via DHCP, encoding a client + identification into the DHCP client-id option. In this case, the + network access server as well as the DHCP server might be operating + within a trusted environment, in which case the DHCP server could be + configured to trust that the user authentication and authorization + procedure of the remote access server was sufficient, and would + therefore trust the client identification encoded within the DHCP + client-id. + +10. Acknowledgements + + Many thanks to Mark Beyer, Jim Bound, Ralph Droms, Robert Elz, Peter + Ford, Edie Gunter, Andreas Gustafsson, R. Barr Hibbs, Kim Kinnear, + Stuart Kwan, Ted Lemon, Ed Lewis, Michael Lewis, Josh Littlefield, + Michael Patton, and Glenn Stump for their review and comments. + +References + + [1] Mockapetris, P., "Domain names - Concepts and Facilities", RFC + 1034, Nov 1987. + + [2] Mockapetris, P., "Domain names - Implementation and + Specification", RFC 1035, Nov 1987. + + [3] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, + March 1997. + + [4] Marine, A., Reynolds, J. and G. Malkin, "FYI on Questions and + Answers to Commonly asked ``New Internet User'' Questions", RFC + 1594, March 1994. + + [5] Vixie, P., Thomson, S., Rekhter, Y. and J. Bound, "Dynamic + Updates in the Domain Name System", RFC 2136, April 1997. + + [6] Bradner, S., "Key words for use in RFCs to Indicate Requirement + Levels", RFC 2119, March 1997. + + [7] Eastlake, D., "Domain Name System Security Extensions", RFC + 2535, March 1999. + + [8] Vixie, P., "Extension Mechanisms for DNS (EDNS0)", RFC 2671, + August 1999. + + [9] Vixie, P., Gudmundsson, O., Eastlake, D. and B. Wellington, + "Secret Key Transaction Authentication for DNS (TSIG) + (draft-ietf-dnsext-tsig-*)", July 1999. + + +Stapp & Rekhter Expires September 2000 [Page 17] + +Internet-Draft Interaction between DHCP and DNS March 2000 + + + [10] Droms, R. and W. Arbaugh, "Authentication for DHCP Messages + (draft-ietf-dhc-authentication-*)", June 1999. + + [11] Wellington, B., "Simple Secure DNS Dynamic Updates + (draft-ietf-dnsext-simple-secure-update-*)", June 1999. + + [12] Gustafsson, A., "A DNS RR for encoding DHCP client identity + (draft-ietf-dnsext-dhcid-rr-*)", October 1999. + + [13] Rivest, R., "The MD5 Message Digest Algorithm", RFC 1321, + April 1992. + +Authors' Addresses + + Mark Stapp + Cisco Systems, Inc. + 250 Apollo Dr. + Chelmsford, MA 01824 + US + + Phone: 978.244.8498 + EMail: mjs@cisco.com + + Yakov Rekhter + Cisco Systems, Inc. + 170 Tasman Dr. + San Jose, CA 95134 + US + + Phone: 914.235.2128 + EMail: yakov@cisco.com + + + + + + + + + + + + + + + + + + + + +Stapp & Rekhter Expires September 2000 [Page 18] + +Internet-Draft Interaction between DHCP and DNS March 2000 + + +Full Copyright Statement + + Copyright (C) The Internet Society (2000). All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implmentation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph + are included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assigns. + + This document and the information contained herein is provided on an + "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING + TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION + HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Acknowledgement + + Funding for the RFC editor function is currently provided by the + Internet Society. + + + + + + + + + + + + + + + + + + + +Stapp & Rekhter Expires September 2000 [Page 19] + diff --git a/doc/draft-ietf-dhc-new-options-00.txt b/doc/draft-ietf-dhc-new-options-00.txt deleted file mode 100644 index adf332a5..00000000 --- a/doc/draft-ietf-dhc-new-options-00.txt +++ /dev/null @@ -1,110 +0,0 @@ - -Network Working Group R. Droms -INTERNET DRAFT Bucknell University -Obsoletes: February 1996 - Expires August 1996 - - - Procedure for Defining New DHCP Options - <draft-ietf-dhc-new-options-00.txt> - -Status of this memo - - 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 use 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). - -Abstract - - The Dynamic Host Configuration Protocol (DHCP) provides a - framework for passing configuration information to hosts on a TCP/IP - network. Configuration parameters and other control information are - carried in tagged data items that are stored in the 'options' field - of the DHCP message. The data items themselves are also called - "options." - - This document describes the procedure for defining new DHCP options. - The procedure will guarantee that: - - * allocation of new option numbers is coordinated from a single - authority, - * new options are reviewed for technical correctness and - appropriateness, and - * documentation for new options is complete and published. - - - - - - - -Droms [Page 1] - -DRAFT Procedure for Defining New DHCP Options February 1996 - - -Procedure - - The author of a new DHCP option will follow these steps to obtain - acceptance of the option as a part of the DHCP Internet Standard: - - 1. The author devises the new option. - 2. The author requests a number for the new option from IANA. - 3. The author documents the new option, using the newly obtained - option number, as an Internet Draft. - 4. The author submits the Internet Draft for review through the IETF - standards process as defined in "Internet Official Protocol - Standards" (STD 1). The new option will be submitted for eventual - acceptance as an Internet Standard. - 5. The new option progresses through the IETF standards process; the - new option will be reviewed by the Dynamic Host Configuration - Working Group (if that group still exists), or as an Internet - Draft not submitted by an IETF working group. - 6. If the new option fails to gain acceptance as an Internet - Standard, the assigned option number will be returned to IANA for - reassignment. - -Acceptance and publication - - If this procedure is accepted, it will be added to the DHCP options - specification as an Appendix. - -Security Considerations - - Security issues are not discussed in this memo. - -Author's Address - - Ralph Droms - Computer Science Department - 323 Dana Engineering - Bucknell University - Lewisburg, PA 17837 - - Phone: (717) 524-1145 - EMail: droms@bucknell.edu - - - - - - - - - - - -Droms [Page 2] - diff --git a/doc/draft-ietf-dhc-options-1533update-06.txt b/doc/draft-ietf-dhc-options-1533update-06.txt deleted file mode 100644 index f62107ae..00000000 --- a/doc/draft-ietf-dhc-options-1533update-06.txt +++ /dev/null @@ -1,2127 +0,0 @@ - - -Network Working Group S. Alexander -INTERNET DRAFT Silicon Graphics, Inc. -Obsoletes: draft-ietf-dhc-options-1533update-05.txt R. Droms - Bucknell University - December 1996 - Expires June 1997 - - - DHCP Options and BOOTP Vendor Extensions - <draft-ietf-dhc-options-1533update-06.txt> - -Status of this memo - - 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 use 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). - -Abstract - - The Dynamic Host Configuration Protocol (DHCP) [1] provides a - framework for passing configuration information to hosts on a TCP/IP - network. Configuration parameters and other control information are - carried in tagged data items that are stored in the 'options' field - of the DHCP message. The data items themselves are also called - "options." - - This document specifies the current set of DHCP options. Future - options will be specified in separate RFCs. The current list of - valid options is also available in - ftp://ftp.isi.edu/in-notes/iana/assignments [22]. - - All of the vendor information extensions defined in RFC 1497 [2] may - be used as DHCP options. The definitions given in RFC 1497 are - included in this document, which supersedes RFC 1497. All of the - DHCP options defined in this document, except for those specific to - DHCP as defined in section 9, may be used as BOOTP vendor information - - - -Alexander & Droms [Page 1] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - - extensions. - -Table of Contents - - 1. Introduction .............................................. 2 - 2. BOOTP Extension/DHCP Option Field Format .................. 4 - 3. RFC 1497 Vendor Extensions ................................ 5 - 4. IP Layer Parameters per Host .............................. 12 - 5. IP Layer Parameters per Interface ........................ 15 - 6. Link Layer Parameters per Interface ....................... 19 - 7. TCP Parameters ............................................ 20 - 8. Application and Service Parameters ........................ 21 - 9. DHCP Extensions ........................................... 29 - 10. Defining new extensions ................................... 35 - 11. Acknowledgements .......................................... 35 - 12. References ................................................ 36 - 13. Security Considerations ................................... 37 - 14. Authors' Addresses ........................................ 37 - -1. Introduction - - This document specifies options for use with both the Dynamic Host - Configuration Protocol and the Bootstrap Protocol. - - The full description of DHCP packet formats may be found in the DHCP - specification document [1], and the full description of BOOTP packet - formats may be found in the BOOTP specification document [3]. This - document defines the format of information in the last field of DHCP - packets ('options') and of BOOTP packets ('vend'). The remainder of - this section defines a generalized use of this area for giving - information useful to a wide class of machines, operating systems and - configurations. Sites with a single DHCP or BOOTP server that is - shared among heterogeneous clients may choose to define other, site- - specific formats for the use of the 'options' field. - - Section 2 of this memo describes the formats of DHCP options and - BOOTP vendor extensions. Section 3 describes options defined in - previous documents for use with BOOTP (all may also be used with - DHCP). Sections 4-8 define new options intended for use with both - DHCP and BOOTP. Section 9 defines options used only in DHCP. - - References further describing most of the options defined in sections - 2-6 can be found in section 12. The use of the options defined in - section 9 is described in the DHCP specification [1]. - - Information on registering new options is contained in section 10. - - This document updates the definition of DHCP/BOOTP options that - - - -Alexander & Droms [Page 2] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - - appears in RFC1533. The classing mechanism has been extended to - include vendor classes as described in section 8.4 and 9.13. The new - procedure for defining new DHCP/BOOTP options in described in section - 10. Several new options, including NIS+ domain and servers, Mobile - IP home agent, SMTP server, TFTP server and Bootfile server, have - been added. Text giving definitions used throughout the document has - been added in section 1.1. Text emphasizing the need for uniqueness - of client-identifiers has been added to section 9.14. - -1.1 Requirements - - Throughout this document, the words that are used to define the - significance of particular requirements are capitalized. These words - are: - - 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 that 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 full implications 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 even useful, but the full implications should be understood - and the case carefully weighed 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. - - - - -Alexander & Droms [Page 3] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -1.2 Terminology - - This document uses the following terms: - - o "DHCP client" - - A DHCP client or "client" is an Internet host using DHCP to obtain - configuration parameters such as a network address. - - o "DHCP server" - - A DHCP server of "server"is an Internet host that returns - configuration parameters to DHCP clients. - - o "binding" - - A binding is a collection of configuration parameters, including - at least an IP address, associated with or "bound to" a DHCP - client. Bindings are managed by DHCP servers. - -2. BOOTP Extension/DHCP Option Field Format - - DHCP options have the same format as the BOOTP 'vendor extensions' - defined in RFC 1497 [2]. Options may be fixed length or variable - length. All options begin with a tag octet, which uniquely - identifies the option. Fixed-length options without data consist of - only a tag octet. Only options 0 and 255 are fixed length. All - other options are variable-length with a length octet following the - tag octet. The value of the length octet does not include the two - octets specifying the tag and length. The length octet is followed - by "length" octets of data. - Options containing NVT ASCII data SHOULD NOT include a trailing NULL; - however, the receiver of such options MUST be prepared to delete - trailing nulls if they exist. - The receiver MUST NOT - require that a trailing null be included in the data. In the case - of some variable-length - options the length field is a constant but must still be specified. - - Any options defined subsequent to this document MUST contain a - length octet even if the length is fixed or zero. - - All multi-octet quantities are in network byte-order. - - When used with BOOTP, the first four octets of the vendor information - field have been assigned to the "magic cookie" (as suggested in RFC - 951). This field identifies the mode in which the succeeding data is - to be interpreted. The value of the magic cookie is the 4 octet - - - -Alexander & Droms [Page 4] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - - dotted decimal 99.130.83.99 (or hexadecimal number 63.82.53.63) in - network byte order. - - All of the "vendor extensions" defined in RFC 1497 are also DHCP - options. - - Option codes 128 to 254 (decimal) are reserved for site-specific - options. - - Except for the options in section 9, all options may be used with - either DHCP or BOOTP. - - Many of these options have their default values specified in other - documents. In particular, RFC 1122 [4] specifies default values for - most IP and TCP configuration parameters. - - Many options supply one or more 32-bit IP address. Use of IP - addresses rather than fully-qualified Domain Names (FQDNs) may make - future renumbering of IP hosts more difficult. Use of these addresses - is discouraged at sites that may require renumbering. - -3. RFC 1497 Vendor Extensions - - This section lists the vendor extensions as defined in RFC - 1497. They are defined here for completeness. - -3.1. Pad Option - - The pad option can be used to cause subsequent fields to align on - word boundaries. - - The code for the pad option is 0, and its length is 1 octet. - - Code - +-----+ - | 0 | - +-----+ - - - - - - - - - - - - - - -Alexander & Droms [Page 5] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -3.2. End Option - - The end option marks the end of valid information in the vendor - field. Subsequent octets should be filled with pad options. - - The code for the end option is 255, and its length is 1 octet. - - Code - +-----+ - | 255 | - +-----+ - -3.3. Subnet Mask - - The subnet mask option specifies the client's subnet mask as per RFC - 950 [5]. - - If both the subnet mask and the router option are specified in a DHCP - reply, the subnet mask option MUST be first. - - The code for the subnet mask option is 1, and its length is 4 octets. - - Code Len Subnet Mask - +-----+-----+-----+-----+-----+-----+ - | 1 | 4 | m1 | m2 | m3 | m4 | - +-----+-----+-----+-----+-----+-----+ - -3.4. Time Offset - - The time offset field specifies the offset of the client's subnet in - seconds from Coordinated Universal Time (UTC). The offset is - expressed as a two's complement 32-bit integer. A positive offset - indicates a location east of the zero meridian and a negative offset - indicates a location west of the zero meridian. - - The code for the time offset option is 2, and its length is 4 octets. - - Code Len Time Offset - +-----+-----+-----+-----+-----+-----+ - | 2 | 4 | n1 | n2 | n3 | n4 | - +-----+-----+-----+-----+-----+-----+ - - - - - - - - - - -Alexander & Droms [Page 6] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -3.5. Router Option - - The router option specifies a list of IP addresses for routers on the - client's subnet. Routers SHOULD be listed in order of preference. - - The code for the router option is 3. The minimum length for the - router option is 4 octets, and the length MUST always be a multiple - of 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 3 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - -3.6. Time Server Option - - The time server option specifies a list of RFC 868 [6] time servers - available to the client. Servers SHOULD be listed in order of - preference. - - The code for the time server option is 4. The minimum length for - this option is 4 octets, and the length MUST always be a multiple of - 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 4 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - -3.7. Name Server Option - - The name server option specifies a list of IEN 116 [7] name servers - available to the client. Servers SHOULD be listed in order of - preference. - - The code for the name server option is 5. The minimum length for - this option is 4 octets, and the length MUST always be a multiple of - 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 5 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - - - - - - - - -Alexander & Droms [Page 7] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -3.8. Domain Name Server Option - - The domain name server option specifies a list of Domain Name System - (STD 13, RFC 1035 [8]) name servers available to the client. Servers - SHOULD be listed in order of preference. - - The code for the domain name server option is 6. The minimum length - for this option is 4 octets, and the length MUST always be a multiple - of 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 6 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - -3.9. Log Server Option - - The log server option specifies a list of MIT-LCS UDP log servers - available to the client. Servers SHOULD be listed in order of - preference. - - The code for the log server option is 7. The minimum length for this - option is 4 octets, and the length MUST always be a multiple of 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 7 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - -3.10. Cookie Server Option - - The cookie server option specifies a list of RFC 865 [9] cookie - servers available to the client. Servers SHOULD be listed in order - of preference. - - The code for the log server option is 8. The minimum length for this - option is 4 octets, and the length MUST always be a multiple of 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 8 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - - - - - - - - - -Alexander & Droms [Page 8] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -3.11. LPR Server Option - - The LPR server option specifies a list of RFC 1179 [10] line printer - servers available to the client. Servers SHOULD be listed in order - of preference. - - The code for the LPR server option is 9. The minimum length for this - option is 4 octets, and the length MUST always be a multiple of 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 9 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - -3.12. Impress Server Option - - The Impress server option specifies a list of Imagen Impress servers - available to the client. Servers SHOULD be listed in order of - preference. - - The code for the Impress server option is 10. The minimum length for - this option is 4 octets, and the length MUST always be a multiple of - 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 10 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - -3.13. Resource Location Server Option - - This option specifies a list of RFC 887 [11] Resource Location - servers available to the client. Servers SHOULD be listed in order - of preference. - - The code for this option is 11. The minimum length for this option - is 4 octets, and the length MUST always be a multiple of 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 11 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - - - - - - - - - -Alexander & Droms [Page 9] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -3.14. Host Name Option - - This option specifies the name of the client. The name may or may - not be qualified with the local domain name (see section 3.17 for the - preferred way to retrieve the domain name). See RFC 1035 for - character set restrictions. - - The code for this option is 12, and its minimum length is 1. - - Code Len Host Name - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 12 | n | h1 | h2 | h3 | h4 | h5 | h6 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - -3.15. Boot File Size Option - - This option specifies the length in 512-octet blocks of the default - boot image for the client. The file length is specified as an - unsigned 16-bit integer. - - The code for this option is 13, and its length is 2. - - Code Len File Size - +-----+-----+-----+-----+ - | 13 | 2 | l1 | l2 | - +-----+-----+-----+-----+ - -3.16. Merit Dump File - - This option specifies the path-name of a file to which the client's - core image should be dumped in the event the client crashes. The - path is formatted as a character string consisting of characters from - the NVT ASCII character set. - - The code for this option is 14. Its minimum length is 1. - - Code Len Dump File Pathname - +-----+-----+-----+-----+-----+-----+--- - | 14 | n | n1 | n2 | n3 | n4 | ... - +-----+-----+-----+-----+-----+-----+--- - - - - - - - - - - - -Alexander & Droms [Page 10] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -3.17. Domain Name - - This option specifies the domain name that client should use when - resolving hostnames via the Domain Name System. - - The code for this option is 15. Its minimum length is 1. - - Code Len Domain Name - +-----+-----+-----+-----+-----+-----+-- - | 15 | n | d1 | d2 | d3 | d4 | ... - +-----+-----+-----+-----+-----+-----+-- - -3.18. Swap Server - - This specifies the IP address of the client's swap server. - - The code for this option is 16 and its length is 4. - - Code Len Swap Server Address - +-----+-----+-----+-----+-----+-----+ - | 16 | n | a1 | a2 | a3 | a4 | - +-----+-----+-----+-----+-----+-----+ - -3.19. Root Path - - This option specifies the path-name that contains the client's root - disk. The path is formatted as a character string consisting of - characters from the NVT ASCII character set. - - The code for this option is 17. Its minimum length is 1. - - Code Len Root Disk Pathname - +-----+-----+-----+-----+-----+-----+--- - | 17 | n | n1 | n2 | n3 | n4 | ... - +-----+-----+-----+-----+-----+-----+--- - - - - - - - - - - - - - - - - -Alexander & Droms [Page 11] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -3.20. Extensions Path - - A string to specify a file, retrievable via TFTP, which contains - information which can be interpreted in the same way as the 64-octet - vendor-extension field within the BOOTP response, with the following - exceptions: - - - the length of the file is unconstrained; - - all references to Tag 18 (i.e., instances of the - BOOTP Extensions Path field) within the file are - ignored. - - The code for this option is 18. Its minimum length is 1. - - Code Len Extensions Pathname - +-----+-----+-----+-----+-----+-----+--- - | 18 | n | n1 | n2 | n3 | n4 | ... - +-----+-----+-----+-----+-----+-----+--- - -4. IP Layer Parameters per Host - - This section details the options that affect the operation of the IP - layer on a per-host basis. - -4.1. IP Forwarding Enable/Disable Option - - This option specifies whether the client should configure its IP - layer for packet forwarding. A value of 0 means disable IP - forwarding, and a value of 1 means enable IP forwarding. - - The code for this option is 19, and its length is 1. - - Code Len Value - +-----+-----+-----+ - | 19 | 1 | 0/1 | - +-----+-----+-----+ - - - - - - - - - - - - - - - -Alexander & Droms [Page 12] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -4.2. Non-Local Source Routing Enable/Disable Option - - This option specifies whether the client should configure its IP - layer to allow forwarding of datagrams with non-local source routes - (see Section 3.3.5 of [4] for a discussion of this topic). A value - of 0 means disallow forwarding of such datagrams, and a value of 1 - means allow forwarding. - - The code for this option is 20, and its length is 1. - - Code Len Value - +-----+-----+-----+ - | 20 | 1 | 0/1 | - +-----+-----+-----+ - -4.3. Policy Filter Option - - This option specifies policy filters for non-local source routing. - The filters consist of a list of IP addresses and masks which specify - destination/mask pairs with which to filter incoming source routes. - - Any source routed datagram whose next-hop address does not match one - of the filters should be discarded by the client. - - See [4] for further information. - - The code for this option is 21. The minimum length of this option is - 8, and the length MUST be a multiple of 8. - - Code Len Address 1 Mask 1 - +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ - | 21 | n | a1 | a2 | a3 | a4 | m1 | m2 | m3 | m4 | - +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ - Address 2 Mask 2 - +-----+-----+-----+-----+-----+-----+-----+-----+--- - | a1 | a2 | a3 | a4 | m1 | m2 | m3 | m4 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+--- - - - - - - - - - - - - - - -Alexander & Droms [Page 13] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -4.4. Maximum Datagram Reassembly Size - - This option specifies the maximum size datagram that the client - should be prepared to reassemble. The size is specified as a 16-bit - unsigned integer. The minimum value legal value is 576. - - The code for this option is 22, and its length is 2. - - Code Len Size - +-----+-----+-----+-----+ - | 22 | 2 | s1 | s2 | - +-----+-----+-----+-----+ - -4.5. Default IP Time-to-live - - This option specifies the default time-to-live that the client should - use on outgoing datagrams. The TTL is specified as an octet with a - value between 1 and 255. - - The code for this option is 23, and its length is 1. - - Code Len TTL - +-----+-----+-----+ - | 23 | 1 | ttl | - +-----+-----+-----+ - -4.6. Path MTU Aging Timeout Option - - This option specifies the timeout (in seconds) to use when aging Path - MTU values discovered by the mechanism defined in RFC 1191 [12]. The - timeout is specified as a 32-bit unsigned integer. - - The code for this option is 24, and its length is 4. - - Code Len Timeout - +-----+-----+-----+-----+-----+-----+ - | 24 | 4 | t1 | t2 | t3 | t4 | - +-----+-----+-----+-----+-----+-----+ - - - - - - - - - - - - - -Alexander & Droms [Page 14] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -4.7. Path MTU Plateau Table Option - - This option specifies a table of MTU sizes to use when performing - Path MTU Discovery as defined in RFC 1191. The table is formatted as - a list of 16-bit unsigned integers, ordered from smallest to largest. - The minimum MTU value cannot be smaller than 68. - - The code for this option is 25. Its minimum length is 2, and the - length MUST be a multiple of 2. - - Code Len Size 1 Size 2 - +-----+-----+-----+-----+-----+-----+--- - | 25 | n | s1 | s2 | s1 | s2 | ... - +-----+-----+-----+-----+-----+-----+--- - -5. IP Layer Parameters per Interface - - This section details the options that affect the operation of the IP - layer on a per-interface basis. It is expected that a client can - issue multiple requests, one per interface, in order to configure - interfaces with their specific parameters. - -5.1. Interface MTU Option - - This option specifies the MTU to use on this interface. The MTU is - specified as a 16-bit unsigned integer. The minimum legal value for - the MTU is 68. - - The code for this option is 26, and its length is 2. - - Code Len MTU - +-----+-----+-----+-----+ - | 26 | 2 | m1 | m2 | - +-----+-----+-----+-----+ - - - - - - - - - - - - - - - - - -Alexander & Droms [Page 15] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -5.2. All Subnets are Local Option - - This option specifies whether or not the client may assume that all - subnets of the IP network to which the client is connected use the - same MTU as the subnet of that network to which the client is - directly connected. A value of 1 indicates that all subnets share - the same MTU. A value of 0 means that the client should assume that - some subnets of the directly connected network may have smaller MTUs. - - The code for this option is 27, and its length is 1. - - Code Len Value - +-----+-----+-----+ - | 27 | 1 | 0/1 | - +-----+-----+-----+ - -5.3. Broadcast Address Option - - This option specifies the broadcast address in use on the client's - subnet. Legal values for broadcast addresses are specified in - section 3.2.1.3 of [4]. - - The code for this option is 28, and its length is 4. - - Code Len Broadcast Address - +-----+-----+-----+-----+-----+-----+ - | 28 | 4 | b1 | b2 | b3 | b4 | - +-----+-----+-----+-----+-----+-----+ - -5.4. Perform Mask Discovery Option - - This option specifies whether or not the client should perform subnet - mask discovery using ICMP. A value of 0 indicates that the client - should not perform mask discovery. A value of 1 means that the - client should perform mask discovery. - - The code for this option is 29, and its length is 1. - - Code Len Value - +-----+-----+-----+ - | 29 | 1 | 0/1 | - +-----+-----+-----+ - - - - - - - - - -Alexander & Droms [Page 16] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -5.5. Mask Supplier Option - - This option specifies whether or not the client should respond to - subnet mask requests using ICMP. A value of 0 indicates that the - client should not respond. A value of 1 means that the client should - respond. - - The code for this option is 30, and its length is 1. - - Code Len Value - +-----+-----+-----+ - | 30 | 1 | 0/1 | - +-----+-----+-----+ - -5.6. Perform Router Discovery Option - - This option specifies whether or not the client should solicit - routers using the Router Discovery mechanism defined in RFC 1256 - [13]. A value of 0 indicates that the client should not perform - router discovery. A value of 1 means that the client should perform - router discovery. - - The code for this option is 31, and its length is 1. - - Code Len Value - +-----+-----+-----+ - | 31 | 1 | 0/1 | - +-----+-----+-----+ - -5.7. Router Solicitation Address Option - - This option specifies the address to which the client should transmit - router solicitation requests. - - The code for this option is 32, and its length is 4. - - Code Len Address - +-----+-----+-----+-----+-----+-----+ - | 32 | 4 | a1 | a2 | a3 | a4 | - +-----+-----+-----+-----+-----+-----+ - - - - - - - - - - - -Alexander & Droms [Page 17] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -5.8. Static Route Option - - This option specifies a list of static routes that the client should - install in its routing cache. If multiple routes to the same - destination are specified, they are listed in descending order of - priority. - - The routes consist of a list of IP address pairs. The first address - is the destination address, and the second address is the router for - the destination. - - The default route (0.0.0.0) is an illegal destination for a static - route. See section 3.5 for information about the router option. - - The code for this option is 33. The minimum length of this option is - 8, and the length MUST be a multiple of 8. - - Code Len Destination 1 Router 1 - +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ - | 33 | n | d1 | d2 | d3 | d4 | r1 | r2 | r3 | r4 | - +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ - Destination 2 Router 2 - +-----+-----+-----+-----+-----+-----+-----+-----+--- - | d1 | d2 | d3 | d4 | r1 | r2 | r3 | r4 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+--- - - - - - - - - - - - - - - - - - - - - - - - - - - -Alexander & Droms [Page 18] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -6. Link Layer Parameters per Interface - - This section lists the options that affect the operation of the data - link layer on a per-interface basis. - -6.1. Trailer Encapsulation Option - - This option specifies whether or not the client should negotiate the - use of trailers (RFC 893 [14]) when using the ARP protocol. A value - of 0 indicates that the client should not attempt to use trailers. A - value of 1 means that the client should attempt to use trailers. - - The code for this option is 34, and its length is 1. - - Code Len Value - +-----+-----+-----+ - | 34 | 1 | 0/1 | - +-----+-----+-----+ - -6.2. ARP Cache Timeout Option - - This option specifies the timeout in seconds for ARP cache entries. - The time is specified as a 32-bit unsigned integer. - - The code for this option is 35, and its length is 4. - - Code Len Time - +-----+-----+-----+-----+-----+-----+ - | 35 | 4 | t1 | t2 | t3 | t4 | - +-----+-----+-----+-----+-----+-----+ - -6.3. Ethernet Encapsulation Option - - This option specifies whether or not the client should use Ethernet - Version 2 (RFC 894 [15]) or IEEE 802.3 (RFC 1042 [16]) encapsulation - if the interface is an Ethernet. A value of 0 indicates that the - client should use RFC 894 encapsulation. A value of 1 means that the - client should use RFC 1042 encapsulation. - - The code for this option is 36, and its length is 1. - - Code Len Value - +-----+-----+-----+ - | 36 | 1 | 0/1 | - +-----+-----+-----+ - - - - - - -Alexander & Droms [Page 19] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -7. TCP Parameters - - This section lists the options that affect the operation of the TCP - layer on a per-interface basis. - -7.1. TCP Default TTL Option - - This option specifies the default TTL that the client should use when - sending TCP segments. The value is represented as an 8-bit unsigned - integer. The minimum value is 1. - - The code for this option is 37, and its length is 1. - - Code Len TTL - +-----+-----+-----+ - | 37 | 1 | n | - +-----+-----+-----+ - -7.2. TCP Keepalive Interval Option - - This option specifies the interval (in seconds) that the client TCP - should wait before sending a keepalive message on a TCP connection. - The time is specified as a 32-bit unsigned integer. A value of zero - indicates that the client should not generate keepalive messages on - connections unless specifically requested by an application. - - The code for this option is 38, and its length is 4. - - Code Len Time - +-----+-----+-----+-----+-----+-----+ - | 38 | 4 | t1 | t2 | t3 | t4 | - +-----+-----+-----+-----+-----+-----+ - -7.3. TCP Keepalive Garbage Option - - This option specifies the whether or not the client should send TCP - keepalive messages with a octet of garbage for compatibility with - older implementations. A value of 0 indicates that a garbage octet - should not be sent. A value of 1 indicates that a garbage octet - should be sent. - - The code for this option is 39, and its length is 1. - - Code Len Value - +-----+-----+-----+ - | 39 | 1 | 0/1 | - +-----+-----+-----+ - - - - -Alexander & Droms [Page 20] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -8. Application and Service Parameters - - This section details some miscellaneous options used to configure - miscellaneous applications and services. - -8.1. Network Information Service Domain Option - - This option specifies the name of the client's NIS [17] domain. The - domain is formatted as a character string consisting of characters - from the NVT ASCII character set. - - The code for this option is 40. Its minimum length is 1. - - Code Len NIS Domain Name - +-----+-----+-----+-----+-----+-----+--- - | 40 | n | n1 | n2 | n3 | n4 | ... - +-----+-----+-----+-----+-----+-----+--- - -8.2. Network Information Servers Option - - This option specifies a list of IP addresses indicating NIS servers - available to the client. Servers SHOULD be listed in order of - preference. - - The code for this option is 41. Its minimum length is 4, and the - length MUST be a multiple of 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 41 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - -8.3. Network Time Protocol Servers Option - - This option specifies a list of IP addresses indicating NTP [18] - servers available to the client. Servers SHOULD be listed in order - of preference. - - The code for this option is 42. Its minimum length is 4, and the - length MUST be a multiple of 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 42 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - - - - - - -Alexander & Droms [Page 21] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -8.4. Vendor Specific Information - - This option is used by clients and servers to exchange vendor- - specific information. The information is an opaque object of n - octets, presumably interpreted by vendor-specific code on the clients - and servers. The definition of this information is vendor specific. - The vendor is indicated in the vendor class identifier option. - Servers not equipped to interpret the vendor-specific information - sent by a client MUST ignore it (although it may be reported). - Clients which do not receive desired vendor-specific information - SHOULD make an attempt to operate without it, although they may do so - (and announce they are doing so) in a degraded mode. - - If a vendor potentially encodes more than one item of information in - this option, then the vendor SHOULD encode the option using - "Encapsulated vendor-specific options" as described below: - - The Encapsulated vendor-specific options field SHOULD be encoded as a - sequence of code/length/value fields of identical syntax to the DHCP - options field with the following exceptions: - - 1) There SHOULD NOT be a "magic cookie" field in the encapsulated - vendor-specific extensions field. - - 2) Codes other than 0 or 255 MAY be redefined by the vendor within - the encapsulated vendor-specific extensions field, but SHOULD - conform to the tag-length-value syntax defined in section 2. - - 3) Code 255 (END), if present, signifies the end of the - encapsulated vendor extensions, not the end of the vendor - extensions field. If no code 255 is present, then the end of - the enclosing vendor-specific information field is taken as the - end of the encapsulated vendor-specific extensions field. - - The code for this option is 43 and its minimum length is 1. - - Code Len Vendor-specific information - +-----+-----+-----+-----+--- - | 43 | n | i1 | i2 | ... - +-----+-----+-----+-----+--- - - When encapsulated vendor-specific extensions are used, the - information bytes 1-n have the following format: - - Code Len Data item Code Len Data item Code - +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ - | T1 | n | d1 | d2 | ... | T2 | n | D1 | D2 | ... | ... | - +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ - - - -Alexander & Droms [Page 22] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -8.5. NetBIOS over TCP/IP Name Server Option - - The NetBIOS name server (NBNS) option specifies a list of RFC - 1001/1002 [19] [20] NBNS name servers listed in order of preference. - - The code for this option is 44. The minimum length of the option is - 4 octets, and the length must always be a multiple of 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---- - | 44 | n | a1 | a2 | a3 | a4 | b1 | b2 | b3 | b4 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---- - -8.6. NetBIOS over TCP/IP Datagram Distribution Server Option - - The NetBIOS datagram distribution server (NBDD) option specifies a - list of RFC 1001/1002 NBDD servers listed in order of preference. The - code for this option is 45. The minimum length of the option is 4 - octets, and the length must always be a multiple of 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---- - | 45 | n | a1 | a2 | a3 | a4 | b1 | b2 | b3 | b4 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---- - -8.7. NetBIOS over TCP/IP Node Type Option - - The NetBIOS node type option allows NetBIOS over TCP/IP clients which - are configurable to be configured as described in RFC 1001/1002. The - value is specified as a single octet which identifies the client type - as follows: - - Value Node Type - ----- --------- - 0x1 B-node - 0x2 P-node - 0x4 M-node - 0x8 H-node - - In the above chart, the notation '0x' indicates a number in base-16 - (hexadecimal). - - - - - - - - - - -Alexander & Droms [Page 23] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - - The code for this option is 46. The length of this option is always - 1. - - Code Len Node Type - +-----+-----+-----------+ - | 46 | 1 | see above | - +-----+-----+-----------+ - -8.8. NetBIOS over TCP/IP Scope Option - - The NetBIOS scope option specifies the NetBIOS over TCP/IP scope - parameter for the client as specified in RFC 1001/1002. See [19], - [20], and [8] for character-set restrictions. - - The code for this option is 47. The minimum length of this option is - 1. - - Code Len NetBIOS Scope - +-----+-----+-----+-----+-----+-----+---- - | 47 | n | s1 | s2 | s3 | s4 | ... - +-----+-----+-----+-----+-----+-----+---- - -8.9. X Window System Font Server Option - - This option specifies a list of X Window System [21] Font servers - available to the client. Servers SHOULD be listed in order of - preference. - - The code for this option is 48. The minimum length of this option is - 4 octets, and the length MUST be a multiple of 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+--- - | 48 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+--- - - - - - - - - - - - - - - - - -Alexander & Droms [Page 24] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -8.10. X Window System Display Manager Option - - This option specifies a list of IP addresses of systems that are - running the X Window System Display Manager and are available to the - client. - - Addresses SHOULD be listed in order of preference. - - The code for the this option is 49. The minimum length of this option - is 4, and the length MUST be a multiple of 4. - - Code Len Address 1 Address 2 - - +-----+-----+-----+-----+-----+-----+-----+-----+--- - | 49 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+--- - -8.11. Network Information Service+ Domain Option - - This option specifies the name of the client's NIS+ [17] domain. The - domain is formatted as a character string consisting of characters - from the NVT ASCII character set. - - The code for this option is 64. Its minimum length is 1. - - Code Len NIS Client Domain Name - +-----+-----+-----+-----+-----+-----+--- - | 64 | n | n1 | n2 | n3 | n4 | ... - +-----+-----+-----+-----+-----+-----+--- - -8.12. Network Information Service+ Servers Option - - This option specifies a list of IP addresses indicating NIS+ servers - available to the client. Servers SHOULD be listed in order of - preference. - - The code for this option is 65. Its minimum length is 4, and the - length MUST be a multiple of 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 65 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - - - - - - - - -Alexander & Droms [Page 25] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -8.13. Mobile IP Home Agent option - - This option specifies a list of IP addresses indicating mobile IP - home agents available to the client. Agents SHOULD be listed in - order of preference. - - The code for this option is 68. Its minimum length is 0 (indicating - no home agents are available) and the length MUST be a multiple of 4. - It is expected that the usual length will be four octets, containing - a single home agent's address. - - Code Len Home Agent Addresses (zero or more) - +-----+-----+-----+-----+-----+-----+-- - | 68 | n | a1 | a2 | a3 | a4 | ... - +-----+-----+-----+-----+-----+-----+-- - -8.14. Simple Mail Transport Protocol (SMTP) Server Option - - The SMTP server option specifies a list of SMTP servers available to - the client. Servers SHOULD be listed in order of preference. - - The code for the SMTP server option is 69. The minimum length for - this option is 4 octets, and the length MUST always be a multiple of - 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 69 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - -8.15. Post Office Protocol (POP3) Server Option - - The POP3 server option specifies a list of POP3 available to the - client. Servers SHOULD be listed in order of preference. - - The code for the POP3 server option is 70. The minimum length for - this option is 4 octets, and the length MUST always be a multiple of - 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 70 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - - - - - - - - -Alexander & Droms [Page 26] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -8.16. Network News Transport Protocol (NNTP) Server Option - - The NNTP server option specifies a list of NNTP available to the - client. Servers SHOULD be listed in order of preference. - - The code for the NNTP server option is 71. The minimum length for - this option is 4 octets, and the length MUST always be a multiple of - 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 71 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - -8.17. Default World Wide Web (WWW) Server Option - - The WWW server option specifies a list of WWW available to the - client. Servers SHOULD be listed in order of preference. - - The code for the WWW server option is 72. The minimum length for - this option is 4 octets, and the length MUST always be a multiple of - 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 72 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - -8.18. Default Finger Server Option - - The Finger server option specifies a list of Finger available to the - client. Servers SHOULD be listed in order of preference. - - The code for the Finger server option is 73. The minimum length for - this option is 4 octets, and the length MUST always be a multiple of - 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 73 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - - - - - - - - - - -Alexander & Droms [Page 27] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -8.19. Default Internet Relay Chat (IRC) Server Option - - The IRC server option specifies a list of IRC available to the - client. Servers SHOULD be listed in order of preference. - - The code for the IRC server option is 74. The minimum length for - this option is 4 octets, and the length MUST always be a multiple of - 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 74 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - -8.20. StreetTalk Server Option - - The StreetTalk server option specifies a list of StreetTalk servers - available to the client. Servers SHOULD be listed in order of - preference. - - The code for the StreetTalk server option is 75. The minimum length - for this option is 4 octets, and the length MUST always be a multiple - of 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 75 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - -8.21. StreetTalk Directory Assistance (STDA) Server Option - - The StreetTalk Directory Assistance (STDA) server option specifies a - list of STDA servers available to the client. Servers SHOULD be - listed in order of preference. - - The code for the StreetTalk Directory Assistance server option is 76. - The minimum length for this option is 4 octets, and the length MUST - always be a multiple of 4. - - Code Len Address 1 Address 2 - +-----+-----+-----+-----+-----+-----+-----+-----+-- - | 76 | n | a1 | a2 | a3 | a4 | a1 | a2 | ... - +-----+-----+-----+-----+-----+-----+-----+-----+-- - - - - - - - - -Alexander & Droms [Page 28] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -9. DHCP Extensions - - This section details the options that are specific to DHCP. - -9.1. Requested IP Address - - This option is used in a client request (DHCPDISCOVER) to allow the - client to request that a particular IP address be assigned. - - The code for this option is 50, and its length is 4. - - Code Len Address - +-----+-----+-----+-----+-----+-----+ - | 50 | 4 | a1 | a2 | a3 | a4 | - +-----+-----+-----+-----+-----+-----+ - -9.2. IP Address Lease Time - - This option is used in a client request (DHCPDISCOVER or DHCPREQUEST) - to allow the client to request a lease time for the IP address. In a - server reply (DHCPOFFER), a DHCP server uses this option to specify - the lease time it is willing to offer. - - The time is in units of seconds, and is specified as a 32-bit - unsigned integer. - - The code for this option is 51, and its length is 4. - - Code Len Lease Time - +-----+-----+-----+-----+-----+-----+ - | 51 | 4 | t1 | t2 | t3 | t4 | - +-----+-----+-----+-----+-----+-----+ - -9.3. Option Overload - - This option is used to indicate that the DHCP 'sname' or 'file' - fields are being overloaded by using them to carry DHCP options. A - DHCP server inserts this option if the returned parameters will - exceed the usual space allotted for options. - - If this option is present, the client interprets the specified - additional fields after it concludes interpretation of the standard - option fields. - - - - - - - - -Alexander & Droms [Page 29] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - - The code for this option is 52, and its length is 1. Legal values - for this option are: - - Value Meaning - ----- -------- - 1 the 'file' field is used to hold options - 2 the 'sname' field is used to hold options - 3 both fields are used to hold options - - Code Len Value - +-----+-----+-----+ - | 52 | 1 |1/2/3| - +-----+-----+-----+ - -9.4 TFTP server name - - This option is used to identify a TFTP server when the 'sname' - field in the DHCP header has been used for DHCP options. - - The code for this option is 66, and its minimum length is 1. - - Code Len TFTP server - +-----+-----+-----+-----+-----+--- - | 66 | n | c1 | c2 | c3 | ... - +-----+-----+-----+-----+-----+--- - -9.5 Bootfile name - - This option is used to identify a bootfile when the 'file' field in - the DHCP header has been used for DHCP options. - - The code for this option is 67, and its minimum length is 1. - - Code Len Bootfile name - +-----+-----+-----+-----+-----+--- - | 67 | n | c1 | c2 | c3 | ... - +-----+-----+-----+-----+-----+--- - - - - - - - - - - - - - - -Alexander & Droms [Page 30] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -9.6. DHCP Message Type - - This option is used to convey the type of the DHCP message. The code - for this option is 53, and its length is 1. Legal values for this - option are: - - Value Message Type - ----- ------------ - 1 DHCPDISCOVER - 2 DHCPOFFER - 3 DHCPREQUEST - 4 DHCPDECLINE - 5 DHCPACK - 6 DHCPNAK - 7 DHCPRELEASE - 8 DHCPINFORM - - Code Len Type - +-----+-----+-----+ - | 53 | 1 | 1-9 | - +-----+-----+-----+ - -9.7. Server Identifier - - This option is used in DHCPOFFER and DHCPREQUEST messages, and may - optionally be included in the DHCPACK and DHCPNAK messages. DHCP - servers include this option in the DHCPOFFER in order to allow the - client to distinguish between lease offers. DHCP clients use the - contents of the 'server identifier' field as the destination address - for any DHCP messages unicast to the DHCP server. DHCP clients also - indicate which of several lease offers is being accepted by including - this option in a DHCPREQUEST message. - - The identifier is the IP address of the selected server. - - The code for this option is 54, and its length is 4. - - Code Len Address - +-----+-----+-----+-----+-----+-----+ - | 54 | 4 | a1 | a2 | a3 | a4 | - +-----+-----+-----+-----+-----+-----+ - - - - - - - - - - -Alexander & Droms [Page 31] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -9.8. Parameter Request List - - This option is used by a DHCP client to request values for specified - configuration parameters. The list of requested parameters is - specified as n octets, where each octet is a valid DHCP option code - as defined in this document. - - The client MAY list the options in order of preference. The DHCP - server is not required to return the options in the requested order, - but MUST try to insert the requested options in the order requested - by the client. - - The code for this option is 55. Its minimum length is 1. - - Code Len Option Codes - +-----+-----+-----+-----+--- - | 55 | n | c1 | c2 | ... - +-----+-----+-----+-----+--- - -9.9. Message - - This option is used by a DHCP server to provide an error message to a - DHCP client in a DHCPNAK message in the event of a failure. A client - may use this option in a DHCPDECLINE message to indicate the why the - client declined the offered parameters. The message consists of n - octets of NVT ASCII text, which the client may display on an - available output device. - - The code for this option is 56 and its minimum length is 1. - - Code Len Text - +-----+-----+-----+-----+--- - | 56 | n | c1 | c2 | ... - +-----+-----+-----+-----+--- - - - - - - - - - - - - - - - - - -Alexander & Droms [Page 32] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -9.10. Maximum DHCP Message Size - - This option specifies the maximum length DHCP message that it is - willing to accept. The length is specified as an unsigned 16-bit - integer. A client may use the maximum DHCP message size option in - DHCPDISCOVER or DHCPREQUEST messages, but should not use the option - in DHCPDECLINE messages. - - The code for this option is 57, and its length is 2. The minimum - legal value is 576 octets. - - Code Len Length - +-----+-----+-----+-----+ - | 57 | 2 | l1 | l2 | - +-----+-----+-----+-----+ - -9.11. Renewal (T1) Time Value - - This option specifies the time interval from address assignment until - the client transitions to the RENEWING state. - - The value is in units of seconds, and is specified as a 32-bit - unsigned integer. - - The code for this option is 58, and its length is 4. - - Code Len T1 Interval - +-----+-----+-----+-----+-----+-----+ - | 58 | 4 | t1 | t2 | t3 | t4 | - +-----+-----+-----+-----+-----+-----+ - -9.12. Rebinding (T2) Time Value - - This option specifies the time interval from address assignment until - the client transitions to the REBINDING state. - - The value is in units of seconds, and is specified as a 32-bit - unsigned integer. - - The code for this option is 59, and its length is 4. - - Code Len T2 Interval - +-----+-----+-----+-----+-----+-----+ - | 59 | 4 | t1 | t2 | t3 | t4 | - +-----+-----+-----+-----+-----+-----+ - - - - - - -Alexander & Droms [Page 33] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - -9.13. Vendor class identifier - - This option is used by DHCP clients to optionally identify the vendor - type and configuration of a DHCP client. The information is a string - of n octets, interpreted by servers. Vendors may choose to define - specific vendor class identifiers to convey particular configuration - or other identification information about a client. For example, the - identifier may encode the client's hardware configuration. Servers - not equipped to interpret the class-specific information sent by a - client MUST ignore it (although it may be reported). Servers that - respond SHOULD only use option 43 to return the vendor-specific - information to the client. - - The code for this option is 60, and its minimum length is 1. - - Code Len Vendor class Identifier - +-----+-----+-----+-----+--- - | 60 | n | i1 | i2 | ... - +-----+-----+-----+-----+--- - -9.14. Client-identifier - - This option is used by DHCP clients to specify their unique - identifier. DHCP servers use this value to index their database of - address bindings. This value is expected to be unique for all - clients in an administrative domain. - - Identifiers SHOULD be treated as opaque objects by DHCP servers. - - The client identifier MAY consist of type-value pairs similar to the - 'htype'/'chaddr' fields defined in [3]. For instance, it MAY consist - of a hardware type and hardware address. In this case the type field - SHOULD be one of the ARP hardware types defined in STD2 [22]. A - hardware type of 0 (zero) should be used when the value field - contains an identifier other than a hardware address (e.g. a fully - qualified domain name). - - For correct identification of clients, each client's client- - identifier MUST be unique among the client-identifiers used on the - subnet to which the client is attached. Vendors and system - administrators are responsible for choosing client-identifiers that - meet this requirement for uniqueness. - - - - - - - - - -Alexander & Droms [Page 34] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - - The code for this option is 61, and its minimum length is 2. - - Code Len Type Client-Identifier - +-----+-----+-----+-----+-----+--- - | 61 | n | t1 | i1 | i2 | ... - +-----+-----+-----+-----+-----+--- - - -10. Defining new extensions - - The author of a new DHCP option will follow these steps to obtain - acceptance of the option as a part of the DHCP Internet Standard: - - 1. The author devises the new option. - 2. The author requests a number for the new option from IANA by - contacting: - Internet Assigned Numbers Authority (IANA) - USC/Information Sciences Institute - 4676 Admiralty Way - Marina del Rey, California 90292-6695 - - or by email as: iana@isi.edu - - 3. The author documents the new option, using the newly obtained - option number, as an Internet Draft. - 4. The author submits the Internet Draft for review through the IETF - standards process as defined in "Internet Official Protocol - Standards" (STD 1). The new option will be submitted for eventual - acceptance as an Internet Standard. - 5. The new option progresses through the IETF standards process; the - new option will be reviewed by the Dynamic Host Configuration - Working Group (if that group still exists), or as an Internet - Draft not submitted by an IETF working group. - 6. If the new option fails to gain acceptance as an Internet - Standard, the assigned option number will be returned to IANA for - reassignment. - - This procedure for defining new extensions will ensure that: - - * allocation of new option numbers is coordinated from a single - authority, - * new options are reviewed for technical correctness and - appropriateness, and - * documentation for new options is complete and published. - -11. Acknowledgements - - The author thanks the many (and too numerous to mention!) - - - -Alexander & Droms [Page 35] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - - members of the DHC WG for their tireless and ongoing efforts in - the development of DHCP and this document. - - - The efforts of J Allard, Mike Carney, Dave Lapp, Fred Lien and - John Mendonca in organizing DHCP interoperability testing - sessions are gratefully acknowledged. - - The development of this document was supported in part by grants - from the Corporation for National Research Initiatives (CNRI), - Bucknell University and Sun Microsystems. - - -12. References - - [1] Droms, R., "Dynamic Host Configuration Protocol", RFC 1531, - Bucknell University, October 1993. - - [2] Reynolds, J., "BOOTP Vendor Information Extensions", RFC 1497, - USC/Information Sciences Institute, August 1993. - - [3] Croft, W., and J. Gilmore, "Bootstrap Protocol", RFC 951, - Stanford University and Sun Microsystems, September 1985. - - [4] Braden, R., Editor, "Requirements for Internet Hosts - - Communication Layers", STD 3, RFC 1122, USC/Information Sciences - Institute, October 1989. - - [5] Mogul, J., and J. Postel, "Internet Standard Subnetting - Procedure", STD 5, RFC 950, USC/Information Sciences Institute, - August 1985. - - [6] Postel, J., and K. Harrenstien, "Time Protocol", STD 26, RFC - 868, USC/Information Sciences Institute, SRI, May 1983. - - [7] Postel, J., "Name Server", IEN 116, USC/Information Sciences - Institute, August 1979. - - [8] Mockapetris, P., "Domain Names - Implementation and - Specification", STD 13, RFC 1035, USC/Information Sciences - Institute, November 1987. - - [9] Postel, J., "Quote of the Day Protocol", STD 23, RFC 865, - USC/Information Sciences Institute, May 1983. - - [10] McLaughlin, L., "Line Printer Daemon Protocol", RFC 1179, The - Wollongong Group, August 1990. - - - - -Alexander & Droms [Page 36] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - - [11] Accetta, M., "Resource Location Protocol", RFC 887, CMU, - December 1983. - - [12] Mogul, J. and S. Deering, "Path MTU Discovery", RFC 1191, - DECWRL, Stanford University, November 1990. - - [13] Deering, S., "ICMP Router Discovery Messages", RFC 1256, - Xerox PARC, September 1991. - - [14] Leffler, S. and M. Karels, "Trailer Encapsulations", RFC 893, - U. C. Berkeley, April 1984. - - [15] Hornig, C., "Standard for the Transmission of IP Datagrams over - Ethernet Networks", RFC 894, Symbolics, April 1984. - - [16] Postel, J. and J. Reynolds, "Standard for the Transmission of - IP Datagrams Over IEEE 802 Networks", RFC 1042, USC/Information - Sciences Institute, February 1988. - - [17] Sun Microsystems, "System and Network Administration", March - 1990. - - [18] Mills, D., "Internet Time Synchronization: The Network Time - Protocol", RFC 1305, UDEL, March 1992. - - [19] NetBIOS Working Group, "Protocol Standard for a NetBIOS Service - on a TCP/UDP transport: Concepts and Methods", STD 19, RFC 1001, - March 1987. - - [20] NetBIOS Working Group, "Protocol Standard for a NetBIOS Service - on a TCP/UDP transport: Detailed Specifications", STD 19, RFC - 1002, March 1987. - - [21] Scheifler, R., "FYI On the X Window System", FYI 6, RFC 1198, - MIT Laboratory for Computer Science, January 1991. - - [22] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1700, - USC/Information Sciences Institute, July 1992. - -13. Security Considerations - - Security issues are not discussed in this memo. - -14. Authors' Addresses - - Steve Alexander - Silicon Graphics, Inc. - 2011 N. Shoreline Boulevard - - - -Alexander & Droms [Page 37] - -DRAFT DHCP Options and BOOTP Vendor Extensions December 1996 - - - Mailstop 510 - Mountain View, CA 94043-1389 - - Phone: (415) 933-6172 - EMail: sca@engr.sgi.com - - Ralph Droms - Bucknell University - Lewisburg, PA 17837 - - Phone: (717) 524-1145 - EMail: droms@bucknell.edu - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Alexander & Droms [Page 38] - diff --git a/doc/rfc2485.txt b/doc/rfc2485.txt new file mode 100644 index 00000000..752b03c5 --- /dev/null +++ b/doc/rfc2485.txt @@ -0,0 +1,227 @@ + + + + + + +Network Working Group S. Drach +Request for Comments: 2485 Sun Microsystems +Category: Standards Track January 1999 + + + + DHCP Option for The Open Group's User Authentication Protocol + +Status of this Memo + + This document specifies an Internet standards track protocol for the + Internet community, and requests discussion and suggestions for + improvements. Please refer to the current edition of the "Internet + Official Protocol Standards" (STD 1) for the standardization state + and status of this protocol. Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (1999). All Rights Reserved. + +Abstract + + This document defines a DHCP [1] option that contains a list of + pointers to User Authentication Protocol servers that provide user + authentication services for clients that conform to The Open Group + Network Computing Client Technical Standard [2]. + +Introduction + + The Open Group Network Computing Client Technical Standard, a product + of The Open Group's Network Computing Working Group (NCWG), defines a + network computing client user authentication facility named the User + Authentication Protocol (UAP). + + UAP provides two levels of authentication, basic and secure. Basic + authentication uses the Basic Authentication mechanism defined in the + HTTP 1.1 [3] specification. Secure authentication is simply basic + authentication encapsulated in an SSLv3 [4] session. + + In both cases, a UAP client needs to obtain the IP address and port + of the UAP service. Additional path information may be required, + depending on the implementation of the service. A URL [5] is an + excellent mechanism for encapsulation of this information since many + UAP servers will be implemented as components within legacy HTTP/SSL + servers. + + + + + + +Drach Standards Track [Page 1] + +RFC 2485 DCHP Option for the Open Group's UAP January 1999 + + + Most UAP clients have no local state and are configured when booted + through DHCP. No existing DHCP option [6] has a data field that + contains a URL. Option 72 contains a list of IP addresses for WWW + servers, but it is not adequate since a port and/or path can not be + specified. Hence there is a need for an option that contains a list + of URLs. + +User Authentication Protocol Option + + This option specifies a list of URLs, each pointing to a user + authentication service that is capable of processing authentication + requests encapsulated in the User Authentication Protocol (UAP). UAP + servers can accept either HTTP 1.1 or SSLv3 connections. If the list + includes a URL that does not contain a port component, the normal + default port is assumed (i.e., port 80 for http and port 443 for + https). If the list includes a URL that does not contain a path + component, the path /uap is assumed. + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Code | Length | URL list + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Code 98 + + Length The length of the data field (i.e., URL list) in + bytes. + + URL list A list of one or more URLs separated by the ASCII + space character (0x20). + +References + + [1] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, + March 1997. + + [2] Technical Standard: Network Computing Client, The Open Group, + Document Number C801, October 1998. + + [3] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., and T. + Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC + 2068, January 1997. + + [4] Freier, A., Karlton, P., and P. Kocher, "The SSL Protocol, + Version 3.0", Netscape Communications Corp., November 1996. + Standards Information Base, The Open Group, + http://www.db.opengroup.org/sib.htm#SSL_3. + + + +Drach Standards Track [Page 2] + +RFC 2485 DCHP Option for the Open Group's UAP January 1999 + + + [5] Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform + Resource Locators (URL)", RFC 1738, December 1994. + + [6] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor + Extensions", RFC 2132, March 1997. + +Security Considerations + + DHCP currently provides no authentication or security mechanisms. + Potential exposures to attack are discussed in section 7 of the DHCP + protocol specification. + + The User Authentication Protocol does not have a means to detect + whether or not the client is communicating with a rogue + authentication service that the client contacted because it received + a forged or otherwise compromised UAP option from a DHCP service + whose security was compromised. Even secure authentication does not + provide relief from this type of attack. This security exposure is + mitigated by the environmental assumptions documented in the Network + Computing Client Technical Standard. + +Author's Address + + Steve Drach + Sun Microsystems, Inc. + 901 San Antonio Road + Palo Alto, CA 94303 + + Phone: (650) 960-1300 + EMail: drach@sun.com + + + + + + + + + + + + + + + + + + + + + +Drach Standards Track [Page 3] + +RFC 2485 DCHP Option for the Open Group's UAP January 1999 + + +Full Copyright Statement + + Copyright (C) The Internet Society (1999). All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph are + included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assigns. + + This document and the information contained herein is provided on an + "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING + TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION + HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + + + + + + + + + + + + + + + + + + + + + + + + +Drach Standards Track [Page 4] + diff --git a/doc/rfc2489.txt b/doc/rfc2489.txt new file mode 100644 index 00000000..42e066ec --- /dev/null +++ b/doc/rfc2489.txt @@ -0,0 +1,283 @@ + + + + + + +Network Working Group R. Droms +Request for Comments: 2489 Bucknell University +BCP: 29 January 1999 +Category: Best Current Practice + + + Procedure for Defining New DHCP Options + +Status of this Memo + + This document specifies an Internet Best Current Practices for the + Internet Community, and requests discussion and suggestions for + improvements. Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (1999). All Rights Reserved. + +Abstract + + The Dynamic Host Configuration Protocol (DHCP) provides a framework + for passing configuration information to hosts on a TCP/IP network. + Configuration parameters and other control information are carried in + tagged data items that are stored in the 'options' field of the DHCP + message. The data items themselves are also called "options." + + New DHCP options may be defined after the publication of the DHCP + specification to accommodate requirements for conveyance of new + configuration parameters. This document describes the procedure for + defining new DHCP options. + +1. Introduction + + The Dynamic Host Configuration Protocol (DHCP) [1] provides a + framework for passing configuration information to hosts on a TCP/IP + network. Configuration parameters and other control information are + carried in tagged data items that are stored in the 'options' field + of the DHCP message. The data items themselves are also called + "options." [2] + + This document describes the procedure for defining new DHCP options. + The procedure will guarantee that: + + * allocation of new option numbers is coordinated from a single + authority, + * new options are reviewed for technical correctness and + appropriateness, and + * documentation for new options is complete and published. + + + +Droms Best Current Practice [Page 1] + +RFC 2489 Defining New DCHP Options January 1999 + + + As indicated in "Guidelines for Writing an IANA Considerations + Section in RFCs" (see references), IANA acts as a central authority + for assignment of numbers such as DHCP option codes. The new + procedure outlined in this document will provide guidance to IANA in + the assignment of new option codes. + +2. Overview and background + + The procedure described in this document modifies and clarifies the + procedure for defining new options in RFC 2131 [2]. The primary + modification is to the time at which a new DHCP option is assigned an + option number. In the procedure described in this document, the + option number is not assigned until specification for the option is + about to be published as an RFC. + + Since the publication of RFC 2132, the option number space for + publically defined DHCP options (1-127) has almost been exhausted. + Many of the defined option numbers have not been followed up with + Internet Drafts submitted to the DHC WG. There has been a lack of + specific guidance to IANA from the DHC WG as to the assignment of + DHCP option numbers + + The procedure as specified in RFC 2132 does not clearly state that + new options are to be reviewed individually for technical + correctness, appropriateness and complete documentation. RFC 2132 + also does not require that new options are to be submitted to the + IESG for review, and that the author of the option specification is + responsible for bringing new options to the attention of the IESG. + Finally, RFC 2132 does not make clear that newly defined options are + not to be incorporated into products, included in other + specifications or otherwise used until the specification for the + option is published as an RFC. + + In the future, new DHCP option codes will be assigned by IETF + consensus. New DHCP options will be documented in RFCs approved by + the IESG, and the codes for those options will be assigned at the + time the relevant RFCs are published. Typically, the IESG will seek + input on prospective assignments from appropriate sources (e.g., a + relevant Working Group if one exists). Groups of related options may + be combined into a single specification and reviewed as a set by the + IESG. Prior to assignment of an option code, it is not appropriate + to incorporate new options into products, include the specification + in other documents or otherwise make use of the new options. + + The DHCP option number space (1-254) is split into two parts. The + site-specific options (128-254) are defined as "Private Use" and + require no review by the DHC WG. The public options (1-127) are + + + + +Droms Best Current Practice [Page 2] + +RFC 2489 Defining New DCHP Options January 1999 + + + defined as "Specification Required" and new options must be reviewed + prior to assignment of an option number by IANA. The details of the + review process are given in the following section of this document. + +3. Procedure + + The author of a new DHCP option will follow these steps to obtain + approval for the option and publication of the specification of the + option as an RFC: + + 1. The author devises the new option. + + 2. The author documents the new option, leaving the option code as + "To Be Determined" (TBD), as an Internet Draft. + + The requirement that the new option be documented as an Internet + Draft is a matter of expediency. In theory, the new option could + be documented on the back of an envelope for submission; as a + practical matter, the specification will eventually become an + Internet Draft as part of the review process. + + 3. The author submits the Internet Draft for review by the IESG. + Preferably, the author will submit the Internet Draft to the DHC + Working Group, but the author may choose to submit the Internet + Draft directly to the IESG. + + Note that simply publishing the new option as an Internet Draft + does not automatically bring the option to the attention of the + IESG. The author of the new option must explicitly forward a + request for action on the new option to the DHC WG or the IESG. + + 4. The specification of the new option is reviewed by the IESG. The + specification is reviewed by the DHC WG (if it exists) or by the + IETF. If the option is accepted for inclusion in the DHCP + specification, the specification of the option is published as an + RFC. It may be published as either a standards-track or a non- + standards-track RFC. + + 5. At the time of publication as an RFC, IANA assigns a DHCP option + number to the new option. + +4. References + + [1] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, + March 1997. + + [2] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor + Extensions", RFC 2132, March 1997. + + + +Droms Best Current Practice [Page 3] + +RFC 2489 Defining New DCHP Options January 1999 + + + [3] Droms, R. and K. Fong, "NetWare/IP Domain Name and Information", + RFC 2142, November 1997. + + [4] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA + Considerations Section in RFCs", BCP 26, RFC 2434, October 1998. + +5. Security Considerations + + Information that creates or updates an option number assignment needs + to be authenticated. + + An analysis of security issues is required for all newly defined DHCP + options. The description of security issues in the specification of + new options must be as accurate as possible. The specification for a + new option may reference the "Security Considerations" section in the + DHCP specification [1]; e.g. (from "NetWare/IP Domain Name and + Information" [3]): + + DHCP currently provides no authentication or security mechanisms. + Potential exposures to attack are discussed in section 7 of the + DHCP protocol specification [RFC 2131]. + +6. IANA Considerations + + RFC 2132 provided guidance to the IANA on the procedure it should + follow when assigning option numbers for new DHCP options. This + document updates and replaces those instructions. In particular, + IANA is requested to assign DHCP option numbers only for options that + have been approved for publication as RFCs; i.e., documents that have + been approved through "IETF consensus" as defined in RFC 2434 [4]. + +7. Author's Address + + Ralph Droms + Computer Science Department + 323 Dana Engineering + Bucknell University + Lewisburg, PA 17837 + + Phone: (717) 524-1145 + EMail: droms@bucknell.edu + + + + + + + + + + +Droms Best Current Practice [Page 4] + +RFC 2489 Defining New DCHP Options January 1999 + + +8. Full Copyright Statement + + Copyright (C) The Internet Society (1999). All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph are + included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assigns. + + This document and the information contained herein is provided on an + "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING + TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION + HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + + + + + + + + + + + + + + + + + + + + + + + + +Droms Best Current Practice [Page 5] + |