Support IPv6 Prefix Delegation
DHCPv6 Prefix Delegation is the best practice IPv6 deployment method and supported by most ISPs who provide native IPv6 for consumers on fixed networks. NetworkManager should support this.
In a nutshell, a CPE router (which could be a Linux box running NetworkManager) sends a DHCPv6 solicit message that includes the IA_PD option. The ISP DHCPv6 response has BOTH a IPv6 address for the CPE WAN interface AND a IPv6 prefix.
The IPv6 Prefix is typically a /56 which can be subnetted into quantity 256 /64 networks that can be assigned to internal networks.
First use case that should be supported:
Given a two interface system (WAN and LAN), NetworkManager ought to be able to be configured so that it can make a IA_PD solicitation, configure the WAN interface with the IPv6 IA_NA address, get the the prefix (IA_PD) from the response, extract the first /64 from the prefix, assign that prefix to the LAN interface and setup radvd to advertise that prefix on the LAN including setting the RDNSS option to advertise the DNS server.
That first use case will cover 90% of the need.
Additional use cases to consider:
-
Support multiple LAN interfaces. Extract a /64 from the prefix for each LAN interface, setup radvd to advertise on each
-
Support setting the AdvManagedFlag setting for radvd for radvd+DHCPv6 configurations.
-
Configurable DNS server to advertise
References:
- https://wiki.debian.org/IPv6PrefixDelegation
- https://en.wikipedia.org/wiki/Prefix_delegation
- https://tools.ietf.org/id/draft-ietf-dhc-rfc3315bis-09.html#rfc.section.6.3
- ;https://blog.dan.drown.org/fedora-based-router-with-dhcpv6-pd-support/
- ttps://www.cisco.com/c/en/us/support/docs/ip/ip-version-6-ipv6/113141-DHCPv6-00.html