IPv6 is very easy to delegate to your customers if you are an ISP. This streamlines the way your customers connect to your provider edge and into the internet.
Lets see the small topology for this tutorial:
Here we have two routers for a basic configuration of IPv6 Prefix delegation. This scales much larger than just PTP links like this.
Lets get some basic configuration on these routers:
isp_edge(config)#ipv6 unicast-routing isp_edge(config)#int fa0/0 isp_edge(config-if)#ipv6 enable isp_edge(config-if)#ipv6 address 2001:db8:aaaa:1::1/64 isp_edge(config-if)#no shutdown
customer1(config)#ipv6 unicast-routing customer1(config)#int fa0/0 customer1(config-if)#ipv6 enable customer1(config-if)#ipv6 address autoconfig default customer1(config-if)#no shutdown
Now the routers should have connectivity:
customer1#ping 2001:db8:aaaa:1::1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2001:db8:aaaa:1::1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 0/0/0 ms
With basic connectivity verified, we can make a pool of addresses that we want to hand out to the clients, we also need to specify the prefix length that we want to split the pool up into.
isp_edge(config)#ipv6 local pool main-cust-pool01 2001:DB8:a:a000::/49 56 This is provisioning a pool that will be split up into /56 networks for customers. isp_edge(config)#ipv6 dhcp pool cust-pool01 isp_edge(config-dhcp)#prefix-delegation pool main-cust-pool01 lifetime infinite infinite These commands tie the local pool to a dhcp pool and set the lease time to forever so these do not get pulled back and reassigned accidentally isp_edge(config)#int fa0/0 isp_edge(config-if)#ipv6 dhcp server seac-pool01 Now we have tied the DHCP pool to the interface connecting to the customer router as a DHCP server.
That is all of the config on the ISP side, now for the customer:
customer1(config)#int fa0/0 customer1(config-if)#ipv6 dhcp client pd ISP-DELEGATION This sets the external interface to sent prefix delegation requests and should receive a prefix from the ISP router we just configured. The 'ISP-DELEGATION' string at the end of the second command can be completely random and doesn't correspond to anything configured on the ISP side.
We can test our configuration on both sides:
isp_edge#show ipv6 local pool Pool Prefix Free In use main-cust-pool01 2001:DB8:a:a000::/49 127 1 This command shows that the pool is active and there is a network in use. We can also see how many more networks this pool can delegate.
Now lets verify which network we got on the customer equipment:
customer1#show ipv6 dhcp interface FastEthernet0/0 is in client mode State is OPEN Renew will be sent in 3d11h List of known servers: Reachable via address: FE80::213:60FF:FE51:8FE DUID: 000300010013605108FE Preference: 0 Configuration parameters: IA PD: IA ID 0x00040001, T1 302400, T2 483840 ---> Prefix: 2001:DB8:a:a000::/56 preferred lifetime INFINITY, valid lifetime INFINITY Prefix name: ISP-DELEGATION Rapid-Commit: disabled
Here you can see we got given the 2001:DB8:a:a000::/56 network, this can now be subnetted further within the company to suit their needs.
If we look at the routing table on the ISP edge router we will see a static route pointing the prefix to the external interface of the customer router:
isp_edge#show ipv6 route IPv6 Routing Table - 6 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2 S 2001:DB8:a:a000::/56 [1/0] via FE80::218:73FF:FEF0:DD1B, FastEthernet0/0
In a real environment, this route would be redistributed into the ISP core so that traffic can be directed to the correct place.