Configure DHCPv6 on an IOS Router for IPv6 Clients
This post explains the multiple options for addressing your IPv6 endpoints including SLAAC, DHCPv6 and DHCP relay to a Microsoft Windows Based DHCP Server
For a simple deployment you might be used to using the router or switch as a local DHCP server, in v4 this was rather simple as per the example configuration below;
ip dhcp pool DHCP-VLAN102
 network 192.168.102.0 255.255.255.0
 default-router 192.168.102.1
 domain-name lab.local
 dns-server 192.168.101.10 192.168.101.11
Relatively easy… and if the network address matches a connected interface there is no further configuration required.
In the IPv6 world, things aren’t as straightforward. You now have the option of using SLACC, and/or either Stateless or Stateful DHCP.
A simple SLAAC configuration is as shown below;
interface Vlan102
 ipv6 enable
 ipv6 address 2001:0DB8:3c:102::1/64
 ipv6 nd prefix 2001:0DB8:3c:102::/64
With SLACC all hosts will address themselves based on the local prefix, and if routing is in place should have full reachability – however the clients have not received their DNS server information, so they’d have to be manually configured – not great.
Statefull DHCP is the equivalent of the IPv4 DHCP process above, however some older routers or switches may not support it.
ipv6 dhcp pool STATEFULL
 address prefix 2001:0DB8:3c:102::/64
 dns-server 2001:0DB8:3c:101::10/64
 dns-server 2001:0DB8:3c:101::11/64
 domain-name lab.local
interface Vlan102
 ipv6 enable
 ipv6 address 2001:0DB8:3c:102::1/64
 ipv6 nd prefix 2001:0DB8:3c:102::/64 no-advertise
 ipv6 nd managed-config-flag
 ipv6 nd other-config-flag
 ipv6 dhcp server STATEFULL
The other method for an ‘onbox’ dhcp solution is to use Stateless DHCP combined with SLACC which allows clients to learn of the subnets prefix and auto-assign its own address, but will also utilise DHCP to obtain the DNS server information;
ipv6 dhcp pool STATELESS
 dns-server 2001:0DB8:3c:101::10/64
 dns-server 2001:0DB8:3c:101::11/64
 domain-name lab.local
interface Vlan102
 ipv6 enable
 ipv6 address 2001:0DB8:3c:102::1/64
 ipv6 nd prefix 2001:0DB8:3c:102::/64
 ipv6 nd other-config-flag
 ipv6 dhcp server STATELESS
You can of course forward the requests to a Microsoft Windows Server which is running DHCPv6 by using the dhcp relay configuration. This is most likely the deployment configuration you will use for corporate networks;
interface Vlan102
 ipv6 enable
 ipv6 address 2001:0DB8:3c:102::1/64
 ipv6 address FE80::1 link-local
 ipv6 nd prefix 2001:0DB8:3c:102::/64 no-advertise
 ipv6 nd managed-config-flag
 ipv6 nd other-config-flag
 ipv6 dhcp relay destination 2001:0DB8:3c:101::10
 ipv6 dhcp relay destination 2001:0DB8:3c:101::11