SLAAC

Inte alla nätverk har eller behöver tillgång till en DHCPv6-server. Men varje enhet i ett IPv6-nätverk behöver en GUA (Global Unicast Address). SLAAC-metoden möjliggör för nätverksenheter att skapa sina egna unika IPv6 globala unicast adresser utan tjänster från en DHCPv6-server.

SLAAC är en tillståndslös (stateless) tjänst. Det betyder att det inte finns någon server som underhåller nätverksadressinformation för att veta vilka IPv6-adresser som används och vilka som är tillgängliga.

SLAAC använder ICMPv6 RA-meddelanden för att tillhandahålla adressering och annan konfigurationsinformation som normalt skulle tillhandahållas av en DHCP-server.

  • En nätverksenhet konfigurerar sin IPv6-adress baserat på informationen som skickas i RA-meddelandet. RA-meddelanden sänds av en IPv6-router var 200 sekund.
  • En nätverksenhet kan också skicka ett Router Solicitation (RS)-meddelande för att begära att en IPv6-aktiverad router skickar ett RA till enheten.

SLAAC kan implementeras som enbart SLAAC, eller SLAAC med DHCPv6.

Referera till följande topologi för att se hur SLAAC aktiveras för att tillhandahålla tillståndslös (stateless) dynamisk GUA-tilldelning. Anta att R1 GigabitEthernet 0/0/1 har konfigurerats med den angivna IPv6 GUA och Link-Local adresserna.

Följande kan observeras:

Verifiera IPv6 adresser

Resultatet från kommandot show ipv6 interface visar de aktuella inställningarna på interfacet G0/0/1:

  • Link-local IPv6 address – fe80::1
  • GUA and subnet – 2001:db8:acad:1::1 and 2001:db8:acad:1::/64
  • IPv6 all-nodes group – ff02::1
R1# show ipv6 interface G0/0/1 
GigabitEthernet0/0/1 is up, line protocol is up
  IPv6 is enabled, link-local address is FE80::1
  No Virtual link-local address(es):
  Description: Link to LAN
  Global unicast address(es):
    2001:DB8:ACAD:1::1, subnet is 2001:DB8:ACAD:1::/64
  Joined group address(es):
    FF02::1
    FF02::1:FF00:1
(output omitted)
R1#

Aktivering av SLAAC

Även om router-interfacet har en IPv6-konfiguration är det ännu inte aktiverat för att skicka RA-meddelanden som innehåller adresskonfigurationsinformation till nätverksenheter som använder SLAAC.

För att aktivera sändning av RA-meddelanden måste en router gå med i IPv6 multicast-gruppen för alla routrar. Detta genomförs när kommandot ipv6 unicast-routing exekveras i den globala konfigurationsläge, se exempel nedan:

R1(config)# ipv6 unicast-routing 
R1(config)# exit 
R1#

Verifiera att SLAAC är aktiverad

Multicast IPv6-gruppen för alla routrar svarar på IPv6 multicast-adressen ff02::2. Du kan använda kommandot show ipv6 interface för att verifiera om en router är aktiverad, som visas i exemplet:

R1# show ipv6 interface G0/0/1 | section Joined 
  Joined group address(es):
   FF02::1
   FF02::2
   FF02::1:ff00:1
R1#

En IPv6-aktiverad Cisco-router skickar RA-meddelanden till IPv6 multicast-adress för alla noder, ff02::1, var 200 sekund.

Metod Endast SLAAC

Metoden ”Endast SLAAC” är aktiverad som standard när kommandot ipv6 unicast-routing är konfigurerat. Alla aktiverade Ethernet-interface med en konfigurerad IPv6 Global Unicast Address (GUA) börjar då sända Router Advertisement (RA)-meddelanden. I dessa meddelanden är A-flaggan satt till 1, medan O- och M-flaggorna är satta till 0, vilket illustreras i figuren.

  • A = 1 föreslår att klienten själv skapar en IPv6 GUA med hjälp av det prefix som annonseras i RA-meddelandet. Klienten kan skapa sitt eget Interface Identifier (ID) antingen genom Extended Unique Identifier (EUI-64) eller genom att generera det slumpmässigt.
  • O = 0 och M = 0 instruerar klienten att enbart använda informationen i RA-meddelandet. Detta inkluderar prefix, prefixlängd, DNS-server, Maximum Transmission Unit (MTU) och information om default gateway. Inga ytterligare inställningar från en DHCPv6-server är tillgängliga.

I exemplet är PC1 konfigurerad för att automatiskt erhålla sin IPv6-adresseringsinformation. Enligt inställningarna för A, O och M-flaggorna, samt informationen i RA-meddelandet från R1, genomför PC1 enbart SLAAC.

Adressen till default gateway är avsändarens IPv6-adress i RA-meddelandet, vilket är R1
Link-Local Address (LLA). Denna adress för default gateway kan endast erhållas automatiskt från RA-meddelandet; en DHCPv6-server tillhandahåller inte denna information.

C:\PC1> ipconfig 

Windows IP Configuration
  Ethernet adapter Ethernet0:
  Connection-specific DNS Suffix . :
  IPv6 Address. . . . . . . . . . . : 2001:db8:acad:1:1de9:c69:73ee:ca8c
  Link-local IPv6 Address . . . . . : fe80::fb:1d54:839f:f595%21
  IPv4 Address. . . . . . . . . . . : 169.254.202.140
  Subnet Mask . . . . . . . . . . . : 255.255.0.0
  Default Gateway . . . . . . . . . : fe80::1%21
C:\PC1>

ICMPv6 RS-meddelanden

En router skickar RA-meddelanden var 200 sekund. Dock kommer den även att skicka ett RA-meddelande om den tar emot ett RS-meddelande från en nätverksenhet. När en klient är konfigurerad för att automatiskt erhålla sin adresseringsinformation skickar den ett RS-meddelande till IPv6
alla-router-multicast adress ff02::2.

Figuren illustrerar hur en IPv6-nätverksenhet initierar SLAAC-metoden.

  1. PC1 har precis startat och har ännu inte fått ett RA-meddelande. Därför skickar den ett RS-meddelande till IPv6 all-routers multicast-adressen ff02::2 och begär ett RA.
  2. R1, som är en del av IPv6 all-routers-gruppen, tar emot RS-meddelandet. R1 genererar ett RA som innehåller det lokala nätverkets prefix och prefixlängd (t.ex. 2001:db8:acad:1::/64). Sedan skickar den RA-meddelandet till IPv6 all-nodes multicast-adressen ff02::1. PC1 använder denna information för att skapa en unik IPv6 Global Unicast Address (GUA).

Hur nätverksenheter genererar ett IPv6 Interface ID

Med SLAAC förvärvar en nätverksenhet vanligtvis sin 64-bitars IPv6-nätinformation från routerns RA. Dock måste den generera den återstående 64-bitars interface ID med en av två metoder:

  • Slumpmässigt genererad – Den 64-bitars interface-ID genereras slumpmässigt av klientens operativsystem. Detta är metoden som nu används av Windows 10-nätverksenheter såsom datorer.
  • EUI-64 – Nätverksenheter skapar ett interface-ID med hjälp av sin 48-bitars MAC-adress. De infogar hexadecimala värdet fffe mitt i adressen och inverterar det sjunde bitet av interface-ID. Detta ändrar värdet på den andra hexadecimala siffran i interface-ID.

Vissa operativsystem väljer att som standard generera interface-ID slumpmässigt istället för att använda EUI-64-metoden, huvudsakligen på grund av att det kan leda till potentiella integritetsrisker eftersom MAC-adressen kan spåras tillbaka till specifika enheter och därmed avslöja användarens identitet eller plats.

Notera: Windows, Linux och Mac OS tillåter användaren att modifiera genereringen av interface-ID för att antingen vara slumpmässigt genererad eller använda EUI-64. Till exempel använde PC1, som kör Windows 10, IPv6-nätverksinformationen från RA-meddelandet som skickades av routern R1. PC1 genererade sedan slumpmässigt ett 64-bitars iterface-ID, vilket framgår av utdatan.

C:\PC1> ipconfig 

Windows IP Configuration
  Ethernet adapter Ethernet0:
  Connection-specific DNS Suffix . :
  IPv6 Address. . . . . . . . . . . : 2001:db8:acad:1:1de9:c69:73ee:ca8c
  Link-local IPv6 Address . . . . . : fe80::fb:1d54:839f:f595%21
  IPv4 Address. . . . . . . . . . . : 169.254.202.140
  Subnet Mask . . . . . . . . . . . : 255.255.0.0
  Default Gateway . . . . . . . . . : fe80::1%6
C:\PC1>

Dubbel Adressdetektering

SLAAC-processen möjliggör för nätverksenheten att skapa en IPv6-adress. Det finns dock ingen garanti för att adressen är unik på nätverket. SLAAC är en tillståndslös (stateless) process; därför har nätverksenheten möjlighet att verifiera att en nyskapad IPv6-adress är unik innan den kan användas. Processen för Dubbel Adressdetektering (Duplicate Addess Detection, DAD) används av en nätverksenhet för att säkerställa att IPv6 GUA är unik.

DAD implementeras med ICMPv6. För att utföra DAD skickar värden ett ICMPv6 Neighbor Solicitation (NS) meddelande med en speciellt konstruerad multicast-adress, kallad på engelska ”Solicited-node Multicast Address”. Denna adress duplicerar de sista 24 bitarna av nätverksenhetens IPv6-adress.

Om inga andra enheter svarar med ett NA-meddelande, då är adressen nästan garanterat unik och kan användas av enheten. Om ett NA tas emot av nätverksenheten, då är adressen inte unik, och operativsystemet måste bestämma ett nytt interface-ID att använda.

Internet Engineering Task Force (IETF) rekommenderar att DAD används på alla IPv6 unicast-adresser oavsett om den skapas med enbart SLAAC, erhålls med hjälp av tillståndsbaserad (stateful) DHCPv6, eller konfigureras manuellt. DAD är inte obligatoriskt eftersom ett 64-bitars interface-ID erbjuder 18 kvintiljoner möjligheter och chansen för en dubblering är avlägsen. Dock utför de flesta operativsystem DAD på alla IPv6 unicast-adresser, oavsett hur adressen är konfigurerad.