IPv6/Stateless Address Autoconfiguration
Stateless Address Autoconfiguration (SLAAC)
Die Stateless Address Autoconfiguration, kurz SLAAC, dient der automatischen Konfiguration von Adressen und Routen der Hosts am Link. Damit reduziert IPv6 als Protokoll die Abhängigkeit von dritten Komponenten zur Organisation des Links.
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.
- Erst wenn diese Eindeutigkeit angenommen werden kann, ist die Konfiguration des Interfaces vollständig und gilt als beendet.
Duplicate Address Detection
Hinter der Duplicate Address Detection verbergen sich eigentlich 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