IPv6 adresstyper

Den mest logiska skillnaden mellan IPv4 och IPv6 adresser är faktisk hur IPv6 representeras. Här tas upp några enkla skillnader:

Bild 1: IPv4 och IPv6 format
  • IPv4-adresser byggs upp med 32 bitar medan IPv6 med 128 bitar
  • IPv4-adresser representeras decimalt medan IPv6 hexadecimalt
  • IPv4 grupperas i 4 grupper på 8 bitar varje grupp
  • IPv6 grupperas i 8 grupper på 16 bitar varje grupp, 8 grupper med 4 hexadecimala siffror i varje grupp (totalt 32 hexadecimala siffror)
  • Ipv4 grupper separeras med punkt
  • IPv6 grupper separeras med kulon (:)

Flera andra skillnader finns mellan dessa två adressversioner exempelvis adresstyper. Det tas upp senare vilka.

Representation av IPv6 adresser

IPv6 adresser representeras med hexadecimala nummer som var och en kodas med 4 bitar. IPv6 adressformat specificeras i RFC 4291 och här nere förklaras de som följande (x representerar 4 hexadecimala siffror, visas endast i första kolumnen):

X : X : X : X : X : X : X : X
0000 0000 0000 0000 : 0000 : 0000 : 0000 : 0000 : 0000 : 0000 : 0000
till : till : till : till : till : till : till : till
1111       1111       1111      1111 : ffff : ffff : ffff : ffff : ffff : ffff : ffff

Några exempel på IPv6 adresser:

0000 : 0000 : 0000 : 0000 : 0000 : 0000 : 0000 : 0000
0000 : 0000 : 0000 : 0000 : 0000 : 0000 : 0000 : 0001
ff02 : 0000 : 0000 : 0000 : 0000 : 0000 : 0000 : 0001
fe80 : 0000 : 0000 : 0000 : a299 : 9bff : fe18 : 50d1
fe80 : 0000 : 0000 : 0000 : 0202 : b3ff : fe1e : 8329
fe80 : 0000 : 0000 : 0000 : 154d : 3cd7 : b33b : 1bc1
2001 : 0db8 : 1111 : 000a : 00b0 : 0000 : 9000 : 0200
2001 : 0db8 : 0000 : 0000 : abcd : 0000 : 0000 : 1234
2001 : 0db8 : cafe : 0001 : 0000 : 0000 : 0000 : 0100
2001 : 0db8 : cafe : 0001 : 0000 : 0000 : 0000 : 0200
2001 : 0db8 : 85a3 : 08d3 : 1319 : 8a2b : 0370 : 7334
2001 : 0db8 : 21da : 0007 : 713e : a426 : d167 : 37ab
fec0 : 0000 : 0000 : 0001 : 0000 : 0000 : 0000 : 0002
fd3a : 52e1 : 503b : a110 : 0000 : 0000 : 0000 : 0001

När man ser IPv6 adresser tänker man på hur lätt det egentligen var att hantera IPv4 adresser om man jämför de med IPv6 adresser. Men IPv6 adresser kan förenklas med hjälp av två principer/regler:

  1. Inledande nollor i en 16-bitars grupp kan uteslutas
  2. En obruten följd av nollor kan ersättas med dubbel-kolon

Inledande nollor kan uteslutas

Regeln 1 och 2 kan kombineras så att IPv6 adresser kan förenklas men kombinationen kan resultera i ett fel, exempelvis när två följd av nollor finns i en adress. För att gå runt situationen gäller det att ersätta den följden som har mest nollor med dubbelkolon. Men om de två följd av nollor har lika många antal nollor får man endast ersätta den första med dubbelkolon.

Regel 1: inledande nollor uteslutas Regel 1 + Regel 2
0000 : 0000 : 0000 : 0000 : 0000 : 0000 : 0000 : 0000  
       0 :        0        0        0        0        0        0        0 ::
0000 : 0000 : 0000 : 0000 : 0000 : 0000 : 0000 : 0001  
       0 :        0        0        0        0        0        0        1 ::1
ff02 : 0000 : 0000 : 0000 : 0000 : 0000 : 0000 : 0001  
ff02 :         0        0        0        0        0        0        1 ff02::1
fe80 : 0000 : 0000 : 0000 : a299 : 9bff : fe18 : 50d1  
fe80 :        0        0        0 : a299 : 9bff : fe18 : 50d1  fe80::a299:b9ff:fe18:50d1
fe80 : 0000 : 0000 : 0000 : 0202 : b3ff : fe1e : 8329  
fe80 :        0        0        0 :   202 : b3ff : fe1e : 8329 fe80::202:b3ff:fe1e:83329
fe80 : 0000 : 0000 : 0000 : 154d : 3cd7 : b33b : 1bc1  
fe80 :        0        0        0 : 154d : 3cd7 : b33b : 1bc1 fe80::154d:3cd7:b33b:1bc1
2001 : 0db8 : 1111 : 000a : 00b0 : 0000 : 9000 : 0200  
2001 :   db8 : 1111 :        a :      b0 :        0 : 9000 :   200 2001:db8:1111:1:b0:0:9000:200
2001 : 0db8 : 0000 : 0000 : abcd : 0000 : 0000 : 1234  
2001 :   db8 :        0 :        0 : abcd :        0 :         0 :  1234 2001:db8::abcd:0:0:1234 
2001 : 0db8 : cafe : 0001 : 0000 : 0000 : 0000 : 0100  
 2001 :    db8 :  cafe :        1 :        0 :         0 :        0 :    100 2001:db8:cafe:1::100 
2001 : 0db8 : cafe : 0001 : 0000 : 0000 : 0000 : 0200  
 2001 :    db8 :  cafe :        1 :        0 :        0 :        0 :   200 2001:db8:cafe:1::200
2001 : 0db8 : 85a3 : 08d3 : 1319 : 8a2b : 0370 : 7334  
2001 :   db8 : 85a3 :   8d3 : 1319 : 8a2b :   370 : 7334 2001:db8:85a3:8d3:1319:8a2b:370:7334
2001 : 0db8 : 21da : 0007 : 713e : a426 : d167 : 37ab  
2001 :   db8 : 21da :        7 : 713e : a426 : d167 : 37ab 2001:db8:21da:7:713e:a426:d167:37ab
fec0 : 0000 : 0000 : 0001 : 0000 : 0000 : 0000 : 0002  
fec0 :        0 :        0 :        1 :        0 :        0 :        0 :        2 fec0:0:0:1::2
fd3a : 52e1 : 503b : a110 : 0000 : 0000 : 0000 : 0001  
 fd3a : 52e1 : 503b : a110 :        0 :        0 :        0 :        1 fd3a:52e1:503b:a110::1

Även efter förklaring kan vissa IPv6 adresser vara svåra att läsa av. Senare visar jag hur dessa adresser kan förenklas ytterligare.

Prefix

Bild 2: IPv6 Prefix

IPv4 adresser består av två delar, nätverksadress och host-adress. Den första delen är nätverksadressen som tilldelas ett antal bitar satt till 1, den andra delen är host-adressen som tilldelas resterande bitar satt till nollor. För att identifiera antal bitar tilldelade till nätverksadressen används nätmasken exempelvis 255.255.192.0 som indikerar att de första 18 bitar identifierar nätverksadressen och resterande bitar host-adressen. Ett annat sätt att skriva nätmasken är att ange antal ettor som tilldelas till nätverksadressen och beteckna de med tecknet slash. Till exempel istället 255.255.192.0 kan betecknas som /18.

IPv6 adresser består också av de två delar som identifieras med prefixen. Bild 2 visar olika prefix som anger antal ettor tilldelade till nätverksadressen exempelvis prefixen /32 pekar på 2001:0db8  och /48 markerar 2001:0db8:0000. Man ska komma ihåg att varje hexadecimal siffra kodas med 4 bitar.

IPv6 adresstyper

Först tittar vi närmare på skillnader mellan olika typer av IPv6-adresser och därefter fokuserar vi oss på unicast, multicast, och anycast IPv6-adresser. Alla IPv6 adresser definieras i RFC 4291, IP Version 6 Addressing Architecture.

Bild 3: IPv6 adresstyper
  • Unicast Adresser – Den identifierar ett interface på en nätverksenhet, precis som i IPv4 är denna adress unik.
    • Global Unicast – En adress som accepteras på Internet liksom publika IPv4 adresser.
    • Link-Local – Används endast inom ett och samma lokal nätverk.
    • Loopback – En adress som används för intern felsökning, den kan inte tilldelas till något fysisk interface.
    • Unspecified – Används endast som avsändarens IPv6 adress och indikerar frånvaro av en IPv6 adress.
    • Unique Local – Motsvarar privata IPv4 adresser, men några skillnader som tas upp senare i denna sida.
    • IPv4 embeded – Inkapslad IPv4 adress i en IPv6 adress (32 bitar rymmer i en 128 bitar adress)