IPv6CP+DHCPv6+SLAAC+RA = IPCP
Last week I got an interesting tweet: “Hey @ioshints can you tell me what is the radius parameter to send ipv6 dns servers at pppoe negotiation?” It turned out that the writer wanted to propagate IPv6 DNS server address with IPv6CP, which doesn’t work. Contrary to IPCP, IPv6CP provides just the bare acknowledgement that the two nodes are willing to use IPv6. All other parameters have to be negotiated with DHCPv6 or ICMPv6 (RA/SLAAC).
The following table compares the capabilities of IPCP with those offered by a combination of DHCPv6, SLAAC and RA (IPv6CP is totally useless as a host parameter negotiation tool):
Parameter | IPCP | DHCPv6 | SLAAC1 | RA2 |
---|---|---|---|---|
Host address | Yes | Yes3 | Yes | |
Default router | No | No | Yes | |
DNS server | Yes | Yes | Yes4 | |
DNS search list | No | Yes | Yes4 | |
Delegated prefix | No | Yes (IA_PD) | No |
Notes:
- SLAAC (RFC 2462) uses RA to get IPv6 prefix information for the local subnet.
- Router Advertisements (RA) are part of ICMPv6 (RFC 4443).
- You will probably want to use auto-negotiated IPv6 addresses on PPP connections.
- IPv6 RA options for DNS configuration (RFC 6106) is not yet widely implemented in desktop operating systems.
To deploy IPv6 in a dialup environment with Cisco IOS you have to:
- Deploy DHCPv6 servers on the routers. If you just need to pass DNS information to end hosts, don’t configure IPv6 address pools. If you have to support IA_PD prefix delegation, associate local IPv6 address pool with the DHCP pool (unless you do prefix delegation via Radius).
- Enable RA on all virtual template interfaces. While it’s not exactly mandatory to run RA on a point-to-point link (it’s pretty obvious who the router is), RA simplifies automatic default route generation of on the CPE device.
- Use SLAAC. RA is enabled, so SLAAC works. However, SLAAC requires a globally-routable IPv6 prefix on every virtual access interface. Use IPv6 address pools with dynamic prefix allocation.
More information
Various IPv6 access interface configurations are described in my Building IPv6 Service Provider Core webinar; if you’re an enterprise engineers running a decently large network, you’ll find it useful despite its title.
Entry-level information for enterprise engineers considering IPv6 deployment in their networks is summarized in my Enterprise IPv6 – the first steps webinar.
Both webinars are also available as part of the yearly subscription package.
What would you recommend for a simple Lab environment with enough complexities to learn IPv6? Any design or topology guidance?