The Dynamic Host Configuration Protocol version 6 (DHCPv6) is a network protocol for configuring Internet Protocol version 6 (IPv6) hosts with IP addresses, IP prefixes, default route, local segment MTU, and other configuration data required to operate in an IPv6 network. It is the IPv6 equivalent of the Dynamic Host Configuration Protocol for IPv4.

IPv6 hosts may automatically generate IP addresses internally using stateless address autoconfiguration (SLAAC), or they may be assigned configuration data with DHCPv6.

IPv6 hosts that use stateless autoconfiguration may require information other than an IP address or route. DHCPv6 can be used to acquire this information, even though it is not being used to configure IP addresses. DHCPv6 is not necessary for configuring hosts with the addresses of Domain Name System (DNS) servers, because they can be configured using Neighbor Discovery Protocol, which is also the mechanism for stateless autoconfiguration.[1]

Many IPv6 routers, such as routers for residential networks, must be configured automatically with no operator intervention. Such routers require not only an IPv6 address for use in communicating with upstream routers, but also an IPv6 prefix for use in configuring devices on the downstream side of the router. DHCPv6 prefix delegation provides a mechanism for configuring such routers.

Operation

Port numbers

Clients listen for DHCP messages on UDP port 546. Servers and relay agents listen for DHCP messages on UDP port 547.[2]

Identifiers

DHCP unique identifier

The DHCP unique identifier (DUID) is used by a client to get an IP address from a DHCPv6 server. It has a 2-byte DUID type field, and a variable-length identifier field up to 128 bytes. Its actual length depends on its type. The server compares the DUID with its database and delivers configuration data (address, lease times, DNS servers, etc.) to the client.

Four DUID types are identified in RFC 8415 section 11:

RFC 6939: Client Link-Layer Address Option

Due to the fact that it is difficult to manage multiple identifiers in a dual-stack environment, and the fact that DUIDs are simply not optimal for some situations, RFC 6939 was released, giving a way to identify a host based on its MAC address. It defines a way for a DHCPv6 relay to pass that information to a DHCPv6 server.

Example

In this example, without rapid-commit present, the server's link-local address is fe80::0011:22ff:fe33:5566 and the client's link-local address is fe80::aabb:ccff:fedd:eeff.

DHCPv6 Message types

This table lists the DHCPv6 message types.

DHCPv6 Message Types
Code Name RFC
1 SOLICIT RFC 8415
2 ADVERTISE RFC 8415
3 REQUEST RFC 8415
4 CONFIRM RFC 8415
5 RENEW RFC 8415
6 REBIND RFC 8415
7 REPLY RFC 8415
8 RELEASE RFC 8415
9 DECLINE RFC 8415
10 RECONFIGURE RFC 8415
11 INFORMATION-REQUEST RFC 8415
12 RELAY-FORW RFC 8415
13 RELAY-REPL RFC 8415
14 LEASEQUERY RFC 5007
15 LEASEQUERY-REPLY RFC 5007
16 LEASEQUERY-DONE RFC 5460
17 LEASEQUERY-DATA RFC 5460
18 RECONFIGURE-REQUEST RFC 6977
19 RECONFIGURE-REPLY RFC 6977
20 DHCPV4-QUERY RFC 7341
21 DHCPV4-RESPONSE RFC 7341
22 ACTIVELEASEQUERY RFC 7653
23 STARTTLS RFC 7653

IETF standards

See also

References

  1. ^ J. Jeong, ed. (February 2006). IPv6 Host Configuration of DNS Server Information Approaches. Network Working Group. doi:10.17487/RFC4339. RFC 4339.
  2. ^ T. Mrugalski; M. Siodelski; B. Volz; A. Yourtchenko; M. Richardson; S. Jiang; T. Lemon; T. Winters (November 2018). Dynamic Host Configuration Protocol for IPv6 (DHCPv6). IETF. doi:10.17487/RFC8415. ISSN 2070-1721. RFC 8415. sec. 7.2. Obsoletes RFC 3315, 3633, 3736, 4242, 7083, 7283 and 7550.
  3. ^ T. Mrugalski; M. Siodelski; B. Volz; A. Yourtchenko; M. Richardson; S. Jiang; T. Lemon; T. Winters (November 2018). Dynamic Host Configuration Protocol for IPv6 (DHCPv6). IETF. doi:10.17487/RFC8415. ISSN 2070-1721. RFC 8415. sec. 14. Obsoletes RFC 3315, 3633, 3736, 4242, 7083, 7283 and 7550.