IPv6 supports 2 methods for dynamic configuration of IPv6 addresses, prefix lengths, and default routers, namely stateful DHCPv6 and stateless configuration.
DHCPv6 works similar to DHCPv4 – DHCPv6 client first sends a multicast DHCPv6 discovery message to search for a DHCPv6 server; a DHCPv6 server replies with unicast DHCPv6 offer message along with an IPv6 address, prefix length, default router, and DNS server IP addresses; the DHCPv6 client sends a multicast DHCPv6 request message to obtain a lease of an IP address; finally the DHCPv6 server replies with a unicast DHCPv6 acknowledge message to the DHCPv6 client and the DHCPv6 client may start to use the leased IPv6 address.
There are 2 operational modes of DHCPv6 servers – stateful and stateless. Stateful operation track state information (eg: the IP address leased to a client and the valid period for the lease); while stateless operation do not track state information. It acts as the same role as DHCPv4. However, note that stateful DHCPv6 does not supply the default router information but instead rely upon the Neighbor Discovery Protocol between the client and the local routers.
Stateless DHCPv6 often work in conjunction with stateless autoconfiguration to provide information such as domain name, as well as the IP addresses of DNS and NTP servers, which stateless autoconfiguration is unable to provide.
Note: Cisco IOS only provides support for stateless DHCPv6, which means it does not offer any address assignment and management of the DHCP pool.
The multicast address FF02::1:2 (All DHCPv6 Relay Agents within the link-local scope) is reserved for hosts to send packets to a DHCPv6 server. Routers would forward these packets to the appropriate DHCPv6 servers.
Note: The multicast addresses FF05::1:3 and FF05::1:4 are All DHCPv6 Servers within the site-local scope and All DHCPv6 Relay Agents within the site-local scope respectively.