Na nog wat uren getuurd te hebben naar de PCAPs, collega-experts ernaar te laten kijken en gespeeld met instellingen zoals het toevoegen van een expliciete prefix hint ::/60, IA_NA optie erbij aan/uit te zetten, bridge-modus geen fijne optie vindt met maar 1 poort beschikbaar, en wat al nog meer, heb ik de figuurlijke handdoek in de ring gegooid. Voor 150 euro heb ik een Fritz!Box 6660 op de kop getikt en de "Eigen modem"-procedure gevolgd in de Mijn Ziggo app.
Die Fritz!Box deed niet gelijk antwoorden op een IA_PD verzoek, moest even zoeken naar de juiste instelling hier verborgen achter een knopje:
En het werkt nu allemaal helemaal fantastisch! 😍
Uit de /56 kan ik helemaal vrij kleinere netwerken 'gedelegate' krijgen zoals het hoort. OpenWRT doosje in factory default en een homelab server hier beide delegated:
En de routering gaat nu beide kanten op, waardoor ik het internet ook daadwerkelijk kan bereiken vanuit die delegated prefixes. ✅
Conclusie: de ConnectBox is prutszooi met IPv6 DHCPv6-PD (in elk geval in router mode).
Ziggo, get your *bliep* together, please!
Werkende systemd-networkd config met de Fritz!Box ter referentie:
# wan0.network
[Match]
Name=wan0
[Network]
Description=Ziggo WAN interface to modem
LinkLocalAddressing=ipv6
LLDP=no
EmitLLDP=no
# SLAAC on this interface. DHCPv6-PD prefixes are for downstream and not used on
# this interface here.
IPv6AcceptRA=yes
# 'yes' enables both DHCPv4 and DHCPv6 if IPv6AcceptRA.DHCPv6Client is also enabled.
DHCP=yes
[DHCPv4]
# Minimal DHCPv4, will use my own DNS. Only need IP + default gateway basically.
Hostname=myhostname
UseHostname=no
UseDNS=no
UseNTP=no
UseSIP=no
UseRoutes=no
UseGateway=yes
[IPv6AcceptRA]
# Minimal IPv6 SLAAC, will use my own DNS. Only need IP/prefix + default route
# basically.
UseDNS=no
UseDomains=no
# 'always' means:
# > DHCPv6 client will be started in "solicit" mode when an RA is received, even
# > if neither the "managed" nor the "other configuration" flag is set in the RA.
DHCPv6Client=always
[DHCPv6]
UseHostname=no
UseDNS=no
UseNTP=no
# Disable IA_NA, only enable IA_PD, or else the Fritz!Box will reply with an
# error in IA_PD-only mode.
UseAddress=no
# Since the managed flag is not set in route announces in this IA_PD-only mode
# on the Fritz!Box, we need to hint systemd-networkd to start in solicit mode.
# Seems redundant with IPv6AcceptRA.DHCPv6Client=always, but 🤷.
WithoutRA=solicit
# Set UseDelegatedPrefix to 'yes' to request a delegated prefix (IA_PD).
UseDelegatedPrefix=yes
# Leave the network unspecified, but only supply a size like this: '::/60' for
# only sending a size hint and be happy with whatever dynamic network prefix is
# available / given by Ziggo.
PrefixDelegationHint=::/60
# clients0.network
[Match]
Name=clients0
[Network]
Description=LAN for home network clients
LinkLocalAddressing=ipv6
LLDP=no
EmitLLDP=no
# This is a router, do not accept route announces from misbehaving clients.
IPv6AcceptRA=no
# Announces a DHCPv6-PD prefix (see DHCPPrefixDelegation section below) and assigns
# one to this network.
DHCPPrefixDelegation=yes
IPv6SendRA=yes
[Address]
# IPv4 addressing. DHCP server running externally.
# TODO: also run the DHCP server using systemd-networkd.
Address=10.123.0.1/24
[IPv6SendRA]
# DNS server and domain config only via IPv4/DHCPv4 for now.
EmitDNS=no
EmitDomains=no
[DHCPPrefixDelegation]
# Takes a /64 with index 1 from the pool of addresses available via wan0/Ziggo.
UplinkInterface=wan0
SubnetId=1
Announce=yes