Inleiding
Vorig jaar op 8 juni was het de World Ipv6 Day. Omdat het aantal vrije ipv4-adressen nu toch wel heel schaars begint te worden, is deze feestdag dit jaar omgedoopt tot de World Ipv6 Launch. Tweakers.net grijpt de gelegenheid aan om nog eens in de ipv6-materie te duiken.
Het internet protocol
Het internet protocol is, zoals de naam al doet vermoeden, een van de protocollen waarop het internet leunt. Dit protocol zorgt voor de routering van gegevens en logische adressering, waarmee het mogelijk wordt om pakketjes bytes tussen twee willekeurige machines te versturen. In het OSI-model opereert dit protocol op de netwerklaag, tussen de data link layer - die voor fysieke adressering zorgt - en de transportlaag, die verantwoordelijk is voor de cohesie tussen de pakketjes.

Op dit moment is versie 4, waarvan de eerste request for comments al in 1981 werden geschreven, veruit de meest gebruikte versie. De voorlopers ipv1, ipv2 en ipv3 waren in feite een combinatie van het ip-protocol en wat we nu tcp noemen; met ingang van ipv4 werden beide protocollen van elkaar gescheiden.
Een ipv4-adres bestaat uit vier getallen van 0 tot 255, die voor de leesbaarheid door punten zijn gescheiden. Een ipv4-adres - bijvoorbeeld 213.239.154.20 - is daardoor altijd in 32 bits op te slaan. Dat betekent dat er iets minder dan 4,3 miljard unieke ipv4-adressen zijn. Daarvan is een flink deel gereserveerd voor speciale toepassingen; zo zijn de 192.168- en 10-subnets uitsluitend bruikbaar voor lokale netwerken. Ook is een zestiende deel van alle adressen gereserveerd voor multicast.
Toch klinkt 4,3 miljard alsof er heel veel adressen beschikbaar zijn, en dat is ook wat de ontwikkelaars van het protocol dachten - maar het bleek niet genoeg en het aantal beschikbare ipv4-adressen is aan het opraken. Vint Cerf, een van de grondleggers van het internet, heeft de schuld daarvoor op zich genomen. Hij was het die op een gegeven moment besloot om voor een 32bits-systeem te kiezen. Dat was wel genoeg voor een experiment, dacht hij. FCW tekende uit zijn mond echter op dat 'het probleem is dat het experiment nooit meer op zou houden'.
"Wij hebben nog tot deze zomer voldoende ipv4-adressen", zegt Rob Blokzijl, voorzitter van RIPE, de community achter RIPE NCC. Deze in Nederland gevestigde organisatie is een van de vijf Regional Internet Registries, die verantwoordelijk is voor de uitgifte van ip-adressen in Europa, het Midden-Oosten en een deel van Azië. Na de zomer moeten providers het doen met de ip-adressen die ze al hebben. De verwachting is dat het binnen een paar jaar heel moeilijk wordt om nog ipv4-adressen te bemachtigen.
Nieuwe versie
De oplossing is echter allang gereed: een nieuwe versie van het internet protocol. Hoewel de benaming 'ipv5' het meest voor de hand zou liggen, is die versie - bedoeld voor streaming over internet - nooit van de grond gekomen. Het nieuwe internet protocol is dus 'ipv6' gedoopt.
Een ipv6-adres bestaat, in tegenstelling tot een ipv4-adres, uit 128 bits. Met zoveel bits zijn 340 sextiljoen adressen te maken. Dat is een getal met 39 cijfers, waarmee elke molecuul van elke mens op aarde een paar duizend adressen zou kunnen krijgen. Dat zou voorlopig even genoeg moeten zijn.
Het ipv6-protocol werd al in 1994 als standaard aangenomen. Toch surft bijna iedereen nog met een ipv4-adres. Nu de ipv4-adressen opraken, zullen providers zo langzamerhand moeten overstappen op het nieuwe protocol, maar daar lopen de meeste nog niet warm voor.
Toch verwacht Rob Blokzijl van RIPE dat over een paar jaar het internet moeiteloos op ipv6 draait. Het zal ook wel moeten, willen providers groeien - en dat willen commerciële bedrijven natuurlijk altijd wel.
Het probleem met ipv6-adressen is echter dat ze niet compatibel met ipv4-adressen zijn. Dat komt doordat niet alleen het ipv6-adres verschilt van de ipv4-varianten: het hele protocol is anders opgezet.
::1
Een ipv6-adres bestaat uit acht 16bits blokken, gescheiden door dubbele punten. Het local host-adres is bijvoorbeeld 0000:0000:0000:0000:0000:0000:0000:0001, waar dat bij ipv4 nog 127.0.0.1 was. Het handige aan ipv6-adressen is echter dat ze afgekort kunnen worden, door opeenvolgende blokken van nullen te vervangen door een tweetal dubbele punten. Daardoor kan het localhost-adres ook als ::1 worden ingetikt. Anders dan de decimale ipv4-adressen worden ipv6-adressen overigens hexadecimaal weergegeven, zodat je ook de letters a tot en met f kunt tegenkomen.
Volgens de specificatie zijn de eerste 48 bits van een ipv6-adres de global routing prefix, die bijvoorbeeld uniek voor een bepaalde provider is. De volgende 16 bits vormen het subnet-id, uniek voor de abonnee. De laatste 64 bits zijn het host-id, bedoeld voor individuele apparaten. Het host-deel kan bijvoorbeeld op het mac-adres gebaseerd zijn, het unieke nummer dat elke netwerkadapter door zijn fabrikant krijgt toegewezen.
Daardoor heeft elke internetabonnee waarschijnlijk dus een 64bits adresruimte tot zijn beschikking - als providers zich tenminste aan deze standaard houden. Dat zijn 18.446.744.073.709.551.616 ipv6-adressen per abonnee.
Any-to-any
Ipv6 zou dan ook de any-to-any-gedachte van het internet - vanaf elke plek in het internet kun je elke andere willekeurige plek bereiken - weer mogelijk maken: er zijn immers genoeg ipv6-adressen voor elk apparaat van een internetgebruiker, waar die nu maar één uniek ipv4-adres kregen.
In dat geval zouden nat-routers, die een lokaal subnet aan het internet koppelen en die tegenwoordig bij de meeste internetgebruikers in de meterkast hangen, niet meer nodig zijn. De vraag is echter of elk apparaat daadwerkelijk aan het internet moet worden gekoppeld.
Dat brengt immers de nodige beveiligingsrisico's met zich mee. Als ieder apparaat bereikbaar is voor iedere internetgebruiker, is dat ook zo voor mensen met minder goede bedoelingen.
De kans is daarom groot dat de router of kabelmodem die een gebruiker thuis heeft staan, in de toekomst nog steeds inkomend verkeer tegenhoudt, tenzij dit verkeer in antwoord op een verzoek van een lokale host is. Dat is ook wat veel huidige nat-routers doen.
Meer dan alleen het adres
Zoals we eerder al aangaven, zijn ipv4 en ipv6 niet compatibel. Dat komt doordat er meer verandert dan alleen de hoeveelheid adressen en de manier waarop ze worden opgeschreven.
Zo verandert de samenstelling van de header van ip-pakketten. Bij beide versies van het protocol geeft de header onder meer aan waar het pakket vandaan komt en waar het naartoe moet. Bijna alle overige parameters verschillen echter, net als de grootte van de header: een ipv4-header was nog tussen de 20 en 60 bytes, bij ipv6 nemen die standaard 40 bytes in beslag.
Daarnaast wordt in ipv6 het address resolution protocol uit ipv4, dat onder meer ip-adressen koppelt aan mac-adressen, vervangen door het neighbor discovery protocol. Beide protocollen zijn anders van opzet en dus niet compatibel.
Omdat ipv4 en ipv6 niet met elkaar overweg kunnen, is de meeste consumentenelectronica die de afgelopen jaren is verkocht, van het dual stack-type: apparatuur is geschikt voor zowel ipv4 als ipv6. Veel modems die al jaren bij mensen thuis staan, zijn dat echter nog niet en zullen dus vervangen moeten worden.
De korte termijn
Het opraken van ipv4-adressen zal op korte termijn waarschijnlijk geen merkbare gevolgen voor de gemiddelde internetgebruiker hebben. Alle websites zijn nog via ipv4 bereikbaar, en internetproviders hebben voorlopig nog genoeg ip-adressen om hun klanten op het internet aan te sluiten.
Mochten ze in de problemen komen, dan zullen ze waarschijnlijk snel overgaan op ipv6 - en anders is het altijd nog mogelijk om klanten achter een nat-router te zetten, zodat ze met hun ipv4-apparatuur alsnog met ipv6-sites verbinding kunnen maken. Ook kunnen klanten desgewenst zelf een ipv4-naar-ipv6-tunnel instellen om over hun ipv4-pijp van een ipv6-verbinding te genieten. Wat de transitie overigens vergemakkelijkt, is dat ipv4 en ipv6 naast elkaar gebruikt kunnen worden: klanten die een ipv6- én een ipv4-verbinding hebben, kunnen dus nog gewoon ipv4-websites bezoeken.