Cisco IPV6 DHCP Server Configuration


IPV6 DHCP Server configuration on a Cisco device is very similar to a normal, IPV4 configuration, but there is a big difference that you will want to make sure to not miss. Everything can be broken down into the following three steps:

  • Create the IPV6 DHCP Pool
  • Configure \ Apply the pool to an interface
  • Configure the clients for DHCP.

I do want to call out that this is a basic server configuration and that the understanding of stateful and stateless IPV6 DHCP configuration is the next level of this. This configuration is meant to be able to get a basic working lab established for instance.

Create the IPV6 DHCP Pool

Creating the pool is very similar to an IPV4 DHCP pool. This is straight forward and pretty simple once you select a subnet to use.

SERVER(config)#ipv6 dhcp pool TRTLab
SERVER(config-dhcpv6)#address prefix 2001:ABAB:CDCD::/100
SERVER(config-dhcpv6)#dns-server 2001:AAAA:BBBB:CC:DD::1

That is a basic form of a DHCP pool and what it would look like.

Configure \ Apply the pool to an interface

We created the pool, next we need to enable this for use. We will want to use it on interface e0/0 of the Server in our lab, as seen above. There are two ways to do this. First you select the interface for configuration and then use the following command:

SERVER(config)#int e0/0
SERVER(config-if)#ipv6 dhcp server ?
  WORD       Name of IPv6 DHCP pool
  automatic  Automatically find pool

You can use either option here to enable your DHCP pool on that interface and in this case, we will explicitely select our pool:

SERVER(config-if)#ipv6 dhcp server TRTLab

Configure the clients for DHCP

Lastly, we need to enable DHCP on the interface e0/0 of the Client. Again, very few commands needed for this step:

CLIENT(config)#int e0/0
CLIENT(config-if)#ipv6 enable  
CLIENT(config-if)#ipv6 address dhcp


At this point, we can run a few show commands on each device to verify that an address was received from the newly created pool.

CLIENT#sh ipv6 int br
Ethernet0/0            [up/up]
Ethernet0/1            [administratively down/down]
Ethernet0/2            [administratively down/down]
Ethernet0/3            [administratively down/down]
Tunnel0                [up/up]
    unnumbered (Ethernet0/0)
SERVER#sh ipv6 dhcp binding
Client: FE80::A8BB:CCFF:FE00:100
  DUID: 00030001AABBCC000100
  Username : unassigned
  VRF : default
  IA NA: IA ID 0x00030001, T1 43200, T2 69120
    Address: 2001:ABAB:CDCD::2B4:721F
            preferred lifetime 86400, valid lifetime 172800
            expires at Mar 27 2018 07:17 PM (172645 seconds)
SERVER#sh ipv6 dhcp interface
Ethernet0/0 is in server mode
  Using pool: TRTLab
  Preference value: 0
  Hint from client: ignored
  Rapid-Commit: disabled
SERVER#sh ipv6 dhcp pool
DHCPv6 pool: TRTLab
  Address allocation prefix: 2001:ABAB:CDCD::/100 valid 172800 preferred 86400 (1 in use, 0 conflicts)
  DNS server: 2001:AAAA:BBBB:CC:DD::1
  Domain name:
  Active clients: 1

Everything is pretty straight forward and it’s one of those topics to be aware of for sure and make some notes on if that helps you remember it. Not a difficult topic to cover though. If your personal lab testing IPV6 DHCP server configuration has any issues, comment below!


  1. Great post! I usally configure the following options on the SVI as well:

    interface vlanx
    ipv6 nd prefix ::64 300 300 no-autoconfig
    ipv6 nd managed-config-flag
    ipv6 nd router-preference High
    ipv6 nd ra suppress
    ipv6 nd ra interval 30

    This way all your clients won’t do SLAAC, EUI-64 and a local mulitcast address as well. Clients now get a nice single IP address. And don’t forget to enable RA-Guard on all your access switches to block RA’s from malicious endpoints that try to steal the router’s role.


Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.