OSPF
OSPF (Open Shortest Path First) ist ein dynamisches Routing-Protokoll, das in IP-Netzwerken verwendet wird, um Datenpakete effizient zwischen Routern weiterzuleiten. Als sogenanntes Link-State-Protokoll erstellt jeder Router eine vollständige Karte der Netzwerktopologie und berechnet daraus die optimalen Pfade zu allen Zielen.
OSPF wurde von der IETF im RFC 2328 standardisiert und gehört zur Kategorie der Interior Gateway Protocols (IGP). Das bedeutet, dass es innerhalb eines autonomen Systems eingesetzt wird, um Routing-Informationen zwischen Routern auszutauschen. Im Gegensatz zu älteren Protokollen wie RIP konvergiert OSPF deutlich schneller und skaliert besser für große Netzwerke.
Wie funktioniert Link-State-Routing?
Um OSPF zu verstehen, musst du zunächst das Konzept des Link-State-Routings kennen. Bei diesem Ansatz sammelt jeder Router Informationen über alle Links (Verbindungen) im Netzwerk und speichert diese in einer Link-State-Datenbank (LSDB). Aus dieser Datenbank berechnet jeder Router dann selbstständig den kürzesten Pfad zu jedem Ziel.
Stell dir das so vor: Jeder Router hat eine komplette Landkarte des gesamten Netzwerks. Wenn sich etwas ändert - zum Beispiel wenn eine Verbindung ausfällt - wird diese Änderung an alle anderen Router verteilt. Jeder Router aktualisiert dann seine Karte und berechnet neue Routen. Das ist fundamental anders als bei Distance-Vector-Protokollen wie RIP, bei denen Router nur wissen, wie weit entfernt ein Ziel ist, aber nicht den genauen Weg dorthin.
Der Dijkstra-Algorithmus (SPF)
OSPF verwendet den Dijkstra-Algorithmus, auch Shortest Path First (SPF) genannt, um aus der Link-State-Datenbank die besten Routen zu berechnen. Dieser Algorithmus wurde 1956 von Edsger W. Dijkstra entwickelt und findet den kürzesten Pfad von einem Startpunkt zu allen anderen Punkten in einem Graphen.
Der Algorithmus funktioniert in mehreren Schritten: Zunächst setzt der Router sich selbst als Wurzel und bewertet alle direkten Nachbarn. Dann wählt er den Nachbarn mit den niedrigsten "Kosten" aus und untersucht dessen Nachbarn. Dieser Prozess wiederholt sich, bis alle Router im Netzwerk besucht wurden. Das Ergebnis ist ein Shortest-Path-Tree (SPT) mit dem lokalen Router als Wurzel.
OSPF-Nachbarschaften und das Hello-Protokoll
Bevor OSPF-Router Routing-Informationen austauschen können, müssen sie zunächst Nachbarschaften aufbauen. Dafür verwenden sie das sogenannte Hello-Protokoll. Router senden regelmäßig Hello-Pakete auf ihren OSPF-fähigen Schnittstellen, um sich gegenseitig zu erkennen und die Erreichbarkeit zu überprüfen.
Das Hello-Intervall bestimmt, wie oft Hello-Pakete gesendet werden (standardmäßig alle 10 Sekunden auf Broadcast-Netzwerken). Das Dead-Intervall gibt an, nach welcher Zeit ohne Hello-Paket ein Nachbar als nicht erreichbar gilt (standardmäßig das Vierfache des Hello-Intervalls, also 40 Sekunden). Diese Werte müssen auf beiden Seiten einer Verbindung übereinstimmen, sonst kommt keine Nachbarschaft zustande.
Die sieben Nachbarschaftszustände
Eine OSPF-Nachbarschaft durchläuft verschiedene Zustände, bevor sie vollständig aufgebaut ist. Das Verständnis dieser Zustände ist wichtig für die Fehlersuche in OSPF-Netzwerken.
| Zustand | Beschreibung |
|---|---|
| Down | Initialer Zustand, noch keine Hello-Pakete empfangen |
| Init | Hello-Paket empfangen, aber eigene Router-ID noch nicht darin gesehen |
| Two-Way | Bidirektionale Kommunikation bestätigt, DR/BDR-Wahl möglich |
| ExStart | Master/Slave-Beziehung für Datenbanksynchronisation wird festgelegt |
| Exchange | Database Description Packets (DBD) werden ausgetauscht |
| Loading | Fehlende Link-State-Informationen werden angefordert |
| Full | Datenbanken sind synchronisiert, normale Betriebszustand |
Der Zustand "Full" ist das Ziel - hier sind die Link-State-Datenbanken beider Router synchronisiert und sie können effektiv zusammenarbeiten. Wenn eine Nachbarschaft bei "Two-Way" stehen bleibt, ist das auf Broadcast-Netzwerken normal für Router, die weder DR noch BDR sind.
Designated Router und Backup Designated Router
Auf Broadcast-Netzwerken wie Ethernet würde die Anzahl der Nachbarschaftsbeziehungen ohne besondere Maßnahmen quadratisch mit der Router-Anzahl wachsen. Um dies zu vermeiden, wählen OSPF-Router einen Designated Router (DR) und einen Backup Designated Router (BDR).
Der DR fungiert als zentraler Sammelpunkt: Alle anderen Router (DROther genannt) bauen nur mit dem DR und BDR vollständige Adjazenzbeziehungen auf. Wenn ein Router Link-State-Änderungen hat, sendet er diese an den DR, der sie dann an alle anderen Router verteilt. Der BDR übernimmt die DR-Rolle, falls der DR ausfällt.
Die DR/BDR-Wahl basiert auf zwei Kriterien: Zuerst wird die OSPF-Priorität verglichen (konfigurierbar von 0-255, Standard ist 1). Bei gleicher Priorität gewinnt der Router mit der höchsten Router-ID. Eine Priorität von 0 bedeutet, dass der Router nie DR oder BDR werden kann.
OSPF-Areas für Skalierbarkeit
In großen Netzwerken würde eine einzige Link-State-Datenbank mit allen Routern sehr groß werden und jede SPF-Neuberechnung würde viel Rechenzeit kosten. OSPF löst dieses Problem durch die Unterteilung des Netzwerks in Areas.
Jede Area hat ihre eigene Link-State-Datenbank, und Router müssen nur innerhalb ihrer Area alle Details kennen. Für Ziele in anderen Areas genügt eine zusammengefasste Route. Das reduziert sowohl die Größe der Datenbank als auch die Häufigkeit von SPF-Berechnungen.
Die Backbone Area (Area 0)
Die Backbone Area (Area 0) ist das Herzstück jedes OSPF-Netzwerks. Alle anderen Areas müssen direkt mit Area 0 verbunden sein. Router, die zwei Areas verbinden, heißen Area Border Router (ABR). Sie fassen die Routing-Informationen ihrer Areas zusammen und verteilen sie über die Backbone Area an andere Areas.
Area-Typen im Überblick:
- Backbone Area (Area 0): Zentrale Area, alle anderen müssen damit verbunden sein
- Standard Area: Empfängt interne Routen, Inter-Area-Routen und externe Routen
- Stub Area: Akzeptiert keine externen Routen, verwendet Default-Route
- Totally Stubby Area: Akzeptiert nur Default-Route vom ABR
- NSSA (Not-So-Stubby Area): Stub-Area, die eigene externe Routen einbringen kann
Link State Advertisements (LSA)
Die Informationen in der Link-State-Datenbank werden durch Link State Advertisements (LSA) verbreitet. Es gibt verschiedene LSA-Typen für unterschiedliche Zwecke. Das Verständnis dieser Typen hilft bei der Fehlersuche und beim Design von OSPF-Netzwerken.
| LSA-Typ | Name | Beschreibung |
|---|---|---|
| 1 | Router LSA | Beschreibt die Links eines Routers innerhalb einer Area |
| 2 | Network LSA | Wird vom DR erzeugt, listet alle Router im Netzwerk |
| 3 | Summary LSA | Von ABRs erzeugt, verteilt Inter-Area-Routen |
| 4 | ASBR Summary LSA | Zeigt den Weg zu einem ASBR |
| 5 | External LSA | Beschreibt externe Routen (z.B. von BGP) |
| 7 | NSSA External LSA | Externe Routen in NSSA-Areas |
Typ-1- und Typ-2-LSAs bleiben innerhalb einer Area. Typ-3-LSAs werden von ABRs erzeugt und zwischen Areas verteilt. Typ-5-LSAs werden von Autonomous System Boundary Routern (ASBR) erzeugt, wenn externe Routen in OSPF importiert werden.
OSPF-Metriken und Kostenberechnung
OSPF verwendet Kosten (Cost) als Metrik, um die beste Route zu bestimmen. Die Kosten werden üblicherweise aus der Bandbreite der Schnittstelle berechnet. Die Standardformel lautet: Cost = Referenzbandbreite / Schnittstellenbandbreite.
Mit einer Referenzbandbreite von 100 Mbit/s (Standard bei vielen Herstellern) hat eine 100-Mbit/s-Schnittstelle Kosten von 1, eine 10-Mbit/s-Schnittstelle Kosten von 10. Bei modernen Gigabit- und 10-Gigabit-Verbindungen solltest du die Referenzbandbreite anpassen, damit OSPF zwischen schnellen Links unterscheiden kann.
OSPFv2 vs. OSPFv3
Es gibt zwei Hauptversionen von OSPF: OSPFv2 für IPv4 (RFC 2328) und OSPFv3 für IPv6 (RFC 5340). OSPFv3 wurde speziell für die längeren IPv6-Adressen entwickelt und unterscheidet sich in einigen Punkten von OSPFv2.
Wichtige Unterschiede zwischen OSPFv2 und OSPFv3:
- OSPFv3 läuft direkt über IPv6, nicht über IP
- Authentifizierung erfolgt über IPsec statt OSPF-eigener Mechanismen
- Router-ID bleibt 32 Bit (wie bei OSPFv2)
- Link-lokale Adressen werden für Nachbarschaftsbeziehungen verwendet
- Address-Family-Erweiterungen ermöglichen auch IPv4-Support in OSPFv3
In Dual-Stack-Netzwerken, die sowohl IPv4 als auch IPv6 verwenden, laufen OSPFv2 und OSPFv3 als separate Prozesse nebeneinander. Moderne Implementierungen von OSPFv3 können durch Address Families jedoch beide Protokollversionen in einem Prozess verwalten.
OSPF-Konfiguration in der Praxis
Die grundlegende OSPF-Konfiguration auf einem Cisco-Router ist relativ einfach. Du startest den OSPF-Prozess und gibst an, welche Netzwerke teilnehmen sollen. Hier ein Beispiel für eine Basiskonfiguration:
Router(config)# router ospf 1
Router(config-router)# router-id 1.1.1.1
Router(config-router)# network 192.168.1.0 0.0.0.255 area 0
Router(config-router)# network 10.0.0.0 0.255.255.255 area 1
Die Zahl nach "router ospf" ist die Prozess-ID und hat nur lokale Bedeutung. Die Router-ID sollte eindeutig im OSPF-Netzwerk sein. Das "network"-Kommando verwendet eine Wildcard-Maske (invertierte Subnetzmaske), um festzulegen, welche Interfaces OSPF aktivieren sollen.
Nützliche Befehle zur Fehlersuche
Für die Analyse und Fehlersuche in OSPF-Netzwerken gibt es einige wichtige Befehle, die du kennen solltest:
# OSPF-Nachbarn anzeigen
show ip ospf neighbor
# OSPF-Interfaces und deren Status
show ip ospf interface brief
# Link-State-Datenbank anzeigen
show ip ospf database
# Routing-Tabelle (nur OSPF-Routen)
show ip route ospf
Vergleich: OSPF vs. andere Routing-Protokolle
OSPF ist nicht das einzige Routing-Protokoll, aber es hat sich als Standard für mittlere bis große Unternehmensnetzwerke etabliert. Hier ein Vergleich mit anderen gängigen Protokollen:
| Aspekt | OSPF | RIP | BGP |
|---|---|---|---|
| Typ | Link-State | Distance-Vector | Path-Vector |
| Einsatz | Innerhalb AS | Innerhalb AS (klein) | Zwischen AS |
| Metrik | Kosten (Bandbreite) | Hop-Count | Pfad-Attribute |
| Konvergenz | Schnell | Langsam | Mittel |
| Skalierbarkeit | Sehr gut | Begrenzt (max. 15 Hops) | Sehr gut |
| Komplexität | Mittel | Gering | Hoch |
RIP eignet sich nur für kleine Netzwerke wegen der Hop-Count-Begrenzung und langsamen Konvergenz. BGP ist das Protokoll des Internets und wird zwischen autonomen Systemen eingesetzt. OSPF bietet die beste Balance zwischen Funktionalität und Komplexität für Unternehmensnetzwerke.
OSPF in der IT-Praxis
OSPF wird in Unternehmensnetzwerken aller Größen eingesetzt - von mittelständischen Betrieben bis zu großen Konzernen mit hunderten Standorten. Besonders häufig findest du OSPF in Campus-Netzwerken, Rechenzentren und bei der Verbindung mehrerer Unternehmensstandorte.
Als Fachinformatiker für Systemintegration wirst du mit hoher Wahrscheinlichkeit auf OSPF treffen. Das Protokoll gehört zum Standardrepertoire bei der Konfiguration von Netzwerkinfrastrukturen. Auch in der Routingtabelle siehst du OSPF-Routen, die mit dem Kennzeichen "O" markiert sind.