Alles over het verschil tussen ipv4 en ipv6
Het internet is uit lagen opgebouwd. Eén van die lagen is de internetlaag, waar het internetprotocol zijn werk doet om je data van punt A naar punt B te krijgen. Nu maken we grotendeels nog gebruik van internetprotocol versie 4, ooit zal dat alleen versie 6 worden. Wat is precies het verschil tussen ipv4 en ipv6?
Ip staat voor het internetprotocol en bestaat als versie 4 en versie 6. Het ligt op de tweede laag, de internetlaag, van het tcp/ip-protocol en is verantwoordelijk voor het vervoeren van pakketten van de bron naar de bestemming. Dat kan betekenen dat een pakket erg veel netwerken langs moet om zijn eindbestemming te bereiken: ip kiest de beste route.
Versie 6 is de nieuwste versie van het internetprotocol, dat voornamelijk gebouwd is omdat het aantal beschikbare ip-adressen van versie 4 al lange tijd opraken. Dat zag de organisatie achter het internetprotocol overigens al in 1990 aankomen, toen het werk begon aan ipv6. De standaard was klaar in 1998, maar is nog maar zeer beperkt in gebruik.
Ooit zullen alle ipv4-adressen opraken. Wanneer dat gaat gebeuren, dat weet niemand echt precies. De IANA is de organisatie verantwoordelijk voor het toekennen van ip-adressen en eind 2011 werden de laatste ipv4-blokken toegekend aan de betreffende regio’s en daarna verdeeld tussen de isp’s in die regio. In 2011 dachten we dat het eind 2012 al gedaan zou zijn met de ip-adressen. Die voorspelling bleek niet te kloppen. Er is een aantal redenen waarom we nog niet allemaal overgestapt zijn op ipv6.
Isp’s hebben geen reden om echt over te stappen, omdat hun netwerken stabiel zijn. Er gaan wat klanten weg, er komen wat klanten bij, dus je hergebruikt wat adressen en alles gaat z’n gangetje. Daarnaast gaat de overstap erg moeizaam, omdat je pas echt van de voordelen kunt genieten als ook het allerlaatste netwerk over is op versie 6. Niet echt geweldig. Laat staan dat iedereen dan ipv6 aan moet zetten: hardwarefabrikanten, contentproviders, internetproviders en meer, en niemand heeft echt reden om dat te doen.
Sinds 1990
Het werk aan de opvolger van ipv4 begon in 1990 onder naam van IPng, IP next generation, een Star Trek-referentie. Iedereen mocht ideeën voor een nieuw protocol opsturen naar de Internet Engineering Task Force. In eerste instantie was clnp een goede kanshebber om ipv6 te worden, beter bekend als Connectionless-mode Network Protocol. Clnp had een adresruimte van maar liefst 160 bits, waarmee bij wijze van spreken elk watermolecuul in de oceaan zelfs een klein netwerk kon opzetten. Clnp leek erg veel op ipv4, maar het kreeg een slechte naam omdat het van het Open Systems Interconnection model afkomstig was, de tcp/ip-concurrent van de ISO (Internationale Organisatie voor Standaardisatie).
Zoals bekend verloor het osi-model het van tcp/ip, dat ontwikkeld was door de Amerikaanse Defensie. Clnp had als nadeel dat het niet efficiënt multimedia kon verwerken. Het uiteindelijk gekozen protocol is sipp, dat staat voor Simple Internet Protocol Plus, en aanzienlijk verschilt van ipv4. Sipp behoudt de goede functies van ipv4 en is compatibel met veel internetprotocollen, zoals tcp, udp, dns, icmp, waar alleen kleine aanpassingen aan hoeven te worden gemaakt om het te laten werken met ipv6.
Het werk aan de opvolger van ipv4 begon reeds in 1990
-
Het opvallendste voordeel van ipv6 is dus de grote adressering. Met de 128bit-adressen (16 bytes) van ipv6 is de kans klein dat de adressen ooit opraken, aangezien daarmee ruim 340 sextiljoen adressen mogelijk zijn (dat is een getal met 36 nullen), in tegenstelling tot de 32-bitadressen van ipv4. Andere voordelen zijn kleinere routing-tabellen, een eenvoudiger protocol, betere veiligheid en dat altijd hetzelfde ipv6-adres behouden kan worden.
Elk ip-pakket bevat een header met allerlei informatie over waar het pakket heen moet, waar het vandaan komt en wat erin zit. Ipv6 verkleint die header naar zeven velde (in tegenstelling tot de dertien in ipv4), maar de totale header is wel groter geworden wat betreft het aantal bytes dat erin zit: 20 bytes in ipv4 tegenover 40 bytes in ipv6.
Ipv6-header
De header van ipv6 bevat de volgende zeven velden: de eerste is het versieveld, voor ipv6 is dat uiteraard een 6, voor ipv4 een 4. Daarna komt het veld Traffic Class, waarin informatie ligt opgeslagen over hoe snel het pakket afgeleverd moet worden. De eerste zes bits van dat veld worden gebruikt voor de zogenoemde differentiated services, de andere twee voor congestion control, maar die items worden samen Traffic Class genoemd. Het veld Flow-label geeft de mogelijkheid om een groep pakketten met dezelfde eisen te labelen.
Het internetprotocol is een zogenoemd stateless protocol, maar met het Flow-label kan toch een ‘state’ gebruikt worden. Het Payload length-veld geeft aan hoeveel data er in het pakket zit. In elk ipv6-pakket passen 65.535 bytes, 20 bytes meer dan ipv4. In het Next header-veld is ruimte voor extra headers, zoals extra opties. Zijn die er niet, dan geeft dit veld aan of het gaat om udp- of tcp-verkeer. Daarna volgt het Hop limit-veld, dat aangeeft hoe lang het pakket in leven blijft, zoals hoe vaak het mag ‘hoppen’ voordat het gedropt wordt.
De laatste twee velden zijn het Source Address-veld (het ip-adres van de verzender) en het Destination Address-veld (het ip-adres van de ontvanger). Beide adressen bestaan dus uit 16 bytes. Oorspronkelijk bevatte ipv6 adressen van 8 bytes lang, maar dat vond de Internet Engineering Task Force (de organisatie achter internetstandaarden) te weinig, dus werden het 16 bytes.
Ipv6 bevat overigens niet alle functies en headervelden van ipv4. Zo mist er een veld voor Security, Quality of Service, automatische configuratie en internetroutering. Het Time to Live-veld van ipv4 heet in versie 6 het Hop Limit-veld, zoals eerder besproken.
Ipv4 = 4.294.967.296 adressen, Ipv6 = 340.282.366.920.938.000.000.000.000.000.000.000.000 adressen
-
Een voordeel van ipv6 is dat ipsec onderdeel is gemaakt van het protocol. Met ipsec kan elk pakketje versleuteld worden voor veilige communicatie tussen apparaten. Dat ipsec onderdeel is van ipv6 betekent niet dat standaard alle communicatie is versleuteld, maar dat er minder overhead nodig is om ipsec te gebruiken in vergelijking met versie 4.
Het is natuurlijk ook gewoon mogelijk om ipsec te gebruiken over ipv4. Ondersteuning voor ipsec in ipv6 is toegevoegd via het Next Header-veld. Daarin kan de authenticatieheader gebruikt worden. Die zorgt voor de integriteit van de rest van de headers van ipv6. De Encapsulating Security Payload in het Next Header-veld bevat de daadwerkelijk versleutelde data van het pakket.
©PXimport
De nieuwe ipv6-adressen zijn een stuk langer in vergelijking met v4. Daarom worden deze adressen met een nieuwe notatie opgeschreven. Ze worden in groepen van acht in hexadecimale notatie opgeschreven, gescheiden met dubbele punten tussen elke groep. Bijvoorbeeld: 2a02:a450:7af3:0000:99e8:0000:0000:feb0.
Heel erg veel adressen zullen één of meer groepen met alleen maar nullen bevatten. Die mogen worden ingekort door ze niet weer te geven, zodat het adres er dan bijvoorbeeld als volgt uitziet: 2a02:a450:7af3::99e8:::feb0.
Waar in ipv4 bepaalde adressen gereserveerd zijn voor lokaal gebruik, namelijk 192.168.x.x, 172.16.x.x en 10.0.x.x, beginnen lokale ipv6-adressen altijd met fe80. Een multicast-adres begint met ff0x met x tussen 1 en 8.
NAT verleden tijd
Dankzij nat hebben we de ‘ipcalypse’ ontweken, voor nu, omdat niet elk apparaat een uniek ip-adres hoeft te krijgen. Dat is vooral handig voor bijvoorbeeld het internet of things, dat een explosie aan apparaten zal veroorzaken. Met ipv6 gaat dat veranderen en gaat nat de deur uit, want het is niet meer nodig. Elk apparaat krijgt een uniek adres met ip-versie 6.
Geen gedoe dus meer in je router om de poorten van Plex of je server door te sturen. Nat is niet meer nodig, omdat er simpelweg genoeg adressen zijn om aan alle netwerkapparaten uit te delen. Hoewel nat in een aantal gevallen frustrerend kan zijn, had het wel als impliciet voordeel dat het voor betere veiligheid zorgde (zie kader ‘Hoe werkt nat?’). Wat de veiligheidsproblemen gaan zijn zonder nat, is lastig te zeggen.
Ipv6-privacy
Er is een aantal privacyzorgen als gevolg van ipv6. Elk apparaat krijgt namelijk een uniek adres, waardoor nat niet meer nodig is. Dat betekent dat als jij straks een website bezoekt, dan ziet deze niet langer je externe ip-adres, maar direct het adres van je eigen apparaat. Ip-adressen waren al persoonsgegevens, zo oordeelde het CBP. Met ipv6 wordt het erger: je ip-adres wordt afgeleid van het mac-adres van het apparaat dat je gebruikt. Het wordt een soort ‘supercookie’. Dat betekent dat apparaten door netwerken gevolgd kunnen worden, want je krijgt dan steeds een grotendeels identiek ip-adres toegekend.
Met een paar eenvoudige stappen kun je van het ipv6-adres het mac-adres van een apparaat herleiden. Er is een oplossing: privacy addressing, dat het mac-adres verbergt met adressen die regelmatig veranderen. Dat is echter niet zo handig voor netwerkbeheerders, omdat ip-adressen dan onvoorspelbaar worden, wat het opsporen van fouten en beheer lastig maakt. Er is een nieuwe standaard: Semantically Opaque Interface Identifiers, die zorgen dat netwerkadressen uniek zijn per netwerk, zodat je op hetzelfde netwerk wel steeds hetzelfde adres hebt, maar het compleet verschilt op een ander adres.
©PXimport
De toekomst
Providers kunnen op twee manieren overstappen op ipv6: DS-Lite of Native Dual-Stack. Met DS-Lite heb je thuis een openbaar ipv6-adres, maar een privé-ipv4-adres dat is uitgedeeld door de provider. Het netwerk van de provider is ipv6. De modem verpakt ipv4-pakketten in ipv6 en verstuurt ze zoals normaal. Deze pakketten komen dan bij de nat van de provider terecht die het ipv4-pakket uit het ipv6-pakket haalt en het naar het ipv4-internet stuurt. Het nadeel van DS Lite is dat je niet meer op ipv4 portforwarding kunt instellen, want de nat zit dan bij de provider. Met de Native Dual-Stack krijg je zowel een openbaar ipv4- als ipv6-adres en houd je wel de volledige controle.
Bij KPN is de ipv6-uitrol al enige tijd gestart. Met een Experia Box v9 of v10 is de kans groot dat je een ipv6-adres hebt toegewezen gekregen. Bij Ziggo wordt de firmware nog getest voor veel modems. In juni zocht Ziggo nog bètatesters voor ipv6 en op het moment van schrijven is het bij 11 procent van de klanten uitgerold. Andere providers zijn er ook mee bezig, maar daar gaat het ook niet echt hard.
Je kunt zelf testen of je klaar bent voor ipv6 met deze website. Google houdt bovendien het aandeel bij van internetverkeer over ipv6 op deze pagina. De groei van ipv6-ondersteuning neemt langzaam toe. Was dat in 2009 nog rond de 0 procent, in 2014 was het gegroeid naar twee procent en nu zitten we rond de twintig procent. In Nederland lopen we wat achter: op dit moment pas 10 procent ondersteuning. In België bereikte het ipv6-verkeer in juni al 50,01 procent. Er is dus nog een lange weg te gaan.