IPv6 PD over PPP
IPv6 PD over PPP
Section titled “IPv6 PD over PPP”IPv6 Prefix Delegation over PPP enables routers to delegate IPv6 prefixes to PPP clients, allowing those clients to assign addresses to their downstream networks. This functionality is essential for service providers deploying IPv6 to subscribers using PPPoE or other PPP-based connections.
When a PPP client connects, the router automatically creates a dynamic DHCPv6 server for that interface and delegates prefixes from a configured pool. The client can then run its own DHCPv6 client to obtain a prefix from the delegated pool and assign addresses to local networks.
Summary
Section titled “Summary”IPv6 Prefix Delegation (PD) over PPP provides a mechanism for distributing IPv6 address space to PPP clients in a scalable manner. Rather than each client requiring manual IPv6 configuration, the router delegates prefixes dynamically as clients connect.
The process works as follows: First, the administrator configures an IPv6 pool and assigns it to a PPP profile. When a PPP client connects, the router creates a dynamic DHCPv6 server instance bound to that client’s interface. The client then runs a DHCPv6 client to request and receive a prefix from the delegated pool. This prefix can be subdivided and assigned to downstream networks connected to the client.
This approach mirrors the IPv4 address assignment used in traditional PPP deployments but extends the concept to IPv6’s larger address space. The delegated prefix allows the client router to create unique IPv6 subnets for its downstream devices while maintaining proper IPv6 routing.
Configuration
Section titled “Configuration”Setting up IPv6 PD over PPP requires configuring several components: an IPv6 pool for prefix delegation, PPP profile settings, PPPoE server configuration, and client-side DHCPv6 client setup.
Server Configuration
Section titled “Server Configuration”First, create an IPv6 pool that will be used for prefix delegation:
/ipv6 pool add name=pd-pool prefix=2001:db8:1000::/36 prefix-length=60This pool provides /60 prefixes to each PPP client, allowing them to create /64 subnets for downstream networks.
Configure the PPP profile to use this pool:
/ppp profile set default dhcpv6-pd-pool=pd-poolThe dhcpv6-pd-pool parameter instructs PPP to automatically create DHCPv6 server entries when clients connect using this profile.
Enable the PPPoE server:
/interface pppoe-server server add service-name=ipv6-pppoe interface=ether1Client Configuration
Section titled “Client Configuration”On the client router, configure a PPPoE client:
/interface pppoe-client add name=pppoe-out1 interface=ether1 user=customer1 service-name=ipv6-pppoeConfigure a DHCPv6 client to request a prefix:
/ipv6 dhcp-client add interface=pppoe-out1 pool-name=pool1 pool-prefix-length=64 add-default-route=yesThe pool-prefix-length=64 specifies that the client wants a /64 prefix from the pool. The add-default-route=yes parameter adds an IPv6 default route via the PPP interface.
Verification
Section titled “Verification”On the server, verify the dynamic DHCPv6 server was created:
/ipv6 dhcp-server printThe output should show a dynamically created server for the PPP interface:
Flags: D - dynamic, X - disabled, I - invalid # NAME INTERFACE ADDRESS-POOL LEASE-TIME 0 D <pppoe-customer> <pppoe-customer> pd-pool 3dCheck bound prefixes:
/ipv6 dhcp-server binding printThis shows which prefixes have been delegated to connected clients.
On the client, verify the prefix was received:
/ipv6 dhcp-client printA bound client shows the delegated prefix:
# INTERFACE STATUS PREFIX EXPIRES-AFTER 0 pppoe-out1 bound 2001:db8:1000:0004::/60 2d23h59mCheck the local pool:
/ipv6 pool printThe client now has its own pool from which it can assign addresses:
# NAME PREFIX PREFIX-LENGTH 0 D pd-pool/2001:db8:1000:4 2001:db8:1000:0004::/60 64Prefix Pool Planning
Section titled “Prefix Pool Planning”Careful planning of prefix delegation pools ensures efficient address usage and room for network growth.
Pool Size Calculation
Section titled “Pool Size Calculation”Each PPP client receives a prefix based on the pool’s prefix length. The difference between the pool prefix and delegated prefix determines how many prefixes are available:
| Pool Prefix | Delegated Prefix | Available Clients |
|---|---|---|
| /48 | /56 | 256 |
| /48 | /60 | 4096 |
| /56 | /60 | 16 |
| /36 | /60 | 1,048,576 |
For most deployments, a /48 pool with /56 or /60 delegation provides ample address space while remaining manageable.
Subnet Assignment
Section titled “Subnet Assignment”When a /60 prefix is delegated, the client receives 16 /64 subnets. Each /64 subnet can accommodate approximately 18 quintillion IPv6 addresses, practically unlimited for any downstream network:
2001:db8:1000:0004::/60├── 2001:db8:1000:0004::/64 (WAN link)├── 2001:db8:1000:0005::/64 (LAN 1)├── 2001:db8:1000:0006::/64 (LAN 2)├── ...└── 2001:db8:1000:000f::/64 (LAN 16)Security Considerations
Section titled “Security Considerations”Prefix delegation introduces additional considerations for network security and access control.
Interface-Specific Pools
Section titled “Interface-Specific Pools”For ISP deployments, consider creating separate pools for different service tiers:
/ipv6 pool add name=residential-pool prefix=2001:db8:1000::/40 prefix-length=56/ipv6 pool add name=business-pool prefix=2001:db8:2000::/40 prefix-length=52Apply different profiles to different user groups to allocate appropriate address space.
Firewall Configuration
Section titled “Firewall Configuration”Ensure firewall rules permit DHCPv6 traffic:
/ipv6 firewall filter add chain=input protocol=udp src-port=546 dst-port=547 action=acceptThis allows DHCPv6 client requests and server responses necessary for prefix delegation.
Troubleshooting
Section titled “Troubleshooting”When IPv6 PD over PPP does not function as expected, several common issues are typically responsible.
Client Receives No Prefix
Section titled “Client Receives No Prefix”Verify the server has available prefixes in the pool. Check pool usage:
/ipv6 pool print detailEnsure the PPP profile references the correct pool:
/ppp profile print detailConfirm the DHCPv6 server is running:
/ipv6 dhcp-server printRoute Not Added
Section titled “Route Not Added”On the client, verify the DHCPv6 client configuration includes add-default-route=yes:
/ipv6 dhcp-client printWithout this parameter, the client will receive a prefix but may not install a default route.
Prefix Too Large
Section titled “Prefix Too Large”If the server pool has a /60 prefix but clients request /56, the request will fail. Ensure the pool prefix is larger (numerically smaller) than the requested prefix length:
/ipv6 pool add name=my-pool prefix=2001:db8::/36 prefix-length=60A /36 pool can delegate /60 prefixes, but cannot delegate /56 prefixes.
See Also
Section titled “See Also”- PPPoE Client - PPPoE client configuration
- PPPoE Server - PPPoE server setup
- DHCPv6 Server - DHCPv6 server configuration
- IPv6 Address Assignment - IPv6 addressing in RouterOS