IPv6

Från Unix.se, den fria unixresursen.

IPv6 är protokollet som ska komma att ersätta IP (även kallat IPv4). Den här artikeln beskriver på vilket sätt IPv6 skiljer sig från IPv4, lite grundläggande information om protokollet och hur du ska göra för att komma åt internet med IPv6.

Innehåll

Krav

För att kunna kunna använda dig av IPv6 på din Linux- eller BSD-burk behöver du stöd i kärnan (det går även bra att kompilera IPv6-modulerna). Om du inte har kompilerat om din kärna förut, läs om kärnkompilering i Linux.

Introduktion

IPv6 är som tidigare nämt det protokoll som kommer att ersätta den version av IP vi använder idag (IPv4). Internets fenomenala tillväxt de senaste åren har gjort att det råder brist på IPv4 adresser, då dessa endast består av 32-bitar.

IPv6 däremot, använder sig av 128-bitars adresser, 4 gånger större i längd och 2^96 (79228162514264337593543950336) större i omfång. Detta är så mycket som 2^128 (340282366920938463463374607431768211456) adresser.

Varför IPv6 och inte IPv5?

4 bitar i ett IP-huvud är reserverade för protokollets version, därav är ett nummer mellan 0 och 15 möjligt. Eftersom nummer 5 redan används för Stream Protocol (STP - ett protokoll som aldrig lyckades), tog man nästa lediga nummer: 6.

Adresskonstruktion

Hur ser då IPv6-adresser ut? Eftersom adresserna består av 128-bitar blir det ett decimalt nummer med upp till 39 siffror.

340282366920938463463374607431768211455

Ett sådant nummer vore inte alltför lätt att komma ihåg, istället har man valt att använda basen 16 - hexadecimal notation (eller hex i vardagsspråk). I hex representaras 4 bitar av ett tal. Detta förkortar adressens längd till 32 tecken (eftersom hex består av siffrorna 0-9 och bokstäverna A-F).

0xffffffffffffffffffffffffffffffff

För att förenkla det hela ytterligare tog man bort de 2 inledande tecknen (vilka signalerar att talet är ett hextal) och delade upp teckenkombinationen i 8 block med 16 bitar var.

ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

En användbar adress kan alltså se ut så här:

3ffe:ffff:0100:f101:0210:a4ff:fee3:9566

Inledande nollor i ett block kan även tas bort, adressen ser då ut så här:

3ffe:ffff:100:f101:210:a4ff:fee3:9566

Flera block som enbart innehåller nollor kan ersättas med två kolon, men inte mer än en åt gången.

ffe:ffff:100:f101:0:0:0:1  ->  3ffe:ffff:100:f101::1

Den längsta förkortningen är localhostadressen ::1 (127.0.0.1 i IPv4) och den speciella adressen :: som betyder "vilken adress som helst" (0.0.0.0 i IPv4)

0000:0000:0000:0000:0000:0000:0000:0001 -> ::1
0000:0000:0000:0000:0000:0000:0000:0000 -> ::

Dessa adresser är även de enda som inte har något speciellt prefix.

Prefix

De som designade IPv6 har valt att definiera ett antal prefix och lämna resten för orört framtida behov. De mest relevanta prefixen gås igenom nedan. Mer information kan hittas i Linux-IPv6-HOWTOn.

Link local

Link local-adresser används för kommunikation på länk-nivå. Exempelvis för att ta reda på om det finns några andra datorer på nätverket (ARP existerar inte i IPv6) eller om det finns en router tillgänglig.

fe8x: 
fe9x:
feax:
febx:

(där x är ett hexadecimalt tecken, oftast 0) Notera att enbart fe80 används hittills. En adress med detta prefix hittas alltid på varje IPv6-aktiverat interface.

Site local

Adresser med dessa prefix är motsvarigheten till IPv4s 192.168.x.x, 10.x.x.x och 172.16.x.x. En stor fördel i IPv6 är att man kan tilldela ett interface flera adresser, det är fullt möjligt att ha en Site local-adress och en Global-adress på samma interface (mer om Global nedanför).

fecx: 
fedx:
feex:
fefx:

(där x är ett hexadecimalt tecken, oftast 0)

Global

Globaladresser är de adresser som används ut mot internet. Det finns bara en global adresstyp definierad. Se "6bone adresser i testsyfte" för mer info.

2xxx:
3xxx:

(där x är hexadecimala tecken)

6bone-adresser i testsyfte

Adresser med detta prefix är de enda som används globalt, det behövs inte mer (för tillfället) på grund av IPv6 stora omfång och storlek.

3ffe:

Exempelvis (detta är min egen IPv6-adress):

3ffe:b80:d04::1

Världen?

Hur gör man då för att komma åt internet med IPv6? Den enklaste lösningen är nog att skaffa en tjänst som tunnlar IPv6-paket över IPv4. Det finns ett antal företag som erbjuder denna tjänst helt gratis. Ett exempel är Freenet6. På Freenet6:s sida (http://www.freenet6.net/) finner du all dokumentation du behöver för att sätta upp en IPv6 tunnel, de ger dig även möjligheten att sätta upp en reverse (om du har tillgång till en DNS och en domän) och att koppla upp hela ditt LAN mot internet med Neighbor Discovery för IPv6.

Externa länkar

Personliga verktyg