I've been trying to get IPv6 PD with dhcpcd
working on my home server along with ppp
and radvd
to allow for SLAAC to work and eventually replace my ISP-provided router. Unfortunately, the prefix which dhcpcd
receives on the ppp0
interface via RAs only gets configured as an address on that interface, instead of also being delegated to the lan
interface on which radvd
is operating.
What am I missing?
/etc/dhcpcd.conf:
# Ignore changes on docker interfaces
denyinterfaces veth*
duid
# Persist interface configuration when dhcpcd exits.
persistent
option domain_name_servers, domain_name, domain_search, host_name
option interface_mtu
require dhcp_server_identifier
slaac private
noipv6rs
waitip 6
ipv6only
#Prefix Delegation
interface ppp0
option rapid_commit
ipv6rs
iaid 1
ia_pd 1/::/64 lan/0/64
#don't use ISP DNS servers
nohook resolv.conf
/etc/radvd.conf:
interface lan
{
AdvSendAdvert on;
prefix ::/64
{
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
};
The lan
and wan.7
(my ISP requires VLAN 7, so this is what ppp binds to) interfaces are managed by systemd-networkd
(DHCP is not handled by it though), but ppp0
gets created dynamically by ppp
.
Old thread, but this is one of the few hits Google spits out in 2022 for configuring IPv6 PD with isc-dhcp-client, so for what it's worth:
there is a known limitation in earlier versions of isc-dhcp-client that prevents this configuration from succeding on PPPoE interfaces like ppp0. Even when all parameters are entered exactly as in the official documentation, configuration ultimately fails due to ppp0 being an "unsupported interface type" (see syslog). The problem has been addressed upstream, but as of April 2022 the fix did not yet trickle down to the more "conservative" distros like Debian 11. Building the Package directly from upstream git will likely solve the problem, but even the official Debian Wiki recommends using alternative tools like wide-dhcp6-client instead to address the issue if you need to do prefix negotiation through PPPoE.