Network Working Group. November Encoding Long Options in the Dynamic Host Configuration Protocol (DHCPv4)

Similar documents
Network Working Group Request for Comments: 3397 Category: Standards Track Apple Computer, Inc. November 2002

Category: Standards Track December 2003

Network Working Group Request for Comments: February 2006

Category: Standards Track October Vendor-Identifying Vendor Options for Dynamic Host Configuration Protocol version 4 (DHCPv4)

Request for Comments: 5010 Category: Standards Track Cisco Systems, Inc. September 2007

Updates: 2710 September 2003 Category: Standards Track. Source Address Selection for the Multicast Listener Discovery (MLD) Protocol

Updates: 2535 November 2003 Category: Standards Track

Network Working Group. Category: Standards Track August Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Relay Agent Remote-ID Option

Network Working Group Request for Comments: 3634 Category: Standards Track Comcast Cable J. Bevilacqua N. Davoust YAS Corporation December 2003

Request for Comments: 2711 Category: Standards Track BBN October 1999

Network Working Group Request for Comments: Cisco Systems, Inc. December 2005

Network Working Group. Category: Standards Track June Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Relay Agent Subscriber-ID Option

Category: Standards Track Cisco Systems, Inc. March 2005

Network Working Group. February 2005

Network Working Group. Category: Standards Track Samsung S. Kumar Tech Mahindra Ltd S. Madanapalli Samsung May 2008

Network Working Group. Category: Informational January Unused Dynamic Host Configuration Protocol (DHCP) Option Codes

Network Working Group Request for Comments: Category: Best Current Practice January 2004

Category: Standards Track August 2002

Network Working Group Request for Comments: 4242 Category: Standards Track University of Southampton B. Volz Cisco Systems, Inc.

Category: Standards Track September 2003

Expires: October 9, 2005 April 7, 2005

Category: Standards Track December 2007

Request for Comments: 2493 Category: Standards Track January 1999

Category: Standards Track October 2006

Category: Standards Track Cisco H. Tschofenig Nokia Siemens Networks August 2008

Use and Interpretation of HTTP Version Numbers

Network Working Group Request for Comments: December IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6

XDI Requirements and Use Cases

Copyright (C) The Internet Society (2001). All Rights Reserved.

Network Working Group. Category: Standards Track February SIEVE Filtering: Spamtest and VirusTest Extensions

Network Working Group. Obsoletes: draft-ietf-dhc-new-opt-msg-00.txt June 2000 Expires December 2000

Category: Standards Track June Requesting Attributes by Object Class in the Lightweight Directory Access Protocol (LDAP) Status of This Memo

C. Martin ipath Services February A Policy Control Mechanism in IS-IS Using Administrative Tags

Network Working Group. Category: Standards Track September 2003

E. Lewis ARIN September 23, KEY RR Secure Entry Point Flag draft-ietf-dnsext-keyrr-key-signing-flag-09. Status of this Memo

Request for Comments: 3578 Category: Standards Track dynamicsoft J. Peterson NeuStar L. Ong Ciena August 2003

Network Working Group. Category: Standards Track Juniper Networks August 2008

Category: Standards Track Cisco Systems, Inc January The Secure Shell (SSH) Session Channel Break Extension

Category: Standards Track June 2006

Updates: 2409 May 2005 Category: Standards Track. Algorithms for Internet Key Exchange version 1 (IKEv1)

Request for Comments: 4571 Category: Standards Track July 2006

Network Working Group. Category: Standards Track <draft-aboba-radius-iana-03.txt> 30 March 2003 Updates: RFC IANA Considerations for RADIUS

Request for Comments: 3934 Updates: 2418 October 2004 BCP: 94 Category: Best Current Practice

Network Working Group. Category: Standards Track July 2007

Request for Comments: May 2007

J. Basney, NCSA Category: Experimental October 10, MyProxy Protocol

Network Working Group. Category: Standards Track Cisco Systems May 2007

Expires: February 25, 2004 August 27, Using the NETCONF Configuration Protocol over Secure Shell (SSH) draft-wasserman-netconf-over-ssh-00.

Network Working Group Request for Comments: August Address-Prefix-Based Outbound Route Filter for BGP-4

Request for Comments: 3306 Category: Standards Track Microsoft August 2002

Network Working Group Request for Comments: 2514 Category: Standards Track Cisco Systems K. Tesink Bellcore Editors February 1999

Request for Comments: 5179 Category: Standards Track May 2008

Network Working Group. Cisco Systems June 2007

Network Working Group. N. Williams Sun Microsystems June 2006

Multi-Server Based Namespace Data Management of Resource Namespace Service

Request for Comments: 4509 Category: Standards Track May Use of SHA-256 in DNSSEC Delegation Signer (DS) Resource Records (RRs)

Feb :33 draft-glenn-id-sensor-alert-mib-01.txt Page 1

Category: Standards Track LabN Consulting, LLC July 2008

Network Working Group Request for Comments: January IP Payload Compression Using ITU-T V.44 Packet Method

Request for Comments: 4142 Category: Standards Track Nine by Nine November 2005

Network Working Group. Category: Standards Track September 2006

Authentication, Authorization and Accounting Requirements for the Session Initiation Protocol

Request for Comments: 4633 Category: Experimental August 2006

Request for Comments: 3007 Updates: 2535, 2136 November 2000 Obsoletes: 2137 Category: Standards Track. Secure Domain Name System (DNS) Dynamic Update

Network Working Group Request for Comments: 4432 March 2006 Category: Standards Track

Network Working Group. BCP: 131 July 2007 Category: Best Current Practice

Request for Comments: January 2007

Network Working Group Request for Comments: 4424 February 2006 Updates: 4348 Category: Standards Track

Network Working Group. Category: Informational Comcast J. Paugh Nominum, Inc. September 2007

Category: Standards Track September MIB Textual Conventions for Uniform Resource Identifiers (URIs)

Network Working Group Request for Comments: 4869 Category: Informational May Suite B Cryptographic Suites for IPsec. Status of This Memo

Request for Comments: 2393 Category: Standards Track Hi/fn R. Pereira TimeStep M. Thomas AltaVista Internet December 1998

Network Working Group Request for Comments: 4558 Category: Standards Track Cisco Systems D. Papadimitriou Alcatel June 2006

Network Working Group Request for Comments: 4143 Category: Standards Track Brandenburg November 2005

Category: Informational March Portable Font Resource (PFR) - application/font-tdpfr MIME Sub-type Registration

Network Working Group. Intended status: Standards Track Columbia U. Expires: March 5, 2009 September 1, 2008

Internet Engineering Task Force (IETF) Category: Standards Track. February 2011

Request for Comments: 4680 Updates: 4346 September 2006 Category: Standards Track

Network Working Group. Category: Informational June Intermediate System to Intermediate System (IS-IS) Extensions for Traffic Engineering (TE)

Request for Comments: Starent Networks A. Lior Bridgewater Systems K. Leung Cisco Systems October 2007

Network Working Group Request for Comments: 4573 Category: Standard Track July MIME Type Registration for RTP Payload Format for H.

Request for Comments: K. Norrman Ericsson June 2006

Category: Informational September A Suggested Scheme for DNS Resolution of Networks and Gateways

Request for Comments: 5079 Category: Standards Track December Rejecting Anonymous Requests in the Session Initiation Protocol (SIP)

Request for Comments: 3861 Category: Standards Track August 2004

Request for Comments: 2536 Category: Standards Track March DSA KEYs and SIGs in the Domain Name System (DNS)

Request for Comments: February Mobile IP Vendor/Organization-Specific Extensions

RFC 3173 IP Payload Compression Protocol September 2001

Network Working Group. Category: Informational May OSPF Database Exchange Summary List Optimization

Category: Standards Track August 2002

Network Working Group Request for Comments: 4603 Category: Informational Cisco Systems July Additional Values for the NAS-Port-Type Attribute

Category: Standards Track Redback Networks June 2008

OpenOffice Specification Sample

Request for Comments: 4759 Category: Standards Track Neustar Inc. L. Conroy Roke Manor Research November 2006

Category: Standards Track Juniper Networks E. Rosen Cisco Systems, Inc. August MPLS Upstream Label Assignment and Context-Specific Label Space

Request for Comments: 3566 Category: Standards Track Intel September The AES-XCBC-MAC-96 Algorithm and Its Use With IPsec

Network Working Group Request for Comments: Category: Standards Track August 2008

Author of previous version: B. Stewart November 2000

Category: Standards Track Microsoft May 2004

Category: Informational September 2004

Transcription:

Network Working Group Request for Comments: 3396 Updates: 2131 Category: Standards Track T. Lemon Nominum, Inc. S. Cheshire Apple Computer, Inc. November 2002 Status of this Memo Encoding Long Options in the Dynamic Host Configuration Protocol (DHCPv4) 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 (2002). All Rights Reserved. Abstract This document specifies the processing rules for Dynamic Host Configuration Protocol (DHCPv4) options that appear multiple times in the same message. Multiple instances of the same option are generated when an option exceeds 255 octets in size (the maximum size of a single option) or when an option needs to be split apart in order to take advantage of DHCP option overloading. When multiple instances of the same option appear in the options, file and/or sname fields in a DHCP packet, the contents of these options are concatenated together to form a single option prior to processing. 1. Introduction This document updates RFC 2131 [3] by clarifying the rules for option concatenation specified in section 4.1. It is expected that the reader will be familiar with this portion of RFC 2131. The text in section 4.1 that reads "Options may appear only once, unless otherwise specified in the options document." should be considered as deleted. The DHCP protocol [3] specifies objects called "options" that are encoded in the DHCPv4 packet to pass information between DHCP protocol agents. These options are encoded as a one-byte type code, a one-byte length, and a buffer consisting of the number of bytes specified in the length, from zero to 255. Lemon & Cheshire Standards Track [Page 1]

However, in some cases it may be useful to send options that are longer than 255 bytes. RFC 2131 [3] specifies that when more than one option with a given type code appears in the DHCP packet, all such options should be concatenated together. It does not, however, specify the order in which this concatenation should occur. We specify here the ordering that MUST be used by DHCP protocol agents when sending options with more than 255 bytes. This method also MUST be used for splitting options that are shorter than 255 bytes, if for some reason the encoding agent needs to do so. DHCP protocol agents MUST use this method whenever they receive a DHCP packet containing more than one occurrence of a certain type of option. 2. Terminology DHCP Throughout this document, the acronym "DHCP" is used to refer to the Dynamic Host Configuration Protocol as specified in RFC 2131 [3] and RFC 2132 [4]. DHCPv4 We have used the term "DHCPv4" in the abstract for this document to distinguish between the DHCP protocol for IPv4 as defined in RFC 2131 and RFC 2132 and the DHCP protocol for IPv6, which, at the time that this document was written, was still under development. DHCP protocol agents This refers to any device on the network that sends or receives DHCP packets - any DHCP client, server or relay agent. The nature of these devices is not important to this specification. Encoding agent The DHCP protocol agent that is composing a DHCP packet to send. Decoding agent The DHCP protocol agent that is processing a DHCP packet it has received. Options DHCP options are collections of data with type codes that indicate how the options should be used. Options can specify information that is required for the DHCP protocol, IP stack configuration parameters for the client, information allowing the client to rendezvous with DHCP servers, and so on. Lemon & Cheshire Standards Track [Page 2]

Option overload The DHCP packet format is based on the BOOTP packet format defined in RFC 951 [1]. When used by DHCP protocol agents, BOOTP packets have three fields that can contain options. These are the optional parameters field, the sname field, and the filename field. The DHCP options specification [4] defines the DHCP Overload option, which specifies which of these three fields is actually being used in any given DHCP message to store DHCP options. 3. Requirements Language In this document, the key words "MAY", "MUST, "MUST NOT", "OPTIONAL", "RECOMMENDED", "SHOULD", and "SHOULD NOT", are to be interpreted as described in BCP 14, RFC 2119 [2]. 4. Applicability This specification applies when a DHCP agent is encoding a packet containing options, where some of those options must be broken into parts. This need can occur for two reasons. First, it can occur because the value of an option that needs to be sent is longer than 255 bytes. In this case, the encoding agent MUST follow the algorithm specified here. It can also occur because there is not sufficient space in the current output buffer to store the option, but there is space for part of the option, and there is space in another output buffer for the rest. In this case, the encoding agent MUST either use this algorithm or not send the option at all. This specification also applies in any case where a DHCP protocol agent has received a DHCP packet that contains more than one instance of an option of a given type. In this case, the agent MUST concatenate these separate instances of the same option in the way that we specify here. This option updates the Dynamic Host Configuration Protocol [3] and DHCP Options and BOOTP vendor extensions [4] documents. However, because many currently-deployed DHCP protocol agents do not implement option concatenation, DHCP protocol agents should be careful not to transmit split options unless either it will not matter if the recipient cannot correctly reassemble the options, or it is certain that the recipient implements concatenation. Let us divide all DHCP options into two categories - those that, by definition, require implementation of the mechanisms defined in this document, and those that do not. We will refer to the former as concatenation-requiring options, and the latter as nonconcatenation-requiring options. In order for an option to be a Lemon & Cheshire Standards Track [Page 3]

concatenation-requiring option, the protocol specification that defines that option must require implementation of option splitting and option concatenation as described in this document, by specifically referencing this document. A DHCP protocol agent SHOULD NOT split an option as described in this document unless it has no choice, or it knows that its peer can properly handle split options. A peer is assumed to properly handle split options if it has provided or requested at least one concatenation-requiring option. Alternatively, the administrator of the agent generating the option can specifically configure the agent to assume that the recipient can correctly concatenate options split as described in this document. Some implementors may find it easiest to only split concatenationrequiring options, and never split non-concatenation-requiring options. This is permissible. However, an implementation which supports any concatenation-requiring option MUST be capable of concatenating received options for both concatenation-requiring and non-concatenation-requiring options. No restrictions apply to option concatenation when a DHCP agent receives a DHCP message. Any DHCP protocol agent that implements the mechanisms described in this document can assume that when it receives two options of the same type, it should concatenate them. 5. The Aggregate Option Buffer DHCP options can be stored in the DHCP packet in three separate portions of the packet. These are the optional parameters field, the sname field, and the file field, as described in RFC 2131 [3]. This complicates the description of the option splitting mechanism because there are three separate fields into which split options may be placed. To further complicate matters, an option that doesn t fit into one field can t overlap the boundary into another field - the encoding agent must instead break the option into two parts and store one part in each buffer. To simplify this discussion, we will talk about an aggregate option buffer, which will be the aggregate of the three buffers. This is a logical aggregation - the buffers MUST appear in the locations in the DHCP packet described in RFC 2131 [3]. The aggregate option buffer is made up of the optional parameters field, the file field, and the sname field, in that order. Lemon & Cheshire Standards Track [Page 4]

WARNING: This is not the physical ordering of these fields in the DHCP packet. Options MUST NOT be stored in the aggregate option buffer in such a way that they cross either boundary between the three fields in the aggregate buffer. The encoding agent is free to choose to use either or both the sname field and file field. If the encoding agent does not choose to use either or both of these two fields, then they MUST NOT be considered part of the aggregate option buffer in that case. 6. Encoding Agent Behavior Encoding agents decide to split options based on the reasons we have described in the preceding section entitled "applicability". Options can be split on any octet boundary. No split portion of an option that has been split can contain more than 255 octets. The split portions of the option MUST be stored in the aggregate option buffer in sequential order - the first split portion MUST be stored first in the aggregate option buffer, then the second portion, and so on. The encoding agent MUST NOT attempt to specify any semantic information based on how the option is split. Note that because the aggregate option buffer does not represent the physical ordering of the DHCP packet, if an option were split into three parts and each part went into one of the possible option fields, the first part would go into the optional parameters field, the second part would go into the file field, and the third part would go into the sname field. This maintains consistency with section 4.1 of RFC 2131 [3]. Each split portion of an option MUST be stored in the aggregate option buffer as if it were a normal variable-length option as described in RFC 2132 [4]. The length fields of each split portion of the option MUST add up to the total length of the option data. For any given option being split, the option code field in each split portion MUST be the same. 7. Decoding Agent Behavior When a decoding agent is scanning an incoming DHCP packet s option buffer and finds two or more options with the same option code, it MUST consider them to be split portions of an option as described in the preceding section. Lemon & Cheshire Standards Track [Page 5]

In the case that a decoding agent finds a split option, it MUST treat the contents of that option as a single option, and the contents MUST be reassembled in the order that was described above under encoding agent behavior. The decoding agent should ensure that when the option s value is used, any alignment issues that are particular to the machine architecture on which the decoding agent is running are accounted for - there is no requirement that the encoding agent align the options in any particular way. There is no semantic meaning to where an option is split - the encoding agent is free to split the option at any point, and the decoding agent MUST reassemble the split option parts into a single object, and MUST NOT treat each split portion of the option as a separate object. 8. Example Consider an option, Bootfile name (option code 67), with a value of "/diskless/foo". Normally, this would be encoded as a single option, as follows: +----+----+---+---+---+---+---+---+---+---+---+---+---+---+---+ 67 13 / d i s k l e s s / f o o +----+----+---+---+---+---+---+---+---+---+---+---+---+---+---+ If an encoding agent needed to split the option in order to fit it into the option buffer, it could encode it as two separate options, as follows, and store it in the aggregate option buffer in the following sequence: +----+---+---+---+---+---+---+---+---+ 67 7 / d i s k l e +----+---+---+---+---+---+---+---+---+ +----+---+---+---+---+---+---+---+ 67 6 s s / f o o +----+---+---+---+---+---+---+---+ 9. Security Considerations This document raises no new security issues. Potential exposures to attack in the DHCP protocol are discussed in section 7 of the DHCP protocol specification [3] and in Authentication for DHCP Messages [5]. Lemon & Cheshire Standards Track [Page 6]

Note that the authentication option itself can be split; in such cases implementations must be careful when setting the authentication field to zero (prior to generation or verification of the MAC) as it may be split across multiple options. 10. References 10.1. Normative References [1] Croft, W. and J. Gilmore, "BOOTSTRAP PROTOCOL (BOOTP)", RFC 951, September 1985. [2] Bradner, S., "Key words for use in RFCs to indicate requirement levels", BCP 14, RFC 2119, March 1997. [3] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, March 1997. [4] Alexander, S. and Droms, R., "DHCP Options and BOOTP Vendor Extensions", RFC 2132, March 1997. 10.2. Informative References [5] Droms, R. and W. Arbaugh, "Authentication for DHCP Messages", RFC 3118, June 2001. 11. Intellectual Property Statement The IETF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on the IETF s procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification can be obtained from the IETF Secretariat. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director. Lemon & Cheshire Standards Track [Page 7]

12. Authors Addresses Ted Lemon Nominum, Inc. 2385 Bay Road Redwood City, CA 94043 USA EMail: mellon@nominum.com Stuart Cheshire Apple Computer, Inc. 1 Infinite Loop Cupertino California 95014 USA Phone: +1 408 974 3207 EMail: rfc@stuartcheshire.org Lemon & Cheshire Standards Track [Page 8]

13. Full Copyright Statement Copyright (C) The Internet Society (2002). 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. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society. Lemon & Cheshire Standards Track [Page 9]