Most of you know that DHCP is an extension of BootP (Bootstrap Protocol - an UDP network protocol used by the network client to automatically obtain the IP address). BootP is practically an automated process of booting the machines in a LAN. All the network parameters are put in a server and when the machine in the LAN is booting, it will contact the server for the configuration parameters. This process was extended to DHCP with additional features.
DHCPv6 is the next Dynamic Host Protocol that supports IPv6, the new addressing system. DHCPv6 enables DHCP servers to transmit configuration parameters using extensions to IPv6 nodes. One of the advantages of the new Dynamic Host Configuration Protocol is that it automatically allocates reusable network addresses (from the DHCP scopes) and reduces the cost of managing IPv6 nodes if network administrators need more control over IP address allocation.
DHCPv6 is similar to DHCP, but there are some new additions like the support for IPv6 addressing and configuration needs, the clients can request multiple IPv6 addresses, offers both stateful and stateless address autoconfiguration.
Stateless address autoconfiguration is applied to configure both link-local addresses and additional non-link-local addresses. The configuration is achieved by exchanging the router Solicitation and router Advertisement messages with neighboring routers. In short, stateless autoconfiguration doesn't require a manually configured server but enables IPv6 hosts to configure their own addresses by using a local IPv6 router. Despite its ease of use, this method manages only addresses and lacks network access control capabilities.
For non-link-local addresses, stateful addressautocinfiguration is used. This type of configuration requires a client and a server only. The unconfigured node checks for router advertisements on the network. If no router or advertisement is found on the network, the node takes the action into its own hands and determines that it needs a DHCPv6 to configure an interface.
The messages for DHCPv6 are slightly different than in DHCP for IPv4. The same UDP (User Datagram Protocol) for message exchange is used, only this time, the ports are different. In DHCPv4, the client would listen to UDP port 68 and the server to UDP port 67. For DHCPv6 servers, we'll use UDP port 546 and clients UDP port 547.
The messages between a DHCPv6 client and a DHCPv6 server are similar to those used in DHCP for IPv4. A comprehensive look at the DHCPv6 messages and the DHCPv4 equivalents can be taken on Microsoft's TechNet magazine, in the March issue. You will see that the new version of DHCP includes more options.
The client and the server quickly exchange messages between each other in order to reach an agreement in what concerns the configuration parameters. Their conversation is something like this: the client sends a DHCP SOLICIT message to all DHCP agents in order to locate an appropriate server. Multiple servers respond to the client by sending the ADVERTISE message. The client then sends a REQUEST to DHCPv6 server with the highest preference value which in turn sends the client the REPLY containing the IPv6 address and configuration parameters required.
Another feature of the latest DHCP is its capability of using relay agents in order to transmit messages to the DHCPv6 server. Relay agents are practically a link between the client and the server. In this case, the chatting is a bit different as the help of a third party is required. The client will send the same SOLICIT message to all DHCP agents in order to locate servers that are able to provide the necessary configuration parameters. Now, a relay agent will forward the client's message to servers by sending the RELAY-FORWARD (as they are incapable of providing the required action). The beauty of the procedure consists in the fact that the client's message is encapsulated in the RELAY-FORWARD. The server in return responds by sending the encapsulated message to the client via the relay. The relay agents actually function as couriers or middle-man in this chat.
All in all, the functioning principle of DHCP for IPv6 has not changed too much. The improvements include easier messaging options and the support of encapsulating the messages from/to the server/client. Multiple IPv6 addressing is also possible and a client can make a request for more than one IP address.