IPv6 adresstyper

IPv6 innehåller flera olika typer av adresser som används för olika syften i nätverket. Enheter kan ha flera adresser samtidigt – till exempel för lokal kommunikation, global åtkomst och gruppkommunikation – och behöver dessutom samverka med routrar för att få rätt information om adressering. För att förstå IPv6-baserad kommunikation är det viktigt att kunna skilja mellan dessa adresstyper och veta hur de används.

De tre huvudtyperna är:

  • Unicast – en-till-en-kommunikation, där ett paket skickas till en specifik mottagare.
  • Multicast – en-till-många-kommunikation, där ett paket skickas till en hel grupp av mottagare.
  • Anycast – en-till-närmsta-mottagare, där paketet levereras till den närmaste enheten i en grupp.

För att kunna arbeta praktiskt med IPv6 är det särskilt viktigt att känna till unicast-adresser som Global Unicast (GUA) och Link-Local (LLA), samt hur multicast- och anycast-adresser används av olika protokoll. Dessa typer är grunden för all kommunikation i IPv6-nät.

Innan vi går vidare till de olika adresstyperna inom IPv6 är det viktigt att först förstå begreppet prefixlängd. Den anger vilken del av adressen som utgör nätverket och vilken del som används för interface (host-delen). Detta är grunden för hur adresser delas upp, organiseras och hanteras i IPv6.

IPv6-prefixlängd

I IPv4 kan nätverksdelen av en adress anges på två sätt: antingen med en subnet mask i punktnotation eller med en prefixlängd i snedstrecksnotation. Till exempel:
192.168.1.10 med subnet mask 255.255.255.0 kan skrivas som 192.168.1.10/24.

I IPv6 används endast prefixlängd. Prefixlängden skrivs på samma sätt som i IPv4, med ett snedstreck följt av antalet bitar som utgör nätverksdelen av adressen. En IPv6-prefixlängd kan variera mellan /0 och /128, men i praktiken är /64 standard för LAN och de flesta andra nätverk.

Med en prefixlängd på /64 utgör de första 64 bitarna nätverksdelen (prefixet), medan de återstående 64 bitarna används för Interface ID, vilket motsvarar host-delen i IPv4. Att använda /64 är starkt rekommenderat eftersom Stateless Address Autoconfiguration (SLAAC) bygger på ett 64-bitars Interface ID.

Typer av IPv6 unicast adresser

En unicast-adress i IPv6 används alltid för en-till-en-kommunikation, vilket innebär att trafiken skickas till en specifik mottagare. Detta är den vanligaste typen av adresser i både IPv4 och IPv6 och utgör grunden för det mesta av nätverkstrafiken. Det finns flera olika typer av unicast-adresser, och de används i olika sammanhang.

Global Unicast Adresser (GUA)

En global unicast-adress, eller GUA, är den typ av IPv6-adress som används för kommunikation över hela internet. Den fyller samma roll som de publika IPv4-adresser vi använt länge. Alla GUA-adresser är routbara globalt och används därför när en dator, server eller annan nätverksenhet behöver vara unikt identifierbar och nåbar utanför det lokala nätverket. 

Prefixet för GUA är definierat som 2000::/3, vilket betyder att alla adresser vars första tre binära bitar är 001 tillhör denna kategori. I praktiken innebär det att de flesta IPv6-adresser som börjar med siffran 2 (binärt 0010) eller 3 (binärt 0011) är globala unicast-adresser.

Strukturen för en GUA är noggrant uppdelad. Den består först av ett Global Routing Prefix (normalt /48), vilket tilldelas av en internetleverantör och används för att identifiera organisationens nät. Därefter följer ett Subnet ID på 16 bitar, vilket gör det möjligt för organisationen att dela upp sitt tilldelade adressutrymme i många mindre nätverk. Tillsammans bildar dessa två delar ett nätverksprefix/64. De resterande 64 bitar används för att skapa ett unikt Interface ID.

Link-local Adresser

En Link-Local Address (LLA) är en särskild typ av IPv6-adress som måste finnas på varje IPv6-aktiverat interface, oavsett om interfacet också har en global unicast-adress eller inte. Detta är en grundläggande skillnad mot IPv4, där en dator kan fungera helt utan en motsvarighet till LLA. I IPv6 används LLA i en rad viktiga funktioner, bland annat vid nätverksstart, grannupptäckt (Neighbor Discovery Protocol, NDP), och när routing-protokoll ska utbyta information mellan routrar.

En LLA gäller endast inom samma länk, vilket betyder att kommunikationen begränsas till det lokala nätverket. Dessa adresser är inte routbara – en router vidarebefordrar alltså aldrig paket som har en LLA som source eller destination. Till exempel mellan en dator och nätverks skrivare.

Prefixet för LLA är alltid FE80::/10, vilket innebär att de första 10 bitarna i adressen är fördefinierade. Resten av adressen fylls ut med nollor följt av ett Interface ID (vanligen 64 bitar), som baseras på det fysiska interfacets MAC-adress eller genereras slumpmässigt för att förbättra sekretess och säkerhet.

En komplett LLA kan alltså se ut som exempelvis: FE80::1a2b:3c4d:5e6f:7g8h/64

Eftersom samma LLA-prefix används av alla enheter, finns det en risk för överlappning mellan olika länkar. Därför används alltid ett Zone ID (även kallat scope ID) när man anger en LLA i operativsystem eller nätverkstestverktyg. Zone ID identifierar vilket interface adressen hör till. 

I Windows anges det ofta som ett procenttecken följt av ett index, till exempel FE80::1%12, där %12 anger vilket nätverkskort adressen gäller för.

En annan viktig detalj är att routrar själva använder sina LLAs när de kommunicerar med varandra i routing-protokoll som OSPFv3 eller EIGRP för IPv6. Det gör att routing-relationer byggs oberoende av om routern har en global adress konfigurerad eller ej. På så sätt garanteras alltid en fungerande lokal adress mellan routrar.

Sammanfattningsvis kan man säga att LLA är en obligatorisk byggsten i IPv6, som både används för att auto-konfigurera nätverk, för att utbyta routing-information, och för att säkerställa att enheter alltid kan kommunicera med sina närmaste grannar, även om inga globala adresser ännu är satta.

Unspecified Address (::/128)

Den ospecificerade adressen är en special adress i IPv6 som består av endast nollor, alltså

  • 0000:0000:0000:0000:0000:0000:0000:0000/128
  • ::/128

Den representerar avsaknaden av en adress och kan aldrig tilldelas ett interface. Istället används den under särskilda situationer, främst vid nätverksstart eller när en enhet ännu inte har fått en giltig adress.

Ett vanligt exempel är när en klient använder DHCPv6 eller SLAAC (Stateless Address Autoconfiguration). I dessa fall måste klienten skicka ett meddelande innan den har någon giltig avsändaradress. Den använder då den ospecificerade adressen som source adress, vilket signalerar till mottagaren att “avsändaren ännu inte har en riktig adress”.

Den får aldrig användas som destination, eftersom den inte pekar på någon verklig enhet. Rent tekniskt fungerar alltså ::/128 som en plats markör och är nödvändig för att vissa protokoll ska fungera korrekt i uppstarts fasen.

Loopback Address (::1/128)

Loopback-adressen är IPv6:s motsvarighet till 127.0.0.1 i IPv4. Den är alltid ::1/128 och används enbart för tester inom samma enhet.

När en enhet skickar ett paket till sin egen loopback-adress går det aldrig ut på nätverkskortet eller det fysiska nätverket, utan stannar inom TCP/IP-stacken lokalt. Detta är mycket användbart för att testa att nätverksstacken fungerar, även om ingen nätverkskabel är inkopplad.

Till skillnad från unspecified används loopback alltid internt och är därför en mycket enkel men viktig felsökningsmekanism. Exempelvis kan en nätverkstekniker pinga ::1 för att säkerställa att IPv6 är aktiverat och fungerar korrekt på datorn.

Unique Local Address (ULA, FD00::/8)

Unique Local Address, eller ULA, är en privat IPv6-adress som fungerar ungefär som IPv4-adresser i områdena 10.0.0.0/8, 172.16.0.0/12 eller 192.168.0.0/16. Dessa adresser är endast avsedda för intern kommunikation inom en organisation och ska inte routas på det globala internet.

Prefixet för ULA är FD00::/8. Strukturen består av flera delar:

  • FD – Identifierar att adressen är en ULA.
  • 40-bit Global ID – Ett slumpmässigt genererat värde som gör adressrymden unikt inom organisationen. Detta minskar risken för kollisioner om två organisationer med ULA-nät kopplas ihop.
  • 16-bit Subnet ID – Gör det möjligt att skapa upp till 65 536 interna subnät.
  • 64-bit Interface ID – Identifierar enskilda enheter inom subnätet.

En fullständig ULA kan se ut så här: FD45:93AC:8A8F:0001:0000:0000:0000:0001/64

En viktig skillnad mot IPv4 är att även om ULA är tänkt för intern användning, är det vanligt att man använder GUA även internt i moderna nätverk, eftersom adressrymden i IPv6 är så stor. ULA används därför mest i scenarion där man absolut vill säkerställa att adresserna inte kan krocka med internetadresser, exempelvis i helt isolerade labbnät.

Embedded IPv4-adresser

Embedded IPv4-adresser är en övergångsmekanism som skapades för att underlätta migrationen från IPv4 till IPv6. Grundidén är att en IPv4-adress bäddas in i ett IPv6-format, så att IPv6-applikationer och protokoll-stackar kan hantera trafik till och från IPv4-enheter. På så sätt kunde man i en dual-stack-miljö behandla IPv4-kommunikation som om den vore en del av IPv6.

Det finns två huvudtyper av dessa adresser:

  • IPv4-mapped IPv6 address: Den vanligaste varianten, fortfarande använd i vissa system. Den skrivs på formen ::FFFF:192.0.2.128. Här ligger IPv4-adressen i de sista 32 bitarna, medan prefixet ::FFFF:0:0/96 signalerar att det är en IPv4-mapped adress. Detta används t.ex. i sockets-programmering för att tillåta IPv6-applikationer att kommunicera med IPv4-servrar.
  • IPv4-compatible IPv6 address: En äldre variant som såg ut som ::192.0.2.128, alltså hela IPv6-adressen fylld med nollor fram till de sista 32 bitarna där IPv4-adressen placeras. Prefixet är ::/96. Denna metod användes tidigt för att tunnla IPv4-trafik över IPv6, men är idag föråldrad och används inte längre i modern infrastruktur.

Historiskt var detta en viktig del av övergångsstrategin från IPv4 till IPv6, men i praktiken har tekniken idag väldigt liten betydelse. Moderna metoder som dual-stack, NAT64/DNS64 och olika tunnlingsprotokoll (t.ex. 6to4, ISATAP) används istället för att möjliggöra kommunikation mellan IPv4- och IPv6-nät.