Network Working Group J. Hui Internet-Draft Arch Rock Corporation Intended status: Standards Track March 22, 2010 Expires: September 23, 2010 Simple DHCP for 6LoWPAN Networks draft-hui-6lowpan-dhcp-00 Abstract 6LoWPAN nodes may find it useful to utilize DHCPv6 to obtain configuration parameters. In addition to network-layer information that any IPv6 node may require, 6LoWPAN nodes may find DHCP useful for obtaining link-specific parameters such as short link addresses or 6LoWPAN header compression contexts. Both stateful and stateless configuration DHCP modes may be useful in 6LoWPAN networks. This document describes a simplified form of DHCPv6 for use in 6LoWPAN networks. 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 September 23, 2010. Copyright Notice Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved. Hui Expires September 23, 2010 [Page 1] Internet-Draft Simple DHCP for 6LoWPAN Networks March 2010 This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 4 2. Network Architecture . . . . . . . . . . . . . . . . . . . . . 4 3. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 4 4. 6LoWPAN-DHCP Client/Server Message Formats . . . . . . . . . . 5 5. 6LoWPAN-DHCP Relay Agent/Server Message Formats . . . . . . . 6 6. 6LoWPAN-DHCP Configuration Exchange . . . . . . . . . . . . . 7 7. 6LoWPAN-DHCP Relay Agent Behavior . . . . . . . . . . . . . . 7 7.1. Relaying a Client Message . . . . . . . . . . . . . . . . 8 7.2. Relaying a Reply Message . . . . . . . . . . . . . . . . . 8 8. 6LoWPAN-DHCP Options . . . . . . . . . . . . . . . . . . . . . 8 8.1. Identity Association for Non-temporary Address Option . . 8 8.2. IA Address Option . . . . . . . . . . . . . . . . . . . . 9 8.3. 6LoWPAN Short Address Option . . . . . . . . . . . . . . . 10 9. Example Messages . . . . . . . . . . . . . . . . . . . . . . . 11 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 11. Security Considerations . . . . . . . . . . . . . . . . . . . 11 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 12 13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12 13.1. Normative References . . . . . . . . . . . . . . . . . . . 12 13.2. Informative References . . . . . . . . . . . . . . . . . . 12 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 12 Hui Expires September 23, 2010 [Page 2] Internet-Draft Simple DHCP for 6LoWPAN Networks March 2010 1. Introduction As with any IPv6 network, 6LoWPAN nodes may require configuration parameters to effectively participate in the network and utilize services provided by other nodes, such as IPv6 addresses, prefix information, or a list of DNS servers. However, 6LoWPAN networks may also need to obtain link-specific configuration parameters. For example, IEEE 802.15.4 allows the use of 16-bit short link addresses that are not globally unique to reduce link-layer header overhead [ieee802154]. Additionally, the 6LoWPAN header compression format utilizes context information to efficiently compress IPv6 headers [I-D.ietf-6lowpan-hc]. DHCPv6 [RFC3315] is currently the most widely available approach to distributing and managing configuration information within a network. The introduction of DHCP relay agents makes it possible for a single DHCP server to service an entire 6LoWPAN network, even if the network is configured as a route-over network and operates over multiple IP hops. By using DHCPv6, 6LoWPAN networks can utilize the same infrastructure for managing configuration information as with any other IPv6 network. It is possible to re-use existing DHCPv6 options such DNS configuration options. In addition to managing configuration parameters, use of DHCPv6 provides additional opportunities. Because a DHCP server manages a central repository for IPv6 addresses, the same repository can be used to help ensure that no duplicate IPv6 addresses are in use among nodes that maintain a binding with the DHCP server. Duplicate Address Detection may be unnecessary if all 6LoWPAN nodes maintain DHCP bindings for any IPv6 addresses in use. A downside with DHCPv6 is that it was designed to be very general and extensible. The generality and extensibility can make DHCP prohibitively costly to implement within the resource constraints typical for 6LoWPAN networks. Furthermore, the method of discovering a DHCP server or relay agent requires the use of multicast messages, which are especially costly within 6LoWPAN networks. As a result, it is attractive to limit what DHCP mechanisms are used and utilize compact representations of DHCP messages. The remainder of this document species the use of a simple and compact DHCP protocol for use in 6LoWPAN networks, called 6LoWPAN- DHCP. The protocol supports a strict subset of DHCPv6 defined in [RFC3315]. Through stateless translation mechanisms implemented at DHCP relay agents, existing DHCPv6 servers may be used to communicate directly with 6LoWPAN-DHCP clients and relay agents. Hui Expires September 23, 2010 [Page 3] Internet-Draft Simple DHCP for 6LoWPAN Networks March 2010 1.1. 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]. 2. Network Architecture To efficiently support DHCPv6 in 6LoWPAN networks, all 6LoWPAN edge routers MUST implement either DHCP server or relay agent functionality on all 6LoWPAN interfaces. All 6LoWPAN edge routers must also subscribe to the ANY_6LOWPAN_DHCP_ROUTER_AND_AGENT anycast address. All 6LoWPAN routers MUST implement DHCP relay agent functionality on all 6LoWPAN interfaces. In a network connected by only a single edge router, implementing a DHCP server in the edge router is sufficient. In a network connected by multiple edge routers, implementing DHCP relay agent at the edge routers is needed to forward DHCP messages between the client and the DHCP server. 6LoWPAN routers forward all DHCP client messages to the ANY_6LOWPAN_DHCP_ROUTER_AND_AGENT anycast address. By using an anycast address, it is not necessary to explicitly configure relay agents with the specific address of another DHCP relay agent or server. Requiring all 6LoWPAN routers to provide DHCP relay agent functionality ensures that any 6LoWPAN node attempting to obtain configuration information can do so as long as the 6LoWPAN network itself is connected. Another benefit of doing so is it eliminates the need for multicast messages used to discover which nodes provide DHCP server or relay agent functionality. 3. Protocol Overview For simplicity, the only supported DHCP message types are Solicit, Rebind, Information-request, and Reply. As such, 6LoWPAN-DHCP clients do not maintain any state that identifies DHCP servers. Instead, a 6LoWPAN-DHCP client may request assignment of new addresses using a Solicit-Reply exchange or renew lifetimes of existing addresses using a Rebind-Reply exchange. To support Stateless DHCPv6 [RFC3736] in 6LoWPAN networks, 6LoWPAN-DHCP clients may also use Information-request exchanges. The basic protocol exchange for obtaining configuration parameters using these messages is identical to what is specified in [RFC3315]. A 6LoWPAN node wishing to obtain configuration information may send a Hui Expires September 23, 2010 [Page 4] Internet-Draft Simple DHCP for 6LoWPAN Networks March 2010 DHCP Solicit or Information-request message to a DHCP server or relay agent. If the destination is a DHCP relay agent, the relay agent then relays the client's message to a 6LoWPAN edge router using the ANY_6LOWPAN_DHCP_ROUTER_AND_AGENT anycast address. Eventually, a DHCP server will receive the client's DHCP Solicit message, to which the server responds using a DHCP Reply message. The DHCP Reply message will follow the same path through DHCP relay agents, if any exist, and then finally back to the DHCP client. When a node needs to refresh its DHCP binding, it sends a DHCP rebind message to the DHCP server. Because every 6LoWPAN router MUST implement DHCP relay agent functionality, a client SHOULD unicast any DHCP messages to a neighboring router. Unicast reduces the use of costly multicast transmissions and eliminates duplicate messages caused by multiple DHCP relay agents relaying the same DHCP message to the DHCP server. The specific router chosen may be the same as the default router. Other mechanisms for selecting a specific router is left out of scope. 6LoWPAN networks typically have limited communication resources (e.g. small frame sizes, limited energy, etc.). To respect those resource constraints, this document defines 6LoWPAN-DHCP, a simple and compact form of DHCPv6 for use within 6LoWPAN networks. 6LoWPAN-DHCP reduces the number of messages to only Solicit, Rebind, Information-request, and Reply. New compact options are defined to carry both network- layer and 6LoWPAN-specific configuration parameters. Being a strict subset of DHCPv6 makes simple translations with 6LoWPAN-DHCP possible. 4. 6LoWPAN-DHCP Client/Server Message Formats All 6LoWPAN-DHCP messages between clients and servers share the same fixed format header and a variable format area for options. Options are stored serially in the options field, with no padding between the options. Options are byte-aligned but are not aligned in any other way such as on 2 or 4 byte boundaries. The following diagram illustrates the format of 6LoWPAN-DHCP messages sent between clients and servers: Hui Expires September 23, 2010 [Page 5] Internet-Draft Simple DHCP for 6LoWPAN Networks March 2010 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type | transaction-id | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + client-identifier + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . options . . (variable) . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ msg-type Identifies the DHCP message type. transaction-id The transaction ID for this message exchange. client-identifier Used to carry an IEEE EUI-64 identifying a client between a client and a server. options Options carried in this message. The 6LoWPAN-DHCP message format builds on the client/server message formats found in [RFC3315]. The only difference is that 6LoWPAN-DHCP adds a client-identifier field. While [RFC3315] is designed for generality, supporting client-identifiers with arbitrary length, 6LoWPAN-DHCP clients MUST use a client identifier with a DUID based on an IEEE EUI-64 link-layer address. By making this assumption, 6LoWPAN-DHCP saves 8-octets in every message. 5. 6LoWPAN-DHCP Relay Agent/Server Message Formats Relay agents exchange messages with servers to relay messages between clients and servers that are not connected to the same link. Options are stored serially in the options field, with no padding between the options. Options are byte-aligned but are not aligned in any other way such as on 2 or 4 byte boundaries. The following diagram illustrates the format of 6LoWPAN-DHCP messages sent between relay agents and servers: Hui Expires September 23, 2010 [Page 6] Internet-Draft Simple DHCP for 6LoWPAN Networks March 2010 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type | | +-+-+-+-+-+-+-+-+ + . DHCP-relay-message . . (variable) . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ msg-type Identifies the DHCP message type. MUST be either RELAY-FORW (12) or RELAY-REPL (13). DHCP-relay-message In a Relay-forward message, the received message, relayed verbatim to the next relay agent or server; in a Relay-reply message, the message to be copied and relayed to the client whose link-local address is generated from the client-identifier field of the encapsulated Reply message. 6. 6LoWPAN-DHCP Configuration Exchange A client uses Solicit and Rebind messages during the normal life cycle of addresses. It uses Information-Request messages when it needs configuration information but no addresses. The client is responsible for creating IAs and requesting that a server assign IPv6 addresses to the IA. The client first creates an IA and assigns it an IAID. The client then transmits a Solicit message containing an IA option describing the IA. A server that can assign addresses to the IA responds to the client with a Reply message. For simplicity, 6LoWPAN-DHCP clients do not maintain state about DHCP servers. As a result, all Solicit and Reply messages implicitly include the Rapid Commit option and the client only terminates the waiting process as soon as a Reply message is received. Because 6LoWPAN-DHCP does not make use of multicast, a Solicit message should be routed to a single server and any Reply messages should only come from a single server under normal operation. 7. 6LoWPAN-DHCP Relay Agent Behavior The relay agent MAY be configured to use a list of other addresses assigned by the network administrator. If the relay agent has not Hui Expires September 23, 2010 [Page 7] Internet-Draft Simple DHCP for 6LoWPAN Networks March 2010 been explicitly configured, it MUST use the ANY_6LOWPAN_DHCP_ROUTER_AND_AGENT as the default. 7.1. Relaying a Client Message A 6LoWPAN-DHCP relay agent only forwards messages from other 6LoWPAN- DHCP clients. Unlike [RFC3315], 6LoWPAN-DHCP only supports a single relay hop between a 6LoWPAN-DHCP client and 6LoWPAN edge router. If the edge router is configured as a DHCPv6 relay agent, it MUST translate the message to the message formats defined in [RFC3315] before relaying to a [RFC3315] compliant relay agent or server. When a 6LoWPAN-DHCP relay agent receives a valid message to be relayed, it constructs a new Relay-forward message. The relay agent copies the received DHCP message (excluding any IP or UDP headers) into the DHCP-relay-message field of the new message. 7.2. Relaying a Reply Message The relay agent extracts the message from the DHCP-relay-message field and relays it to the link-local address generated from the client-identifier field of the encapsulated Reply message. 8. 6LoWPAN-DHCP Options 8.1. Identity Association for Non-temporary Address Option The Identity Association for Non-temporary Addresses option (IA_NA option) is used to carry an IA_NA, the parameters associated with the IA_NA, and the non-temporary addresses associated with the IA_NA. The format of the IA_NA option 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_IA_NA | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IAID | T2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . IA_NA-options . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Hui Expires September 23, 2010 [Page 8] Internet-Draft Simple DHCP for 6LoWPAN Networks March 2010 option-code OPTION_IA_NA (3) option-len 4 + length of IA_NA-options field. IAID The unique identifier for this IA_NA. T2 The time at which the client contacts any available server to extend the lifetimes of the addresses assigned to the IA_NA; T2 is a time duration relative to the current time expressed in units of minutes. IA_NA-options Options associated with this IA_NA. 8.2. IA Address Option The IA Address option is used to specify IPv6 addresses associated with an IA_NA. The IA Address option must be encapsulated in the Options field of an IA_NA option. The Options field encapsulates those options that are specific to this address. The format of the IA Address option 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_IAADDR | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | IPv6 address | + + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | preferred-lifetime | valid-lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . IAaddr-options . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code OPTION_IAADDR (5) Hui Expires September 23, 2010 [Page 9] Internet-Draft Simple DHCP for 6LoWPAN Networks March 2010 option-len 20 + length of IAaddr-options field. IPv6 address An IPv6 address. preferred-lifetime The preferred lifetime for the IPv6 address in the option, expressed in units of minutes. valid-lifetime The valid lifetime for the IPv6 address in the option, expressed in units of minutes. IAaddr-options Options associated with this address. 8.3. 6LoWPAN Short Address Option The 6LoWPAN Short Address option is used to specify an IEEE 802.15.4 short address associated with an IA_NA. The 6LoWPAN Short Address option must be encapsulated in the Options field of an IA_NA option. The format of the 6LoWPAN Short Address option 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_6LOWPAN_SADDR | option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | short-address | valid-lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code: OPTION_6LOWPAN_SADDR (TBD) option-len: 4 valid-lifetime The valid lifetime for the 6LoWPAN Short Address in the option, expressed in units of minutes. short-address: A 6LoWPAN short address. In a message sent by a client to a server, a value in the lifetime field indicates the client's preference for the lifetime. The client may send 0 if it has no preference for the lifetime. In a message sent by the server to a client, the client MUST use the value in the lifetime field for the lifetime. The value in the lifetime are the number of 10 second time units remaining. A 6LoWPAN Short Address option may appear only in an IA_NA option. At most one 6LoWPAN Address Option can appear in an IA_NA option. Hui Expires September 23, 2010 [Page 10] Internet-Draft Simple DHCP for 6LoWPAN Networks March 2010 9. Example Messages Solicit Message (58 octets): DHCP Header (12 octets) Elapsed Time Option (6 octets) IA_NA Option (8 octets) IA Addr (24 octets) 6LoWPAN Short Addr (8 octets) Rebind Message (58 Octets): DHCP Header (12 octets) Elapsed Time Option (6 octets) IA_NA Option (8 octets) IA Addr (24 octets) 6LoWPAN Short Addr (8 octets) Reply Message (52 Octets): DHCP Header (12 octets) IA_NA Option (8 octets) IA Addr (24 octets) 6LoWPAN Short Addr (8 octets) Relay-Solicit Message (59 octets): Relay Header (1 octet) DHCP Header (12 octets) Elapsed Time Option (6 octets) IA_NA Option (8 octets) IA Addr (24 octets) 6LoWPAN Short Addr (8 octets) Relay-Reply Message (59 octets): Relay Header (1 octet) DHCP Header (12 octets) IA_NA Option (8 octets) IA Addr (24 octets) 6LoWPAN Short Addr (8 octets) 10. IANA Considerations 11. Security Considerations Hui Expires September 23, 2010 [Page 11] Internet-Draft Simple DHCP for 6LoWPAN Networks March 2010 12. Acknowledgements 13. References 13.1. Normative References [I-D.ietf-6lowpan-hc] Hui, J. and P. Thubert, "Compression Format for IPv6 Datagrams in 6LoWPAN Networks", draft-ietf-6lowpan-hc-06 (work in progress), October 2009. [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. [RFC3736] Droms, R., "Stateless Dynamic Host Configuration Protocol (DHCP) Service for IPv6", RFC 3736, April 2004. 13.2. Informative References [ieee802154] IEEE Computer Society, "IEEE Std. 802.15.4-2006", October 2006. Author's Address Jonathan W. Hui Arch Rock Corporation 501 2nd St. Ste. 410 San Francisco, California 94107 USA Phone: +415 692 0828 Email: jhui@archrock.com Hui Expires September 23, 2010 [Page 12]