Nieuwe voordelen met Internet-Protocol versie 6

Met de invoering van IPv6 op het internet veranderen de fundamentele processen van netwerkcommunicatie. De vergroting van de adresruimte van 32 naar 128 bits lost niet alleen de toenemende schaarste van IP-adressen op; de nieuwe standaard maakt het ook mogelijk om alle computers in een netwerk een uniek adres te geven. Anders dan IPv4 past IPv6 dus consequent het basisprincipe van IP toe: het end-to-end-principe. Wij leggen uit hoe.


Wat is IPv6?

IPv6 staat voor ‘Internet-Protocol versie 6’ en is een door de Internet Engineering Task Force (IETF) gestandaardiseerde methode voor de overdracht van datapakketten in computernetwerken. Samen met ongeveer 500 andere netwerkprotocollen van de familie TCP/IP vormt IPv6 als directe opvolger van IPv4 de basis voor de communicatie op internet. De belangrijkste functies van IPv6 zijn de adressering van netwerkelementen met zogenaamde IPv6-adressen en het doorsturen van pakketten tussen subnetwerken, ook wel routing genoemd. Daarvoor is IPv6 gebaseerd op de netwerklaag (layer 3) van het OSI-referentiemodel.

De toewijzing van IP-adressen gebeurt door zogenaamde RIR’s (Regional Internet Registries) die door de IANA (Internet Assigned Numbers Authority) steeds eigen IP-adresruimte toebedeeld krijgen. Het RIR dat verantwoordelijk is voor Europa, het Midden-Oosten en Centraal-Azië is het RIPE NCC (Réseaux IP Européens Network Coordination Centre).


IPv6 vs. IPv4

Op het eerste gezicht valt al op dat het nieuwe adresformaat van de zesde IP-versie duidelijk anders is dan dat van de voorganger IPv4.

  • IPv4-adres: 203.0.120.195
  • IPv6-adres: 2001:0620:0000:0000:0211:24FF:FE80:C12C

Terwijl bij het Internet-Protocol van versie 4 de adressen 32 bits lang zijn en normaal gesproken in een decimale notatie worden geschreven, werkt de opvolger IPv6 met 128 bits-adressen die voor de leesbaarheid in een hexadecimale notatie worden weergegeven. Een directe vergelijking onthult het belangrijkste doel van deze nieuwe IP-standaard: met 128 bits kunnen beduidend meer unieke IP-adressen worden gegenereerd dan met 32 bits.

  • Adresruimte van IPv4: 32 Bit = 232 adressen ≈ 4,3 miljard adressen
  • Adresruimte van IPv6: 128 Bit = 2128 adressen ≈ 340 sextiljoen adressen

Wat dit verschil in lengte betekent, blijkt uit deze vergelijking: terwijl de adresruimte van IPv4 met ongeveer 4,3 miljard IP’s niet eens bij benadering genoeg is om alle mensen ter wereld een uniek adres te geven, kan met een 128 bits-systeem theoretisch elk zandkorreltje op aarde meerdere IP-adressen krijgen. De invoering van IPv6 kan dus worden gezien als een investering in de toekomst. Want trends als het internet der dingen (‘Internet of Things’, IoT) doen vermoeden dat het aantal apparaten dat met het internet is verbonden en een unieke identificatie moet hebben in de komende jaren drastisch zal toenemen.


De structuur van een IPv6-adres

De 128 bits van een IPv6-adres zijn verdeeld in acht blokken van 16 bits. In hexadecimale notatie kan een 16 bits-blok worden opgeschreven met vier cijfers of letters. Dubbele punten zorgen voor de scheiding:

  • 2001:0620:0000:0000:0211:24FF:FE80:C12C

Om IPv6-adressen handiger op te schrijven is er een verkorte notatie vastgelegd, waarbij de nullen die vooraan in een hexadecimaal blok staan, weggelaten kunnen worden. Wanneer een hexadecimaal blok uitsluitend uit nullen bestaat, moet de laatste nul blijven staan:

  • 2001:0620:0000:0000:0211:24FF:FE80:C12C
  • 2001:620:0:0:211:24FF:FE80:C12C

Per IPv6-adres is het bovendien eenmalig mogelijk om twee opeenvolgende nulblokken willekeurig weg te strepen:

  • 2001:620:0:0:211:24FF:FE80:C12C
  • 2001:620::211:24FF:FE80:C12C

De dubbele punten na elkaar (in het voorbeeld hierboven na het tweede blok) geven de weglatingen aan.

In de praktijk hebben internetgebruikers veel minder adressen tot hun beschikking dan het 128 bits-formaat doet vermoeden. De reden hiervoor is het ontwerpprincipe van IPv6: anders dan de vorige versie moet de nieuwe standaard een echte end-to-end-verbinding mogelijk maken en de vertaling van privé naar openbare IP-adressen op basis van NAT (Network Address Translation) overbodig maken. In principe kon ook met IPv4 een end-to-end-verbinding worden gerealiseerd, maar omdat de IPv4-adresruimte toch te klein was om elk apparaat een uniek adres te geven, werd een systeem met gescheiden adresruimtes en de intermediaire component NAT ontwikkeld. Met de nieuwe standaard kan nu elk apparaat dat is verbonden met een LAN via een eigen IP op logische wijze adresseren. IPv6-adressen hebben daarvoor naast het gedeelte voor netwerkadressering (ook netwerkadres of routingprefix genoemd) een unieke ‘interface identifier’ die afkomstig is van het MAC-adres van de netwerkkaart van het apparaat of handmatig is gegenereerd. Zowel de routingprefix als de interface identifier omvatten elk 64 bits van een IPv6-adres.


IPv6: Structuur

Structuur: de routingprefix

De routingprefix van een IPv6-adres is normaal gesproken opgesplitst in een netwerkprefix en een subnetprefix. Dit wordt weergegeven in de zogenaamde CIDR-notatie (Classless Inter-Domain Routing). Daarvoor wordt de prefixlengte, d.w.z. de lengte van de prefix in bits, met een slash (/) aan het netwerkadres toegevoegd.

De notatie 2001:0820:9511::/48 beschrijft bijvoorbeeld een subnetwerk met de adressen 2001:0820:9511:0000:0000:0000:0000:0000 tot 2001:0820:9511:FFFF:FFFF:FFFF:FFFF:FFFF.

Normaal gesproken krijgen internetproviders (ISP) van het RIR /32-netten toegewezen die zij weer in subnetten opsplitsen. Aan eindgebruikers worden /48-netten of /56-netten verstrekt. De volgende tabel toont de kenmerkende structuur van een global unicastadres in IPv6, bestaand uit netwerkprefix, subnetprefix en interface identifier:

IPv6: Routing prefix

IPv6: interface identifier

Structuur: de interface identifier

De interface identifier geeft een uniek kenmerk aan een bepaald apparaat dat met het netwerk is verbonden en wordt handmatig toegekend of op basis van het MAC-adres van de netwerkkaart van het apparaat gegenereerd. Deze laatste manier is de standaardmethode en berust op het omrekenen van het gestandaardiseerde MAC-adresformaat in het gemodificeerde EUI-64-formaat. Dit gebeurt in drie stappen:

  • Eerst wordt het 48 bits lange MAC-adres verdeeld in twee delen van 24 bits. Deze delen worden het begin en het einde van de 64 bits interface identifier.
    MAC-adres: 00-11-24-80-C1-2C
    Verdeeld MAC-adres: 0011:24__:__80:C12C
  • Daarna worden de resterende 16 bits in het middendeel standaard gevuld met de bitvolgorde 1111 1111 1111 1110 die overeenkomt met de hexadecimaalcode FFFE:
    Aangevuld MAC-adres: 0011:24FF:FE80:C12C
    Het MAC-adres heeft nu het gemodificeerde EUI-64-formaat.
  • Ten slotte wordt de zevende bit, ook wel universal/local bit genoemd, geïnverteerd. Dit geeft aan of een adres globaal uniek is of alleen lokaal kan worden gebruikt.
    Bitvolgorde vóór inverteren:        0000 0000
    Bitvolgorde na inverteren:        0000 0010

    Interface identifier vóór inverteren:        0011:24FF:FE80:C12C
    Interface identifier na inverteren:        0211:24FF:FE80:C12C

IPv6 met privacy extensions

Een IPv6-adres dat is gebaseerd op het gemodificeerde EUI-64-formaat laat sporen achter bij het MAC-adres waarop het gebaseerd is. Omdat gebruikers bedenkingen kunnen hebben omtrent gegevensbescherming, is met privacy extensions een methode ontwikkeld waardoor ook met IPv6 de interface identifier geanonimiseerd kan worden. Daarvoor is de koppeling tussen MAC-adres en interface identifier opgeheven. In plaats daarvan genereren privacy extensions tijdelijke interface identifiers voor uitgaande verbindingen – min of meer willekeurig. Op die manier worden sporen op de host en het maken van bewegingsprofielen op basis van IP ingewikkelder gemaakt.


IPv6-adrestypes

Zoals bij IPv4 heeft ook IPv6 verschillende adresruimtes met speciale functies en eigenschappen. Deze zijn in RFC 4291 en RFC 5156 gespecificeerd en kunnen al worden geïdentificeerd door de eerste bits van een IPv6-adres, de zogenaamde formaatprefix. De belangrijkste adrestypes zijn unicast-, multicast- en anycastadressen.


IPv6: Unicastadressen

Unicastadressen

Unicast adressen worden gebruikt voor de communicatie van één netwerkelement met een ander gelijk netwerkelement en kunnen worden onderverdeeld in twee categorieën: link-localadressen en global unicastadressen.

  • Link-localadressen: adressen in deze categorie gelden alleen binnen lokale netwerken en beginnen met de formaatprefix FE80::/10. Link-localadressen worden gebruikt voor de adressering van elementen binnen een lokaal netwerk en verzorgen bijvoorbeeld de autoconfiguratie. Normaal gesproken reikt een link-localadres tot aan de volgende router, zodat elk apparaat dat met het netwerk is verbonden hiermee kan communiceren om een globaal IPv6-adres te genereren. Dit proces wordt neighbor discovery genoemd.
  • Global unicastadressen: global unicastadressen zijn wereldwijd unieke adressen die een netwerkapparaat nodig hebben om een verbinding met internet te maken. Als formaatprefix wordt in de regel 2000::/3 gebruikt, wat alle adressen omvat die met 2000 tot 3FFF beginnen. Het global unicastadres is routbaar en kan worden gebruikt om een host in het lokale netwerk direct via internet te adresseren. Global unicastadressen die door internetproviders onder de eindgebruikers worden verdeeld, beginnen met het hexadecimaalblok 2001.

IPv6: Multicastadressen

Multicastadressen

Waar unicastadressen dienen voor een-op-een-communicatie, kan met multicastadressen een een-op-veel-communicatie worden gerealiseerd. Daarom wordt ook gesproken over distributeuradressen. Pakketten die naar een multicastadres worden gestuurd, bereiken alle netwerkapparaten die deel uitmaken van de multicastgroep. Daarbij kan een apparaat bij meerdere multicastgroepen horen. Wanneer een IPv6-unicastadres wordt gemaakt voor een netwerkapparaat, wordt dit automatisch lid van bepaalde multicastgroepen die nodig zijn voor de identificatie, bereikbaarheid en prefixbepaling. Klassieke multicastgroepen zijn bijvoorbeeld ‘Alle routers’ of ‘Alle hosts’. Als formaatprefix voor multicastadressen wordt normaal gesproken FF00::/8 gebruikt.


IPv6: Anycastadressen

Anycastadressen

Ook met anycastadressen kunnen groepen van ontvangende apparaten worden geadresseerd. Anders dan bij multicastadressen worden gegevenspakketten echter niet aan alle leden van de anycastgroep gestuurd, maar alleen aan het apparaat dat zich het dichtst bij de verzender bevindt. Anycastadressen worden daarom gebruikt voor belastingsverdeling en beveiliging tegen storing.


Het pakketformaat van IPv6

Ten opzichte van IPv4 onderscheidt het IPv6-protocol zich door een pakketformaat dat beduidend eenvoudiger is. Om het verwerken van IPv6-pakketten te vereenvoudigen is voor de header een standaardlengte vastgesteld van 40 bytes (320 bits). Optionele informatie die alleen in speciale gevallen nodig is, wordt in zogenaamde Extension Headers (EH) opgeslagen, die worden vastgelegd tussen de header en de eigenlijke data (payload). Zo kunnen opties worden ingevoegd, zonder dat de header moet worden veranderd.

IPv6: pakketformaat

De header van IPv6 bevat zodoende alleen nog maar acht hoofdvelden – bij IPv4 waren dat er nog dertien. De structuur van een IPv6-header kan op de volgende wijze schematisch worden weergegeven:

IPv6: pakketformaat

Elk veld in de IPv6-header bevat bepaalde informatie die nodig is om pakketten te verzenden via IP-netwerken:

Field Description
Version Contains the version of the IP protocol according to which the IP package was created (4 Bit)
Traffic Class Denotes the priority allocation (8 Bit)
Flow Label Packages with the same flow level are treated the same way (20 Bit)
Payload Length Specifies the length of the package contents, including extensions, but without header data (16 Bit)
Next Header Specifies the protocol of the parent transport layer (8 Bit)
Hop Limit Specifies the maximum number of intermediate routers a package may pass before it expires (8 Bit)
Source-IP-Address Contains the sender address (128 Bit)
Destination-IP-Address Contains the recipient addresses (128 Bit)

Door de invoering van Extension Headers kan optionele informatie in IPv6-pakketten beduidend effectiever worden geïmplementeerd dan bij IPv4. Omdat routers bij het versturen van een pakket IPv6-Extension Headers dit controleren noch bewerken, worden zij normaal gesproken pas op de doelbestemming uitgelezen. Er is dus sprake van een duidelijke verbetering van de routerperformance bij IPv6 in vergelijking met IPv4, waarbij verstuurde optionele informatie door alle routers op de bezorgroute moet worden onderzocht. De informatie die IPv6-Extension Headers kunnen bevatten, zijn knooppunt-tot-knooppuntopties, doelopties, routingopties en opties voor fragmentering, authenticatie en versleuteling.


Functionaliteiten van Internet-Protocol versie 6

Een groot deel van de internetgebruikers is vooral verbonden met IPv6 vanwege de vergroting van de adresruimte. De nieuwe standaard biedt daarnaast nog talrijke functies waarmee de belangrijke beperkingen van IPv4 worden overwonnen. Daartoe hoort in de eerste plaats de consequente uitvoering van het end-to-end-principe dat de omweg via NAT overbodig maakt en zodoende een implementatie van veiligheidsprotocollen als IPsec beduidend vereenvoudigt.

Bovendien maakt IPv6 de automatische adresconfiguratie via neighbor discovery mogelijk en de toewijzing van meerdere unieke IPv6-adressen per host met verschillende reikwijdtes om verschillende netwerktopologieën weer te geven. Naast de geoptimaliseerde adrestoekenning zorgen de vereenvoudiging van de headers en de opslag van optionele informatie voor het verzenden van pakketten in Header Extensions voor een snellere routing.

Met QoS (Quality of Service) beschikt IPv6 over een geïntegreerd mechanisme voor de beveiliging van de service die zorgt voor een prioritering van dringende pakketten en die de datapakket-handling efficiënter maakt. Daarvoor zijn de velden ‘Traffic Class’ en ‘Flow Label’ direct op de QoS-methodiek afgestemd.

Er moet echter kritisch worden gekeken naar de toekenning van vaste IP-adressen aan lokale netwerkapparaten, alsook naar de wijze waarop unieke interface identifiers op basis van MAC-adressen worden gegenereerd. Met privacy extensions is er weliswaar een alternatief tot stand gebracht voor het gemodificeerde EUI-64 adresformaat, maar omdat ook de prefix van een IPv6-adres in principe voldoende is om bewegingsprofielen van een gebruiker te maken, zou het wenselijk zijn om privacy extensions aan te vullen met een door ISP dynamisch toegewezen prefix om anonimiteit op het internet te garanderen.