SLAAC grunder | DHCPv6 funktionalitet
Denna del kan fokusera på de specifika mekanismerna bakom Router Advertisement (RA) och Router Solicitation (RS).
En IPv6-router skickar Router Advertisement (RA)-meddelanden regelbundet, vanligtvis var 200:e sekund. Om en nätverksenhet skickar ett Router Solicitation (RS)-meddelande till multicast-adressen för alla routrar (ff02::2
), svarar routern dock omedelbart med ett RA-meddelande. Studera bilden:
När en nätverksenhet, som exempelvis PC1, är konfigurerad för att automatiskt erhålla sin IPv6-adresseringsinformation, börjar den med att skicka ett RS-meddelande till IPv6-multicastadressen för alla routrar (FF02::2).
- PC1 skickar ett RS-meddelande eftersom den ännu inte mottagit ett RA.
- Routern R1, som tillhör all-routers gruppen, tar emot RS-meddelandet och svarar med ett RA-meddelande som innehåller nätverksprefixet och prefixlängden, exempelvis
2001:db8:acad:1::/64
. RA-meddelandet skickas därefter till multicast-adressen för alla noder (ff02::1
). Med hjälp av denna information skapar PC1 en unik Global Unicast Address (GUA).
Hur nätverksenheter genererar ett IPv6 Interface ID
När en nätverksenhet använder SLAAC tar den emot 64 bitar av nätverksinformationen från routerns RA-meddelande. För att skapa en komplett IPv6-adress behöver enheten generera ett unikt Interface Identifier (ID), vilket utgör de återstående 64 bitarna. Detta kan göras på två sätt:
- Slumpmässigt genererat ID: Enheten genererar Interface ID slumpmässigt, vilket är standardmetoden för Windows 10 och många andra moderna operativsystem. Denna metod används för att förbättra integriteten genom att undvika att använda enhetens MAC-adress, som kan spåras tillbaka till specifika hårdvaruenheter.
- EUI-64-metoden: Enheten skapar Interface ID baserat på sin 48-bitars MAC-adress. För att göra detta infogar enheten hexadecimala värdet
FFFE
mitt i MAC-adressen och inverterar den sjunde biten, vilket ändrar värdet på den andra hexadecimala siffran. Se exempel nedan:
Vissa operativsystem föredrar den slumpmässiga metoden framför EUI-64 för att skydda användarens integritet och undvika att MAC-adresser avslöjas. I exemplet med PC1, som kör Windows 10, skapade enheten ett slumpmässigt Interface ID baserat på nätverksinformationen från RA-meddelandet. Resultatet visas i utdatan nedan:
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 (Duplicate Address Detection, DAD)
När SLAAC används skapar nätverksenheten en IPv6-adress, men det finns ingen garanti för att adressen är unik i nätverket. Eftersom SLAAC är en tillståndslös process måste enheten själv säkerställa att den valda adressen inte redan används av någon annan. Detta görs med hjälp av Dubbel Adressdetektering (Duplicate Address Detection, DAD).
DAD-processen:
- Enheten skickar ett ICMPv6 Neighbor Solicitation (NS)-meddelande till en speciellt konstruerad multicastadress, kallad Solicited-Node Multicast Address. Denna adress innehåller de sista 24 bitarna av enhetens IPv6-adress.
- Om ingen annan enhet svarar med ett Neighbor Advertisement (NA)-meddelande, anses adressen unik och kan användas.
- Om ett NA-meddelande tas emot indikerar det att adressen redan används, och enheten måste generera ett nytt Interface ID.
Internet Engineering Task Force (IETF) rekommenderar att DAD används för alla IPv6 unicast-adresser, oavsett om adressen genereras med SLAAC, erhålls via stateful DHCPv6, eller konfigureras manuellt. Även om risken för duplicerade adresser är extremt liten – tack vare de 18 kvintiljoner möjliga Interface ID:n i ett 64-bitars utrymme – utför de flesta operativsystem DAD som en säkerhetsåtgärd.