IPv6 DHCPv6 Prefix Delegation

The prefix delegation feature lets a DHCP server assign prefixes chosen from a global pool to DHCP clients. The DHCP client can then configure an IPv6 address on its LAN interface using the prefix it received. It will then send router advertisements including the prefix, allowing other devices to use autoconfiguration to configure their own IPv6 addresses.

This feature can be useful in an ISP environment. Here’s an example:

Ipv6 Prefix Delegation Example

In the picture above we have an ISP that has the global prefix 2001:DB8:1100::/40 that it can assign to customers. With the prefix delegation feature and DHCPv6, it automatically assigns prefixes to its customers:

  • Customer 1 receives 2001:DB8:1100::/48
  • Customer 2 receives 2001:DB8:1101::/48

Each customer router configures an IPv6 address based on the prefix they received from the ISP using the general prefix feature and advertises the specific prefix (subnet) to host devices in router advertisements.

Host devices are then able to configure their own IPv6 address using the prefix in the router advertisement and EUI-64.


Let’s take a look at the configuration. Here is the topology we’ll use:

Ipv6 Prefix Delegation Physical Topology


Let’s start with the ISP router. We need to enable IPv6 unicast routing:

ISP(config)#ipv6 unicast-routing

The global prefix is configured with the ipv6 local pool command:

ISP(config)#ipv6 local pool GLOBAL_POOL 2001:DB8:1100::/40 48

This tells the router that we have a pool called GLOBAL_POOL and that we can use the entire 2001:DB8:1100::/40 prefix. Each DHCP client, however, will receive a /48 prefix out of this pool.

Now we need to configure the DHCP server:

ISP(config)#ipv6 dhcp pool CUSTOMERS
ISP(config-dhcpv6)#prefix-delegation pool GLOBAL_POOL
ISP(config-dhcpv6)#dns-server 2001:4860:4860::8888
ISP(config-dhcpv6)#dns-server 2001:4860:4860::8844
ISP(config-dhcpv6)#domain-name NETWORKLESSONS.LOCAL

I refer to the pool we just created and add some extra information like the google DNS servers and a domain name. On the interface that connects to the customers, I configure an IPv6 address that does not fall within the range of the global prefix (if you try, you get an error) and the DHCP server needs to be activated on the interface:

ISP(config)#interface GigabitEthernet 0/1
ISP(config-if)#ipv6 address 2001:DB8:0:1::1/64
ISP(config-if)#ipv6 dhcp server CUSTOMERS

That completes the ISP router configuration.

Customer Routers

Let’s configure the customer routers.


Make sure you enable IPv6 unicast routing:

C1(config)#ipv6 unicast-routing

The interface that connects to the ISP router will use DHCP client:

C1(config)#interface GigabitEthernet 0/1
C1(config-if)#ipv6 dhcp client pd ISP_PREFIX
C1(config-if)#ipv6 address autoconfig default

The prefix that we receive will be stored as ISP_PREFIX. We will use this on the interface that connects to our hosts to configure an IPv6 address:

C1(config)#interface GigabitEthernet 0/2
C1(config-if)#ipv6 address ISP_PREFIX ::1:0:0:0:1/64

In the IPv6 address command, I refer to our ISP_PREFIX so that the router starts the address with that prefix. I’ll use a /64 prefix on this interface.


We can do the exact same thing on this router as we did on C1:

C2(config)#ipv6 unicast-routing 

C2(config)#interface GigabitEthernet 0/1
C2(config-if)#ipv6 dhcp client pd ISP_PREFIX
C2(config-if)#ipv6 address autoconfig default

C2(config)#interface GigabitEthernet 0/2
C2(config-if)#ipv6 address ISP_PREFIX ::2:0:0:0:2/64

The only difference is that I use a different specific prefix (subnet) on this router.


On each of our hosts, we use autoconfiguration:

H1(config)#interface GigabitEthernet 0/1
H1(config-if)#ipv6 address autoconfig
H2(config)#interface GigabitEthernet 0/1
H2(config-if)#ipv6 address autoconfig
H3(config)#interface GigabitEthernet 0/1
H3(config-if)#ipv6 address autoconfig
H4(config)#interface GigabitEthernet 0/1
H4(config-if)#ipv6 address autoconfig

This completes our configuration.


Let’s verify our work!


Let’s take a closer look at our DHCP pool:

ISP#show ipv6 dhcp pool 
  Prefix pool: GLOBAL_POOL
               preferred lifetime 604800, valid lifetime 2592000
  DNS server: 2001:4860:4860::8888
  DNS server: 2001:4860:4860::8844
  Active clients: 2

The output above tells us that we have two clients and that the ISP router uses the GLOBAL_POOL for the prefix. Let’s take a closer look at those two DHCP clients:

ISP#show ipv6 dhcp binding 
Client: FE80::F816:3EFF:FEB8:F33E 
  DUID: 000300015E0000010000
  Username : unassigned
  VRF : default
  Interface : GigabitEthernet0/1
  IA PD: IA ID 0x00030001, T1 302400, T2 483840
    Prefix: 2001:DB8:1100::/48
            preferred lifetime 604800, valid lifetime 2592000
            expires at Mar 22 2018 09:41 AM (2591328 seconds)
Client: FE80::F816:3EFF:FEC4:B7CB 
  DUID: 000300015E0000030000
  Username : unassigned
  VRF : default
  Interface : GigabitEthernet0/1
  IA PD: IA ID 0x00030001, T1 302400, T2 483840
    Prefix: 2001:DB8:1101::/48
            preferred lifetime 604800, valid lifetime 2592000
            expires at Mar 22 2018 09:43 AM (2591430 seconds)

The output above is interesting as it tells us which prefixes the router assigned to the DHCP clients.


Let’s take a look at those DHCP clients, the customer routers.


Let’s take a look at the DHCP information from C1’s perspective:

C1#show ipv6 dhcp interface                 
GigabitEthernet0/1 is in client mode
  Prefix State is OPEN
  Renew will be sent in 3d11h
  Address State is IDLE
  List of known servers:
    Reachable via address: FE80::F816:3EFF:FE00:EF72
    DUID: 000300015E0000000000
    Preference: 0
    Configuration parameters:
      IA PD: IA ID 0x00030001, T1 302400, T2 483840
        Prefix: 2001:DB8:1100::/48
                preferred lifetime 604800, valid lifetime 2592000
                expires at Mar 22 2018 09:41 AM (2591299 seconds)
      DNS server: 2001:4860:4860::8888
      DNS server: 2001:4860:4860::8844
      Information refresh time: 0
  Prefix name: ISP_PREFIX
  Prefix Rapid-Commit: disabled
  Address Rapid-Commit: disable

Above we see that we received our prefix from the ISP, including some other details like the DNS servers and domain name. You can also see that this router named the prefix “ISP_PREFIX”.

Here we can see the IPv6 address that C1 configured on its GigabitEthernet 0/1 interface:

C1#show ipv6 interface GigabitEthernet 0/1 | include 2001
    2001:DB8:0:1:F816:3EFF:FEB8:F33E, subnet is 2001:DB8:0:1::/64 [EUI/CAL/PRE]

We can also verify that the router has stored the prefix it received from the ISP:

C1#show ipv6 general-prefix 
IPv6 Prefix ISP_PREFIX, acquired via DHCP PD
  2001:DB8:1100::/48 Valid lifetime 2591177, preferred lifetime 603977
   GigabitEthernet0/2 (Address command)

Which is used to configure the GigabitEthernet 0/2 interface:

C1#show ipv6 interface GigabitEthernet 0/2 | include 2001
    2001:DB8:1100:1::1, subnet is 2001:DB8:1100:1::/64 [CAL/PRE]

That’s all we need to check on C1.


Let’s verify that C2 has received a prefix from the ISP:

We're Sorry, Full Content Access is for Members Only...

If you like to keep on reading, Become a Member Now! Here is why:

  • Learn any CCNA, CCNP and CCIE R&S Topic. Explained As Simple As Possible.
  • Try for Just $1. The Best Dollar You’ve Ever Spent on Your Cisco Career!
  • Full Access to our 788 Lessons. More Lessons Added Every Week!
  • Content created by Rene Molenaar (CCIE #41726)

610 Sign Ups in the last 30 days

100% Satisfaction Guaranteed!
You may cancel your monthly membership at any time.
No Questions Asked!


Forum Replies

  1. Hello,
    I hope you’re doing very well?
    I want to know [EUI/CAL/PRE] what does it mean please?


  2. Hello Djan

    These acronyms display several attributes of the IPv6 address, and are always displayed after the address itself. These are part of the output of the show ipv6 interface command. Specifically, the [EUI/CAL/PRE] acronyms you mention are indicating that:

    EUI - Extended Unique Identifier. The address was generated using EUI-64, a method by which the IPv6 address is derived from the MAC address of the interface.
    CAL - Calendar. This means that the address is timed and has valid and preferred lifetimes.
    PRE - Preferred. This timed address is preferre

    ... Continue reading in our forum

  3. So although that example works well, its missing one more component to test both your example and my need… You need a router “beyond” the ISP router to insure you can reach the hosts from an extended “ISP” network.

    I’ve been trying to do the same thing in your example, however with a “remote” KEA DHCP server (v1.5.0) server from ISC. Issuing the PD is not an issue. What I’ve been having problems with is that the router that is issuing the PD for whatever reason (labeled ISP in your example) is not putting the route in its local routing table (for redistribut

    ... Continue reading in our forum

  4. Hello Marcos

    I don’t have a clear cut answer for you at the moment, however, doing some research, I’ve found the following Cisco documentation.
    Now I know that you yourself have gone through documentation as well, however, if I may add the following comments, it may steer you in the right direction.

    Among other useful information in this section, it states that:

    IPv6 routes are added when

    ... Continue reading in our forum

  5. Hi REne and staff,
    thanks for your work (it is not pretented)

    i lab this lesson with


    and i test some other prefix values for the global pool

    When the global pool is /40 (like in the lesson) the delegation is between 40 and 56


    when the global pool is /32 the delegation is between 32 and 48


    ... Continue reading in our forum

10 more replies! Ask a question or join the discussion by visiting our Community Forum