Dynamic Host Configuration A. Gregory Rabil Internet-Draft Jagornet Technologies Intended status: Standards Track May 20, 2009 Expires: November 21, 2009 XML Configuration format for DHCPv6 Servers draft-rabil-dhc-dhcpv6-xmlconfig-00 Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on November 21, 2009. Copyright Notice Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents in effect on the date of publication of this document (http://trustee.ietf.org/license-info). Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Abstract This memo describes an Extensible Markup Language (XML) schema for specifying configuration information for Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Servers. Rabil Expires November 21, 2009 [Page 1] Internet-Draft XML for DHCPv6 May 2009 Requirements Language 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 [RFC2119]. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Configuration Elements . . . . . . . . . . . . . . . . . . . . 3 2.1. dhcpV6ServerConfig root element . . . . . . . . . . . . . 3 2.2. serverIdOption . . . . . . . . . . . . . . . . . . . . . . 4 2.3. Options . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3.1. configOptionsType . . . . . . . . . . . . . . . . . . 4 2.3.2. genericOptionsType . . . . . . . . . . . . . . . . . . 5 2.3.3. optionsDefType . . . . . . . . . . . . . . . . . . . . 5 2.4. Policies . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.4.1. policiesType . . . . . . . . . . . . . . . . . . . . . 6 2.4.2. policy . . . . . . . . . . . . . . . . . . . . . . . . 6 2.5. Links . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.5.1. linksType . . . . . . . . . . . . . . . . . . . . . . 6 2.5.2. link . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.6. Filters . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.6.1. filtersType . . . . . . . . . . . . . . . . . . . . . 7 2.6.2. filter . . . . . . . . . . . . . . . . . . . . . . . . 7 2.7. Pools . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.7.1. poolsType . . . . . . . . . . . . . . . . . . . . . . 7 2.7.2. pool . . . . . . . . . . . . . . . . . . . . . . . . . 7 3. The Schema Definition . . . . . . . . . . . . . . . . . . . . 8 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 5. Security Considerations . . . . . . . . . . . . . . . . . . . 24 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 24 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 25 7.1. Normative References . . . . . . . . . . . . . . . . . . . 25 7.2. Informative References . . . . . . . . . . . . . . . . . . 25 Appendix A. An Appendix . . . . . . . . . . . . . . . . . . . . . 25 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 25 Rabil Expires November 21, 2009 [Page 2] Internet-Draft XML for DHCPv6 May 2009 1. Introduction This document defines an Extensible Markup Language (XML) schema which can be used as a standard configuration format for Dynamic Configuration Protocol for IPv6 (DHCPv6) Servers. Both stateful DHCPv6 [RFC3315] and stateless DHCPv6 [RFC3736] servers require configuration information to operate, including such information as network links, prefixes, and options. Most of this configuration information will be common among various server implementations. This XML schema aims to define a common set of elements and attributes for this configuration data. The benefits of a standard configuration file format include the following: o Provides support for better management tools o Simplifies management of heterogeneous environments o Simplifies migration between different implementations XML is chosen as the configuration data format for the following reasons: o XML tools and libraries are widely available o Natural representation of hierarchical data model o Extensible to support future work o Supports transformation to other formats using Extensible Stylesheet Language Transformation (XSLT) The combination of a standard configuration format, as well as the choice of XML for the data itself, may also allow for use with NETCONF. Information on the use of XML in IETF protocols can also be found in [RFC3470]. 2. Configuration Elements 2.1. dhcpV6ServerConfig root element The root element for the DHCPv6 server configuration is the 'dhcpv6ServerConfig' element. This root element is a complex type, which contains five subelements. Each subelement has a corresponding type definition, which specifies further subelements of the server configuration. Rabil Expires November 21, 2009 [Page 3] Internet-Draft XML for DHCPv6 May 2009 o serverIdOption - This element is required because a DHCPv6 server must include this option in any reply packets. o options - This element contains global configuration options for the DHCPv6 server to send to clients. o policies - This element contains global policies to configure implementation-specific behavior for the DHCPv6 server. o filters - This element contains global filters to configure options for the DHCPv6 server to send to specific clients defined by the filter. o links - This element contains the definition and configuration of network links served by the DHCPv6 server. 2.2. serverIdOption The 'serverIdOption' element is an example of a standard option that is derived from one of the standard option types defined by this schema. Specifically, the 'serveridOption' extends from the 'opaqueDataOptionType', adding an attribute with a fixed value of two(2), as defined by [RFC3315] for the Server Identifier option. The 'opaqueDataOptionType' defines a single 'opaqueData' element. The 'opaqueData' element definition allows the data to be specified as either an ASCII string, or a hexadecimal string representing the binary data. See the section on the 'opaqueDataOptionType' for more information. 2.3. Options Options are DHCPv6 options as defined by [RFC3315], as well as other options defined for DHCPv6 by the Internet Association for Assigned Numbers (IANA). 2.3.1. configOptionsType The 'options' element is defined by the 'configOptionsType'. The 'configOptionsType' defines those standard DHCPv6 options that are designed to be sent from the server to the client, such as domain name and DNS servers. Most of these standard options are derived from one of the base option types defined by the schema. The standard base option types are defined in section 2.3.3. The 'configOptionsType' also includes an 'otherOptions' element for handling new or experimental options. Rabil Expires November 21, 2009 [Page 4] Internet-Draft XML for DHCPv6 May 2009 2.3.2. genericOptionsType The 'otherOptions' element is defined by the 'genericOptionsType'. The 'genericOptionsType' contains one or more 'optionDef' elements. 2.3.3. optionsDefType The 'optionDef' element is defined by the 'optionDefType'. The 'optionsDefType' contains two attributes and one of the standard base option type elements. The 'code' attribute is required to specify the DHCPv6 option code. The 'name' attribute is optionally used to provide a name for the DHCPv6 option. The standard base option types include the following: o unsignedByteOptionType - a single 8-bit unsigned number o unsignedShortOptionType - a single 16-bit unsigned number o unsignedShortListOptionType - a list/array of 16-bit unsigned numbers o unsignedIntOptionType - a single 32-bit unsigned number o stringOptionType - a string of ASCII text o ipAddressOptionType - a single IPv6 address o ipAddressListOptionType - a list/array of IPv6 addresses o domainNameOptionType - a single domain name string o domainNameListOptionType - a list/array of domain name strings o opaqueDataOptionType - a single opaque data, which may be specified as a string of hex bytes or as a string of ASCII text o opaqueDataListOptionType - a list/array of opaque data objects Each of these types provides the basis for standard options defined in the schema, and for any new or experimental options that are yet to be defined. 2.4. Policies Policies provide a mechanism for configuring parameters which may control the DHCPv6 server behavior. Rabil Expires November 21, 2009 [Page 5] Internet-Draft XML for DHCPv6 May 2009 2.4.1. policiesType The 'policies' element is defined by the 'policiesType'. The 'policiesType' contains one or more 'policy' elements. 2.4.2. policy The 'policy' element contains two elements, 'name' and 'value'. The name and value pair are used to configure policies to control server behavior. Policies are defined by the schema in order to support vendor specific extensions. Policy names and supported values must be defined by each implementation. 2.5. Links A link is used to define configuration information for clients on a particular IPv6 network link. The client link is used as described in section 11 of [RFC3315]. This configuration element then encapsulates other configuration data to be used for clients on this link. Links may only be defined at the global scope. 2.5.1. linksType The 'links' element is defined by the 'linksType'. The 'linksType' contains one or more 'link' elements. 2.5.2. link The 'link' element contains 'name' and 'address' elements for defining the link itself. The remaining elements contained within a link are used to define server configuration parameters for clients on the link. These elements include the options and policies defined above as well as filters and pools. 2.6. Filters A filter is used to define configuration information for a subset of clients as defined by some criteria. The clients are matched based on a set of expressions which are defined by either an option or custom expression. An option expression simply matches all or part of an option supplied by the client. A custom expression is used for implementation specific behavior. Any clients which match all expressions are then applicable for the data contained within the filter. Filters can be defined at either the global scope, or within a link, and also within a pool (see next section), depending upon support provided by the server implementation. Rabil Expires November 21, 2009 [Page 6] Internet-Draft XML for DHCPv6 May 2009 2.6.1. filtersType The 'filters' element is defined by the 'filtersType'. The 'filtersType' contains one or more 'filter' elements. 2.6.2. filter The 'filter' element contains 'name' and 'filterExpressions' elements for defining the filter itself. The remaining elements contained within a filter are used to define server configuration parameters for clients which match the filter. These elements include the options and policies defined above. 2.6.2.1. filterExpressionsType The 'filterExpressions' element is defined by the 'filterExpressionsType'. The 'filtersExpressionsType' contains one or more 'filterExpression' elements. 2.6.2.2. filterExpression The 'filterExpression' element contains either an 'optionExpression' element or a 'customExpression' element. An 'optionExpression' is formed by extending the 'optionDefType' defined above with an 'operator' attribute to form the expression. That is, an option expression is simply a generic option with an operator which defines the condition to match the value supplied in the option. By default, the operator is "equals", such that the value must match exactly. Other operators are defined by the schema for forming conditions on something other than an exact match. 2.7. Pools A pool is used to define a set of addresses or prefixes and associated options to be used by the server for address assignment or prefix delegation [RFC3363]. Pools can be defined only within links. 2.7.1. poolsType The 'pools' element is defined by the 'poolsType'. The 'poolsType' contains one or more 'pool' elements. 2.7.2. pool The 'pool' element contains 'type' and 'range' elements for defining the pool itself. The remaining elements contained within a pool are used to define server configuration parameters for clients in the pool. These elements include the options, policies and filters Rabil Expires November 21, 2009 [Page 7] Internet-Draft XML for DHCPv6 May 2009 defined above. The 'type' element supports three values defined by the schema for configuring non-temporary addresses, temporary addresses, and prefixes. The contents and syntax of the 'range' are implementation specific for each of the supported types. 3. The Schema Definition DHCPv6 Server Configuration Schema The configuration options are options that have registered codes with IANA and are defined by RFC's. This list includes only those options that can be configured for the DHCPv6 server to provide to clients. Other options are defined below for use in forming filters (see below). Rabil Expires November 21, 2009 [Page 8] Internet-Draft XML for DHCPv6 May 2009 A generic policy type, which is simply a name-value pair. Policies are used to configure implementation-specific behavior within the DHCP server. A filter is used to define configuration parameters for specific classes of clients. The optionExpressions can be used to define the filter by matching one or more options from the received message. Rabil Expires November 21, 2009 [Page 10] Internet-Draft XML for DHCPv6 May 2009 A link is used to define configuration parameters for client on a specific link. The link is determined by the server according to section 11 of RFC 3315. If the message is received directly and the source address is link-local, then the client is on the link attached to the server interface which received the message. If the message is received directly and the source address is not link-local, then the client is on the link identified by the source address. If the message is received from a relay agent, then the client is on the link identified by the link-address of the Relay-Forward message. A pool is used to defined a pool of addresses or prefixes (for Prefix-Delegation) and associated configuration parameters for those addresses or prefixes. The type element identifies the type of pool, which can be on of three values. 1. non-temporary: addresses available for IA_NA requests from clients 2. Rabil Expires November 21, 2009 [Page 11] Internet-Draft XML for DHCPv6 May 2009 temporary: addresses available for IA_TA requests from clients 3. prefix: prefixes available for IA_PD requests from requesting routers The type of pool dictates the acceptable values for the range element. The type of pool, which can be one of the following values non-temporary: addresses available for IA_NA requests from clients temporary: addresses available for IA_TA requests from clients prefix: prefixes available for IA_PD requests from requesting routers Rabil Expires November 21, 2009 [Page 12] Internet-Draft XML for DHCPv6 May 2009 Opaque data can be specified as either ASCII text or as binary data using hex characters for each byte. Operators available for forming optionExpressions for use in filterExpressions. Rabil Expires November 21, 2009 [Page 13] Internet-Draft XML for DHCPv6 May 2009 A filterExpression is formed from one or more optionExpressions or customExpressions which are logically ANDed together to form the match. An optionExpression is the combination of a generic option and an operator for forming the match. Rabil Expires November 21, 2009 [Page 14] Internet-Draft XML for DHCPv6 May 2009 Rabil Expires November 21, 2009 [Page 16] Internet-Draft XML for DHCPv6 May 2009 Rabil Expires November 21, 2009 [Page 17] Internet-Draft XML for DHCPv6 May 2009 Rabil Expires November 21, 2009 [Page 18] Internet-Draft XML for DHCPv6 May 2009 Rabil Expires November 21, 2009 [Page 19] Internet-Draft XML for DHCPv6 May 2009 Rabil Expires November 21, 2009 [Page 20] Internet-Draft XML for DHCPv6 May 2009 Rabil Expires November 21, 2009 [Page 21] Internet-Draft XML for DHCPv6 May 2009 Rabil Expires November 21, 2009 [Page 22] Internet-Draft XML for DHCPv6 May 2009 Rabil Expires November 21, 2009 [Page 23] Internet-Draft XML for DHCPv6 May 2009 4. IANA Considerations This document makes no request of IANA. Note to RFC Editor: this section may be removed on publication as an RFC. 5. Security Considerations Security issues related to DHCP are described in [RFC3315], [RFC3633] and [RFC3736]. DHCPv6 servers which implement one or more of these RFCs would be subject to such security concerns. This memo describes an XML schema for standard configuration of DHCPv6 servers. Security considerations associated with this memo are restricted to the access rights of the administrator which may make changes to this configuration file. 6. Acknowledgements Rabil Expires November 21, 2009 [Page 24] Internet-Draft XML for DHCPv6 May 2009 7. References 7.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., and M. Carney, "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", RFC 3315, July 2003. [RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6", RFC 3633, December 2003. [RFC3736] Droms, R., "Stateless Dynamic Host Configuration Protocol (DHCP) Service for IPv6", RFC 3736, April 2004. 7.2. Informative References [RFC2629] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629, June 1999. Appendix A. An Appendix Author's Address A. Gregory Rabil Jagornet Technologies 35 Sagewood Drive, Suite 200 Malvern, Pennsylvania 19355 USA Phone: +1-610-450-4235 Fax: Email: greg.rabil@jagornet.com Rabil Expires November 21, 2009 [Page 25]