1
Vraag
2
Reacties
gertvdijk

Level 4
  • 24Posts
  • 1Oplossingen
  • 13Likes

ConnectBox heeft geen route naar mijn eigen router voor IPv6 via DHCPv6 prefix delegation (opnieuw)

 

Helaas is IPv6 met DHCPv6-PD weer stuk gegaan bij mij en ik kom er niet uit. Volgens mij is het nu echt een defect aan de Ziggo-zijde. Wellicht kan iemand zijn ervaring in een werkende situatie vergelijken met de mijne om dit definitief te bepalen.

 

Hoe ik het heb ingericht heb ik uitgebreid op mijn blog beschreven, toen werkte het destijds goed: https://blog.g3rt.nl/systemd-networkd-dhcpv6-pd-configuration.html 

Zie ook mijn vorige topic uit 2021 - ik kan er niet meer op reageren, weet niet waarom.

Het was plots weer stuk gegaan in de maanden erna en inmiddels krijg ik het met wat nieuwe systemd-networkd versies ook niet meer aan de praat.

 

Op mijn Debian/Linux server als router draai ik systemd-networkd, die hangt direct aan mijn Ziggo Compal ConnectBox met dual-stack IPv6 in fZiggo gebied (Delft), in router mode (niet bridge). IPv6 firewall op de ConnectBox staat uit.

 

Veel gaat er eigenlijk al goed - wat gebeurt er?

  • systemd-networkd doet DHCPv4 en configureert mijn IPv4 routing. 
  • systemd-networkd doet SLAAC en configureert een global address en zet een default route naar de ConnectBox. 
    $ ip -6 route show
    [...]
    default via fe80::5667:51ff:fee3:3713 dev wan0 proto ra metric 1024 expires 1748sec mtu 1500 pref high
  • mijn router kan zelf prima bij het IPv6-deel van het internet. 
    $ ping ipv6.google.com
    PING ipv6.google.com(ams15s42-in-x0e.1e100.net (2a00:1450:400e:803::200e)) 56 data bytes
    64 bytes from ams15s42-in-x0e.1e100.net (2a00:1450:400e:803::200e): icmp_seq=1 ttl=118 time=14.7 ms
  • systemd-networkd doet een DHCPv6 solicit in rapid commit met optie 25 (IA_PD). 
  • van Ziggo krijg ik een DHCPv6 reply, met optie 25, en één /60 prefix delegated. 
  • systemd-networkd gebruikt dit bericht en logt netjes deze prefix. 
    DHCP: received delegated prefix 2001:1c00:b19:4360::/60
  • systemd-networkd wijst een /64-subnet toe aan een downstream interface, mijn thuisnetwerk, en announcet zichzelf als router. 
    (2001:1c00:b19:4361::/64 = SubnetId=1)
    Received new foreign route (configured): dst: 2001:1c00:b19:4361::/64, src: n/a, gw: n/a, prefsrc: n/a, scope: global, table: main(254), proto: kernel, type: unicast, nexthop: 0, priority: 256, flags: n/a
    RADV: Added prefix 2001:1c00:b19:4361::/64
    RADV: Sent Router Advertisement for added/updated prefix 2001:1c00:b19:4361::/64.
    Requesting DHCP-PD address (n/a): 2001:1c00:b19:4361:e6b9:7aff:fef9:b28d/64 (valid for 1w 6d 23h 59min 59s, preferred for 6d 23h 59min 59s), flags: tentative,manage-temporary-address, scope: global
    Assigned prefix 2001:1c00:b19:4361::/64
  • apparaat vanaf dat thuisnetwerk zet een eigen global address via SLAAC en heeft mijn router als default route. 
  • apparaat vanaf dat thuisnetwerk stuurt IPv6 pakketje naar het internet via mijn router. 
  • mijn router forward dit pakketje naar de interface verbonden met de ConnectBox, source IP = global address van de /64 uit de delegated prefix, destination MAC = ConnectBox. 
  • op mijn router verwacht ik nu dat ook pakketten terug kunnen komen door de ConnectBox, omdat die een route zou moeten hebben naar mijn router voor de hele /60. In plaats van dat ik pakketjes terug zie komen vraagt de ConnectBox wie eigenlijk dat global address van mijn apparaat heeft via neighbour discovery. 
    source IP = global address van ConnectBox (buiten de PD-range /60, maar binnen de /56 van mijn aansluiting), destination IP = uit reeks multicastadres 'Solicited-node multicast address, ff02::1:ff00:0/104', source MAC = ConnectBox,  
    2001:1c00:b19:4300:5667:51ff:fee3:3713 ff02::1:ff96:2eb8 ICMPv6 86 Neighbor Solicitation for 2001:1c00:b19:4361:1457:147d:4a96:2eb8
  • Mijn router laat (volgens mij terecht) deze neighbour discovery onbeantwoord; op deze interface is het geen neigbour. 

 

Volgens mij is het helemaal niet de bedoeling dat er een neighbour discovery solicitation wordt gedaan door de ConnectBox voor een global adres binnen de delegated prefix die hij net zelf heeft gegeven aan mijn router. Zo'n adres is per definitie niet lokaal op die interface, maar routed (want delegated). Wat ik verwacht is een standaard routering van de hele /60 naar het MAC-adres waarvan de DHCPv6 request kwam (middels link-local adres).

 

Hier een PCAP (download: pcap-all-ip6-20230410-1.pcap, kon helaas niet als bijlage hier, foutmelding over bestandstype). Je ziet de hele conversatie van de router en een aantal pogingen van een apparaat in mijn thuisnetwerk (een Chromecast) die nooit antwoord krijgt van de ConnectBox. Deze is gemaakt met tcpdump op de interface die direct aan de ConnectBox hangt, met een IPv6-only filter.
$ tcpdump -i wan0 -w /tmp/pcap-all-ip6-20230410-1.pcap 'ip6'

Volgens mij doet mijn router echt alles goed hier en faalt de ConnectBox vervolgens het naar mij te routeren. 😕

 

Of heb ik dit mis? Hoe ziet zo'n packet dump er bij jullie uit als het wel werkt?

 

Wat ik verder nog heb geprobeerd:

  • ConnectBox reboot / power cycle.
  • ConnectBox DHCPv6 setting veranderd van Stateless naar Stateful
  • systemd-networkd configuratie veranderd zodat mijn wan interface óók een subnet krijgt uit de delegated prefix, naast die hij via SLAAC al heeft gekregen.
  • systemd-networkd configuratie veranderd zodat mijn wan interface alleen een subnet krijgt uit de delegated prefix, zonder SLAAC. -> Gaat om andere reden mis; een default route opzetten op mijn router naar de ConnectBox kan zo niet, aangezien DHCPv6 die informatie niet geeft.
  • Op de ConnectBox zelf een traceroute en ping doen naar dit adres binnen de delegated prefix. Het gaat allemaal nergens heen, 100% packet loss. Maar dit gebeurde volgens mij ook wanneer het wel werkte in 2021, dus onduidelijk of dit een goede indicatie is.
  • Een neighbour discovery proxy configuratie opzetten (manpage systemd.network IPv6ProxyNDPAddress). Maar dit is volgens mij helemaal niet de bedoeling, want dat is alleen nodig indien je geen routed prefix krijgt en moet echt per adres static.
Oplossing

Geaccepteerde oplossingen
gertvdijk
Topicstarter
Level 4
  • 24Posts
  • 1Oplossingen
  • 13Likes

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:

Screenshot_20230413_004803.png

 

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:

Screenshot_20230413_012730.png

 

En de routering gaat nu beide kanten op, waardoor ik het internet ook daadwerkelijk kan bereiken vanuit die delegated prefixes. 

 

Screenshot_20230413_005316.png

 

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

 

Bekijk in context

26 Reacties 26
tobiastheebe

Level 20
T.E.A.M.
  • 31064Posts
  • 2180Oplossingen
  • 15500Likes

Tegenwoordig is Full Dual-Stack beschikbaar voor eigen routers achter modems in bridge mode, de eigen router ontvangt hierbij de volledige IA_PD (/56 in fZiggo en /57 in fUPC). Mijn advies is bridge mode gebruiken op het modem, waarschijnlijk werkt IPv6 routing daarmee weer naar behoren.

caesar

Level 17
  • 4140Posts
  • 70Oplossingen
  • 1327Likes

@gertvdijk 

Ik ben bang dat je helemaal verkeerde verwachtingen hebt van een Ziggo router. Zo'n ding is bedoeld om er een PC op aan te sluiten, en er dan een beetje mee te kunnen browsen op het internet. Een printer en een NAS er op aansluiten, dat kan ook nog, maar dan houdt het wel op.

 

Jij denkt dat je een volwaardige router hebt gekregen, en dat is echt niet het geval. Het is een goedkoop prutsding en beslist niet bedoeld voor datgene wat jij er nu mee wilt doen. Het is best mogelijk dat het eens gewerkt heeft, maar dat was dan een vergissing, en dat kun je Ziggo niet kwalijk nemen.

 

Je zult het ding dus in bridgemode moeten zetten en je hele routering zelf moeten regelen, of een Fritz!box er voor in de plaats zetten, want die heeft wel een goede IPv6 stack.

 

Dat laatste kun je proberen als Ziggo weer in staat is eigen routers te activeren, de verwachting is dat ze dit zo rond december weer kunnen.

gertvdijk
Topicstarter
Level 4
  • 24Posts
  • 1Oplossingen
  • 13Likes

Ik ben bang dat je helemaal verkeerde verwachtingen hebt van een Ziggo router. Zo'n ding is bedoeld om er een PC op aan te sluiten, en er dan een beetje mee te kunnen browsen op het internet.

[...] Het is best mogelijk dat het eens gewerkt heeft, maar dat was dan een vergissing

 

@caesar 

Ik begrijp werkelijk niet waar je het over hebt. Ziggo levert 'gewoon' IPv6 met DHCPv6-PD en dat zou moeten werken, net zoals dat bij concurrenten zoals KPN werkt.

 

Je zult het ding dus in bridgemode moeten zetten

 

  1. Dat vind ik niet een prettige situatie, omdat ik graag een tweede apparaat/router gebruik die ernaast staat onafhankelijk van het 'homelab' zeg maar. Het is misschien wel double-NAT op IPv4 als nadeel, maar dat is geen groot probleem voor mij ivm IPv6 dat ernaast draait zonder NAT en de meeste diensten wel op IPv6 werken.
  2. Als in bridge modus zetten opeens een vereiste is voor IPv6 op eigen router...:
    • Waarom zijn er dan configuratieopties in de ConnectBox voor?
    • Waarom is dat niet gecommuniceerd door Ziggo?
    • Waarom reageert de Ziggo-infra (met de ConnectBox als relay) dan met een positieve respons op mijn DHCPv6-PD verzoek?

Ik zou het fijn vinden als je inhoudelijk reageert met argumenten in plaats van de schuld bij mij neer te leggen met waarde-oordelen.

 

gertvdijk
Topicstarter
Level 4
  • 24Posts
  • 1Oplossingen
  • 13Likes

Vriendelijke ping naar @Paul - ik zag je actief in andere topics over IPv6. Wellicht kan je bovenstaand issue doorspelen aan je collega's bij engineering. En zou je kunnen navragen of bridge-modus een vereiste is voor DHCPv6-PD of niet? Thanks! 🙏

 

En @acropia, mag ik jou vragen of je nog een goede setup hebt en of het nog werkt? Ik zag met de search dat je ook issues had met hetzelfde modem (al was het iets anders, ik krijg wel altijd een prefix). Thnx.

caesar

Level 17
  • 4140Posts
  • 70Oplossingen
  • 1327Likes

@gertvdijk 

Ik leg de schuld niet bij jou neer, dat is een misvatting.

 

Vier maanden geleden heeft het Duitse blad CT een onderzoek gedaan naar de IPv6 stacks van 25 routers. Slechts vier daarvan konden goed omgaan met DHCPv6-PD.

tobiastheebe

Level 20
T.E.A.M.
  • 31064Posts
  • 2180Oplossingen
  • 15500Likes

De DHCPv6-server op de modemrouters van Ziggo is niet ontworpen voor downstream prefix delegation, enkel voor stateless DHCPv6 c.q. het verspreiden van DNS-servers binnen een enkel LAN, daar zijn de configuratie-opties voor bedoeld. Met het modem in bridge mode en een apart (V)LAN i.p.v. het LAN van de Connectbox creëer je een beduidend stabielere situatie.

gertvdijk
Topicstarter
Level 4
  • 24Posts
  • 1Oplossingen
  • 13Likes

@caesar 

Bedoel je deze test? https://www.heise.de/select/ct/2023/2/2230709000622055021

 

In dat geval: heb je dat wel goed gelezen? Daar gaan ze het gedrag van routers testen *achter* de modem van de ISP, in dit geval een ConnectBox. "router cascades with prefix delegation (DHCPv6-PD)" (Google translated)

Dus dat is allemaal leuk en aardig, maar zegt niets over een modem/router zoals de ConnectBox in dit geval, die heeft de rol van doorgeefluik voor IPv6, en daarop gaat het nu mis voor mij.

tobiastheebe

Level 20
T.E.A.M.
  • 31064Posts
  • 2180Oplossingen
  • 15500Likes

Het modem is alleen een doorgeefluik in bridge mode. Er is nu een DHCPv6-server actief op de eRouter waarvan de /60 afkomstig is, de /60 is op diens beurt afkomstig uit de /56 die is ontvangen van de DHCPv6-server op het CMTS. In jouw geval is er dus ook sprake van cascaded routers.

gertvdijk
Topicstarter
Level 4
  • 24Posts
  • 1Oplossingen
  • 13Likes

@tobiastheebe

In bridge modus zetten heb ik liever niet om genoemde redenen, maar als ik dat wil laten omzetten om dit werkend te krijgen zou ik graag eerst bevestiging willen van iemand van Ziggo dat dit inderdaad noodzakelijk is.

 

Vóórdat er überhaupt IPv6 in bridge-modus beschikbaar was, was juist router-modus de manier om een eigen IPv6-router te gebruiken. Dat wil ik eigenlijk juist behouden, is wat flexibeler - kan bij problemen in homelab even googlen met de laptop in de ConnectBox direct.

 

Voor IPv6 (DHCPv6-PD) is de ConnectBox sowieso al een doorgeefluik hè. Hij hoeft niet te NAT'en en de DHCP-server is waarschijnlijk alleen een relay voor de Prefix Delegation en dat is in bridge niet anders lijkt mij. Voor IPv4 is het wel een groot verschil uiteraard!

 

Verder zit de ConnectBox als in een geïsoleerd VLAN 🤓, met twee apparaten; waarvan één de homelab server/router is waar het topic over gaat. Als ik dat terug moet brengen naar één ivm IPv4 DHCP die maar één apparaat mag in bridge modus vind ik dat een beetje jammer.

Voor wat betreft IPv4 zou het wel een betere/stabielere situatie opleveren zonder double-NAT enzo, dat ben ik wel met je eens.

 

En cascaded routers of niet, die C't test kan ik toch niets mee, er wordt geen ConnectBox/ISP modem in router-modus in getest, ik heb geen van de genoemde routers.

caesar

Level 17
  • 4140Posts
  • 70Oplossingen
  • 1327Likes

@gertvdijk 

Neen, de voorste router (dus de Connectbox) is zeker geen doorgeefluik. Deze router moet de achterliggende router voorzien van een netwerk, dat is Prefix Delegation. En er zijn maar heel weinig routers die dat goed kunnen doen. Je moet dat zeker niet van een Connectbox verwachten.

tobiastheebe

Level 20
T.E.A.M.
  • 31064Posts
  • 2180Oplossingen
  • 15500Likes

Bridge mode voor IPv6 op (V)LAN's achter de eigen router is geen vereiste, maar wel sterk aanbevolen. Dit geldt overigens voor een eigen router in het algemeen.

 

Bij bridge mode communiceert jouw router direct met de DHCPv6-server op het CMTS, zoals de eRouter van het modem dat nu doet. Voor zowel IPv4 als IPv6 is er dus een wezenlijk verschil tussen router en bridge mode. I.p.v. een enkele /60 uit de /56, krijgt jouw router beschikking over de gehele /56.

 

Je kunt op de eigen router een extra (V)LAN aanmaken voor de homelab server/router en deze voorzien van een tweede /64 uit de delegated prefix. Indien een extra fysieke interface beschikbaar is, volstaat het aanmaken van een extra LAN, anders kun je een VLAN + virtuele interface aanmaken en DOT1Q gebruiken.

gertvdijk
Topicstarter
Level 4
  • 24Posts
  • 1Oplossingen
  • 13Likes

@tobiastheebe Thanks voor je inzichten.

 

Bij bridge mode communiceert jouw router direct met de DHCPv6-server op het CMTS, [...] I.p.v. een enkele /60 uit de /56, krijgt jouw router beschikking over de gehele /56.

 

Zou ik nog wel twee routers kunnen aansluiten waarbij ik een grotere prefix vraag? Bijvoorbeeld elk een /60 waarbij ze beide die grootte in de prefix hint opgeven in de DHCPv6 request. Dan verlies ik wel IPv4 op de tweede router (want Ziggo geeft mij geen tweede IPv4-adres), dat is voor mij geen enkel probleem, wel minder ideaal.

 

Ik wil die homelab server/router en de tweede (backup) router namelijk niet cascaderen, maar juist naast elkaar, beide achter de ConnectBox.

Als dat mogelijk is dan overweeg ik om binnenkort toch eens mijn ConnectBox in bridge-mode te zetten.

tobiastheebe

Level 20
T.E.A.M.
  • 31064Posts
  • 2180Oplossingen
  • 15500Likes

Waarom zou je niet simpelweg een tweede /64 aanmaken voor een tweede (V)LAN op de eigen router? Een tweede router is niet nodig.

 

Ik durf niet te zeggen of het mogelijk is om op twee routers parallel achter het modem in bridge mode een delegated prefix op te vragen. Door de boot file op het modem wordt namelijk een MAC-filter gedefinieerd welke WAN-toegang aan maximaal twee MAC-adressen verleend (docsDevMaxCpe = 2). Normaliter zijn de eRouter of eigen router + de eMTA (t.b.v. telefonie) onderdeel van die lijst.

Random

Level 16
  • 2161Posts
  • 101Oplossingen
  • 1125Likes

Foutje.

MR_CHIP

Level 19
  • 11498Posts
  • 131Oplossingen
  • 3968Likes

@Random de reden dat ik nu mr_chip heet had als reden dat niet iedereen mijn echte voornaam hoef te weten 😉

Random

Level 16
  • 2161Posts
  • 101Oplossingen
  • 1125Likes

Oeps sorry, goed dat je het zegt 👍🏻

Ik had het bericht al leeg gemaakt vanwege een andere reden.

MR_CHIP

Level 19
  • 11498Posts
  • 131Oplossingen
  • 3968Likes

@tobiastheebe bij mij staat nog steeds 

 

maximum cpe's = 3

caesar

Level 17
  • 4140Posts
  • 70Oplossingen
  • 1327Likes

@MR_CHIP 

Dat is interessant. Dat betekent dat je een Fritz!box kunt opbrengen die als router, en tegelijk als bridge dienst kan doen. De bridge functie gaat dan over LAN poort 1, en de drie overige LAN poorten zijn router poorten.

 

Dit kan natuurlijk  pas als we Fritz!boxen kunnen activeren .........

efok

Level 17
  • 4014Posts
  • 219Oplossingen
  • 1594Likes

Op mijn Ubee1318 in bridge kan ik 2 routers naast elkaar plaatsen die elk zowel een IPv4 adres als een IPv6 prefix krijgen. De routering tussen die routers is niet goed mogelijk, maar beide hebben een werkende internetverbinding.

E-mail notificaties
Aan Uit

Ontvang een update bij nieuwe reacties in dit topic.

Uitgelicht topic