This is my introductory blog for the document series on Implementing DHCPv6.
Well!!!! To cut the long story of DHCP short, let me give the RFC's definition of DHCP
"The Dynamic Host Configuration Protocol (DHCP) provides configuration parameters to Internet hosts."
In other words DHCP is the big boss on any network when clients are in need of IP address.
Wait a minute!!! we are now discussing DHCPv6. Ok!!!! But the fact remains the same. DHCPv6 provides configuration information to the host but in much different way than it did in DHCPv4. DHCPv6 is made much more easier by tweaking the parameters to provide the users more options to configure the clients there by controlling in address allocation.
Lets get started for a brief intro
Getting IPv6 address from the DHCPv6 server is not as simple as illustrated above, still the basic DHCPv6 client-server concept is similar to DHCP for IPv4. If a client wishes to receive configuration parameters it will send out a request on the attached local network. A DHCPv6 server which is connected to this local network may reply back with the requested configuration parameters. We will discuss two important concepts in DHCPv6.
DUID (DHCPv6 Unique Identifier)
As the name implies the DUID stands for DHCPv6 Unique Identifier which is used to identify the device when exchanging DHCPv6 messages. The DHCPv6 clients and servers are identified by this DUID. Therefore this DUID is unique across all DHCP clients and servers, and it is stable for any specific client or server. The DUID is carried under options field because the length could be variable but strictly a DUID cannot longer than 128 octets.
In Cisco routers, the DUID can be checked by using the command show ipv6 dhcp
Router1# show ipv6 dhcp
This device's DHCPv6 unique identifier(DUID): 00050002001EBE4A7BE0
DHCPv6 forms the DUID using MAC address from the lowest-numbered interface by assuming that the network interface is permanently attached to the device.Cisco uses structure based on DUID-LLT i.e.Link-Local Address plus time.
IAID (Identity Association)
IAID is Identity Association for binding. It a 32 bit value assigned by the client. Binding contains configuration information that is explicitly assigned to the client and is indexed by DUID.
DHCPv6 Message Types
For a client to get an IPv6 address successfully from a DHCPv6 server, the Client-Server Conversation happens using the following messages.
This is the first step in DHCPv6, where a DHCPv6 client sends a Solicit message to locate DHCPv6 servers.
Upon receiving a Solicit Message from the client, the DHCPv6 server sends an Advertise message to indicate that it is available for DHCP service, in response to a Solicit message received from a client.
This message is sent by the DHCPv6 client.Client sends a Request message to request configuration parameters which includes IP addresses or delegated prefixes, from a specific server.
Confirm message is sent by the client to any available server in the network to confirm that the client is still on the same link or it has to be removed. This message also confirms the IPv6 addresses that are assigned to the link are still valid. This could happen in case when a client detects a change in link-layer connectivity or if the device is powered on and it is found that one or more leases are still valid. Note that only the prefix portion of the addresses are validated and not the actual leases.
A client sends a Renew message to the server when it wants to extend the lifetimes on the addresses and other configuration parameters assigned to the client and also to update other configuration parameters.
In case of No response from the DHCPv6 Server for the Renew message, the client sends a Rebind message to any available server to extend the lifetimes on the address and to update other configuration parameters.
A Reply message is sent by the DHCPv6 Server in response to a Solicit, Request, Renew, Rebind message received from a client. The reply message is sent by the server in response to a confirm message (either confirming or denying) that the addresses assigned to the client are appropriate.In short the server acknowledge receipt of a Release or Decline message by sending a REPLY message.
Release message as the name implies, is sent by the client to the server that has assigned the addresses, to indicate that the client will no longer use the assigned addresses(one or more).
Client sends a Decline message to the DHCPv6 server to tell that the one or more addresses assigned by the server is already in use
The Reconfigure Message is sent by the DHCPv6 server to the client when the server has new or updated information of configuration parameters. It tells the client to initiate a information-request/reply message to the server so as to receive the updated information.
Information-Request message is sent by the client to the server to update the configuration parameters
I hope this introduction to the DHCPv6 and its messages is brief enough.. so lets proceed to the purpose of this blog!!!
How to Implement DHCPv6 ?
To reply short and sweet It's Easy!!!
There are different ways to implement DHCPv6 based on your network and requirements.
Stateful DHCPv6 : In this method the client obtains the IPv6 address and other additional configuration parameters such as DNS from the DHCPv6 Server. To configure the stateful DHCPv6 refer to Part 1: Implementing DHCPv6 - Stateful DHCPv6
Stateless DHCPv6: In stateless DHCPv6, as the name implies the DHCP server no longer has to track the state of the assigned IPv6 addresses because they no longer assign IPv6 addresses to the clients?!?!?!?!? The IPv6 address assignment is taken over by SLAAC Stateless Address Autoconfiguration through which the clients will get their IPv6 addresses. The DHCPv6 will be used only for obtaining other configuration parameters such as DNS, NTP. To configure Stateless DHCP refer Part 2: Implementing DHCPv6 - Stateless DHCPv6
DHCPv6-PD: In this method, the DHCPv6 server has the Prefix Delgation (PD) feature enabled and acts as delegating router. Here instead of assigning a single IPv6 address, the DHCPv6-PD assigns a group of IPv6 subnets to the DHCPv6-PD client.The client router in turn assign the IPv6 addresses to all the IPv6 enabled hosts connected to it. For configuring DHCPv6 using Prefix Delegation Feature refer to