idnits 2.17.1 draft-ietf-pcp-dhcp-13.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 : ---------------------------------------------------------------------------- == There are 1 instance of lines with non-RFC2606-compliant FQDNs in the document. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 363 has weird spacing: '...ngth is each...' -- The document date (April 14, 2014) is 3657 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) ** Obsolete normative reference: RFC 3315 (Obsoleted by RFC 8415) == Outdated reference: A later version (-03) exists of draft-boucadair-pcp-deployment-cases-01 == Outdated reference: A later version (-09) exists of draft-ietf-dhc-topo-conf-01 == Outdated reference: A later version (-10) exists of draft-ietf-pcp-server-selection-02 Summary: 1 error (**), 0 flaws (~~), 6 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 PCP Working Group M. Boucadair 3 Internet-Draft France Telecom 4 Intended status: Standards Track R. Penno 5 Expires: October 16, 2014 D. Wing 6 Cisco 7 April 14, 2014 9 DHCP Options for the Port Control Protocol (PCP) 10 draft-ietf-pcp-dhcp-13 12 Abstract 14 This document specifies DHCP (IPv4 and IPv6) options to configure 15 hosts with Port Control Protocol (PCP) server IP addresses. The use 16 of DHCPv4 or DHCPv6 depends on the PCP deployment scenarios. The set 17 of deployment scenarios to which use of DHCPv4 or DHCPv6 apply are 18 outside the scope of this document. 20 Requirements Language 22 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 23 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 24 document are to be interpreted as described in RFC 2119 [RFC2119]. 26 Status of This Memo 28 This Internet-Draft is submitted in full conformance with the 29 provisions of BCP 78 and BCP 79. 31 Internet-Drafts are working documents of the Internet Engineering 32 Task Force (IETF). Note that other groups may also distribute 33 working documents as Internet-Drafts. The list of current Internet- 34 Drafts is at http://datatracker.ietf.org/drafts/current/. 36 Internet-Drafts are draft documents valid for a maximum of six months 37 and may be updated, replaced, or obsoleted by other documents at any 38 time. It is inappropriate to use Internet-Drafts as reference 39 material or to cite them other than as "work in progress." 41 This Internet-Draft will expire on October 16, 2014. 43 Copyright Notice 45 Copyright (c) 2014 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents 50 (http://trustee.ietf.org/license-info) in effect on the date of 51 publication of this document. Please review these documents 52 carefully, as they describe your rights and restrictions with respect 53 to this document. Code Components extracted from this document must 54 include Simplified BSD License text as described in Section 4.e of 55 the Trust Legal Provisions and are provided without warranty as 56 described in the Simplified BSD License. 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 61 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 62 3. DHCPv6 PCP Server Option . . . . . . . . . . . . . . . . . . 3 63 3.1. Format . . . . . . . . . . . . . . . . . . . . . . . . . 3 64 3.2. DHCPv6 Client Behavior . . . . . . . . . . . . . . . . . 4 65 4. DHCPv4 PCP Option . . . . . . . . . . . . . . . . . . . . . . 5 66 4.1. Format . . . . . . . . . . . . . . . . . . . . . . . . . 5 67 4.2. DHCPv4 Client Behavior . . . . . . . . . . . . . . . . . 6 68 5. DHCP Server Configuration Guidelines . . . . . . . . . . . . 6 69 6. Dual-Stack Hosts . . . . . . . . . . . . . . . . . . . . . . 8 70 7. Hosts with Multiple Interfaces . . . . . . . . . . . . . . . 8 71 8. Security Considerations . . . . . . . . . . . . . . . . . . . 8 72 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 73 9.1. DHCPv6 Option . . . . . . . . . . . . . . . . . . . . . . 8 74 9.2. DHCPv4 Option . . . . . . . . . . . . . . . . . . . . . . 8 75 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 76 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 77 11.1. Normative References . . . . . . . . . . . . . . . . . . 9 78 11.2. Informative References . . . . . . . . . . . . . . . . . 10 79 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 81 1. Introduction 83 This document defines DHCPv4 [RFC2131] and DHCPv6 [RFC3315] options 84 that can be used to configure hosts with PCP server [RFC6887] IP 85 addresses. 87 This specification assumes a PCP server is reachable with one or 88 multiple IP addresses. As such, a list of IP addresses can be 89 returned in the DHCP PCP server option. 91 This specification allows returning one or multiple lists of PCP 92 server IP addresses. This is used as a hint to guide the PCP client 93 when determining whether to send PCP requests to one or multiple PCP 94 servers. Concretely, the PCP client needs an indication to decide 95 whether entries need to be instantiated in all PCP servers (e.g., 96 multi-homing, multiple PCP-controlled devices providing distinct 97 services , etc.) or using one IP address from the list (e.g., 98 redundancy group scenario, proxy-based model, etc.). Refer to 99 [I-D.boucadair-pcp-deployment-cases] for a discussion on PCP 100 deployment scenarios. 102 For guidelines on how a PCP client can use multiple IP addresses and 103 multiple PCP servers, see [I-D.ietf-pcp-server-selection]. 105 2. Terminology 107 This document makes use of the following terms: 109 o PCP server denotes a functional element that receives and 110 processes PCP requests from a PCP client. A PCP server can be co- 111 located with or be separated from the function (e.g., NAT, 112 Firewall) it controls. Refer to [RFC6887]. 113 o PCP client denotes a PCP software instance responsible for issuing 114 PCP requests to a PCP server. Refer to [RFC6887]. 115 o DHCP refers to both DHCPv4 [RFC2131] and DHCPv6 [RFC3315]. 116 o DHCP client denotes a node that initiates requests to obtain 117 configuration parameters from one or more DHCP servers. 118 o DHCP server refers to a node that responds to requests from DHCP 119 clients. 121 3. DHCPv6 PCP Server Option 123 3.1. Format 125 The DHCPv6 PCP server option can be used to configure a list of IPv6 126 addresses of a PCP server. 128 The format of this option is shown in Figure 1. 130 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 131 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 132 | OPTION_V6_PCP_SERVER | Option-length | 133 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 134 | | 135 | ipv6-address | 136 | | 137 | | 138 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 139 | | 140 | ipv6-address | 141 | | 142 | | 143 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 144 | ... | 145 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 147 Figure 1: DHCPv6 PCP server option 149 The fields of the option shown in Figure 1 are as follows: 151 o Option-code: OPTION_V6_PCP_SERVER (TBA, see Section 9.1) 152 o Option-length: Length of the 'PCP server IP Address(es)' field in 153 octets. MUST be a multiple of 16. 154 o PCP server IPv6 Addresses: Includes one or more IPv6 addresses 155 [RFC4291] of the PCP server to be used by the PCP client. Note, 156 IPv4-mapped IPv6 addresses (Section 2.5.5.2 of [RFC4291]) are 157 allowed to be included in this option. 159 To return more than one PCP server to the DHCPv6 client (as opposed 160 to more than one address for a single PCP server), the DHCPv6 server 161 returns multiple instances of OPTION_V6_PCP_SERVER. 163 3.2. DHCPv6 Client Behavior 165 To discover one or more PCP servers, the DHCPv6 client requests PCP 166 server IP addresses by including OPTION_V6_PCP_SERVER in an Option 167 Request Option (ORO), as described in Section 22.7 of [RFC3315]. 169 The DHCPv6 client MUST be prepared to receive multiple instances of 170 OPTION_V6_PCP_SERVER; each instance is to be treated as a separate 171 PCP server. 173 If an IPv4-mapped IPv6 address is received in OPTION_V6_PCP_SERVER, 174 it indicates that the PCP server has the corresponding IPv4 address. 176 Note: When presented with the IPv4-mapped prefix, current versions 177 of Windows and Mac OS generate IPv4 packets, but will not send 178 IPv6 packets [RFC6052]. Representing IPv4 addresses as 179 IPv4-mapped IPv6 addresses follows the same logic as in section 5 180 of [RFC6887]. 182 The DHCPv6 client MUST silently discard multicast and host loopback 183 addresses [RFC6890] conveyed in OPTION_V6_PCP_SERVER. 185 4. DHCPv4 PCP Option 187 4.1. Format 189 The DHCPv4 PCP server option can be used to configure a list of IPv4 190 addresses of a PCP server. The format of this option is illustrated 191 in Figure 2. 193 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 194 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 195 | Code | Length | 196 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 197 | List-Length | List of | 198 +-+-+-+-+-+-+-+-+ PCP server | 199 / IPv4 Addresses / 200 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --- 201 | List-Length | List of | | 202 +-+-+-+-+-+-+-+-+ PCP server | | 203 / IPv4 Addresses / | 204 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 205 . ... . optional 206 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 207 | List-Length | List of | | 208 +-+-+-+-+-+-+-+-+ PCP server | | 209 / IPv4 Addresses / | 210 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ --- 212 Figure 2: DHCPv4 PCP server option 214 The description of the fields is as follows: 216 o Code: OPTION_V4_PCP_SERVER (TBA, see Section 9.2); 217 o Length: Length of all included data in octets. The minimum length 218 is 5. 219 o List-Length: Length of the "List of PCP server IPv4 Addresses" 220 field in octets; MUST be a multiple of 4. 222 o List of PCP server IPv4 Addresses: Contains one or more IPv4 223 addresses of the PCP server to be used by the PCP client. The 224 format of this field is shown in Figure 3. 225 o OPTION_V4_PCP_SERVER can include multiple lists of PCP server IPv4 226 addresses; each list is treated as a separate PCP server. When 227 several lists of PCP server IPv4 addresses are to be included, 228 "List-Length" and "PCP server IPv4 Addresses" fields are repeated. 230 0 8 16 24 32 40 48 231 +-----+-----+-----+-----+-----+-----+-- 232 | a1 | a2 | a3 | a4 | a1 | a2 | ... 233 +-----+-----+-----+-----+-----+-----+-- 234 IPv4 Address 1 IPv4 Address 2 ... 236 This format assumes that an IPv4 address is encoded as a1.a2.a3.a4. 238 Figure 3: Format of the List of PCP server IPv4 Addresses 240 OPTION_V4_PCP_SERVER is a concatenation-requiring option. As such, 241 the mechanism specified in [RFC3396] MUST be used if 242 OPTION_V4_PCP_SERVER exceeds the maximum DHCPv4 option size of 255 243 octets. 245 4.2. DHCPv4 Client Behavior 247 To discover one or more PCP servers, the DHCPv4 client requests PCP 248 server IP addresses by including OPTION_V4_PCP_SERVER in a Parameter 249 Request List Option [RFC2132]. 251 The DHCPv4 client MUST be prepared to receive multiple lists of PCP 252 server IPv4 addresses in the same DHCPv4 PCP server option; each list 253 is to be treated as a separate PCP server. 255 The DHCPv4 client MUST silently discard multicast and host loopback 256 addresses [RFC6890] conveyed in OPTION_V4_PCP_SERVER. 258 5. DHCP Server Configuration Guidelines 260 DHCP servers supporting the DHCP PCP server option can be configured 261 with a list of IP addresses of the PCP server(s). If multiple IP 262 addresses are configured, the DHCP server MUST be explicitly 263 configured whether all or some of these addresses refer to: 265 1. the same PCP server: the DHCP server returns multiple addresses 266 in the same instance of the DHCP PCP server option. 268 2. distinct PCP servers: the DHCP server returns multiple lists of 269 PCP server IP addresses to the requesting DHCP client (encoded as 270 multiple OPTION_V6_PCP_SERVER or in the same 271 OPTION_V4_PCP_SERVER); each list is referring to a distinct PCP 272 server. For example, multiple PCP servers may be configured to a 273 PCP client in some deployment contexts such as multi-homing. It 274 is out of scope of this document to enumerate all deployment 275 scenarios that require multiple PCP servers to be returned. 277 Precisely how DHCP servers are configured to separate lists of IP 278 addresses according to which PCP server they address is out of scope 279 for this document. However, DHCP servers MUST NOT combine the IP 280 addresses of multiple PCP servers and return them to the DHCP client 281 as if they belong to a single PCP server, and DHCP servers MUST NOT 282 separate the addresses of a single PCP server and return them as if 283 they belonged to distinct PCP servers. For example, if an 284 administrator configures the DHCP server by providing a Fully 285 Qualified Domain Name (FQDN) for a PCP server, even if that FQDN 286 resolves to multiple addresses, the DHCP server MUST deliver them 287 within a single server address block. 289 DHCPv6 servers that implement this option and that can populate the 290 option by resolving FQDNs will need a mechanism for indicating 291 whether to query for A records or only AAAA records. When a query 292 returns A records, the IP addresses in those records are returned in 293 the DHCPv6 response as IPv4-mapped IPv6 addresses. 295 Discussion: The motivation for this design is to accommodate 296 deployment cases where an IPv4 connectivity service is provided 297 while only DHCPv6 is in use (e.g., an IPv4-only PCP server in a 298 DS-Lite context [RFC6333]). 300 Since this option requires support for IPv4-mapped IPv6 addresses, a 301 DHCPv6 server implementation will not be complete if it does not 302 query for A records and represent any that are returned as 303 IPv4-mapped IPv6 addresses in DHCPv6 responses. This behavior is 304 neither required nor suggested for DHCPv6 options in general: it is 305 specific to OPTION_V6_PCP_SERVER. The mechanism whereby DHCPv6 306 implementations provide this functionality is beyond the scope of 307 this document. 309 For guidelines on providing context-specific configuration 310 information (e.g., returning a regional-based configuration), and 311 information on how a DHCP server might be configured with FQDNs that 312 get resolved on demand, see [I-D.ietf-dhc-topo-conf]. 314 6. Dual-Stack Hosts 316 A Dual-Stack host might receive PCP server option via both DHCPv4 and 317 DHCPv6. For guidance on how a DHCP client can handle PCP server IP 318 lists for the same network but obtained via different mechanisms, see 319 [I-D.ietf-pcp-server-selection]. 321 7. Hosts with Multiple Interfaces 323 A host may have multiple network interfaces (e.g, 3G, IEEE 802.11, 324 etc.); each configured differently. Each PCP server learned MUST be 325 associated with the interface via which it was learned. 327 Refer to [I-D.ietf-pcp-server-selection] and Section 8.4 of [RFC6887] 328 for more discussion on multi-interface considerations. 330 8. Security Considerations 332 The security considerations in [RFC2131] and [RFC3315] are to be 333 considered. PCP-related security considerations are discussed in 334 [RFC6887]. 336 The PCP Server option targets mainly the simple threat model 337 (Section 18.1 of [RFC6887]). It is out of scope of this document to 338 discuss potential implications of the use of this option in the 339 advanced threat model (Section 18.2 of [RFC6887]). 341 9. IANA Considerations 343 9.1. DHCPv6 Option 345 IANA is requested to assign the following new DHCPv6 Option Code in 346 the registry maintained in http://www.iana.org/assignments/ 347 dhcpv6-parameters: 349 Option Name Value 350 -------------------- ----- 351 OPTION_V6_PCP_SERVER TBA 353 9.2. DHCPv4 Option 355 IANA is requested to assign the following new DHCPv4 Option Code in 356 the registry maintained in http://www.iana.org/assignments/bootp- 357 dhcp-parameters/: 359 Option Name Value Data length Meaning 360 -------------------- ----- ----------- ------------------------------ 361 OPTION_V4_PCP_SERVER TBA Variable; Includes one or multiple lists 362 the minimum of PCP server IP addresses; 363 length is each list is treated as a 364 5. separate PCP server. 366 10. Acknowledgements 368 Many thanks to C. Jacquenet, R. Maglione, D. Thaler, T. Mrugalski, T. 369 Reddy, S. Cheshire, M. Wasserman, C. Holmberg, A. Farrel, S. Farrel, 370 B. Haberman, and P. Resnick for their review and comments. 372 Special thanks to T. Lemon and B. Volz for the review and their 373 effort to enhance this specification. 375 11. References 377 11.1. Normative References 379 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 380 Requirement Levels", BCP 14, RFC 2119, March 1997. 382 [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC 383 2131, March 1997. 385 [RFC2132] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor 386 Extensions", RFC 2132, March 1997. 388 [RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., 389 and M. Carney, "Dynamic Host Configuration Protocol for 390 IPv6 (DHCPv6)", RFC 3315, July 2003. 392 [RFC3396] Lemon, T. and S. Cheshire, "Encoding Long Options in the 393 Dynamic Host Configuration Protocol (DHCPv4)", RFC 3396, 394 November 2002. 396 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 397 Architecture", RFC 4291, February 2006. 399 [RFC6887] Wing, D., Cheshire, S., Boucadair, M., Penno, R., and P. 400 Selkirk, "Port Control Protocol (PCP)", RFC 6887, April 401 2013. 403 [RFC6890] Cotton, M., Vegoda, L., Bonica, R., and B. Haberman, 404 "Special-Purpose IP Address Registries", BCP 153, RFC 405 6890, April 2013. 407 11.2. Informative References 409 [I-D.boucadair-pcp-deployment-cases] 410 Boucadair, M., "PCP Deployment Models", draft-boucadair- 411 pcp-deployment-cases-01 (work in progress), December 2013. 413 [I-D.ietf-dhc-topo-conf] 414 Lemon, T. and T. Mrugalski, "Customizing DHCP 415 Configuration on the Basis of Network Topology", draft- 416 ietf-dhc-topo-conf-01 (work in progress), February 2014. 418 [I-D.ietf-pcp-server-selection] 419 Boucadair, M., Penno, R., Wing, D., Patil, P., and T. 420 Reddy, "PCP Server Selection", draft-ietf-pcp-server- 421 selection-02 (work in progress), January 2014. 423 [RFC6052] Bao, C., Huitema, C., Bagnulo, M., Boucadair, M., and X. 424 Li, "IPv6 Addressing of IPv4/IPv6 Translators", RFC 6052, 425 October 2010. 427 [RFC6333] Durand, A., Droms, R., Woodyatt, J., and Y. Lee, "Dual- 428 Stack Lite Broadband Deployments Following IPv4 429 Exhaustion", RFC 6333, August 2011. 431 Authors' Addresses 433 Mohamed Boucadair 434 France Telecom 435 Rennes 35000 436 France 438 Email: mohamed.boucadair@orange.com 440 Reinaldo Penno 441 Cisco 442 USA 444 Email: repenno@cisco.com 446 Dan Wing 447 Cisco Systems, Inc. 448 170 West Tasman Drive 449 San Jose, California 95134 450 USA 452 Email: dwing@cisco.com