Bart, waarom is IPv6 nou zo belangrijk? Het internet werkt toch gewoon? Met IPv4 kunnen we echt nog wel een tijdje door.
Heb je kennis van zaken, scroll dan even door naar het eind. Hier volgt eerst een uitleg voor de leek.
Hoe werkt het internet?
Sla dit vooral over als je weet hoe het zit met IP-adressen.
Op het internet heeft iedere computer een adres nodig. Een soort digitaal telefoonnummer. Denk dan aan je laptop, tablet, telefoon, router, je slimme meter, enzovoort. Ook de computers (servers) in een datacentrum hebben een adres nodig. Als je een website bezoekt, dan vraagt jouw computer aan zo’n server de inhoud van die website op. Jouw computer stuurt dan zijn eigen adres mee, zodat de server weet aan wie hij de inhoud moet terugsturen.
Dat gebeurt tot nu vooral met IPv4-adressen. Daarvan zijn er zo’n 4 miljard. We zijn nu met zo’n 8 miljard mensen op deze planeet. Weliswaar heeft maar ongeveer de helft daarvan internettoegang, maar die helft heeft dan wel gemiddeld meer dan 1 apparaat. Ga maar na: jij hebt waarschijnlijk minstens een laptop en een telefoon. Misschien ook nog wel een smartwatch. Daarnaast deel je met andere mensen een router en een slimme meter.
Met andere woorden: die 4 miljard adressen zijn op zichzelf niet genoeg.
NAT
Sla dit vooral over als je al weet wat NAT is.
Gelukkig is er een simpele oplossing: apparaten kunnen een adres met elkaar delen, zolang ze binnen hetzelfde netwerk zitten.
Gaat zo: jouw laptop en jouw telefoon krijgen binnen jouw wifinetwerk een privé-adres van de router (dat ding in je meterkast). Dat adres is alleen geldig binnen jouw netwerk. Een deel van de IPv4-adressen is hiervoor gereserveerd, en omdat die alleen geldig zijn binnen een netwerk, kunnen er meerdere computers ter wereld zijn die hetzelfde privé-adres krijgen. Zolang ze dus maar niet op hetzelfde netwerk zitten.
Een nadeel: als je nu een website bezoekt, weet de server niet aan wie hij de inhoud moet terugsturen. Er kunnen per slot van rekening meerdere computers zijn met dat privé-adres. Dat wordt dan weer opgelost met iets dat ‘Network Address Translation’ (NAT) heet. Komt er grofweg op neer dat jouw router jouw bezoek aan de website afvangt, jouw privé-adres vervangt (‘vertaald’) door zijn eigen echte adres, en dan doorstuurt. De server stuurt de inhoud van de website naar jouw router, die het weer doorstuurt naar jou.
Hoe weet de router dat het naar jouw computer moet? Omdat er nog een nummertje aan ieder internetpakketje vastzit, het poortnummer. Daarvan zijn er ongeveer 65000. Je computer pakt min of meer willekeurig zo’n poortnummer, en plakt die aan het uitgaande pakketje vast. Je router houdt een tabelletje bij met de uitgaande verzoeken en welk poortnummer daaraan hing, en vervangt ook dat poortnummer door iets van zichzelf, en stuurt dat mee. De server stuurt dat poortnummer ook weer mee terug. Zo weet de router voor welke computer op het netwerk dat antwoord van de server eigenlijk bedoeld was. Overigens wordt dit poortnummer ook gebruikt door jouw computer om te weten welk programma die website had opgevraagd (meestal je browser), en welk tabblad binnen die browser.
CGNAT
Soms is dit nog niet genoeg. Stel, je wilt een nieuwe internetprovider starten. Je hebt 500 klanten, maar je hebt maar 1 IP-adres. Hoe ga je dat oplossen? Simpel, je herhaalt het trucje van hierboven, maar dan 1 niveau hoger. Alle 500 klanten hang je achter 1 ‘superrouter’. De aanvraag voor de inhoud van een website wordt dan eerst vertaald door de router in de meterkast, en vervolgens ook nog door de ‘superrouter’. Op de terugweg wordt de vertaling dan telkens 1 stapje teruggedraaid.
Het probleem
Vooropgesteld: bovenstaande werkt op zich best redelijk. Het heeft alleen twee nadelen: zo’n nieuwe internetprovider heeft nog altijd minstens 1 IP-adres nodig, en omdat er maar 65000 poorten achter kunnen hangen, kan hij achter 1 adres dus ook maximaal 65000 klanten hangen. En in de praktijk nog veel minder. Dus wil je een nieuwe innovatieve internetprovider beginnen? Vergeet het maar.
Servers, het grotere probleem
Nou leuk, maar zoveel innovatie is er misschien helemaal niet nodig in internetproviderland. Maar stel, je hebt een server met alleen een privé-adres, dus achter een NAT-router. Je zet daar een mooie website op, bijvoorbeeld de nieuwste vorm van sociale media (dit keer echt privacyvriendelijk en niet-verslavend en zo). Hoe gaan laptops jouw server bereiken?
Port forwarding
Je zou vooraf een poortnummer kunnen afspreken, en die vastzetten in de tabel van de router. Dat heet port forwarding. Websites zijn bijvoorbeeld standaard bereikbaar op poort 80 of 443 (voor https). Je kunt dan instellen dat je router al het verkeer voor poort 80 doorstuurt naar je server. Bij CGNAT zou je dan ook de NAT-tabel van je provider moeten aanpassen (hier beginnen de problemen al).
Probleem van portforwarding
Maar wat doe je als je meerdere webservers hebt? Je kunt poort 443 maar naar 1 computer doorverwijzen, want je hebt maar 1 IP-adres.
De echte oplossing
Meer IP-adressen. Simpel zat. Vergelijk het maar met telefoonnummers. Als we nummers hadden van drie cijfers lang, konden we maximaal 1000 mensen een nummer geven. Maak je er zes cijfers van, kun je 1.000.000 mensen een nummer geven. Zoiets speelt ook bij IP-adressen. Alleen: langere nummers passen niet in een IPv4-pakketje. Daarom is in de jaren ‘90 IPv6 ontstaan. In IPv6-pakketjes passen wel langere nummers. Dat zijn dan dus wel andere pakketjes, en software moet daar wel op worden aangepast.
Dat is gelukkig gebeurd, en al jarenlang kan vrijwel alle software met zowel IPv4 als IPv6 overweg.
Wil je nu een nieuwe provider beginnen of een nieuwe website, dan heb je geen IPv4-adres meer nodig, en neem je alleen een IPv6-adres. Daar zijn er genoeg van, ze zijn daarom ook heel goedkoop, dus jij kunt lekker verder innoveren. Ook als je er in 1x 100000 klanten bij krijgt, of nog 100 websites wilt starten.
Dé reden voor IPv6
Ook leuk: je kunt nu makkelijk thuis een computer als server inrichten.
Niet alleen meer als hobby, maar er kunnen ook kant-en-klare thuisservers worden verkocht. Kun je lekker veilig je eigen data beheren, ook zonder technische kennis. En je huisgenoten ook. Zou toch een mooi, decentraal, alternatief zijn voor Big Tech?
O nee, toch niet (de schandpaal)
Want dan heb je net je IPv6-only-thuisservertje gekocht, en kun je ’m plotseling niet updaten. Blijkt dat 1 van de updates van GitHub komt, dat om een duistere reden nog altijd geen IPv6 ondersteunt.
Of 1 van je vrienden kan vanuit thuis jouw website niet bereiken. Want hij zit bij Odido, en Odido biedt geen werkende internetverbinding. Als enige provider overigens, dus zeg daar vooral als de bliksem je abonnement op. Mobiel internet van ben.nl gaat ook via Odido, dus daar kun je een fatsoenlijke internetverbinding ook vergeten.
De punchline
Zonder IPv6 is de helft van de websites niet bereikbaar. Althans, van de websites die zouden moeten bestaan. Check jij ook even op internet.nl of het bij jou allemaal werkt?