IPv6 LLU adresser

Link-local unicast adresser (LLU) ger IPv6 unika egenskaper som IPv4 inte kan erbjuda. Till exempel en nätverksenhet kan själv konstruera sin egen IPv6 link-lokal unicast adress ur sin MAC-adress. Den egen konstruerade adressen kan sedan användas för att kommunicera med alla nätverksenheter på det lokala delnätet, inklusive med den lokala routern eller den lokala DHCPv6-server. Kommunikationen med routrar eller DHCPv6 servrar är oftast med syfte att få information om prefix eller få låna en global unicast-adress.
Link-local unicast adresser har flera användningsområden:

  • När IPv6 globala unicast adresser tilldelas dynamiskt via DHCPv6 servrar använder nätverksenheter sin LLU adress för kommunikation med DHCPv6 servrar.
  • Routrar som kör olika routing-protokoll använder sina LLU adresser för att upptäcka nätverkstopologin så att närliggande routrar kan detekteras.
  • Routrar kan använda LLU adresser som nästa-hopp adresser. Dessa LLU adresser finns i routing-tabeller via dynamiska processer.

Struktur av en link-lokal unicast adress

Bild 1: Link-local unicast adress – format

Bild 1 visar formatet för en LLU adress. Link-local unicast adresser ligger i intervallet fe80:: /10.

  • De minst signifikanta 64 bitarna används som interface ID.
  • De mest signifikanta 10 bitar används för prefixet
  • Användning av prefixet fe80 :: /10 resulterar i ett antal adresser från fe80 :: /10 till febf :: /10

Adressintervallet från fe80 till febf kan illustreras i binärt format som följande:

Hexadecimalt hextet Binärt
fe80::/10 FE80 1111 1110 1000 0000
FE90 1111 1110 1001 0000
FEA0 1111 1110 1010 0000
FEBF 1111 1110 1011 1111

Med prefix /10 är de första tio bitar till vänster fördefinierat som fe80 (f=1111, e=1110, 8=1000) vilket illustreras i tabellen ovan. En IPv6 adress består av 128 bitar, därav normalt tilldelas 64 bitar det globala prefixet plus subnet ID och 64 bitar till Interface ID. Med LLU adresser värda 10 bitar återstår 54 bitar som kan ta alla möjliga kombinationer. Till exempel följande LLU adress:

fe80::5aac:7ff:fe93:da00 eller fe80:0000:0000:0000:5aac:7ff:fe93:da00

De 54 noll-bitarna i ovan LLU adressen har färgmarkerats.

Automatisk konfiguration av en LLU adress

De flesta operativsystem såsom Windows, Linux, och Mac OS X aktiverar IPv6 som default därmed stödjer dessa operativsystem LLU adresser. Det finns två sätt att konstruera en LLU adress:

  • EUI-64 som används av Cisco IOS, MAC OS X, och Linux exempelvis Ubuntu.
  • Slumpmässigt som används av Windows

EUI-64 link-local adresskonstruktion

Standardiseringsorganisationen IEEE definierar EUI-64 metoden (Extended Unique Identifier) som använder MAC adresser (48 bitar) för att konstruera LLU adresser. Prefixet (inkluderar subnet ID) är FE80::/64. Metoden beskrivs med hjälp av MAC adressen 58-ac-78-93-da-00 (48 bitar)

Bild 2: EUI-64 link-local uppbyggande
  1. MAC adressen konverteras från hexadecimalt till binärt
  2. MAC adressen delas upp i mitten, det vill säga 24 bitar OUI och 24 bitar DI.
  3. Hexadecimal tal fffe (16 bitar) eller 1111 1111 1111 1110 sätts in i mitten av MAC adressen, det vill säga mellan OUI och DI. fffe är ett fördefinierat värde som regleras av IEEE.
  4. Invertera den universal/lokal bit (sjunde bit i första byte) för att indikera om LLU adressen är unique/universell (0) eller lokal administrerat (1).

Slumpmässigt link-local adresskonstruktion

Att använda EUI-64 för att skapa automatiskt ett 64-bitars Interface ID från en 48-bitars MAC-adress är en lämplig och praktisk teknik. Men det introducerar en vis komplexitet i adresskonstruktionen när den fysiska adressen ska identifieras först. Det leder att vissa operativsystem föredrar använda en annan metod, en slumpmässigt genererande 64-bitars Interface ID.

Zone ID

Bredvid en slumpmässigt genererat LLU adress visas Zone ID, ett decimalt nummer som föregås av procenttecken exempelvis %19. Detta är känt som zone ID, eller Scope ID eller Interface Scope, på svenska användningsområde, räckvidd eller identifiering av ett interface och dess räckvidd.
Operativsystem som Windows, Linux och Mac OS använder Zone ID för att associera en link-lokal adress med ett visst interface. Zone ID hjälper till att avgöra vilket Interface som ska användas när en enhet har flera, var och en på en separat länk (delnät). Zone ID är endast lokalt signifikant.
Min dator använder trådlöst Internetuppkoppling men även trådbundet nät. Med Loopback, Bluetooth-nätverksanslutning, VirtualBox och tunneling har min dator upp till 7 interface. Varje Interface bör ha en IPv6 LLU adress. Det är nu som Zone ID hjälper till att identifiera ett specifikt interface.

Här nedan visas min dators IP konfiguration för Ethernet interface en LLU adress med Zone ID %6. Observera IPv4 adressen som är 192.168.1.110

Bild 7: Link-local adress och Zone ID

Här nedan visas min dators WiFi IP konfiguration en LLU adress med Zone ID %19. Observera IPv4 adressen 10.27.75.243

Bild 8: Link-local adress och Zone ID

En dator med två interface kommer att ha två LLU adresser. När ett paket ska skickas ut till någon mottagare behövs ett specifikt interface. Som sagt, Zone ID används för att identifiera rätt interface. På bilden ovan har det ena interface Zone ID %6 och det andra %19.
Med kommandot netsh interface ipv6 show interfaces kan alla Zone ID tas fram:

Bild 9: Zone ID

Duplicate Address Detection

Hur detekteras dubbletter? LLU adresser byggs upp helt automatiskt och då finns risken för dubbletter. För att undvika detta använder IPv6 ett detekteringssystem, Duplicate Address Detection eller DAD. Förenklat kan vi säga att DAD är ett protokoll som gör att nätverksenheter skickar ut meddelande till andra nätverksenheter och informerar vad för LLU adress som enheten har. Alla andra nätverksenheter kontrollerar att de inte har samma LLU adress.

Om någon mottagare i länken (delnät) detekterar samma LLU adress svarar denne till avsändaren. Hur situationen åtgärdas varierar beroende på operativsystem. Om ingen annan mottagare svarar till avsändaren kan denne verifiera att ingen annan har samma LLU adress.

Detektering av dubbla LLU adresser görs innan adressen tilldelas till en host.