IPv6

Internet Protocol version 6 (IPv6) är version sex av internetprotokollet (IP) och även den senaste. Det är en uppföljare till version IPv4 (första versionen) som hade ett begränsat protokoll till cirka 4,3 miljarder unika IP-adresser på grund av sin 32-bitars IP-adress. Under 2010-talet tog de lediga IP-adresserna slut, då en stor del av världens befolkning har kopplat upp sig till internet på flera enheter. IPv6 började utvecklas år 1991 av Internet Engineering Task Force (IETF), och blev klar i sin nuvarande utformning år 1998 och protokollet lanserades därefter i juli 2004 samtidigt som ICANN lade in IPv6-poster i sina DNS-datorer för .jp (Japan) och .kr (Korea). 

Enligt OSI-modellen arbetar IPv6 i nätverksskiktet. I februari 2022 använde enligt Google 14 % IPv6 i Sverige, att jämföras med världsledande Frankrikes 75%.

Protokollet är avsett att ta över efter IPv4 för att inte en brist på IP-adresser ska uppstå. Det fanns även ett IPv5 som dock inte var en efterföljare till IPv4 utan snarare ett experimentellt protokoll avsett för flödande data, exempelvis ljud-, video- och röstkommunikation.

IPv6 och IPv4 är två protokoll som är inkompatibla med varandra. Man använder dock protokollen parallellt med varandra till dess att man övergått till IPv6.

Avsikt med protokollet 
IPv6 utvecklades på grund av att antalet möjliga adresser i IPv4 inte är tillräckligt. IPv4 har med sin 32-bitars adresslängd (bestående av ettor och nollor) drygt 4 miljarder möjliga adresser. Detta räckte gott och väl till när protokollet skapades i början på 80-talet. 2011 reserverades de sista IPV4-adresserna globalt av Iana (Internet Assigned Numbers Authority), som ansvarar för tilldelning av IP-adresser. När operatörerna och dess regionala tilldelare har använt upp hela sitt lager med reserverade IP-adresser är taket nått - det kommer inte gå att få fram nya adresser. 

IPV6 löser problemet genom att vara ett helt omarbetat protokoll för kommunikation inom nätverk. Protokollet löser många problem - men framförallt adresseringproblemet. Jämfört med IPv4 använder IPv6 128 bitar långa adresser, detta ger teoretiskt sätt en möjlighet för 2¹²⁸ = 16³² ≈ 3,4·10³⁸ unika adresser. För att göra det mer överskådligt, 6,7·10¹⁷ adresser per kvadratmillimeter på jordens yta, eller drygt 57 miljarder adresser per gram av hela vår planets massa, eller sammanlagt: 340 282 366 920 938 463 463 374 607 431 768 211 456 adresser (nästan 340,3 sextiljoner), eller 48 611 766 702 991 209 066 200 000 000 adresser per person i världen - med andra ord, det bör räcka ett tag.

Historia 
IPv6 uppfanns av Steve Deering och Craig Mudge på Xerox PARC. IPv6 accepterades av IETF 1994, och kallades då för "IP Next Generation" (IPng).
20 juli 2004 gick ICANN ut med att den första ROOT-DNS-servern på Internet har modifierats för att stödja både IPv6 och IPv4.
Sedan dess har samtliga rootservrar fått stöd för IPv6.

Implementeringen av IPv6 har saktats ner till stor del på grund av introduceringen av NAT, som delvis löser problemet med för få adresser. NAT har dock en hel del begränsningar som gör det mindre lämpligt för P2P-trafik så som IP-telefoni och fildelning. 

Internet domineras fortfarande av IPv4 och vid 2022s slut hade en tredjedel av internets datorer IPv6-adresser. I Sverige finns stöd för IPv6 hos bland annat hos ett flertal internetleverantörer. Stödet bland de svenska internetoperatörerna är dock mycket begränsat beroende på vilken anslutning som erhålls. De "öppna" näten med flera operatörer är en stor begränsning för IPv6 i Sverige. I USA har det bestämts att alla federala myndigheter ska ha visst stöd för IPv6 år 2008.

Sverige 
I Sverige fanns ingen akut brist på IPv4-adresser. Därför väntade många operatörer med att erbjuda IPv6 till sina kunder. Många erbjuder IPv6-anslutningar till företag men inte till privatpersoner.

I början av 2015 aktiverade Tele2 som första operatör IPv6 för alla deras kunder som har mobil eller mobilt bredband.

Internetstiftelsen tog 2019 fram en definition för internetaccess tillsammans med flera svenska operatörer, där det framgår att IPv6 ska tilhandahållas.

Adressering

128-bitars längd 

Den största förändringen mellan IPv4 och IPv6 är längden på adresserna. IPv6-adresser är 128 bitar långa, något som specificeras i Request for Comments RFC 2373 samt RFC 2374. Detta skrivs normalt med 32 hexadecimala tecken, grupperade om fyra separerade med kolon.

IPv6-adresser är vanligen komponerade av två logiska delar: ett 64-bitars nätverksprefix, samt en 64-bitars lokal del. Den senare delen genereras ibland automatiskt med hjälp av nätverkskortets MAC-adress. Oftare används ett slumpat 64-bitars tal eftersom MAC-adresser avslöjar information om användaren. Detta beskrivs i större detalj i RFC 3041.

Notation 
IPv4-adresser ser ofta liknande ut: 192.168.0.1. IPv6 adresser har en helt ny uppbyggnad och skrivs normalt som åtta grupper om fyra tecken. Adressen åtföljs ofta av ett snedstreck, och därefter längden på prefixet.
Ett exempel: 2001:0db8:85a3:08d3:1319:8a2e:0370:7334/64 är en giltig IPv6 adress. 

Sekvenser av nollor kan förkortas och göras mer läsvänlig för människor genom att skriva ihop två kolon och utelämna nollorna där emellan. Inledande nollor i en grupp om 16 bitar (eller 4 hexadecimala tecken) kan förkortas bort. Exempelvis kan adressen 2001:fe0c:0000:0000:0000:0000:00db:1dc0 skrivas 2001:fe0c::db:1dc0. Förfarandet beskrivs i detalj i RFC 4291.

Det kan verka överdrivet med så många adresser, men samtidigt vill man gärna slippa genomföra en liknande övergång som skedde mellan IPV4 och IPV6. Men med tanke på IPV6 uppbyggnad kommer det inte att uppstå en adressbrist inom en rimlig framtid - trots att fler personer men även nya produkter ansluter sig till internet varje dag. 

Dessa sex exempel är alla giltiga och likvärdiga:

 2001:0db8:0000:0000:0000:0000:1428:07ab/64
 2001:0db8:0000:0000:0000::1428:07ab/64
 2001:0db8:0:0:0:0:1428:07ab/64
 2001:0db8:0::0:1428:07ab/64
 2001:0db8::1428:07ab/64
 2001:db8::1428:7ab/64
 
 2001::25de::cade/64 är dock ogiltig eftersom det är otydligt hur många 0000-grupper som har förkortats bort på vardera sida.

Allokerade adresser 
IPv6 har vissa grupper av adresser tillägnade speciella ändamål. IANA har en lista över vilka adressprefix som får användas för olika bruk.
Övriga adresser används ännu inte till någonting. Ytterligare adressgrupper kan finnas inuti de allokerade mängderna som har fler specifika ändamål. Listan nedan är inte fullständig.

 ::/0 som motsvarar IPv4-adressen 0.0.0.0. Gruppen innehåller även loopback-adressen ::1/128 som får användas internt av mjuk- och hårdvara för att beskriva den egna datorn. ::1/128 motsvaras i IPv4 av 127.0.0.1.
 ::ffff:0:0/96 bör enbart användas för att översätta IPv4-adresser till IPv6-adresser enligt RFC 3484. Genom att följa denna standard kan datorer med IPv6-adresser ansluta till datorer med enbart IPv4-adresser.
 2000::/3 används för att beskriva unika adresser nåbara över internet. Alla datorer som är anslutna till internet och har en IPv6 adress har minst en adress ur den här gruppen.
 2001:db8::/32 är speciellt tillägnad exempel-adresser i dokumentation. Detta beskrivs mer i RFC 3849.
 2002::/16 används för att översätta IPv4-adresser till IPv6-adresser och för att skicka IPv6-paket över IPv4-nätverk. Detta beskrivs bland annat i RFC 3056.
 fc00::/7 är Unique Local Address, ULA får lov att användas i LAN och kan jämföras med IPv4 RFC 1918.
 fe80::/10 får lov att användas lokalt mellan två datorer som är direkt anslutna. Ofta används adresserna härur mellan en dator och en router.
 ff00::/8 används för multicast. (Sända meddelanden till flera datorer samtidigt.)
 fec0::/10 och 200::/7 bör inte användas eftersom de internt är inkompatibla mellan olika RFC-dokument.

Pakethuvud 
IP-trafik är paketbaserat, och varje paket inleds med en header enligt följande:

Version – Vilken version av IP-protokollet paketet består av. Detta fält är alltid 6 (binärt 0110) för IPv6.

Traffic class – Beskriver paketets prioritet. Paket med låg prioritet kan kastas före paket med högre prioritet om en länk blir överbelastad.

Flow label – En QoS-indikator som nätleverantörer kan sätta för att ge olika behandling till olika typer av tjänster, protokoll eller användare.

Payload length – Antal byte som följer efter pakethuvudet i paketet.

Next header – Beskriver vilken typ av information som följer direkt efter pakethuvudet. Det kan vara en beskrivning av ett annat protokoll (till exempel TCP) eller ytterligare information (extension headers) som beskriver hur paketet önskas behandlas av nätutrustningen. Detta beskrivs bland annat i RFC 2460.

Hop limit – Antal gånger som paketet får skickas vidare mellan nätutrustning innan det når mottagaren. Fältet finns för att motverka att paket skickas vidare i all evighet om nätutrustningen vore felkonfigurerad.

Source Address – Sändarens IP-adress.

Destination Address – Mottagarens IP-adress.

Data – Information som skickas till mottagaren.

Funktioner

Stateless Address Autoconfiguration
Det är inte bara en förändring av adresseringen som har skett mellan IPV4-adresser och IPV6-adresser, utan även fler funktioner som har lagt till eller förbättras för en smartare uppbyggnad. IPV6 har fått en förbättrad automatisk konfigurering av anslutningsinställningar och även fått integrering av säkerhetsfunktionen IPsec som en mycket viktig del (existerade i IPV4 men var inte lika bakomliggande). Nätverkspaketen har även fått en smartare uppbyggnad så att routrarna kan hantera dem snabbare och bättre i IPV6 med sina förbättrade prioriteringsfunktioner. Multicasttekniken är även vidareutvecklad med förbättrade funktioner för data i mobilnät. Stateless Address Autoconfiguration (SLAAC) är även den en av de nya funktionerna I IPv6 för att snabbt införa uppkopplingsbara enheter/maskiner i ett nätverk. När en IPv6 enhet ansluts till IPv6 nätverk konfigureras den automatiskt med hjälp av Neighbor Discovery Protocol via Internet Control Message Protocol Version 6 (ICMPv6).

SLAAC mekanismen kräver ingen manuell konfiguration av nya enheter, minimal (om några) konfigureringar av routers och inga ytterligare servrar. Genom en kombination av lokalt tillgänglig information och information som annonseras av routrar, tillåts en enhet att generera en egen adress. Routrar annonserar prefix som identifierar subnät associerade med en länk, medan enheten genererar en ”interface identifier” som unikt identifierar interfaces på ett subnät. En adress bildas genom att kombinera de båda. Vid avsaknaden av en router kan en enhet enbart generera ”Link-local addresses”. Men ”link-local addresses” är tillräckliga för att kommunikation mellan noder som är anslutna till samma länk. Genom användningen av ”Link-local addresses” kan man uppnå ”Plug-and-play” kommunikation.

SLAAC metoden används när man inte bryr sig om vilken exakt adress som enheten använder sig av. När man kräver en bättre kontroll av exakta adressuppgifter använder man sig av Dynamic Host Configuration Protocol för IPv6 (DHCPv6). SLAAC och DHCPv6 kan men bör inte användas samtidigt.

IPV6 liknar med andra ord i stor utsträckning IPV4 - men protokollen går inte att samordna. Detta på grund av att IPV6 öppnar upp möjligheten för ett helt nytt internet jämförelsevis med IPV4-internet. Däremot går de att använda protokollen parallellt med hjälp av en dual stack-teknik. Detta innebär att IPV4 och IPV6 körs samtidigt. Anledningen till varför man inte helt övergår till enbart IPV6 - internet är för att den just nu är väldigt begränsad och saknar många webbsidor som dagligen används. Just nu finns exempelvis Facebook, Google och myndigheters webbsidor på IPV6-internet, men utöver dessa är det relativt tomt. Däremot kommer en övergång att vara nödvändig och det går att idag att ställa om till IPV6 helt hos operatörer.

IPv6 Fragmentering
I IPv4 fragmenterades paket av mellanliggande routrar. Den möjligheten togs bort i IPv6, istället fragmenterar endast källan paketen och destinationen återuppbygger dessa. Ifall paketen överstiger Maximum Transmission Unit så skickar destinationsadressen eller en router tillbaka ett Internet Control Message Protocol meddelande att paketet är för stort. Då skickar källan om paket efter det har fragmenterats. 

IPv6alizer ger möjlighet att testa stöd för PMTUD.

Kompatibilitet 
Det finns en del kompatibilitetsproblem som återstår att lösa innan vi helt lämnar IPV4 och kör igång med IPV6. Bland annat behöver routern ha stöd för IPV6, vilket många inte har. Det har dock blivit allt mer vanligt att routertillverkare aktivt arbetar med utvecklingen på sina produkter för att uppfylla kraven för att ansluta sig till organisationen IPV6 Ready - för att erhålla ett certifikat som innebär att deras produkter kan klara av en övergång till IPV6. Ibland lyckas tillverkare med att enbart släppa en mjukvaruuppdatering, medan andra behöver släppa en helt ny IPV6 kompatibel hårdvara. 

När det istället kretsar kring datorer kommer det inte bli några större problem vid övergång till IPV6 på grund av att det redan finns ett inbyggt stöd i Windows Vista och senare för IPV6, samt i Mac OS Panther (10.3) och senare. Fristående nätverksprodukter, såsom mediaspelare eller webbradioapparater kan däremot få problem. Men de IPV6-klassificerade routrar har nästan i alla fall möjlighet att kombinera version IPV6 och IPV4 samtidigt, vilket gör att de anslutna enheterna kan tilldelas IP-adresser från båda versionerna. Detta betyder att routern fortfarande kan använda IPV4-adresser lokalt, men kommunikationen utåt mot internet använda en IPV6-adress.

Referenser
Info om IPv6 sammanställd av Torbjörn Eklöv

Externa länkar
 IPv6 status på kommun, myndigheter och regioner.
Statistik på utvecklingen av IPv6 i Sverige
 The IPv6 Portal... All the IPv6 News

Nätverksskiktsprotokoll
IP-adresser