While DHCPv6 still is named “DHCP” it is quite different compared with DHCP for IPv4. This article tries to highlight a few changes and discuss the new features. In a previous article about address auto-configuration, we described the two ways a host can get an address: stateless address configuration with the help of router advertisements and stateful configuration with DHCPv6.
Spend 30 minutes to learn more about DHCPv6!
The new DHCP – Dynamic Host Configuration Protocol version 6
DHCP was created as the successor to an old protocol named BOOTP. In BOOTP you listed MAC addresses and gave each one an IP address. This is still possible in DHCP but a new dynamic address assignment was added, where a host can lease an address for a limited amount of time. In addition to IP address management, DHCP distributes information about network services, like DNS and SIP servers, and pointers for applications that need help finding configurations. The function of DHCP is to configure a network host so that it can communicate fully on the IP network. It’s not about configuring the operating system.
IPv6 originally wanted to get rid of the dependency on DHCP. Hosts should be able to configure not one, but multiple addresses, by itself. By bootstrapping communication with a link-local address the host should be able to communicate with a router and get the information needed to configure a global address.
The missing part was of course DNS and the rest of the network and application information. DHCPv6 was highlighted again as a necessary service in most networks. But it took a long time until it was implemented – in the Mac world OS/X Lion, released in 2011, was the first version to support DHCPv6.
DHCPv6 operates in many modes
DHCPv6 can operate in many modes compared with DHCP for IPv4
- Stateless mode: In combination with stateless IP configuration with router advertisments DHCPv6 delivers DNS servers and other information, like options for SIP phones and other services.
- Stateful mode: A host can also configure it’s IP address (like with DHCP for IPv4) with DHCPv6
- DHCPv6-PD: A home router may get a network prefix with DHCPv6 from a service provider
Host identifiers in IPv6 – meet the DUID
DUID A DHCP Unique IDentifier for a DHCP participant; each DHCP client and server has exactly one DUID.
Each interface has an ID, called IAID – Interface Association Identifier – that is a binding between the interface and one or several IP addresses. Each allocation in the DHCPv6 server is identified by a DUID and a IAID. The question is how these are created. It’s not the same as the mac address, but can be based on it.
RFC 4361 describes a migration solution by adding DUID device identifiers to DHCP for IPv4. Microsoft already supports this.
Finding the DUID
RFC 3315 defines three types of DUIDs. RFC 6355 adds one based on UUID. The DUID is supposed to be stored in permanent storage, not to be changed during a products lifetime. The three original types are:
1 Link-layer address plus time 2 Vendor-assigned unique ID based on Enterprise Number 3 Link-layer address
The reason for having multiple types is explained:
The motivation for having more than one type of DUID is that the DUID must be globally unique, and must also be easy to generate. The sort of globally-unique identifier that is easy to generate for any given device can differ quite widely. Also, some devices may not contain any persistent storage. Retaining a generated DUID in such a device is not possible, so the DUID scheme must accommodate such devices.
UUIDs for SIP devices
Current implementations of DUID generation
DHCPv6 IAID . . . . . . . . . . . : 234901590 DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-14-77-21-A2-00-50-56-AA-5E-EE
- RFC 3315 :: Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
- RFC 4361: Using DUIDs in DHCP for IPv4
- RFC 6355 :: Definition of the UUID-Based DHCPv6 Unique Identifier (DUID-UUID)
- Allied Telesis: DHCPv6
- Cisco: DHCPv6 based access services, Implementing DHCPv6 for IPv6
- Microsoft Technet: The cable guy: The DHCPv6 protocol (describes implementation in Windows 7 and Windows 2008 server)
- DHCPv6 Configuration examples, Michigan Tech
- Microsoft DHCP team blog: Understanding DHCPv6 (Mars 2009)
- ISC DHCP server
- DIBBLER DHCPv6