Jump to content

DHCPv6

From Wikipedia, the free encyclopedia

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, and other configuration data required to operate in an IPv6 network. It is not just 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, or both.

DHCPv6 and SLAAC are complementary services. Unlike the Neighbor Discovery Protocol (NDP) used by SLAAC, DHCPv6 can not only assign single unicast addresses, but also entire prefixes in prefix delegation. For example, an ISP's router can provide a prefix to a customer's router via DHCPv6 so that the customer's router can assign addresses to the customer's many devices via either DHCPv6 or SLAAC. This allows routers for residential networks to be configured with no operator intervention.

DHCPv6 also allows the distribution of information other than what SLAAC/NDP provides on a given network: this works even without DHCPv6 managing the distribution of network addresses. The standard method for a SLAAC/NDP network to hand out Domain Name System (DNS) server settings is via setting a flag in the Router Advertisement (RA) message telling the clients to ask for such settings over DHCPv6,[1]: §4.2  although this specific use case is being replaced via a nonstandard extension of the RA message.[2] Still, there remains a plethora of DHCPv6 options for providing additional information not handled by SLAAC/NDP, much like the wide range of information conveyed by legacy DHCP options.[3]

Finally, DHCPv6 also offers a stateful approach, which provides more control over SLAAC's stateless approach.

Operation

[edit]

Port numbers

[edit]

Clients listen for DHCP messages on UDP port 546. Servers and relay agents listen for DHCP messages on UDP port 547.[4]: §7.2 

Identifiers

[edit]

DHCP unique identifier

[edit]

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:[4]: §11 

  • Type 1: Link-layer address plus time (DUID-LLT)
  • Type 2: Vendor-assigned unique ID based on enterprise number (DUID-EN)
  • Type 3: Link-layer address (DUID-LL)
  • Type 4: UUID-based DUID (DUID-UUID)
[edit]

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

[edit]

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.

  • Client sends a solicit from [fe80::aabb:ccff:fedd:eeff]:546 to multicast address [ff02::1:2]:547.[4]: §14 
  • Server replies with an advertise from [fe80::0011:22ff:fe33:5566]:547 to [fe80::aabb:ccff:fedd:eeff]:546.
  • Client replies with a request from [fe80::aabb:ccff:fedd:eeff]:546 to [ff02::1:2]:547.
  • Server finishes with a reply from [fe80::0011:22ff:fe33:5566]:547 to [fe80::aabb:ccff:fedd:eeff]:546.

DHCPv6 Message types

[edit]

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

[edit]
  • RFC 8415, "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" - Obsoletes RFC 3315, RFC 3633, RFC 3736, RFC 4242, RFC 7083, RFC 7283, RFC 7550.
  • RFC 3319, "Dynamic Host Configuration Protocol (DHCPv6) Options for Session Initiation Protocol (SIP) Servers"
  • RFC 3646, "DNS Configuration options for Dynamic Host Configuration Protocol for IPv6 (DHCPv6)"
  • RFC 4704, "The Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Client Fully Qualified Domain Name (FQDN) Option"
  • RFC 5007, "DHCPv6 Leasequery" support
  • RFC 6221, "Lightweight DHCPv6 Relay Agent" (LDRA) - Updates RFC 3315, Errata
  • RFC 6355, "Definition of the UUID-Based DHCPv6 Unique Identifier (DUID-UUID)"
  • RFC 6939, "Client Link-Layer Address Option in DHCPv6"
  • RFC 7653, "DHCPv6 Active Leasequery"

See also

[edit]

References

[edit]
  1. ^ T. Narten; E. Nordmark; W. Simpson; H. Holiman (September 2007). Neighbor Discovery for IP version 6 (IPv6). Network Working Group. doi:10.17487/RFC4861. RFC 4861. Draft Standard. Obsoletes RFC 2461. Updated by RFC 5942, 6980, 7048, 7527, 7559, 8028, 8319, 8425 and 9131.
  2. ^ J. Jeong, ed. (February 2006). IPv6 Host Configuration of DNS Server Information Approaches. Network Working Group. doi:10.17487/RFC4339. RFC 4339. Informational.
  3. ^ "Dynamic Host Configuration Protocol for IPv6 (DHCPv6) [IANA registry]". www.iana.org.
  4. ^ a b c 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). Internet Engineering Task Force. doi:10.17487/RFC8415. ISSN 2070-1721. RFC 8415. Proposed Standard. Obsoletes RFC 3315, 3633, 3736, 4242, 7083, 7283 and 7550.
[edit]