idnits 2.17.1 draft-wu-dhc-port-set-option-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (April 28, 2012) is 4379 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'RFC2131' is defined on line 336, but no explicit reference was found in the text == Unused Reference: 'RFC3046' is defined on line 339, but no explicit reference was found in the text == Unused Reference: 'RFC3527' is defined on line 342, but no explicit reference was found in the text == Unused Reference: 'RFC4925' is defined on line 346, but no explicit reference was found in the text ** Downref: Normative reference to an Informational RFC: RFC 4925 Summary: 1 error (**), 0 flaws (~~), 5 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group P. Wu 3 Internet-Draft Tsinghua University 4 Intended status: Standards Track Y. Lee 5 Expires: October 30, 2012 Comcast 6 Q. Sun 7 China Telecom 8 T. Lemon 9 Nominum, Inc. 10 April 28, 2012 12 Dynamic Host Configuration Protocol (DHCP) Options for Port Set 13 Assignment 14 draft-wu-dhc-port-set-option-00 16 Abstract 18 Due to the exhaustion of global IPv4 address space, there are demands 19 arising for IPv4 address sharing between end users. In such context, 20 different users can employ the same address, but different ports. 21 This document defines two DHCP options for assigning a set of ports 22 to a device. One is used for allocating continuous port set, while 23 the other is designed for non-continuous port set allocation. 25 Status of this Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at http://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on October 30, 2012. 42 Copyright Notice 44 Copyright (c) 2012 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (http://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Table of Contents 59 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 60 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 4 61 3. DHCP Option Format . . . . . . . . . . . . . . . . . . . . . . 5 62 3.1. Continuous Port Set Option . . . . . . . . . . . . . . . . 5 63 3.2. Noncontinuous Port Set Option . . . . . . . . . . . . . . 5 64 4. Option Examples . . . . . . . . . . . . . . . . . . . . . . . 8 65 4.1. Continuous Port Set Option Example . . . . . . . . . . . . 8 66 4.2. Noncontinuous Port Set Option Example . . . . . . . . . . 8 67 5. Server Behavior . . . . . . . . . . . . . . . . . . . . . . . 10 68 6. Client Behavior . . . . . . . . . . . . . . . . . . . . . . . 11 69 7. Security Consideration . . . . . . . . . . . . . . . . . . . . 12 70 8. IANA Consideration . . . . . . . . . . . . . . . . . . . . . . 13 71 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 72 9.1. Normative References . . . . . . . . . . . . . . . . . . . 14 73 9.2. Informative References . . . . . . . . . . . . . . . . . . 14 74 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 15 76 1. Introduction 78 Due to the exhaustion of global IPv4 address space, there are demands 79 arising for IPv4 address sharing between end users, especially in 80 IPv4-over-IPv6 scenarios. With address sharing, different users can 81 employ the same address, but different port space. In such cases, 82 during the address provisioning process, the port numbers a user 83 device can use should be allocated as well. 85 This document defines two DHCPv4 options to carry the specific 86 parameters for port set assignment. The Continuous Port Set Option 87 is used for allocating continuous port set, while the Noncontinuous 88 Port Set Option is designed for non-continuous port set allocation. 90 2. Requirements Language 92 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 93 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 94 document are to be interpreted as described in [RFC2119]. 96 3. DHCP Option Format 98 The format and usage of the two options are defined in the following 99 sections. 101 3.1. Continuous Port Set Option 103 This option specifies the min and max port number assigned to a DHCP 104 client, which determines a continuous port range. Figure 1 shows the 105 bit-representation of the option. 107 0 1 108 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 109 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 110 | OPTION_CON_PORT_SET | option-length | 111 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 112 | Min Port Number | 113 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 114 | Max Port Number | 115 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 117 Figure 1 Continuous Port Set Option Format 119 o option-code: OPTION_CON_PORT_SET(TBD1) 121 o option-length: An 8-bit field indicating the length of the option 122 excluding the 'Option Code' and the 'Option Length' fields. In 123 this option, its value is 4 octets. 125 o Min Port Number: The minimum port number in the port range. The 126 value of Min Port Number MUST be within 0~65535. 128 o Max Port Number: The maximum port number in the port range. The 129 value of Max Port Number MUST be within 0~65535, and not smaller 130 than the value of Min Port Number. 132 Section 4.1 further explains the above parameters with an example. 134 3.2. Noncontinuous Port Set Option 136 There can be requests for noncontinuous port set. This option caters 137 to such requirements. In this option, the PSID is short for Port-Set 138 ID which identifies a set of ports exclusively assigned to a device. 139 It is defined in the MAP draft 140 [I-D.mdt-softwire-mapping-address-and-port], and so are PSID Offset 141 and the parameters of (a,k,m) used below. Figure 2 shows the format 142 of the Noncontinuous Port Set Option. 144 0 1 145 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 146 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 147 | OPTION_NCON_PORT_SET | option-length | 148 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 149 | PSID Offset | PSID length | 150 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 151 | PSID | 152 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 154 Figure 2 Noncontinuous Port Set Option Format 156 o option-code: OPTION_NCON_PORT_SET(TBD2) 158 o option-length: An 8-bit field indicating the length of the option 159 excluding the 'Option Code' and the 'Option Length' fields. In 160 this option, the option-length is 4 octets. 162 o PSID Offset(a): PSID Offset in MAP (also known as 'a'). The first 163 'a' bits in the port number are used to exclude the well-known 164 ports, as well as to represent the port range index. If 'a' is 165 larger than 0, ports 0 ~ 2^(16-a)-1 are reserved from allocation, 166 and a port set has 2^a-1 port ranges with different port range 167 index. If 'a' is 0, the whole port range (0~65535) can be 168 assigned by the server, and the port set has only one port range 169 and thus becomes continuous. 171 o PSID length(k): The length of PSID in bits(also known as 'k'). 172 After the first 'a' bits, there are k bits in the port number 173 representing value of PSID. Subsequently, the address sharing 174 ratio would be 2^k. 176 o PSID: PSID in MAP. The PSID value algorithmically identifies a 177 set of ports assigned to a CE. The first k-bits on the left of 178 this 2-octets field is the PSID value. The remaining (16-k) bits 179 on the right are padding zeros. 181 In the context of noncontinuous port set, as is defined in Section 182 5.1.1 of [I-D.mdt-softwire-mapping-address-and-port], the port number 183 consist of Port Range Index (A(j) in Figure 3, a bits), PSID (k bits) 184 and Continuous Port Index (M(i) in Figure 3, m bits). For the 185 readers' convenience, the format of the port number is included in 186 this draft as well. i,j, A(j) and M(i) are the same as the definition 187 in the GMA port mapping algorithm 188 [I-D.mdt-softwire-mapping-address-and-port] 190 0 15 191 +---------------+-----------------+-------------------+ 192 | A (j) | PSID (K) | M (i) | 193 +---------------+----------+------+-------------------+ 194 |<--- a bits--->|<-----k bits---->|<----- m bits----->| 196 Figure 3 Bit Representation of a GMA port number 198 If PSID Offset is greater than 0(a > 0), j MUST be larger than 0, in 199 order to exclude the system ports ([I-D.ietf-tsvwg-iana-ports]) or 200 ports saved by SPs. If a = 0, j may be 0 to allow the provisioning 201 of the reserved ports. With a given sharing ratio (2^k) and the PSID 202 value, the ports assigned to a client can be calculated by increasing 203 i and j continuously. Section 4.2 explains the algorithm further 204 with an example. 206 4. Option Examples 208 4.1. Continuous Port Set Option Example 210 A Continuous Port Set Option example with the assigned port range 211 4096~8191 is as follows. There is no specific requirement on the 212 port number format. 214 0 1 215 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 216 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 217 | OPTION_CON_PORT_SET | 4 | 218 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 219 | 4096 | 220 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 221 | 8191 | 222 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 224 Example 1 Continuous Port Set Option Example 226 4.2. Noncontinuous Port Set Option Example 228 Here is an example of Noncontinuous Port Set Option, with PSID offset 229 4, PSID length 10 and PSID value 1021 (i.e. a = 4, k = 10 and PSID = 230 1021): 232 0 1 233 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 234 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 235 | OPTION_NCON_PORT_SET | 4 | 236 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 237 | 4 | 10 | 238 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 239 | 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0| 240 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 242 Example 2 Noncontinuous Port Set Option Example (a = 4, k = 10, PSID 243 = 1021) 245 The first 10 bits of the last two octets(11 1111 1101) are the value 246 of PSID. And the allocated port ranges are: 248 Port-range-1 Port-range-2 249 PSID=1021| 8180, 8181, 8182, 8183, | 12276, 12277, 12278, 12279,| ... 251 All these port ranges form the full port set. 253 The port set calculation procedure of a client when receiving the 254 parameters of (a,k,PSID) follows the GMA algorithm proposed in 255 section 5.1 of [I-D.mdt-softwire-mapping-address-and-port]. Two 256 examples in [I-D.mdt-softwire-mapping-address-and-port] are 257 illustrated here for the readers' convenience. 259 For sharing ratio 1024, PSID offset a = 4 and PSID length k = 10 261 Port-range-1 Port-range-2 262 PSID=0 | 4096, 4097, 4098, 4099, | 8192, 8193, 8194, 8195, | ... 263 PSID=1 | 4100, 4101, 4102, 4103, | 8196, 8197, 8198, 8199, | ... 264 PSID=2 | 4104, 4105, 4106, 4107, | 8200, 8201, 8202, 8203, | ... 265 PSID=3 | 4108, 4109, 4110, 4111, | 8204, 8205, 8206, 8207, | ... 266 ... 267 PSID=1023| 8188, 8189, 8190, 8191, | 12284, 12285, 12286, 12287,| ... 269 Example 3: GMA calculation with a = 4, k = 10 271 For sharing ratio 64, PSID offset a = 0 and PSID length k = 6 273 Port-set 274 PSID=0 | [ 0 - 1023] 275 PSID=1 | [1024 - 2047] 276 PSID=2 | [2048 - 3071] 277 PSID=3 | [3072 - 4095] 278 ... 279 PSID=63 | [64512 - 65535] 281 Example 4: GMA calculation with a = 0, k = 6 283 5. Server Behavior 285 The server will not reply with either of the two options until the 286 client has explicitly listed one of them in the Parameter Request 287 List(Option 55). 289 Server MUST reply with Continuous Port Set Option if the client 290 requested OPTION_CON_PORT_SET in its Parameter Request List. Server 291 MUST reply with Noncontinuous Port Set Option if the client requested 292 OPTION_NCON_PORT_SET in its Parameter Request List. The server MUST 293 run an address & port-set pool which plays the same role as address 294 pool in regular DHCP server. If the server supports Noncontinuous 295 Port Set Option, address & port-set pool MUST follow the GMA-format 296 port-set. 298 The port-set assignment SHOULD be coupled with the address assignment 299 process. Therefore server SHOULD assign the address and port set in 300 the same DHCP messages. and the lease information for the address is 301 applicable to the port-set as well. 303 6. Client Behavior 305 The DHCP client applying for the a port-set MUST include either the 306 OPTION_CON_PORT_SET or OPTION_NCON_PORT_SET code in the Parameter 307 Request List (Option 55). If the client requests the 308 OPTION_CON_PORT_SET, it will retrieve a Continuous Port Set Option 309 and use the ports ranging from Min port number to Max port number. 310 If the client requests OPTION_NCON_PORT_SET and retrieves a 311 Noncontinuous Port Set Option, its port set follows the specific port 312 number format defined in section 5.1.1 of MAP draft 313 [I-D.mdt-softwire-mapping-address-and-port]. The client derives the 314 PSID offset (a bits), PSID length (k bits) and the PSID from the 315 option, and performs GMA to get the precise port set. The client 316 renews or releases the DHCP lease with the port set. 318 7. Security Consideration 320 This specification raises no particular security issues to the DHCPv4 321 protocol model. 323 8. IANA Consideration 325 IANA is kindly requested to allocate DHCP option codes to the 326 OPTION_CON_PORT_SET and OPTION_NCON_PORT_SET. Both codes should be 327 added to the DHCP option code space. 329 9. References 331 9.1. Normative References 333 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 334 Requirement Levels", BCP 14, RFC 2119, March 1997. 336 [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", 337 RFC 2131, March 1997. 339 [RFC3046] Patrick, M., "DHCP Relay Agent Information Option", 340 RFC 3046, January 2001. 342 [RFC3527] Kinnear, K., Stapp, M., Johnson, R., and J. Kumarasamy, 343 "Link Selection sub-option for the Relay Agent Information 344 Option for DHCPv4", RFC 3527, April 2003. 346 [RFC4925] Li, X., Dawkins, S., Ward, D., and A. Durand, "Softwire 347 Problem Statement", RFC 4925, July 2007. 349 9.2. Informative References 351 [I-D.ietf-tsvwg-iana-ports] 352 Cotton, M., Eggert, L., Touch, J., Westerlund, M., and S. 353 Cheshire, "Internet Assigned Numbers Authority (IANA) 354 Procedures for the Management of the Service Name and 355 Transport Protocol Port Number Registry", 356 draft-ietf-tsvwg-iana-ports-10 (work in progress), 357 February 2011. 359 [I-D.mdt-softwire-mapping-address-and-port] 360 Bao, C., Troan, O., Matsushima, S., Murakami, T., and X. 361 Li, "Mapping of Address and Port (MAP)", 362 draft-mdt-softwire-mapping-address-and-port-03 (work in 363 progress), January 2012. 365 Authors' Addresses 367 Peng Wu 368 Tsinghua University 369 Department of Computer Science, Tsinghua University 370 Beijing 100084 371 P.R.China 373 Phone: +86-10-6278-5822 374 Email: peng-wu@foxmail.com 376 Yiu L. Lee 377 Comcast 378 One Comcast Center 379 Philadelphia PA 19103 380 USA 382 Phone: 383 Email: yiu_lee@cable.comcast.com 385 Qiong Sun 386 China Telecom 387 Room 708, No.118, Xizhimennei Street 388 Beijing 100035 389 P.R.China 391 Phone: +86-10-58552936 392 Email: sunqiong@ctbri.com.cn 394 Ted Lemon 395 Nominum, Inc. 396 2000 Seaport Blvd 397 Redwood City 94063 398 USA 400 Phone: +1-650-381-6000 401 Email: mellon@nominum.com