7. Bringing Up Adjacencies (Aufbau von Adjacenzen)
Dieses Kapitel beschreibt detailliert, wie OSPF-Router Adjacency-Beziehungen aufbauen und pflegen. Adjacency ist der Kern des OSPF-Protokolls und bestimmt, welche Router ihre Link-State-Datenbank synchronisieren.
Kapitelübersicht (Chapter Overview)
Der Aufbau von Adjacency ist ein mehrstufiger Prozess, der Folgendes umfasst:
- Neighbor-Entdeckung
- Bestätigung bidirektionaler Kommunikation
- Aushandlung der Master/Slave-Beziehung
- Datenbanksynchronisation
- Erreichen des vollständigen Adjacency-Status
7.1 Neighbor-Beziehung vs Adjacency (Neighbor vs Adjacency)
Konzeptunterscheidung
| Konzept | Definition | Status |
|---|---|---|
| Neighbor | Direkt verbundener Router, entdeckt via Hello | 2-Way oder höher |
| Adjacency | Neighbor, der LSDB synchronisiert | Full-Status |
7.2 Neighbor-State-Machine (Neighbor State Machine)
Zustandsübergangsdiagramm
Down → Init → 2-Way → ExStart → Exchange → Loading → Full
↓
(keine Adjacency)
Statusdetails
1. Down (Ausgefallen)
- Anfangsstatus
- Keine Hello-Pakete empfangen
- Neighbor nicht erreichbar
2. Init (Initialisierung)
- Hello-Paket vom Neighbor empfangen
- Hello listet diesen Router nicht auf
- Unidirektionale Kommunikation
3. 2-Way (Bidirektionale Kommunikation)
- Empfangenes Hello enthält diese Router-ID
- Bidirektionale Kommunikation hergestellt
- Entscheidungspunkt: Adjacency aufbauen oder nicht
4. ExStart (Austausch-Start)
- Aushandlung der Master/Slave-Beziehung
- Router mit größerer ID wird Master
- Bestimmt initiale DD-Sequenznummer
5. Exchange (Datenbankbeschreibung)
- Austausch von Database Description (DD) Paketen
- Beschreibt Inhalt der lokalen LSDB
- Nur LSA-Header, nicht vollständige LSAs
6. Loading (Laden)
- Anforderung fehlender oder abgelaufener LSAs
- Sendet Link State Request (LSR)
- Empfängt Link State Update (LSU)
7. Full (Vollständige Adjacency)
- Datenbank vollständig synchronisiert
- Normaler Betriebsstatus
- Routenberechnung möglich
7.3 Adjacency-Bildungsentscheidung (Adjacency Formation Decision)
Entscheidungsmatrix
| Netzwerktyp | Mit wem Adjacency aufbauen | Grund |
|---|---|---|
| Punkt-zu-Punkt | Alle Neighbors | Nur ein Neighbor |
| Punkt-zu-Multipunkt | Alle Neighbors | Als mehrere Punkt-zu-Punkt behandelt |
| Broadcast | DR und BDR | Adjacency-Anzahl reduzieren |
| NBMA | DR und BDR | Adjacency-Anzahl reduzieren |
7.4 DR- und BDR-Wahl (DR/BDR Election)
Wahlalgorithmus
Wahlzeitpunkt
- Interface-Status wechselt von Waiting zu DR oder DROther
- Hello-Paket löst Neuberechnung aus
Wahlregeln
-
Prioritätsvergleich
- Router Priority = 0: Nimmt nicht an Wahl teil
- Höhere Priorität ist bevorzugt
-
Router-ID-Vergleich
- Bei gleicher Priorität gewinnt größere Router-ID
-
Zweiphasige Wahl
- Phase 1: BDR wählen
- Phase 2: DR wählen
7.5 Database Description Pakete (Database Description Packets)
DD-Paketformat
Header-Felder
| Feld | Größe | Beschreibung |
|---|---|---|
| Interface MTU | 16 Bit | Interface-MTU-Größe |
| Options | 8 Bit | Optionale Fähigkeiten |
| Flags | 8 Bit | I/M/MS-Flags |
| DD Sequence Number | 32 Bit | Sequenznummer |
Flag-Bit-Beschreibung
- I (Init): Erstes DD-Paket
- M (More): Weitere DD-Pakete folgen
- MS (Master/Slave): 1=Master, 0=Slave
7.6 Link State Request Pakete (LSR Packets)
LSR-Generierungszeitpunkt
Auslösebedingungen
- Exchange-Status: Neighbor hat neuere LSAs
- Loading-Status: Fortsetzen der Anforderung fehlender LSAs
- Full-Status: Gelegentlich fehlende LSAs anfordern
7.7 Link State Update Pakete (LSU Packets)
LSU-Zweck
Verwendungsszenarien
- Antwort auf LSR (Unicast)
- Flooding neuer LSAs (Multicast/Broadcast)
- Periodisches LSA-Refresh
7.8 Link State Acknowledgment Pakete (LSAck Packets)
Bestätigungszeitpunkt
Verzögerte Bestätigung
- Batch-Bestätigung nach Empfang mehrerer LSAs
- Verzögerung typischerweise < 1 Sekunde
- Reduziert Paketanzahl
Sofortige Bestätigung
- Empfang doppelter LSAs
- Empfang älterer LSA-Instanz
7.9 Adjacency-Wartung (Adjacency Maintenance)
Rolle des Hello-Protokolls
Kontinuierliche Überwachung
- Periodisches Senden von Hello-Paketen
- Überwachung von Neighbor-Hellos
- Neighbor läuft ab, wenn kein Hello innerhalb Dead Interval
Hello-Intervall
- Punkt-zu-Punkt/Broadcast: 10 Sekunden
- NBMA: 30 Sekunden
Dead-Intervall
- Standard: Hello Interval × 4
- Punkt-zu-Punkt/Broadcast: 40 Sekunden
- NBMA: 120 Sekunden
7.10 Adjacency-Bildungsbeispiele (Adjacency Formation Examples)
Beispiel 1: Punkt-zu-Punkt-Link
Router A ←────────→ Router B
Schritt 1: Beide senden Hello
A → B: Hello (Neighbor-Liste leer)
B → A: Hello (Neighbor-Liste leer)
Schritt 2: Bidirektionale Kommunikation bestätigen
A → B: Hello (Neighbor-Liste enthält B)
B → A: Hello (Neighbor-Liste enthält A)
Status: 2-Way
Schritt 3: Master/Slave aushandeln
A → B: DD (I, M, MS=1, Seq=X)
B → A: DD (I, M, MS=0, Seq=X)
A wird Master
Schritt 4: Datenbankbeschreibungen austauschen
A → B: DD (M, MS=1, Seq=X+1) [LSA-Header-Liste]
B → A: DD (M, MS=0, Seq=X+1) [LSA-Header-Liste]
...fortsetzen bis Austausch abgeschlossen
Schritt 5: Fehlende LSAs anfordern
A → B: LSR [fordere LSA 1, 2, 3 an]
B → A: LSU [LSA 1, 2, 3]
A → B: LSAck [bestätige 1, 2, 3]
Schritt 6: Full-Status erreichen
Status: Full
Routenberechnung möglich
Technische Zusammenfassung (Technical Summary)
Schlüsselmechanismen
-
State-Machine-gesteuert
- Klare Zustandsübergänge
- 7 Neighbor-Zustände
- Ereignisgesteuertes Verhalten
-
Zuverlässige Synchronisation
- Sequenznummernmechanismus
- Bestätigung und Neuübertragung
- Master/Slave-Koordination
-
Optimiertes Design
- DR/BDR reduzieren Adjacenzen
- Batch-Bestätigung reduziert Traffic
- Stufenweise Datenbanksynchronisation
Referenzen (References)
- Vollständiger Text: RFC 2328 Section 7
Hinweis (Note): Der Aufbau von Adjacency ist die Grundlage des OSPF-Protokolls. Das Verständnis von Zustandsübergängen und Paketaustauschfolge ist für die Fehlerbehebung entscheidend.