Configuring a stateful DHCPv6 server is similar to configuring a stateless server. The most significant difference is that a stateful server also includes IPv6 addressing information similar to a DHCPv4 server.

Step 1. Enable IPv6 Routing

As shown in the figure, use the ipv6 unicast-routing command is required to enable IPv6 routing. This command is not necessary for the router to be a stateful DHCPv6 server, but is required for sending ICMPv6 RA messages.

Step 2. Configure a DHCPv6 Pool

The ipv6 dhcp pool pool-name command creates a pool and enters the router in DHCPv6 configuration mode, which is identified by the Router(config-dhcpv6)# prompt.

Step 3. Configure Pool Parameters

With stateful DHCPv6 all addressing and other configuration parameters must be assigned by the DHCPv6 server. The address prefix/length command is used to indicate the pool of addresses to be allocated by the server. The lifetime option indicates the valid and preferred lease times in seconds. As with stateless DHCPv6, the client uses the source IPv6 address from the packet that contained the RA message.

Other information provided by the stateful DHCPv6 server typically includes DNS server address and the domain name.

Step 4. Interface Commands

The ipv6 dhcp server pool-name interface command binds the DHCPv6 pool to the interface. The router responds to stateless DHCPv6 requests on this interface with the information contained in the pool. The M flag needs to be changed from 0 to 1 using the interface command ipv6 nd managed-config-flag. This informs the device not to use SLAAC but to obtain IPv6 addressing and all configuration parameters from a stateful DHCPv6 server.

DHCPv6 Stateful Server Example

Figure 2 shows an example of stateful DHCPv6 server commands for a router configured on R1. Notice that a default gateway is not specified because the router will automatically send its own link-local address as the default gateway. Router R3 is configured as a client to help verify the stateful DHCPv6 operations.