Network Working Group P. Wu Internet-Draft Tsinghua University Intended status: Standards Track Y. Lee Expires: October 30, 2012 Comcast Q. Sun China Telecom T. Lemon Nominum, Inc. April 28, 2012 Dynamic Host Configuration Protocol (DHCP) Options for Port Set Assignment draft-wu-dhc-port-set-option-00 Abstract Due to the exhaustion of global IPv4 address space, there are demands arising for IPv4 address sharing between end users. In such context, different users can employ the same address, but different ports. This document defines two DHCP options for assigning a set of ports to a device. One is used for allocating continuous port set, while the other is designed for non-continuous port set allocation. Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. 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." This Internet-Draft will expire on October 30, 2012. Copyright Notice Copyright (c) 2012 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 Wu, et al. Expires October 30, 2012 [Page 1] Internet-Draft DHCP Option for Port Set April 2012 (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 Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 4 3. DHCP Option Format . . . . . . . . . . . . . . . . . . . . . . 5 3.1. Continuous Port Set Option . . . . . . . . . . . . . . . . 5 3.2. Noncontinuous Port Set Option . . . . . . . . . . . . . . 5 4. Option Examples . . . . . . . . . . . . . . . . . . . . . . . 8 4.1. Continuous Port Set Option Example . . . . . . . . . . . . 8 4.2. Noncontinuous Port Set Option Example . . . . . . . . . . 8 5. Server Behavior . . . . . . . . . . . . . . . . . . . . . . . 10 6. Client Behavior . . . . . . . . . . . . . . . . . . . . . . . 11 7. Security Consideration . . . . . . . . . . . . . . . . . . . . 12 8. IANA Consideration . . . . . . . . . . . . . . . . . . . . . . 13 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 9.1. Normative References . . . . . . . . . . . . . . . . . . . 14 9.2. Informative References . . . . . . . . . . . . . . . . . . 14 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 15 Wu, et al. Expires October 30, 2012 [Page 2] Internet-Draft DHCP Option for Port Set April 2012 1. Introduction Due to the exhaustion of global IPv4 address space, there are demands arising for IPv4 address sharing between end users, especially in IPv4-over-IPv6 scenarios. With address sharing, different users can employ the same address, but different port space. In such cases, during the address provisioning process, the port numbers a user device can use should be allocated as well. This document defines two DHCPv4 options to carry the specific parameters for port set assignment. The Continuous Port Set Option is used for allocating continuous port set, while the Noncontinuous Port Set Option is designed for non-continuous port set allocation. Wu, et al. Expires October 30, 2012 [Page 3] Internet-Draft DHCP Option for Port Set April 2012 2. 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 [RFC2119]. Wu, et al. Expires October 30, 2012 [Page 4] Internet-Draft DHCP Option for Port Set April 2012 3. DHCP Option Format The format and usage of the two options are defined in the following sections. 3.1. Continuous Port Set Option This option specifies the min and max port number assigned to a DHCP client, which determines a continuous port range. Figure 1 shows the bit-representation of the option. 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | OPTION_CON_PORT_SET | option-length | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | Min Port Number | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | Max Port Number | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ Figure 1 Continuous Port Set Option Format o option-code: OPTION_CON_PORT_SET(TBD1) o option-length: An 8-bit field indicating the length of the option excluding the 'Option Code' and the 'Option Length' fields. In this option, its value is 4 octets. o Min Port Number: The minimum port number in the port range. The value of Min Port Number MUST be within 0~65535. o Max Port Number: The maximum port number in the port range. The value of Max Port Number MUST be within 0~65535, and not smaller than the value of Min Port Number. Section 4.1 further explains the above parameters with an example. 3.2. Noncontinuous Port Set Option There can be requests for noncontinuous port set. This option caters to such requirements. In this option, the PSID is short for Port-Set ID which identifies a set of ports exclusively assigned to a device. It is defined in the MAP draft [I-D.mdt-softwire-mapping-address-and-port], and so are PSID Offset and the parameters of (a,k,m) used below. Figure 2 shows the format of the Noncontinuous Port Set Option. Wu, et al. Expires October 30, 2012 [Page 5] Internet-Draft DHCP Option for Port Set April 2012 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | OPTION_NCON_PORT_SET | option-length | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | PSID Offset | PSID length | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | PSID | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ Figure 2 Noncontinuous Port Set Option Format o option-code: OPTION_NCON_PORT_SET(TBD2) o option-length: An 8-bit field indicating the length of the option excluding the 'Option Code' and the 'Option Length' fields. In this option, the option-length is 4 octets. o PSID Offset(a): PSID Offset in MAP (also known as 'a'). The first 'a' bits in the port number are used to exclude the well-known ports, as well as to represent the port range index. If 'a' is larger than 0, ports 0 ~ 2^(16-a)-1 are reserved from allocation, and a port set has 2^a-1 port ranges with different port range index. If 'a' is 0, the whole port range (0~65535) can be assigned by the server, and the port set has only one port range and thus becomes continuous. o PSID length(k): The length of PSID in bits(also known as 'k'). After the first 'a' bits, there are k bits in the port number representing value of PSID. Subsequently, the address sharing ratio would be 2^k. o PSID: PSID in MAP. The PSID value algorithmically identifies a set of ports assigned to a CE. The first k-bits on the left of this 2-octets field is the PSID value. The remaining (16-k) bits on the right are padding zeros. In the context of noncontinuous port set, as is defined in Section 5.1.1 of [I-D.mdt-softwire-mapping-address-and-port], the port number consist of Port Range Index (A(j) in Figure 3, a bits), PSID (k bits) and Continuous Port Index (M(i) in Figure 3, m bits). For the readers' convenience, the format of the port number is included in this draft as well. i,j, A(j) and M(i) are the same as the definition in the GMA port mapping algorithm [I-D.mdt-softwire-mapping-address-and-port] 0 15 +---------------+-----------------+-------------------+ Wu, et al. Expires October 30, 2012 [Page 6] Internet-Draft DHCP Option for Port Set April 2012 | A (j) | PSID (K) | M (i) | +---------------+----------+------+-------------------+ |<--- a bits--->|<-----k bits---->|<----- m bits----->| Figure 3 Bit Representation of a GMA port number If PSID Offset is greater than 0(a > 0), j MUST be larger than 0, in order to exclude the system ports ([I-D.ietf-tsvwg-iana-ports]) or ports saved by SPs. If a = 0, j may be 0 to allow the provisioning of the reserved ports. With a given sharing ratio (2^k) and the PSID value, the ports assigned to a client can be calculated by increasing i and j continuously. Section 4.2 explains the algorithm further with an example. Wu, et al. Expires October 30, 2012 [Page 7] Internet-Draft DHCP Option for Port Set April 2012 4. Option Examples 4.1. Continuous Port Set Option Example A Continuous Port Set Option example with the assigned port range 4096~8191 is as follows. There is no specific requirement on the port number format. 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | OPTION_CON_PORT_SET | 4 | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | 4096 | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | 8191 | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ Example 1 Continuous Port Set Option Example 4.2. Noncontinuous Port Set Option Example Here is an example of Noncontinuous Port Set Option, with PSID offset 4, PSID length 10 and PSID value 1021 (i.e. a = 4, k = 10 and PSID = 1021): 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | OPTION_NCON_PORT_SET | 4 | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | 4 | 10 | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0| +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ Example 2 Noncontinuous Port Set Option Example (a = 4, k = 10, PSID = 1021) The first 10 bits of the last two octets(11 1111 1101) are the value of PSID. And the allocated port ranges are: Port-range-1 Port-range-2 PSID=1021| 8180, 8181, 8182, 8183, | 12276, 12277, 12278, 12279,| ... All these port ranges form the full port set. Wu, et al. Expires October 30, 2012 [Page 8] Internet-Draft DHCP Option for Port Set April 2012 The port set calculation procedure of a client when receiving the parameters of (a,k,PSID) follows the GMA algorithm proposed in section 5.1 of [I-D.mdt-softwire-mapping-address-and-port]. Two examples in [I-D.mdt-softwire-mapping-address-and-port] are illustrated here for the readers' convenience. For sharing ratio 1024, PSID offset a = 4 and PSID length k = 10 Port-range-1 Port-range-2 PSID=0 | 4096, 4097, 4098, 4099, | 8192, 8193, 8194, 8195, | ... PSID=1 | 4100, 4101, 4102, 4103, | 8196, 8197, 8198, 8199, | ... PSID=2 | 4104, 4105, 4106, 4107, | 8200, 8201, 8202, 8203, | ... PSID=3 | 4108, 4109, 4110, 4111, | 8204, 8205, 8206, 8207, | ... ... PSID=1023| 8188, 8189, 8190, 8191, | 12284, 12285, 12286, 12287,| ... Example 3: GMA calculation with a = 4, k = 10 For sharing ratio 64, PSID offset a = 0 and PSID length k = 6 Port-set PSID=0 | [ 0 - 1023] PSID=1 | [1024 - 2047] PSID=2 | [2048 - 3071] PSID=3 | [3072 - 4095] ... PSID=63 | [64512 - 65535] Example 4: GMA calculation with a = 0, k = 6 Wu, et al. Expires October 30, 2012 [Page 9] Internet-Draft DHCP Option for Port Set April 2012 5. Server Behavior The server will not reply with either of the two options until the client has explicitly listed one of them in the Parameter Request List(Option 55). Server MUST reply with Continuous Port Set Option if the client requested OPTION_CON_PORT_SET in its Parameter Request List. Server MUST reply with Noncontinuous Port Set Option if the client requested OPTION_NCON_PORT_SET in its Parameter Request List. The server MUST run an address & port-set pool which plays the same role as address pool in regular DHCP server. If the server supports Noncontinuous Port Set Option, address & port-set pool MUST follow the GMA-format port-set. The port-set assignment SHOULD be coupled with the address assignment process. Therefore server SHOULD assign the address and port set in the same DHCP messages. and the lease information for the address is applicable to the port-set as well. Wu, et al. Expires October 30, 2012 [Page 10] Internet-Draft DHCP Option for Port Set April 2012 6. Client Behavior The DHCP client applying for the a port-set MUST include either the OPTION_CON_PORT_SET or OPTION_NCON_PORT_SET code in the Parameter Request List (Option 55). If the client requests the OPTION_CON_PORT_SET, it will retrieve a Continuous Port Set Option and use the ports ranging from Min port number to Max port number. If the client requests OPTION_NCON_PORT_SET and retrieves a Noncontinuous Port Set Option, its port set follows the specific port number format defined in section 5.1.1 of MAP draft [I-D.mdt-softwire-mapping-address-and-port]. The client derives the PSID offset (a bits), PSID length (k bits) and the PSID from the option, and performs GMA to get the precise port set. The client renews or releases the DHCP lease with the port set. Wu, et al. Expires October 30, 2012 [Page 11] Internet-Draft DHCP Option for Port Set April 2012 7. Security Consideration This specification raises no particular security issues to the DHCPv4 protocol model. Wu, et al. Expires October 30, 2012 [Page 12] Internet-Draft DHCP Option for Port Set April 2012 8. IANA Consideration IANA is kindly requested to allocate DHCP option codes to the OPTION_CON_PORT_SET and OPTION_NCON_PORT_SET. Both codes should be added to the DHCP option code space. Wu, et al. Expires October 30, 2012 [Page 13] Internet-Draft DHCP Option for Port Set April 2012 9. References 9.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, March 1997. [RFC3046] Patrick, M., "DHCP Relay Agent Information Option", RFC 3046, January 2001. [RFC3527] Kinnear, K., Stapp, M., Johnson, R., and J. Kumarasamy, "Link Selection sub-option for the Relay Agent Information Option for DHCPv4", RFC 3527, April 2003. [RFC4925] Li, X., Dawkins, S., Ward, D., and A. Durand, "Softwire Problem Statement", RFC 4925, July 2007. 9.2. Informative References [I-D.ietf-tsvwg-iana-ports] Cotton, M., Eggert, L., Touch, J., Westerlund, M., and S. Cheshire, "Internet Assigned Numbers Authority (IANA) Procedures for the Management of the Service Name and Transport Protocol Port Number Registry", draft-ietf-tsvwg-iana-ports-10 (work in progress), February 2011. [I-D.mdt-softwire-mapping-address-and-port] Bao, C., Troan, O., Matsushima, S., Murakami, T., and X. Li, "Mapping of Address and Port (MAP)", draft-mdt-softwire-mapping-address-and-port-03 (work in progress), January 2012. Wu, et al. Expires October 30, 2012 [Page 14] Internet-Draft DHCP Option for Port Set April 2012 Authors' Addresses Peng Wu Tsinghua University Department of Computer Science, Tsinghua University Beijing 100084 P.R.China Phone: +86-10-6278-5822 Email: peng-wu@foxmail.com Yiu L. Lee Comcast One Comcast Center Philadelphia PA 19103 USA Phone: Email: yiu_lee@cable.comcast.com Qiong Sun China Telecom Room 708, No.118, Xizhimennei Street Beijing 100035 P.R.China Phone: +86-10-58552936 Email: sunqiong@ctbri.com.cn Ted Lemon Nominum, Inc. 2000 Seaport Blvd Redwood City 94063 USA Phone: +1-650-381-6000 Email: mellon@nominum.com Wu, et al. Expires October 30, 2012 [Page 15]