Skip to main content

Ik ben al een tijdje bezig met het bestuderen van het nieuwe internet protocol IPv6, dat het al lang bestaande tekort aan IPv4 adressen moet gaan opvangen. Eerst via een tunnel provider, waar IPv6 over de IPv4 verbinding loopt, totdat plotseling KPN adressen op mjin thuisnetwerk verschenen… Het betreft een Experia box V10 met DSL. Ik heb in een virtuele machine gekeken hoe het met een PfSense router werkt en daarover wat opgeschreven. Ik zal het hierbij delen, misschien heeft iemand er wat aan.

 

IPv6 met Experiabox V10

 

IPv6 is het nieuwe internet protocol, op dit moment als “dual stack” samen met het oude IPv4 beschikbaar op steeds meer aansluitingen. Functionaliteit is vergelijkbaar, alleen worden 128 bits gebruikt voor een adres i.p.v. 32. Er is dus een astronomisch aantal adressen beschikbaar. 

 

Notatie van IP adressen. 

IPv4:    4 decimale getallen tussen 0 en 255, gescheiden door punt.   Voorbeeld: 192.168.1.254

IPv6:    8 hexadecimale getallen tussen 0 en ffff, gescheiden door “:”

Voorbeeld:    2a02:1234:5678:0:a54b:8c6d:3357:410d

Voorloop nullen worden weggelaten

Groepen van achtereenvolgende nullen kunnen vervangen worden door “::”, zolang het adres ondubbelzinnig is.  

 

Een IPv6 bestaat uit een netwerk-deel en een deel voor de aangesloten systemen. Standaard ligt de scheiding bij 64. Automatische configuratie (SLAAC) is gebaseerd op deze  /64 netwerken. 

 

Prefix: Netwerkdeel van het IP adres, gevolgd door “::/” en  het aantal bits van het netwerk gedeelte.  Voorbeeld: 2a02:1234:5678:9abc::/64

Bovendien krijgt iedere netwerk interface standaard een link-local adres in  fe80::/64

 

Hoe krijgt een netwerk interface een IPv6 adres: 

 

  • Stateless (SLAAC): Hiervoor hoeft niets gedaan te worden. De Experiabox verzendt “Router Advertisements” met prefix, router adres en DNS server.  De computer geeft zichzelf aan de hand van de prefix een IPv6 adres.. Dit wordt nergens geregistreerd, vandaar “Stateless”, maar de PC hangt aan het IPv6 internet. Test: https://ipv6-test.com

  • Stateful: Vraag via een DHCP een IPv6 adres en DNS adres op bij de Experia box. Routing komt alsnog via een advertisement en kan even duren!
     

  • Handmatig: Adres, prefix lengte, DNS en route worden handmatig geconfigureerd. Pas op: het correcte default router adres staat niet op de Experiabox status pagina!

 Routing wordt via een “router advertisement” gezet. Dit kan een paar minuten duren, de Experia box lijkt niet op “router solicitations” te reageren. 

 

Beschikbaar  2**64 = 1.8e19 wereldwijd unieke en van buitenaf bereikbare adressen. Wat moet je daarmee? Als consument niet veel, hoeveel smart LED’s passen in een woning? Maar het  is mogelijk de laatste 64 bit’s random te maken, om tracking op PC niveau te hinderen. Maar de KPN prefix identificeert de woning precies zoals het globale IPv4 adres….

 

Beperking:

De Experiabox is een consumenten router met minder configuratie mogelijkheden dan een professionele router.  De Experia box firewall configuratie is gebaseerd op host/poort, net als bij IPv4. Wel kunnen meerdere DMZ’s geconfigureerd worden. Waarschijnlijk zit daar de beperking van het aantal van buitenaf bereikbare apparaten.

 

Extra router achter de Experia box:

 

Ondanks het gigantische aantal adressen is er een probleem: als een router achter de Experia box gezet wordt, zijn de computers aan de LAN kant van de router niet zichtbaar. Onder de motorkap verloopt IP communicatie via MAC adressen. De Experia box vraagt via “Neighbour Discovery” wie een bepaald IPv6 adres bezit en wat het MAC adres is. Als een systeem achter een router hangt, is dit onzichtbaar en de verbinding komt niet tot stand. De Experia box moet dus weten dat die adressen achter een router zitten en dus VIA de WAN van de router bereikt moeten worden. Dat zit helaas niet in de configuratie pagina’s….

Bij IPv4 is dit geen probleem, omdat iedereen NAT accepteert, alle systemen op de LAN van de router worden afgehandeld door de WAN van de router, en dan door de WAN van de Experia box op het publieke IPv4 adres. En dan puzzelen met port forwarding. Maar nu zijn er 2**64 unieke IPv6 adressen i.p.v een enkel IPv4 adres.

 

Dit is bij IPv6 als volgt opgelost: KPN is genereus en geeft iedere gebruiker een /48 prefix.

Hiermee kunnen theoretisch 65536 /64 subnetten gemaakt worden.

Dit betekent dat de eerste drie groepen van het IPv6 adres door KPN bepaald worden, van de vierde groep zijn 0000 en 0001 gereserveerd voor de Experia box,  0100 tot ffff kunnen voor  subnetten gebruikt worden.  

 

Maar hoe te configureren????  Antwoord is “Prefix delegation”. 

Een speciale DHCP opdracht vraagt aan de Experia box een prefix. Deze geeft een /56 prefix.

Dit kan een door de Experia box te kiezen prefix zijn, of een vooraf gedefinieerde, mits beschikbaar. Met een /48 prefix kun je 256 /56 prefixen maken, van een /56 weer 256 /64 prefixen. Een DHCP client die dat kan is dhcp6c, deze vraagt via de router-WAN een /56 prefix aan de Experia box, en verdeelt deze in /64 prefixen voor LAN en VLANS. Om de hele /56 prefix aan de router uit te besteden, zet de Experia box zet een route naar het link-local adres van de WAN van de router. Het is niet vereist dat WAN  een eigen IPv6 adres krijgt, link-local is standaard beschikbaar.   

 

Implementatie in PfSense firewall: (getest in VirtualBox)

 

Advanced Networking: Schakel “Allow IPv6” in (!)

Firewall: Open port TCP/UDP 546 voor Ipv6 op de WAN poort voor de DHCP client.   

 

WAN/IPv6 Configuration type : DHCPv6

DHCPv6 Prefix delegation size: 56

 

LAN:    IPv6 configuration type: Tracking interface

    Track IPv6  interface : WAN

    IPv6 prefix ID: Definieert de laatste twee hex-cijfers van het vierde segment van het adres. 

 

Hetzelfde voor eventuele VLAN’s, ieder een ander IPv6 prefix ID. 

Vaste /56 prefix: Lukt mij niet via het PfSense DHCP6/advanced menu, maar wel met een door de gebruiker gedefinieerde dhcpv6_wan.conf file. De PfSense interface biedt deze mogelijkheid. 



 

 


 

  

Als de Experia Box /56 prefixen toewijst dan betekent dat dat je aan de LAN zijde van jouw PfSense gewoon /64 prefixen op jouw (v)lan's zou moeten kunnen gebruiken en dat daarmee SLAAC mogelijk zou moeten zijn.


Beste  Wjb,

 

Klopt helemaal….  Ik krijg ook /64 aan de LAN kant. Het is de dhcp6 parameter SLA_LEN die bepaalt hoeveel bits er van de prefix toegevoegd worden, die staat op 8.  In de DHCP6 Advanced  is deze in te stellen, zodat je ook bijv. van /56 naar /60 kunt in in een volgende router naar /64. Maar of iemand dat bij thuisgebruik nodig heeft???

 


Hello @hmmsjan_2 , I’ve tried this, but I’m only getting a /64 prefix on my WAN (and not a /56, as you mentioned), and then I’m not able to distribute it over my VLANs. Could it be something I’m missing?


Hello Kalpik,

You’re getting only a /64 on the WAN side, that’s just one address from the Experiabox LAN subnet, but you do not need it at all.   In the “Track” configuration of pfsense, a DHCPv6 client asks the Experia box via WAN to route another prefix to the Pfsense router.  Default, this is 2a02…..💯:/56, which allows to distribute 2a02…..100::/64 up to 2a02…...ffff::/64 to LAN and VLAN’s. You do not see anything on the WAN side, but because of the additional routing you can use the new subnets on the LAN/VLAN side. PfSense takes care of it by the “tracking” construct, you only have to specify the number added to this “…..:0100::” as “IPv6 prefix ID” for the different VLANS.   If you configure SLAAC for the LAN, all clients automagically get an IPv6 address in this 2a02:…..💯:/64 range.

 

Hope this helps…

 

 

 


Hi @hmmsjan_2,

Thanks for your reply, but for now, I am not able to get a /56 prefix from Experiabox. This is how I have configured WAN on OPNSense (very similar to pfsense)\

But this is what I get on this interface:

 


Please do not look to the WAN, but the LAN side of the router or the interfaces state page. LAN IPv6 config = Track with track referring to the WAN interface.

LAN IPv6 dhcp = SLAAC. The LAN interface should get an address in the 2a02:nnnn:nnnn:0100::/64 range. At the moment, my PfSense VM is not in the right state, if you do not succeed I’ll look into it further.

 

 


Works again…. All subnets are ::/64.

WAN   1000baseT <full-duplex> 192.168.2.12
2a02:mmmm:nnnn:1:5054:ff:fe5b:c69
LAN   1000baseT <full-duplex> 192.168.5.1
2a02:mmmm:nnnn:400:5054:ff:fe9e:bc4
OPT1   1000baseT <full-duplex> 2a02:mmmm:nnnn:401:5054:ff:fe9e:bc4

 

WAN = DHCP6, "Only request prefix" does not matter, Prefix delegation size = 56, Optional: start DHCP6 client in debug mode.

LAN = ¨Track Interface", IPv6 interface = "WAN", IPv6 Prefix ID = 0 (from 0 to ff)

Router is a V10 H369, not a V10a or V12.

On the LAN DHCPv6 could be enabled, but enabling unmanaged router advertisements is sufficient for automatic configuration.

Do not forget to open WAN port 546 TCP/UDP.  DHCPv6 sends a request to a multicast address, the server reply is a new connection from outside! 

Good luck !

 

Essential part of DHCP log:

May 14 12:25:31 dhcp6c 91433 get DHCP option IA_PD, len 41
May 14 12:25:31 dhcp6c 91433 IA_PD: ID=0, T1=47641, T2=76226
May 14 12:25:31 dhcp6c 91433 get DHCP option IA_PD prefix, len 25
May 14 12:25:31 dhcp6c 91433 IA_PD prefix: 2a02:mmmm:nnnn:400::/56 pltime=95283 vltime=181683
 

 

 

       
       
       

Since I lost access to the web configurator, I had to reinstall and upgraded to 2.6.  There are two options  in the WAN settings: "Block private networks and loopback addresses" and "Block bogon networks". It looks they have to be unchecked both to get it working behind the Experia box.

 

fe80::/10, the IPv6 link local address,  seems to belong to ¨Bogon addresses"….   

 


Since I lost access to the web configurator, I had to reinstall and upgraded to 2.6.  There are two options  in the WAN settings: "Block private networks and loopback addresses" and "Block bogon networks". It looks they have to be unchecked both to get it working behind the Experia box.

 

fe80::/10, the IPv6 link local address,  seems to belong to ¨Bogon addresses"….   

 

Thank you SO MUCH for the details. I will try it. I think it’s the bogon addresses checkbox that caught me. I will try fixing this, and then post back. Once again, thanks for all your help!


Indeed it was the bogon networks checkbox. All works after disabling that! Thanks a lot for your help :)


Great! You’re lucky that I messed up my system (only login page despite correct login) and had to reset to defaults, otherwise I had overseen this option at the bottom of the page….

 


Great! You’re lucky that I messed up my system (only login page despite correct login) and had to reset to defaults, otherwise I had overseen this option at the bottom of the page….

 

Haha, indeed :D


This doesn't work with a 10A?

Mine says on the loginpage " Welkom bij H369A.”. Is this a 10A?

I Think I did all the steps outlined here but my LAN gives no IPv6 address on the status page,

On WAN it does.

I did not enable DHCPv6 but I selected on the “DHCPv6 Server & RA”-page in the RA page the Unmanaged mode and left all others at default.

Edit:

I have 2 telephone ports (2 numbers), so I have a 10 according to pictures. (I'm not at home at the moment so I can't look).

 


This doesn't work with a 10A?

Mine says on the loginpage " Welkom bij H369A.”. Is this a 10A?

I Think I did all the steps outlined here but my LAN gives no IPv6 address on the status page,

On WAN it does.

This doesn't work with 10A as far as I know.


The strange thing is I connected a Ubiquiti Edgerouter Light with OpenWRT installed to a LAN port of the Experiabox and then a connected laptop got an IPv4 + an IPv6 address and internetconnectivity on IPv6 but not on IPV4.


@warnerthuis  H369A is Experiabox V10, so that’s fine. The LAN interface should be set for IPv6 as tracking interface, it means it asks the V10 a prefix which it can distribute on the LAN.  The IPv6 address consists of 8 segments, the first four are from KPN and start with 2a02 and the 4th one is “1” on the WAN side. The prefix-delegated one on the LAN side and the clients should start with 2a02 and the 4th one is 100. Absolutely essential is that the PfSense firewall port 546 tcp/udp on the WAN side is open for protocol IPv6. Please check this. Reason:  Pfsense calls DHCP servers via a multicast address, the Experiabox answers with a NEW connection on port 546.

RA Unmanaged sends a router advertisement and the clients are free to use the prefix advertised, so that’s fine. I do not know whether a Windows client takes also the IPv6 DNS server from the router advertisiment, Linux does. Otherwise “assisted” might help, with DHCPv6 and DNS active on the PfSense. 

IPv6 DNS is not a problem if IPv4 works, it provides IPv6 addresses too.

Of course, the Edgerouter IPv4 should just work with DHCP on the LAN side, with NAT enabled from the LAN subnet to the Experiabox 192.168.2.x

Good luck!

 

 


Zou dit ook moeten werken met een Experiabox V12?

Ik had mijn FortiGate 60F geconfigureerd voor gebruik zonder Experiabox. Helaas loop ik tegen de limieten van de cpu aan (max download snelheid 600Mbps) omdat de PPPoE sessie niet door meerdere cores kan worden afgehandeld. 

Uit frustratie maar de Experiabox ertussen geplaatst, alleen krijg ik IPv6 niet meer werkend. Mijn LAN interfaces krijgen geen IPv6 adres middels Prefix Delegation. 

Ik heb nog wat geprobeerd met SLAAC op de wan interface, een nd-proxy voor de lan interfaces en statische IPv6 adressen op de LAN interfaces, maar ook dit werkte niet. Het lijkt dan mis te gaan met de routering, want de clients kunnen tot aan de interface van het VLAN pingen, alles daarna krijgt geen echo response. 

Wat ik heb meegenomen uit jouw uiteenzetting, is de poorten voor DHCP6 open zetten. De rest van de configuratie om gebruik te maken van Prefix Delegation heb ik gelaten zoals het was. 

Ik zie met een packet capture op de wan interface alleen sollicits en advertises voorbij komen en daar stopt het. 


Beste rmgbenschop,

Wat ik begrepen heb, maar ik weet niet of dit nog steeds actueel is, is de V10 de enige Experiabox met een bruikbare IPv6 implementatie. In uw geval zou de WAN een /64 adres moeten krijgen. Om dan adressen aan de LAN kant te kunnen gebruiken is prefix delegatie vereist. Daarvoor is een DHCPv6 client nodig, die een open 546/udp poort vereist. Of de V12 een DHCPv6 server heeft weet ik niet. SLAAC of vaste adressen op de LAN en VLAN met hetzelfde /64 subnet als de WAN zou moeten werken, mits een NDP proxy draait (ndppd).  De WAN geeft dan zijn MAC adres aan de V12 voor alle adressen aan de LAN/VLAN kant, maar ik begrijp dat dat ook niet gelukt is… Jammer, helaas ruilt KPN niet om, de V10 doet het prima.

 

 


Het klopt volgens mij dat de V12 (nog) geen IPv6 prefix delegation ondersteunt en dat het daarmee dus onmogelijk is om een IPv6 prefix aan te vragen voor een achterliggende router.


Ik weet niet of de Fortigate de daarvoor benodigde software aan boord heeft: Als het alleen gaat om IPv6 toegang van de clients, is er ook nog de mogelijkheid NAT te gebruiken. Alle voordelen die IPv6 heeft gaan daarmee overboord, maar het werkt wel. Dan kunt aan de LAN kant radvd alle mogelijke /64 prefixen laten uitdelen en SLAAC adressen laten toewijzen, aan de uitgang wordt toch alleen het WAN adres gebruikt. Onder Linux is het een kwestie van ip6tables gebruiken i.p.v. iptables, de regel om NAT in te schakelen is identiek. Als u interne IPv6 adressen van buitenaf wilt bereiken is dit einde verhaal, dan moet op twee plaatsen port forwarding ingesteld worden. Ik meen me te herinneren dat iemand op dit forum uiteindelijk wel succes had met een NDP proxy. Als ik het terug kan vinden laat ik het weten. 

 

 

Dat was met een Edgerouter:

 

 

 


Hartelijk dank voor jullie reactie @hmmsjan_2 en @wjb . 

Mag ik vragen waar jullie de informatie over de boxen vandaan hebben? Ik kan zelf namelijk geen technische specificaties vinden van de verschillende boxen. 

Wat betreft “SLAAC of vaste adressen op de LAN en VLAN met hetzelfde /64 subnet als de WAN zou moeten werken, mits een NDP proxy draait (ndppd).  De WAN geeft dan zijn MAC adres aan de V12 voor alle adressen aan de LAN/VLAN kant, maar ik begrijp dat dat ook niet gelukt is… “ is dat inderdaad niet gelukt.

Ik moet toegeven dat ik niet geprobeerd heb om hetzelfde /64 subnet te gebruiken, want dat is technisch ook niet mogelijk (net als met IPv4 neem ik aan?). Ik krijg dan de melding dat de prefix overlapt met de prefix van de wan interface. Met een ander /64 subnet kom ik niet verder dan de interface van het subnet. 

En ook bedankt voor de suggestie om “Als het alleen gaat om IPv6 toegang van de clients, is er ook nog de mogelijkheid NAT te gebruiken.”, maar wat je zelf al zegt, alle voordelen van IPv6 gaan dan overboord. En daar wil ik het dan niet voor gebruiken. 


Klopt, ook pfsense weigert dat. Maar de WAN heeft geen IPv6 adres nodig, heeft altijd zijn fe80 adres. Als de experia box contact wil opnemen met een IPv6 adres binnen zijn subnet, wordt een verzoek gestuurd naar een multicast adres. De ndp proxy moet dat opvangen, op LAN gaan kijken of dat adres er is en het MAC adres van WAN teruggeven. De Experiabox denkt dan dat dat adres rechtstreeks aangesloten is en zendt het packet richting WAN van de router. Ik begrijp dat Fortigate een eigen OS heeft, geen OpenWRT o.i.d, dus of die proxy functioneert, geen idee. Maar in ieder geval moeten alle LAN/VLAN adressen binnen de Experiabox prefix liggen. Mogelijk werkt het in combinatie met de ndp-proxy om LAN en VLAN in kleinere prefixen onder te brengen, maar dan werkt SLAAC niet meer, wel dhcpv6.

 

 


Met V10 en een Linux router werkt het binnen een enkel /64 subnet. De interface aan de WAN kant moet geen IPv6 adres krijgen, aan de LAN kant kan radvd adressen en route verzorgen. (niet als kleinere subnetten gebruikt worden, dan DHCPv6).  De uitgedeelde adressen moeten in het subnet van de V10 liggen, dus 2a02:nnnn:mmmm:1::/64. De Linux kernel parameters van de gebruikte interfaces moeten zijn: forwarding=1 en ndp_proxy=1   Het programma “ndppd” zorgt voor het afhandelen van de neighbor discovery, en stuurt het MAC adres van de WAN i.p.v. het achterliggende systeem. Configuratie van het programma in een richting is voldoende.

Als er meerdere systemen met de Experia box verbonden zijn, weet de Linux router niet of die via LAN of WAN verbonden zijn. Dan moet ndppd in twee richtingen geconfigureerd worden met de opties promiscuous en autowire. Ieder aangesloten systeem krijgt dan een aparte /128 route in de routetabel.  Het lijkt te werken.

Pinhole op basis van IP adres werkt, getest met twee aangesloten webservers die beide via poort 80/443 bereikt kunnen worden.

De volgende vraag is of dit op de Mikrotik ook werkt met hun ndp proxy. In principe is het dus mogelijk.

 

Ten overvloede: dit is een testconfiguratie voor een V12 Experia, niet de goede configuratie voor een V10 !

 

 

 

 

 


Zou dit ook moeten werken met een Experiabox V12?

Ik had mijn FortiGate 60F geconfigureerd voor gebruik zonder Experiabox. Helaas loop ik tegen de limieten van de cpu aan (max download snelheid 600Mbps) omdat de PPPoE sessie niet door meerdere cores kan worden afgehandeld. 

Uit frustratie maar de Experiabox ertussen geplaatst, alleen krijg ik IPv6 niet meer werkend. Mijn LAN interfaces krijgen geen IPv6 adres middels Prefix Delegation. 

Ik heb nog wat geprobeerd met SLAAC op de wan interface, een nd-proxy voor de lan interfaces en statische IPv6 adressen op de LAN interfaces, maar ook dit werkte niet. Het lijkt dan mis te gaan met de routering, want de clients kunnen tot aan de interface van het VLAN pingen, alles daarna krijgt geen echo response. 

Wat ik heb meegenomen uit jouw uiteenzetting, is de poorten voor DHCP6 open zetten. De rest van de configuratie om gebruik te maken van Prefix Delegation heb ik gelaten zoals het was. 

Ik zie met een packet capture op de wan interface alleen sollicits en advertises voorbij komen en daar stopt het. 

Zou je wellicht je config van je Fortigate willen delen voor ipv6? Ik krijg helaas geen prefix op mijn pppoe, thanks 


@TechJunky,

Is poort 546/UDP open op de PPPOE voor de dhcpv6-client?

Misschien is het handig om hiervoor een apart topic aan te maken, dit is gelabeld als Experia V10 met pfSense en eindigt via de V12 en Fortigate… Een nieuw topic zou ook anderen kunnen aanspreken die Fortigate draaiend hebben en je aan een config kunnen helpen.

Â