IPv6 adresstyper

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 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

Tre adresstyper att hantera: 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)

Global Unicast Address – GUA

Gäller överallt på Internet. Globala Unicast Adresser eller GUA börjar med tre bitar satt till 001 och den fjärde biten som kan antingen vara ett eller noll. Det vill säga 0010 = 2 och 0011 = 3. Det innebär att globala unicast adresser börjar med antingen 2 eller 3, till exempel 2001:db8:cafe:1:d08f:9ff6:4201:7086

GUA adresser har en standard struktur med följande tre fält:

  • Global Routing Prefix – Identifierar nätverksadressen.
  • Subnet ID – Identifierar delnät och dess allokering.
  • Interface ID – Identifierar en host/interface i ett delnät.
Bild 4: IPv6 GUA adress

Det finns några konfigurationssätt:

  • manuellt
  • Stateless Address Autoconfiguration eller självkonfiguration
  • Stateful DHCPv6

Link-Local Unicast adresser

Bild 5: IPv6 Link local adress

En link-local unicast adress gäller endast i ett nätverk eller delnätverk och används för intern kommunikation. Här nedan tas upp några egenskaper:

  • Alla nätverksenheter i ett nätverk måste ha en link-local adress, men alla nätverksenheter måste inte ha en global unik adress.
  • Link-local adresser gäller endast lokalt och de kan inte användas vid routing. Routrar vidarebefordrar inte datapaket adresserad med link-local adress.
  • Link-local adresser är endast unika i ett nätverk eller delnät. Det innebär att samma link-local adress kan användas i andra nätverk eller delnätverk.
  • En link-local adress tilldelas endast till ett interface.

När det gäller konfigurationer finns några alternativ

  • en dynamisk självkonfiguration
  • manuell konfiguration

Att en node bygger själv en egen IPv6 adress är kanske den största fördelen jämfört med IPv4 adresser. När en node har en IP-adress kan den börja kommunicera med andra i samma nätverk eller delnätverk inklusive när den söker efter någon server.

Här nedan tas det upp några egenskaper:

  • När en nätverksenhet startar använder denna en link-local adress. Den global unicast adress därefter.
  • Med en link-local adress kan nätverksenheter starta kommunikation med andra nätverksenheter inom samma nätverk eller delnätverk, inklusive med den lokala router.
  • Den lokala routers link-local adress används av klientdatorer i ett nätverk som default gatway.
  • Routrar växlar meddelande  via deras link-local adresser.

Loopback Adresser

Med alla bitar satt till noll, förutom den sista som är satt till 1, betecknas en IPv6 loopback adress så här ::1. Det innebär att adressen innehåller enbart nollor med undantag för sista biten. En IPv6 loopback adress påminner om IPv4 adressen 127.0.0.1. En loopback IPv6 adress används för att bekräfta att nätverkskortet och protokoll fungerar tillsammans.

Här nedan några egenskaper:

  • En loopback adress kan inte tilldelas till ett fysiskt interface.
  • IPv6 paket adresserade med IPv6 loopback adresser kan inte skickas till andra host än till sig själv.
  • En router vidarebefordrar inte paket adresserade med loopback adresser.
  • Ankommande paket med loopback adresser ignoreras av andra nätverksenheter och tas inte emot.

Ospecificerade adresser

En ospecificerad adress har alla bitar satt till noll, 0:0:0:0:0:0:0:0 eller bara :: och den används av avsändaren för att indikera frånvaro av en giltig IPv6 adress. Som bekant bygger nätverksenheter en link local adress till sig själva, men det kan uppstå dubbletter under adressuppbyggnaden. För att förhindra att en sådan situation inträffar, startar en detekteringsmekanism som kontrollerar att alla link local adresser är unika i ett nätverk.

Några aspekter av ospecificerad adresser

  • indikerar frånvaro av IPv6 adress
  • kan inte tilldelas till ett fysiskt interface
  • kan inte används som mottagaradress
  • kan inte vidarebefordras av routrar

Unika lokala adresser – ULA

Dessa adresser påminner om IPv4 privata adresser. ULA adresser är också kända som IPv6 privata adresser. Men man får inte blanda ihop de med link local adresser.

Bild 6: Unique Local Address, ULA

Några aspekter av ULA-adresser

  • De kan användas precis som globala unicast-adresser så länge de inte ger sig ut till Internet.
  • De tillåter att sajter kopplas ihop på ett kombinerat sätt utan adresskonflikter och utan att behöva adresseras om. Adresskonflikter i IPv6 är högst osannolika på grund av det stora adressutrymmet.
  • De är oberoende av Internetleverantörer och de kan användas för kommunikation mellan delnät, men utan Internetanslutning.

L flaggan och den globala ID

IPv6 ULA adresser betecknas som fc00::/7 eller 1111 110x. Den åttonde bit x är känd som L flaggan och den kan ha som värde antingen 0 eller 1. Detta innebär att ULA adresser är indelade i två adressintervaller:

  • fc00::/8 eller 1111 1100. Observera att L0 vilket indikerar att adressintervallet kan definieras i framtiden.
  • fd00::/8 eller 1111 1101. Observera att L = 1 vilket indikerar att adressintervallet allokeras lokalt.

ULA adresser som gäller idag betecknas som fd00::/8

ULA adresser, till skillnad från IPv4 privata adresser, kan också användas globalt därmed måste ULA adresser vara unika så att inte någon adresskonflikt hindrar kommunikation mellan nätverksenheter från olika delnät.

IPv4 inbäddade adresser

Bild 7: IPv4-mappade IPv6 adresser

IPv4 adresser skrivs inne i IPv6 adresser. Tanken är att underlätta övergången från IPv4 till IPv6. Man sätter alla bitar till noll förutom de sista 32 bitar. Till exempel:

  • den privata IP adressen 192.168.2.1
  • adresseras i IPv6 som ::ffff:192.168.2.1

RFC 4291 definierar två typer av IPv4 inbäddade adresser:

  • IPv4-mappad IPv6 address
  • IPv4-compatible IPv6 address (deprecated)

Speciella tekniker som tunnling (tunneling) används för att tillhandahålla kommunikationer mellan öar av IPv6-enheter över ett IPv4 nätverk. För att stödja denna kompatibilitet kan IPv4-adresser inbäddas i en IPv6-adress. Detta är lätt att göra eftersom en 128-bitars IPv6-adress har gott om plats för 32-bitars IPv4-adress.

Bild 8: Dual-Stack nätverksenheter

IPv4 och IPv6 är inte kompatibla. Funktioner som NAT64 måste användas för att översätta mellan de två adressfamiljerna.

IPv4-mappade IPv6-adresser

IPv4-mappade IPv6 adresser användas av nätverksenheter som kan hantera bägge IP adress versioner, det vill säga IPv4 och IPv6. Att aktivera IPv4 och IPv6 tillsammans och konfigurera adresser kallas också DUAL STACK.

Bild 9: IPv4-mappade IPv6 adresser

Den Dual-Stack nätverksenheten som skickar ett IPv6-paket till en mottagare adresserad endast med IPv4 måste gå genom en Dual-Stack router. Det samma gäller för kommunikation mellan Dual-Stack kommunikationspartner. Detta illustreras med bild 9.

En IPv4 host som har för adress 192.168.10.55 kan adresseras med IPv6 på följande sätt:

  • 0000.0000.0000.0000.0000.0000.ffff.192.168.10.55
  • 0:0:0:0:0:0:0:192.168.10.55
  • ::ffff:192.168.10.55

Multicast adresser

Multicast är en teknik med vilken en nätverksenhet skickar iväg datapaket till en grupp av nätverksenheter (en-till-flera). En IPv6 multicast adress definierar en grupp av enheter känd som multicast grupp. Ett paket skickat till en multicast grupp har alltid en enskild avsändaradress.

Bild 10: Multicast IPv6 adress räckvidd

Multicast adresser inleder med hexadecimala siffror ff vilket innebär åtta bitar satt till ettor (1111 1111). Till dessa ettor följer 4 bitar till. De 4 bitarna kodas som flaggor:  O, R och P samt T. Flaggor O, R och P tas inte upp här, men flaggan T indikerar två typer av multicast adresser:

  • Permanent (T = 0): Adresser kända som fördefinierade multicast adresser administreras centralt av IANA och inkluderar både well-known och solicited multicast-adresser.
  • Nonpermanent (T = 1): Dessa adresser är tillfälliga eller dynamiskt tilldelade oftast av multicast applikationer.

Den stora skillnaden mellan multicast IPv4 och IPv6 är att de multicast adresser har en viss räckvidd, eller scope på engelska. Dessa tillkommande 4 bitar berättar hut långt bort från avsändare paket adresserade med IPv6 multicast adress kan få färdas.

Multicast IPv6 adresser grupperas i well-known, transient och solicited-node.

Well-Known Multicast adresser

Dessa adresser motsvarar multicast IPv4 adresser i intervallet 224.0.0.0 till 239.255.255.255. Följande adresser kan anges som exempel på Well-Known multicast adresser:

  • ff02::1: adresserar alla IPv6 nätverksenheter
  • ff02::2: adresserar alla IPv6 routrar
  • ff02::5: adresserar alla OSPFv3 routrar
  • ff02::a: adresserar alla EIGRP IPv6 routrar

Anycast adresser

Bild 11: Anycast IPv6 adress

Anycast adresser används för att kommunicera med vilken nätverksenhet som helst i en viss grupp. På bilden 6 illustreras det hur ett IPv6 paket från molnet levereras av en router till en av tre servrar som tillsammans adresseras IPv6 adress 2001:db8:abcd:1::1. Istället för 1 server finns 3 med samma IPv6 adress vilket innebar att en av de ska väljas som mottagare. I exemplet avgör kostnaden när Server C väljs som mottagare.

Hur anycast IPv6 adresser ser ut? Det finns inte någon särskilt prefix för dessa adresser eftersom globala adresser används.