One of the most elegant features of IPv6 is the ability to dynamically allocate entire prefixes to downstream routers using DHCPv6 Prefix Delegation (PD).

Instead of manually assigning IPv6 subnets to every remote site, an ISP can delegate a larger block to a customer edge router, which can then automatically create internal LAN subnets for its downstream networks.

In this lab, I built a simple topology to demonstrate how DHCPv6-PD works together with SLAAC.

Topology
        R1 (ISP / DHCPv6-PD Server)
                    |
                    |
            Delegated Prefix
                    |
                R2 (CE Router)
                 /          \
               R3            R4
  • R1 acts as the ISP router and DHCPv6-PD server.
  • R2 is the customer edge router receiving a delegated prefix.
  • R3 and R4 are internal downstream routers using SLAAC.
The Design Requirement

The company connected behind R2 plans to have up to 16 internal LANs in the future.

Since SLAAC requires every LAN to use a /64 subnet, R2 needs enough address space to create at least sixteen /64 networks.

This is where prefix delegation becomes useful.

Prefix Size Calculation

To create 16 subnets, we need 4 additional bits:

2^4 = 16

Because each LAN must remain a /64:

/64 - 4 bits = /60

So the ISP should delegate a /60 prefix to R2.

A /60 contains exactly sixteen /64 subnets.

DHCPv6 Prefix Delegation on R1

R1 creates a local delegation pool:

ipv6 local pool DELEGATE 2001:db8:500:100::/56 60

This means:

  • The ISP owns the /56
  • Each customer receives a /60

Then the DHCPv6 pool is configured:

ipv6 dhcp pool ISP
prefix-delegation pool DELEGATE lifetime infinite infinite

And applied toward the CE router:

interface g0/0
ipv6 dhcp server ISP
Prefix Delegation on R2

R2 requests a delegated prefix dynamically from R1:

interface g0/0
ipv6 enable
ipv6 address autoconfig default
ipv6 dhcp client pd CUSTOMER-PD

After the DHCPv6 exchange, R2 may receive something like:

2001:db8:500:100::/60

At this point, R2 owns sixteen separate /64 networks.

Internal Subnet Allocation

Inside the delegated /60, R2 can now create multiple LAN subnets:

2001:db8:500:100::/64
2001:db8:500:101::/64
2001:db8:500:102::/64
...
2001:db8:500:10F::/64

For this lab:

  • R4 uses the first non-zero subnet
  • R3 uses the second non-zero subnet
R4 Configuration

R4 should use subnet:

2001:db8:500:101::/64

R2 configuration:

interface g0/2
ipv6 address CUSTOMER-PD ::1:0:0:0:88/64

Resulting address:

2001:db8:500:101::88/64
R3 Configuration

R3 should use subnet:

2001:db8:500:102::/64

R2 configuration:

interface g0/1
ipv6 address CUSTOMER-PD ::2:0:0:0:77/64

Resulting address:

2001:db8:500:102::77/64
SLAAC on R3 and R4

Both downstream routers are configured using SLAAC only:

interface g0/0
ipv6 address autoconfig default

Using Router Advertisements (RA), both routers automatically learn:

  • Their IPv6 address
  • Prefix information
  • Default gateway

No static addressing is required.

Final Result

R4 automatically receives an address from:

2001:db8:500:101::/64

R3 automatically receives an address from:

2001:db8:500:102::/64

And both install their default route dynamically using the link-local address of R2.

Why This Design Matters

This is exactly how many ISPs deliver IPv6 connectivity today.

Instead of assigning a single subnet to customers, providers delegate an entire prefix, allowing customers to build scalable internal IPv6 networks without manual subnet assignment.

The combination of:

  • DHCPv6 Prefix Delegation
  • Router Advertisements
  • SLAAC

creates a fully dynamic and highly scalable IPv6 deployment model.

Interesting IPv6 Detail: Link-Local Addresses

One interesting IPv6 behavior is that the same link-local address can exist on multiple interfaces of the same router.

Example:

interface g0/1
ipv6 address FE80::1 link-local
interface g0/2
ipv6 address FE80::1 link-local

This is completely valid because link-local addresses only have local-link scope and are never routed.

That is also why IPv6 often requires specifying the outgoing interface when using link-local addresses:

ping FE80::1 source g0/1

or:

ipv6 route ::/0 FE80::1 g0/1

Without the interface, the router cannot determine which local link should be used.

IPv6 Prefix Delegation is one of the cleanest examples of how IPv6 was designed for automation and scalability from the beginning.

Instead of manually managing subnet assignments, routers can dynamically receive large address blocks and automatically distribute them internally using SLAAC and Router Advertisements.

For enterprise networks, ISPs, and large-scale deployments, DHCPv6-PD is an essential technology to understand.

Posted in

Leave a comment