Het is natuurlijk onmogelijk om van het ene moment op het andere elke computer, router, e.a. over te schakelen naar IPv6. Daarom is er een speciale werkgroep opgericht, ngtrans (IPng Transition Working group), die aanbevelingen heeft gedaan voor een vloeiende overgang van IPv4 naar IPv6. Aan de basis liggen twee grote principes: IPv6 moet parallel kunnen samenleven met IPv4, en er moeten minimale mogelijkheden zijn om te communiceren in een gedeelde IPv6-IPv4 omgeving.
Het eerste principe is makkelijk te begrijpen. Het valt immers te verwachten dat de beide protocollen nog een hele tijd naast elkander zullen blijven bestaan, en dat sommige nodes tot diep in de 21ste eeuw IPv4-transport zullen moeten blijven bedienen (bv. backbone-routers).
De tweede eis ligt moeilijker: aan de grond van IPv6 ligt een geheel nieuw adresserings-concept, dat niet in IPv4 in te bouwen valt. Toch zijn er een aantal mogelijkheden tot communicatie (zie verder).
Twee belangrijke specificaties moeten ervoor zorgen dat de overgang vlot verloopt:
De IPv6-implementatie moet onafhankelijk van de IPv4-stack geïmplementeerd worden, zodanig beide parallel op een node (computer) beschikbaar zijn. Deze aanpak moet ervoor zorgen dat een computer beide soorten dataverkeer kan ontvangen. Het onderscheid tussen een IPv4 en IPv6 pakket kan simpelweg gemaakt worden a.d.h.v. het IP-versie nummer in de IP-header.
Het parallel opereren van beide IP-stacks kan zonder al te veel problemen geïmplementeerd worden, zo bewijst de realiteit: IPX, NETBUI, en TCP/IP lopen nu al op een groot deel van de PC's parallel.
IPv4 ondersteunt al een hele tijd het idee van een tunnel. Hiermee wordt bedoeld dat verkeer tussen twee netwerken door een tunnel gestuurd wordt: 1 gateway stuurt alle dataverkeer door naar een andere gateway, die op zijn beurt het verkeer terug verdeelt.
Een tunnel kan in principe eender welke data transporteren, en is niet aan IPv4 gebonden. De ngtrans werkgroep heeft een aantal specificaties gemaakt die het mogelijk maken om IPv6-dataverkeer over een IPv4-tunnel te sturen. De tunnel blijft onzichtbaar voor de communicerende IPv6-nodes.
Het grote probleem is natuurlijk: hoe wordt het dataverkeer over een IPv4-netwerk gerouteerd. Het is onmogelijk voor de tussenliggende nodes om te weten naar waar een IPv6-pakket gestuurd moet worden, en/of er een tunnel gebruikt moet worden. Dit probleem wordt opgelost door manueel tunnels te configureren, of IPv4-compatibele IPv6-adressen te gebruiken (automatische tunnels).
_____________________
_____________ | IPv4 Network | _____________
| Dual-stack| | | | Dual-stack|
| IPv4/IPv6 |-------tunnel through-------| IPv4/IPv6 |
| router | | | | router |
------------- --------------------- -------------
/ | \ / | \
/ | \ / | \
/ | \ / | \
---- ---- ---- ---- ---- ----
| | | | | | | | | | | |
---- ---- ---- ---- ---- ----
IPv6 endstations IPv6 endstations
Het principe van manueel geconfigureerde tunnels is eenvoudig: een router die beide IP-protocollen beheerst wordt zodanig geconfigureerd dat alle verkeer naar een bepaalde reeks IPv6 adressen over een IPv4-tunnel wordt gestuurd.
Een IPv4-compatibel adres is niets meer dan een IPv4-adres (32 bits) waaraan 0'en worden voorgevoegd, tot het adres 128-bits lang is. Wanneer de Ipv6-stack een pakket naar een IPv4-compatibel adres stuurt, weet deze dat de communicatie via een IPv4-verbinding zal verlopen. Hij zal eerst de IPv6-pakketten genereren en daarna deze verpakken in IPv4-pakketten. Deze worden doorgestuurd naar het IPv4-adres dat zich in het adres bevindt. De bestemmeling pakt eerst de IPv4-pakketten terug uit, en verwerkt daarna de IPv6-paketten. Het is duidelijk dat op deze manier één van de grootste voordelen van IPv6 verloren gaat, met name de grotere adressen. Maar de andere voordelen van IPv6 zijn wel toegankelijk: authenticatie en encryptie.
Het moet benadrukt worden dat de overgang van IPv4 naar IPv6 niet noodzakelijk een pijnlijke gebeurtenis hoeft te zijn: het biedt tevens de mogelijkheid om van een frisse lei te herbeginnnen. Zo kan de overgang van IPv4 naar IPv6 een perfecte mogelijkheid zijn om scheefgegroeide situaties recht te trekken: bv. een nieuwe opdeling in subnetten, het doen samensmelten van een aantal grote netwerken, maar men kan evengoed de oude netwerk-topologie behouden.
In een bedrijfsomgeving zijn er een tweetal overgangscenario's te bedenken:
Afgebakende groepen computers (bv. subnetten) kunnen stuk voor stuk opgewaardeerd worden naar IPv6. De dual stack-method zorgt ervoor dat zij hun connectiviteit met de rest van het bedrijf niet verliezen. Tussen de verschillende IPv6-eilanden kunnen tunnels gelegd worden, of men kan de oude IP-nummers blijven gebruiken als IPv4-compatibele IPv6-adressen, zodat er automatisch met de andere eilanden gecommuniceerd kan worden.
IPv6 "Island" IPv6 "Island"
-------------------- --------------------
| | | |
| Dual Stack Hosts | | Dual Stack Hosts |
| ----- ----- | | ----- ----- |
| | | | | | | | | | | |
| ----- ----- | | ----- ----- |
| | | | | | | |
| \ / | | \ / |
| --------- | | --------- |
| | Dual | | | | Dual | |
| | Stack | | | | Stack | |
| | Router| | | | Router| |
| --------- | | --------- |
| | | |
-------------------- --------------------
\ /
\ /
-------- --------
IPv4 | IPv4 |-------------------| IPv4 | IPv4
Hosts | rtr | | rtr | Hosts
----- -------- IPv4 -------- -----
| X |-\ / \ infrastructure / \ /-| W |
----- \ / \-------\ /--------/ \ / -----
\ / \ / \ /
----- \ ------- ------- ------- / -----
| Y |------| rtr |----------| rtr |---------| rtr |------| Z |
----- ------- ------- ------- -----
Men kan ook voor de andere strategie kiezen: eerst de routers en grote servers upgraden, zodat zij via IPv6 met elkaar kunnen communiceren, en pas daarna de individuele computers. Deze aanpak laat toe om de backbone van het bedrijf te laten genieten van de uitgebreide veiligheidsvoorzieningen van IPv6: encryptie en authenticatie, terwijl de clients via IPv4 met de servers communiceren.
Deze aanpak past wonderwel binnen een merging-scenario: twee grote IPv4-netwerken die aan elkaar gekoppeld moeten worden, kunnen verenigd worden in één IPv6 netwerk, dat vanuit de basis opgebouwd wordt.
Eén van de belangrijkste troeven van deze benadering is de mogelijkheid om IPv6-tunnels op te zetten, en deze te encrypteren. Tevens is het mogelijk twee IPv6-nodes (routers, servers) te verbinden via een IPv4-tunnel. Het IPv6-dataverkeer wordt dan via de IPv4-tunnel doorheen Internet gestuurd. Voor de communicerende IPv6 nodes is de IPv4 tunnel onzichtbaar, hij telt dan ook maar als één hop. (zie ook IPv6 over IPv4)
-------------- --------------
/ \ / \
| Enterprise | ------------ | Enterprise |
| A |-------| IPv6 rtr |-------| B |
\ / ------------ \ /
-------------- --------------
^ |
| |
| v
--------- ---------
|IPv4+ | IPv6 communication |IPv4+ |
| IPv6| - - - - - - - - - - - - - > | IPv6|
| Host | | Host |
--------- ---------
Gezien de gelaagde structuur van de TCP/IP-protocolstack, moeten de bovenliggende lagen niet sterk gewijzigd worden. De belangrijkste wijziging zijn Jumbo-grams, d.w.z. IP-pakketten die groter zijn dan 64Kb. De noodzakelijke veranderingen aan TCP en UDP zijn reeds gespecifiëerd.
Verder is er ook nog de een uitbreiding op DNS (Domain Name System) gespecifiëerd: het nieuwe AAAA-record dat een IPv6-adres aan een naam bindt.
De wijzingingen die applicaties moeten ondergaan, is natuurlijk recht evenredig met de mate waarin zij op IP steunen. In de meeste gevallen kan men zich beperken tot het voorzien van een grotere ruimte voor IPv6-adressen.