1. IPv6 grunder

IPv4 har varit bland oss i mer än 35 år därmed har IPv4 varit en integrerad del av Internet utveckling. Men den var designad i en tid där inte mer än 600 datorer var med på Internet, i en tid där inte fanns www, e-post, videostreaming, mobiltelefoner och andra elektroniska artefakter. När IPv4 blev standard år 1980 fanns ca. 4.5 miljarder människor i världen och 4.29 miljarder IPv4 adresser verkade räcka till. Idag vet vi att vi hade fel eftersom:

  • IPv4 adresser allokeras per block, även om man bara ska utnyttja en liten del av adresserna.
  • Vi människor använder inte bara en enhet, utan flera enheter samtidigt.

Det har länge stått klart att dagens IP-adresser inte skulle räcka till i en allt mer internetuppkopplad värld. Genom sparsamhet och med olika teknik har internet klarat sig i över tio år längre än först befarat – men år 2013 tog det slut. De sista stora blocken av adresser har tilldelats till de fem regionala organisationer (RIR) som sköter adressfördelningen i sin respektive region av världen; Nordamerika, Latinamerika, Europa-Mellanöstern, Afrika samt Asien-Oceanien. Just nu har de fem regionala organisationerna inte IPv4-adresser att tilldela, detta är känd som IPv4 exhaustion och det återstår att ersätta den med IPv6 (IPv4 Depletion).

IPv4 Depletion

Ett intressant videoklipp om IPv4 depletion publicerades av Innovation TV som specialiserar sig just inom tekniska aspekter.

En oduglig administration?

Redan från början delade man ut miljontals adresser till företag som inte behövde så många adresser. Internet själv kräver mängder av olika adresser för olika syfte, så kallad “reserverade” adressintervaller. En sådan tilldelning har gjort att antal IP adresser blev färre redan från början.

232 = 4 294 967 2960 IP adresser, från 0.0.0.0 till 255.255.255.255

Så många IP adresser (4,2 miljarder) skulle kunna användas men . .

  • 0.0.0.0 till 0.255.255.255 — reserveras för Default route (0.0.0.0/8)
  • 10.0.0.0 till 10.255.255.255 — reserveras för Privata IP adresser (16 777 216 adresser)
  • 127.0.0.0 till 127.255.255.255 — reserveras för Loopback (127.0.0.0/8)
  • 169.254.0.0 till 169.254.255.255 — reserveras för Link-Local IP adresser
  • 172.16.0.0 till 172.31.255.255 — reserveras för Privata IP adresser (1 048 576 adresser)
  • 192.0.2.0 till 192.0.2.255 — reserveras för Test-Net (192.0.2.0/24)
  • 192.168.0.0 till 192.168.255.255 — reserveras för Privata IP adresser (65535 adresser)
  • 224.0.0.0 till 239.255.255.255 — reserveras för Multicast och experimentella (240-255).

Varierande lösningar

  • 1981-1983, RFC 791, IP-adressering modifierades till 32 bitars (IPv4). Drygt 4 miljarder adresser grupperades i fem klasser där 3 av dessa används för nätverksadresser. 10 år senare var det tydligt för alla att de 4 miljarder adresserna inte skulle räcka till längre och man behövde tänka om och hitta en lösning.
  • 1993, RFC 1519 IETF, introducerades CIDR och VLSM. CIDR gjorde det möjligt att adressera olika delar av nätverken utan inbördes ordning. VLSM är ett nätverksuppdelnings metod i CIDR konceptet som effektiviserar användning av IP-adresser.
  • 1994, RFC 1631, NAT
  • 1996, RFC 1918, Privata IP adresser standardiseras.
  • 1998 -1999 införande av IPv6 (128-bitars)
  • 2000 – 2010 införs olika lösningar bland annat en granskning av tilldelade IPv4 adresser som inte används. Man försöker kräva tillbaka oanvända IP-adresser, vilket är bökigt juridikmässigt. En annan lösning är att förbättra stödet för privata IP adresser med NAT. Man ser över möjligheten att samla icke tilldelade IP-adresser från regionala Internet-register och skapa en IP pool med syfte att omfördela adresserna.

IPv4 vs IPv6

IPv4 närmar sig till sitt slut även om dess livslängd har förlängts med NAT, CIDR och DHCP. Dessa tekniker har sina egna begränsningar som inte stöder nya krav såsom mobilitet och stora mängder av nya nätverksenheter som ansluts till Internet.

IPv6 har designats för att stödja IT-utvecklingen genom att tillhandahålla nästa obegränsade antal IP adresser, bättre säkerhet, enklare header, bygger på IPv4 nätverksarkitektur, multicast istället broadcast, enklare routing och mm.

IPv6 adresser skiljer sig från IPv4

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 (:)

Representation av IPv6 adresser

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.

2001:ODB8:85A3:08D3:1319:8A2B:0370:7334

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

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. 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 ett prefix. Bild 2 visar olika prefix som anger antal ettor tilldelade till nätverksadressen exempelvis prefixet /32 pekar på 2001:0db8  och /48 markerar 2001:0db8:0000. Man ska komma ihåg att varje hexadecimal siffra kodas med 4 bitar.