Zum Inhalt springen

IPv6/Autoconfiguration: Unterschied zwischen den Versionen

Aus Foxwiki
 
(19 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:


== Beschreibung ==
== Beschreibung ==
Automatische Konfiguration von IPv6-Adressen (Stateless Address Autoconfiguration)
Automatische Konfiguration von IPv6-Adressen  
* Stateless Address Autoconfiguration


{| class="wikitable options col1center big"
; Motivation
Reduzierung von Abhängigkeiten
* SLAAC reduziert IPv6 die Abhängigkeit von dritten Komponenten zur Organisation des Links
* Die Nutzung von Stateless Address Autoconfiguration erfordert keine manuelle Konfiguration der Hosts und nur sehr wenige Konfigurationsschritte auf dem Router
* Damit einher geht der Verlust einer strengen Zuordnung von Adressen zu bestimmten Hosts
 
; Aufgaben
{| class="wikitable options col1center "
|-
|-
! Aufgabe !! Beschreibung
! Aufgabe !! Beschreibung
|-
|-
| 1 || Link-local Address generieren
| 1 || [[Link-local Address]] generieren
|-
|-
| 2 || Stateless Address Autoconfiguration
| 2 || Autokonfiguration durchführen
|-
|-
| 3 || Duplicate Address Detection
| 3 || Duplicate Address Detection
|}
|}
; Reduzierung von Abhängigkeiten
SLAAC reduziert IPv6 die Abhängigkeit von dritten Komponenten zur Organisation des Links
* Die Nutzung von Stateless Address Autoconfiguration erfordert keine manuelle Konfiguration der Hosts und nur sehr wenige Konfigurationsschritte auf dem Router
* Damit einher geht der Verlust einer strengen Zuordnung von Adressen zu bestimmten Hosts


; Aressverwaltung
; Aressverwaltung
Zeile 35: Zeile 38:
== Ablauf ==
== Ablauf ==
=== Router Solicitation ===
=== Router Solicitation ===
Zunächst fragt der Host mit einer [[Router Solicitation]] nach einem [[Router Advertisement]]
Host fragt mit [[Router Solicitation]] ein [[Router Advertisement]] an
* Alternativ könnte er auch ein periodisches Router Advertisement abwarten, diese Geduld beobachtet man aber eher selten
* Router verschickt das angeforderte Router Advertisement
* Der Router verschickt das angeforderte Router Advertisement, welches alle konfigurationsrelevanten Daten enthält
* enthält alle konfigurationsrelevanten Daten
** Wir gehen hier der Einfachheit halber von nur einem Router aus


; Konfiguration des Interfaces
; Konfiguration des Interfaces
Daraufhin führt der Host die Konfiguration des Interfaces durch und prüft die Eindeutigkeit der selbst erzeugten Adressen
Daraufhin führt der Host die Konfiguration des Interfaces durch
* Erst wenn diese Eindeutigkeit angenommen werden kann, ist die Konfiguration des Interfaces vollständig und gilt als beendet
* 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
=== Multicast Listener Report ===
; Multicast Listener Report ([[Solicited Node Multicast Address]])
[[File:SLAAC-Paket1.png|mini|400px|SLAAC-Paket 1]]
Das erste interessante Paket im Mitschnitt ist ein Multicast Listener Report und wurde von ''linux'' verschickt


; Als Quelladresse hat ''linux'' die Unspecified Address gewählt
; Router Solicitation
Das heißt, zum Zeitpunkt des Versendens stand keine passende, gültige Adresse zur Verfügung
* Die Zieladresse ist die Multicast Address für alle MLDv2-fähigen Router
 
; MLDv2 Messages
[[File:SLAAC-Paket1MulticastListenerReport.png|mini|400px|Multicast Listener Report]]
* typisches Hop Limit ist 1
* Hop-by-Hop Options Extension Headers
* Padding Option, welche den Extension Header auf eine einheitliche Länge auffüllt
* Router Alert Option
** Informiert Multicastfähige Router, dass sich eine MLDv2 Message im Paket befindet
** Interessierte Router werten die Nachricht aus und ziehen daraus Schlüsse für ihr Multicast Routing
 
; MLDv2-Message
Bei der MLDv2-Message handelt es sich um einen ''Changed to Exclude''
* In [[IPv6/Host/Multicast]] ist beschrieben, wie dieser Typ zu interpretieren ist
* Hier wird die [[IPv6/Multicast/Address|Multicast Adresse]] '''ff02::1:ff60:d1e''' für alle potentiellen Multicast-Quellen freigegeben
* Die Nachricht entspricht dem Beitritt zur Multicast Group '''ff02::1:ff60:d1e'''
* Es handelt sich dabei um die Solicited Node Multicast Address von Interface eth0 auf ''linux''
 
====  Gruppenbeitritt ====
; Zu diesem Zeitpunkt hat ''linux'' bereits einen Interface Identifier erzeugt
Der Beitritt zur entsprechenden Multicast Group gewährt ihm Zugang zu den Paketen dieser Gruppe
 
; So hat er die Chance, frühzeitig zu erfahren, ob sein Interface Identifier schon verwendet wird
Würde ein anderer Node seinen Interface Identifier bereits verwenden, so wäre dieser Node ebenfalls Mitglied der Multicast Group
* Eine doppelt vorkommende Adresse würde dadurch schneller auffallen
 
====  Gruppen mit mehreren Mitgliedern ====
; Es ist möglich, dass ein anderer Node eine ähnliche Adresse verwendet
Etwa eine Adresse bei der sich die letzten 24 Bit gleichen
* Beide Nodes wären nun in derselben Gruppe, jene mit der gemeinsamen [[Solicited Node Multicast Address]]
* Beide Nodes würden Pakete empfangen, die nicht für sie bestimmt wären
** Die aufgrund der Ähnlichkeit der Adresse aber an die gemeinsame Gruppe geschickt wurden
* Jeder Node muss deshalb prüfen, ob ein Paket, welches an die Gruppe adressiert wurde, auch wirklich für ihn von Belang ist
* Auch ''linux'' könnte Pakete empfangen, nach der Prüfung des Inhaltes aber feststellen, dass der eigene Interface Identifier davon nicht betroffen ist
 
===  Router Solicitation ===
[[File:SLAAC-Paket3RouterSolicitation.png|mini|400px|Router Solicitation]]
[[File:SLAAC-Paket3RouterSolicitation.png|mini|400px|Router Solicitation]]
; Adresse für den Global Scope
; Adresse für den Global Scope
Nachdem ''linux'' nun eine gültige Link-local Address hat, versucht er auch eine gültige Adresse für den Global Scope zu erhalten
Nachdem ''client'' nun eine gültige Link-local Address hat, versucht er auch eine gültige Adresse für den Global Scope zu erhalten
* Dazu lässt er sich von jedem Router am Link ein RouterAdvertisement zukommen
* Dazu lässt er sich von jedem Router am Link ein RouterAdvertisement zukommen
* Die Anforderung der Router Advertisements geschieht mit Hilfe einer Router Solicitation
* Die Anforderung der Router Advertisements geschieht mit Hilfe einer Router Solicitation


; Die Nachricht wird von der Link-local Address des Hosts gesendet
Die Nachricht wird von der Link-local Address des Hosts gesendet
Hier von der Adresse
Hier von der Adresse
  fe80::200:ff:fe6:d1e
  fe80::200:ff:fe6:d1e
Zeile 103: Zeile 64:
* Da wir nur einen Router am Link haben, nämlich router, erhalten wir auch nur ein Router Advertisement
* Da wir nur einen Router am Link haben, nämlich router, erhalten wir auch nur ein Router Advertisement


Nach dem Erhalt des Router Advertisements erzeugt ''linux'' eine Global Unicast Address
Nach dem Erhalt des Router Advertisements erzeugt ''client'' eine Global Unicast Address
* Dazu verwendet er das von ''router'' verteilte Präfix und den bereits vorhandenen Interface Identifier
* Dazu verwendet er das von ''router'' verteilte Präfix und den bereits vorhandenen Interface Identifier


=== Multicast Listener Report ===
=== Duplicate Address Detection ===
; Multicast Listener Report (Solicited Node)
; Duplicate Address Detection (Global Unicast)
[[File:SLAAC-Paket5-IPv6-Header.png|mini|400px]]
Auch für diese Adresse muss eine Duplicate Address Detection durchgeführt werden
* Die beginnt wieder mit dem Beitritt zu der passenden Multicast Group
* Obwohl sich die Solicited Node Multicast Address für die Global Unicast Address nicht von der für die Link-local Address unterscheidet, versendet ''linux'' einen neuen Multicast Listener Report
* Der wesentliche Unterschied ist die Quelladresse des Paketes
 
[[File:SLAAC-Paket5MulticastListenerReport.png|mini|400px]]
Anstatt der Unspecified Address kommt diesmal die Link-local Address zum Einsatz
Unverändert geblieben ist der Beitritt zur Solicited Node Multicast Group, der erneut mithilfe von Changed to Exclude erreicht wurde
* Und einen weiteren Gruppenbeitritt können wir im Paket entdecken, der Beitritt zur Gruppe ''ff02::fb''
* Dies ist die Multicast DNS Address für die Verwendung mit IPv6, und für unser Netz nicht weiter wichtig
 
=== Duplicate Address Detection (Global Unicast) ===
[[IPv6/Autoconfiguration/DuplicateAddressDetection]]
[[IPv6/Autoconfiguration/DuplicateAddressDetection]]


=== Test ===
=== Test ===
; Einem Test der Konnektivität von ''linux'' steht nun nichts mehr im Wege
Einem Test der Konnektivität von ''client'' steht nun nichts mehr im Wege
Dazu verschicken wir Echo Requests von ''linux'' an den Tunnelendpunkt des Tunnelbrokers


Dazu verschicken wir Echo Requests von ''client'' an den Tunnelendpunkt des Tunnelbrokers
<syntaxhighlight lang="bash" highlight="1" line copy>
<syntaxhighlight lang="bash" highlight="1" line copy>
ping6 -c 3 2a01:198:200:a23::1
ping6 -c 3 2a01:198:200:a23::1

Aktuelle Version vom 21. Juli 2025, 15:52 Uhr

IPv6/Autoconfiguration - Stateless Address Autoconfiguration (SLACC)

Beschreibung

Automatische Konfiguration von IPv6-Adressen

  • Stateless Address Autoconfiguration
Motivation

Reduzierung von Abhängigkeiten

  • SLAAC reduziert IPv6 die Abhängigkeit von dritten Komponenten zur Organisation des Links
  • Die Nutzung von Stateless Address Autoconfiguration erfordert keine manuelle Konfiguration der Hosts und nur sehr wenige Konfigurationsschritte auf dem Router
  • Damit einher geht der Verlust einer strengen Zuordnung von Adressen zu bestimmten Hosts
Aufgaben
Aufgabe Beschreibung
1 Link-local Address generieren
2 Autokonfiguration durchführen
3 Duplicate Address Detection
Aressverwaltung

Umgebungen mit zentraler Adressverwaltung verwenden DHCPv6

  • Simultaner Betrieb von DHCPv6 und Stateless Address Autoconfiguration ist möglich
Überblick
Prinzip SLAAC
  1. Host fragt mit einer Router Solicitation nach einem Router Advertisement
  2. Router verschickt das angeforderte Router Advertisement mit den relevanten Daten
  3. Host konfiguriert sein Interface
  4. Host 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

Ablauf

Router Solicitation

Host fragt mit Router Solicitation ein Router Advertisement an

  • Router verschickt das angeforderte Router Advertisement
  • enthält alle konfigurationsrelevanten Daten
Konfiguration des Interfaces

Daraufhin führt der Host die Konfiguration des Interfaces durch

  • 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

Router Solicitation
Router Solicitation
Adresse für den Global Scope

Nachdem client nun eine gültige Link-local Address hat, versucht er auch eine gültige Adresse für den Global Scope zu erhalten

  • Dazu lässt er sich von jedem Router am Link ein RouterAdvertisement zukommen
  • Die Anforderung der Router Advertisements geschieht mit Hilfe einer Router Solicitation

Die Nachricht wird von der Link-local Address des Hosts gesendet Hier von der Adresse

fe80::200:ff:fe6:d1e
  • Als Zieladresse wird die All Routers Multicast Address ff02::2 verwendet
  • Angehängt an die Router Solicitation ist, eine ICMPv6-Option mit der Link-layer Address des Absenders

Router Advertisement

Alle Router am Link antworten auf die Router Solicitation mit einem Router Advertisement

  • Da wir nur einen Router am Link haben, nämlich router, erhalten wir auch nur ein Router Advertisement

Nach dem Erhalt des Router Advertisements erzeugt client eine Global Unicast Address

  • Dazu verwendet er das von router verteilte Präfix und den bereits vorhandenen Interface Identifier

Duplicate Address Detection

Duplicate Address Detection (Global Unicast)

IPv6/Autoconfiguration/DuplicateAddressDetection

Test

Einem Test der Konnektivität von client steht nun nichts mehr im Wege

Dazu verschicken wir Echo Requests von client an den Tunnelendpunkt des Tunnelbrokers

ping6 -c 3 2a01:198:200:a23::1
Da Echo Replies eintreffen, können wir davon ausgehen dass das Routing funktioniert

Den Beweis können wir auch mit traceroute6 antreten:

traceroute6 -n 2a01:198:200:a23::1

An erster Stelle steht der nächste Hop, in unserem Fall die Adresse des Interfaces eth1 von router

  • Schon in der zweiten Zeile ist das Ziel erreicht



Anhang

Siehe auch

Links

Weblinks