5. Protocol Data Structures (Protokolldatenstrukturen)
Dieses Kapitel stellt kurz die wichtigsten Datenstrukturen vor, die vom OSPF-Protokoll verwendet werden. Details werden in den folgenden Kapiteln ausgeführt.
Kapitelübersicht (Chapter Overview)
Das OSPF-Protokoll stützt sich auf mehrere wichtige Datenstrukturen zur Aufrechterhaltung der Netzwerktopologie und Routing-Informationen:
- Globale Parameter
- Area-Datenstruktur
- Interface-Datenstruktur
- Neighbor-Datenstruktur
- Link-State-Datenbank
Hauptdatenstrukturen (Main Data Structures)
1. Globale Parameter (Global Parameters)
Router-Level-Parameter
- Router ID: 32-Bit-eindeutige Kennung
- Area-Liste: Alle Areas, an denen der Router teilnimmt
- AS-Grenzrouter-Flag: Ob ASBR oder nicht
- Externe Routing-Informationen: Routen von anderen Protokollen
2. Area-Datenstruktur (Area Data Structure)
Jede Area pflegt
- Area ID: Area-Kennung
- Area-Authentifizierung: Authentifizierungstyp und Schlüssel
- Link-State-Datenbank: Alle LSAs dieser Area
- Adressbereiche: Netzwerkadressbereiche der Area
- Area-Typ: Standard-Area, Stub-Area oder NSSA
3. Interface-Datenstruktur (Interface Data Structure)
Jedes Interface pflegt
- Interface-Typ: Punkt-zu-Punkt, Broadcast, NBMA usw.
- Interface-Status: Down, Loopback, Waiting, DR, Backup, DROther
- IP-Adresse und Maske
- Area ID: Area, zu der das Interface gehört
- Hello-Intervall und Dead-Intervall
- Router-Priorität: Verwendet für DR-Wahl
- Neighbor-Liste: Neighbors auf diesem Interface
4. Neighbor-Datenstruktur (Neighbor Data Structure)
Jeder Neighbor pflegt
- Neighbor ID: Router ID des Neighbors
- Neighbor-Status: Down, Init, 2-Way, ExStart, Exchange, Loading, Full
- Neighbor-IP-Adresse
- Neighbor-Priorität
- Designated Router und Backup Designated Router
- Link-State-Anforderungsliste
- Datenbank-Zusammenfassungsliste
- Link-State-Übertragungsliste
5. Link-State-Datenbank (Link State Database)
LSDB-Struktur
- Nach Typ organisiert: Router-LSA, Network-LSA, Summary-LSA, AS-external-LSA
- Nach Area getrennt: Jede Area hat eine unabhängige LSDB
- LSA-Header-Informationen: LS Age, LS Type, Link State ID, Advertising Router, LS Sequence Number
Datenstrukturbeziehungen (Data Structure Relationships)
Hierarchische Struktur
Router
├── Area 1
│ ├── Link-State-Datenbank (LSDB)
│ └── Interface-Liste
│ └── Neighbor-Liste
├── Area 2
│ ├── LSDB
│ └── Interface-Liste
└── Routing-Tabelle (Routing Table)
Zweck der wichtigsten Datenstrukturen (Data Structure Purposes)
| Datenstruktur | Hauptzweck | Aktualisierungszeitpunkt |
|---|---|---|
| Globale Parameter | Router-Basiskonfiguration | Konfigurationsänderung |
| Area-Struktur | Area-Konfiguration und LSDB | LSA-Aktualisierung |
| Interface-Struktur | Interface-Status und Neighbor-Verwaltung | Hello-Protokoll |
| Neighbor-Struktur | Adjacency-Wartung | State-Machine-Übergang |
| LSDB | Topologieinformationsspeicherung | LSA-Flooding |
| Routing-Tabelle | Weiterleitungsentscheidung | SPF-Berechnung |
Speicher- und Leistungsüberlegungen (Memory and Performance)
Speichernutzungsschätzung
Grundformeln
- LSDB-Größe ≈ (Anzahl Router × Router-LSA) + (Anzahl Netzwerke × Network-LSA) + (Inter-Area-Routen × Summary-LSA)
- Neighbor-Struktur ≈ Anzahl Interfaces × durchschnittliche Neighbor-Anzahl
- Routing-Tabelle ≈ Anzahl aller erreichbaren Netzwerke
Optimierungsempfehlungen
- Area-Aufteilung: Größe jeder Area begrenzen
- Routen-Aggregation: LSA-Anzahl reduzieren
- Stub-Areas: Externe Routing-Informationen reduzieren
- Interface-Tuning: Timer-Parameter anpassen
Technische Zusammenfassung (Technical Summary)
Datenstruktur-Designprinzipien
-
Hierarchische Organisation
- Global → Area → Interface → Neighbor
- Erleichtert Verwaltung und Fehlerisolierung
-
State-Machine-gesteuert
- Interface-State-Machine
- Neighbor-State-Machine
- Klare Zustandsübergänge
-
Verteilte Datenbank
- Jeder Router pflegt vollständige LSDB
- Synchronisation durch Flooding
- Gewährleistet Routing-Konsistenz
Referenzen (References)
- Vollständiger Text: RFC 2328 Section 5
Hinweis (Note): Dieses Kapitel bietet einen Überblick. Detaillierte Datenstrukturdefinitionen und -operationen werden in den folgenden Kapiteln ausführlich erklärt.