IPv6/Stateless Address Autoconfiguration
SLAAC (Stateless Address Autoconfiguration) ist die automatische Konfiguration von IPv6-Adressen
Autoconfiguration
SLAAC ist Bestandteil der Autoconfiguration, die drei wesentli- che Aufgaben hat:
- Generieren einer Link-local Address.
- Durchführen der Stateless Address Autoconfiguration.
- Sicherstellen der Eindeutigkeit der generierten Adressen (Duplicate Address Detection)
Ablauf
- Den ersten Schritt macht der Host, indem er mittels Router Solicitation nach einem Router Advertisement fragt.
- Alternativ könnte er auch ein periodisches Router Advertisement abwarten.
- diese Geduld beobachtet man aber eher selten.
- Der Router verschickt das angeforderte Router Advertisement,welches alle konfigurationsrelevanten Daten enthält.
- Daraufhin führt der Host die Konfiguration des Interfaces durch und prüft die Eindeutigkeit der selbst erzeugten Adressen.
- Wenn diese Eindeutigkeit angenommen werden kann, ist die Konfiguration des Interfaces vollständig und gilt als beendet.
Duplicate Address Detection
Dir Duplicate Address Detection besteht aus mehrere Neighbor Solicitations
- Wenn ein Node feststellen möchte, ob eine Adresse schon von einem anderen Node genutzt wird,dann versucht er die zugehörige Linklayer Address aufzulösen.
- Bleibt eine Antwort aus, benutzt offensichtlich kein anderer Node auf dem Link die überprüfte Adresse.
- Um Fehlschlüsse aufgrund von Paketverlusten zu vermeiden, sollen mehrere Neighbor Solicitations verschickt werden.
Ab wann eine Adresse als eindeutig gilt, hängt von den Parametern der jeweiligen Implementierung ab.
- Jede Adresse hat anfangs den Status tentative (probeweise).
- Erst wenn die Duplicate Address Detection vollständig durchlaufen wurde, und keine Anzeichen darauf schließen lassen, dass die Adresse bereits in Benutzung ist, wird die Adresse valid (gültig).
Ablaufverfolgung
- Wir werden versuchen eine komplette Autoconfiguration von lynx mit Wireshark aufzufangen.
- Vom Hochfahren des Interfaces bis zu seiner endgültigen Konfiguration.
Interface herunterfahren
# ip link set down dev enp1s0
X
Nun starten wir Wireshark und lassen ihn auf dem PseudoInterface any lauschen.
X
Danach fahren wir enp1s0 wieder hoch:
# ip link set up dev enp1s0
X
In Wireshark können wir bereits Aktivität beobachten. Wir warten den Abschluss der Konfiguration ab, sie ist erfolgreich verlaufen wenn wir Adressen mit den Parametern scope global und dynamic sehen:
# ip addr show dev enp1s0 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 50:3e:aa:1f:63:81 brd ff:ff:ff:ff:ff:ff inet 10.30.1.1/24 brd 10.30.1.255 scope global enp1s0 valid_lft forever preferred_lft forever inet6 fe80::523e:aaff:fe1f:6381/64 scope link valid_lft forever preferred_lft forever