SLAAC

SLAAC är en metod där en IPv6-enhet själv skapar sin IP-adress utan hjälp av en server. Den använder information från routerns Router Advertisement (RA) samt sin egen interface-identifierare (IID).
Namnet stateless betyder att det inte finns någon central server (som DHCPv6 i stateful läge) som håller reda på vilka adresser som delats ut. Varje enhet ansvarar själv för att bygga och kontrollera sin adress.

Steg för SLAAC

  1. Klienten ber om information (RS) – När en IPv6-enhet ansluts till ett nätverk skickar den ett Router Solicitation (RS)-meddelande till alla routrar på länken. Detta görs för att snabbare få nödvändig nätverksinformation.
  2. Routern svarar (RA) – Routern skickar ett Router Advertisement (RA). Detta meddelande innehåller bland annat:
    • Prefix och prefixlängd (exempel: 2001:db8:acad:1::/64)
    • Router Lifetime (om routern kan användas som default gateway)
    • MTU (vilken maxstorlek paket får ha)
    • M- och O-flaggor som talar om hur adressering ska ske
    • Om flaggorna är M=0 och O=0 används SLAAC.
  3. Klienten bygger sin adress – Klienten tar prefixet från RA och kombinerar det med en Interface Identifier (IID) på 64 bitar.

Det finns två sätt att skapa IID:

  • EUI-64
  • Random identifier (slumpmässigt genererad IID)

EUI-64

EUI-64 (Extended Unique Identifier, 64-bit) är en metod som används för att automatiskt skapa en 64-bitars Interface Identifier i en IPv6-adress, ofta för Link-Local Addresses (LLA) eller när en IPv6-nod får en adress via SLAAC (Stateless Address Autoconfiguration).

Kort sagt tar man en enhets MAC-adress (som är 48 bitar) och gör om den till 64 bitar enligt en standardiserad process. Så här går det till:

  1. MAC-adressen delas i två delar: OUI (Organizationally Unique Identifier – de första 24 bitarna) och Interface ID (de sista 24 bitarna).
  2. Hex-värdet FFFE infogas i mitten, vilket utökar längden från 48 till 64 bitar.
  3. Den sjunde biten i den första byten (Universal/Local-biten) inverteras för att ange om adressen är globalt unik eller lokalt administrerad.
    • AC = 10101100
    • AE = 10101110

Resultatet blir en 64-bitars identifierare som kombineras med nätverkets prefix (t.ex. ett /64-prefix) för att skapa en fullständig IPv6-adress.

Random identifier (slumpmässigt genererad IID)

En IID (Interface Identifier) är de sista 64 bitarna av en IPv6-adress när prefixet är /64. Istället för att bygga den på en MAC-adress (som vid EUI-64), kan operativsystem generera den med slumpmässiga värden genom att använda olika typer av algoritmer. Adressen har oftast en tidsbegränsad livslängd. När den går ut genereras en ny IID → vilket ger nya IPv6-adresser över tid.

Hur det går till (RFC 4941 – Privacy Extensions):

  1. Enheten får ett IPv6-prefix från routern (t.ex. 2001:db8:abcd:1234::/64).
  2. Operativsystemet använder en slumptalsgenerator för att skapa en 64-bitars IID.
  3. Det resulterar i ett värde som kombineras med prefixet och blir en fullständig IPv6-adress, t.ex.: 2001:db8:abcd:1234:3f1a:29d7:88c2:4e7b

De flesta moderna operativsystem använder idag slumpmässigt genererade Interface Identifiers (IID) som standard för Global Unicast Addresses (GUA). Exempel på detta är: Windows, macOS och iOS, Linux och Android. Däremot använder Cisco-enheter och många nätverksutrustningar fortfarande ofta EUI-64-metoden för att skapa Link-Local Addresses (LLA) och ibland även som sekundära adresser för GUA.