rfc-7291

DHCP Options for the Port Control Protocol (PCP)

M. Boucadair, R. Penno, D. Wing
date2014-07 streamIETF areaint wgpcp statusPROPOSED STANDARD pages11 canonicalhttps://www.rfc-editor.org/rfc/rfc7291 doi10.17487/RFC7291
This document specifies DHCP (IPv4 and IPv6) options to configure hosts with Port Control Protocol (PCP) server IP addresses. The use of DHCPv4 or DHCPv6 depends on the PCP deployment scenarios. The set of deployment scenarios to which DHCPv4 or DHCPv6 can be applied is outside the scope of this document.

Extracted elements (21)

design-rationale §5

IPv4-mapped IPv6 addresses are permitted in OPTION_V6_PCP_SERVER to accommodate deployments where IPv4 connectivity is provided while only DHCPv6 is in use, such as an IPv4-only PCP server in a Dual-Stack Lite (DS-Lite) context. This mirrors the logic in RFC 6887 Section 5.

pcp, ip, v6ops

design-rationale §1

The option design supports returning multiple lists of PCP server IP addresses to allow clients to determine whether to contact all PCP servers (e.g., multi-homing or distinct services) or use one address from a list (e.g., redundancy). A single option instance's address list implies one logical server; multiple instances imply distinct servers.

pcp, ip

interoperability-note §6

A dual-stack host may receive a PCP server option via both DHCPv4 and DHCPv6. Guidance on reconciling these two sets of PCP server IP lists is deferred to the PCP Server Selection specification rather than defined here.

pcp, ip, v6ops

interoperability-note §3.2

When an IPv4-mapped IPv6 address is received in OPTION_V6_PCP_SERVER, current Windows and Mac OS implementations generate IPv4 packets rather than IPv6 packets, so the client correctly reaches the IPv4 PCP server.

pcp, ip, v6ops

normative-requirement §5 MUST NOT

DHCP servers MUST NOT combine the IP addresses of multiple PCP servers and return them as if they belong to a single PCP server, and MUST NOT separate the addresses of a single PCP server and return them as if they belong to distinct PCP servers.

pcp, ip

normative-requirement §7 MUST

Each PCP server learned via DHCP MUST be associated with the interface via which it was learned, to correctly handle hosts with multiple network interfaces.

pcp, ip

normative-requirement §5 MUST

If a DHCP server is configured with an FQDN for a PCP server that resolves to multiple addresses, all resolved addresses MUST be delivered within a single server address block, not split across multiple server entries.

pcp, ip

normative-requirement §4.1 MUST

RFC 3396 MUST be used if OPTION_V4_PCP_SERVER exceeds the maximum DHCPv4 option size of 255 octets, as it is a concatenation-requiring option.

pcp, ip

normative-requirement §4.2 MUST

The DHCPv4 client MUST be prepared to receive multiple lists of PCP server IPv4 addresses in the same OPTION_V4_PCP_SERVER option; each list is to be treated as a separate PCP server.

pcp, ip

normative-requirement §4.2 MUST

The DHCPv4 client MUST silently discard multicast and host loopback addresses conveyed in OPTION_V4_PCP_SERVER.

pcp, ip, security

normative-requirement §3.2 MUST

The DHCPv6 client MUST be prepared to receive multiple instances of OPTION_V6_PCP_SERVER; each instance is to be treated as a separate PCP server.

pcp, ip

normative-requirement §3.2 MUST

The DHCPv6 client MUST silently discard multicast and host loopback addresses conveyed in OPTION_V6_PCP_SERVER.

pcp, ip, security

normative-requirement §4.1 MUST

The List-Length field in OPTION_V4_PCP_SERVER MUST be a multiple of 4, since each PCP server IPv4 address is exactly 4 octets.

pcp, ip

normative-requirement §3.1 MUST

The Option-length field of OPTION_V6_PCP_SERVER MUST be a multiple of 16, reflecting that each PCP server IPv6 address is exactly 16 octets.

pcp, ip

protocol-element §4.1

OPTION_V4_PCP_SERVER (code 158) is a DHCPv4 option that conveys one or more lists of PCP server IPv4 addresses. Each list is a separate server entry identified by a List-Length sub-field. The option is concatenation-requiring per RFC 3396.

pcp, ip

protocol-element §3.1

OPTION_V6_PCP_SERVER (code 86) is a DHCPv6 option that conveys one or more IPv6 addresses of a PCP server to a DHCPv6 client. Multiple instances of the option are used to signal distinct PCP servers, while multiple addresses within one instance represent a single PCP server. IPv4-mapped IPv6 addresses are permitted.

pcp, ip

registry §9.2

IANA assigned DHCPv4 Option Code 158 (OPTION_V4_PCP_SERVER) in the BOOTP/DHCP parameters registry at iana.org/assignments/bootp-dhcp-parameters. The minimum data length is 5 octets; the option carries one or multiple lists of PCP server IPv4 addresses.

pcp, registry

registry §9.1

IANA assigned DHCPv6 Option Code 86 (OPTION_V6_PCP_SERVER) in the DHCPv6 parameters registry at iana.org/assignments/dhcpv6-parameters.

pcp, registry

security-consideration §8

The security considerations of RFC 2131 (DHCPv4) and RFC 3315 (DHCPv6) apply. The PCP server DHCP option is applicable under PCP's simple threat model (RFC 6887 Section 18.1); applicability under the advanced threat model is outside the scope of this document.

pcp, security

wire-format §4.1

The DHCPv4 PCP Server option encodes a 1-octet Code (158), a 1-octet Length (minimum 5), followed by one or more sub-lists each beginning with a 1-octet List-Length (multiple of 4) and the corresponding 4-octet IPv4 addresses.

pcp, ip

wire-format §3.1

The DHCPv6 PCP Server option encodes a 2-octet option-code (OPTION_V6_PCP_SERVER = 86), a 2-octet option-length (must be a multiple of 16), and one or more 16-octet IPv6 addresses of the PCP server.

pcp, ip