- Open Shortest Path First
-
Open Shortest Path First (OSPF) ist ein Verfahren aus der EDV-Netztechnik. Es bezeichnet ein von der IETF entwickeltes Link-State-Routing-Protokoll. Es ist im RFC 2328 (obsolet: RFC 1247 von 1991) festgelegt und basiert auf dem von Edsger W. Dijkstra entwickelten Algorithmus „Shortest Path First“.
Inhaltsverzeichnis
Überblick
OSPF ist ein dynamisches Routing-Protokoll innerhalb eines autonomen Systems. Es hat das Routing Information Protocol (RIP) als Standard-Interior Gateway Protocol (IGP) abgelöst, insbesondere bei großen Netzen. OSPF verwendet die Kosten eines Pfades als Metrik und kann bei gleichen Kosten lastverteilt arbeiten. Der Standard definiert nicht, wie die Kosten zu berechnen sind. Einige Implementierungen (zum Beispiel Router des Herstellers Cisco Systems) greifen auf die Interface-Übertragungsrate zurück, wenn kein anderer Wert vorgegeben wird. Ein großer Vorteil gegenüber RIP ist, dass jeder Router die vollständige Netztopologie kennt.
Neuere Trends bei Betreibern von IP-Netzen zeigen, dass dort vermehrt IS-IS im Zusammenhang mit MPLS eingesetzt wird, weil die IS-IS-Features ausreichen, das Protokoll weniger komplex als OSPF ist und im Vergleich besser skaliert. Trotzdem ist OSPF heute noch das vorwiegend verwendete Routing-Protokoll.
Arbeitsweise
Kernstück von OSPF ist die Nachbarschafts-Datenbank (Adjazenz-Datenbank)/LSD (Link State Database), die eine Liste aller benachbarten Router enthält, zu denen eine bidirektionale Verbindung besteht. Sie spiegelt die Topologie des Netzes wieder. Damit diese Datenbank aufgebaut oder bei Topologie-Änderungen aktualisiert wird, ist der Austausch von Routing-Informationen notwendig. Diese werden mittels Flooding übermittelt. Um den Umfang der auszutauschenden Informationen gering zu halten, wählen OSPF-Router einen designierten Router DR sowie einen Reserve-Router BDR (Backup Designated Router), die als Schnittstellen für den Austausch dienen. Der OSPF-Router, dessen Multi-Access-Schnittstelle die höchste Router-Priorität besitzt, wird DR. Haben zwei Router die gleiche Priorität, wird der Router mit der höheren Router-ID gewählt. Als Router-ID wird die IP-Adresse eines Loopback-Interfaces oder – je nach Hersteller – des Interfaces mit der numerisch höchsten IP-Adresse/des ersten aktiven Interfaces automatisch gewählt.
OSPF-Router tauschen Informationen über die erreichbaren Netze mit sogenannten LSA-Nachrichten (Link State Advertisements) aus. Hierbei sind folgende LSA-Typen definiert:
- Router-LSA (Typ 1): Für jeden aktiven Link des Routers, der der zu betrachtenden Area angehört, wird ein Eintrag im Router-LSA erzeugt. In ihm wird neben der IP-Adresse des Links auch die Netzmaske des Links und der Netzwerktyp (Loopback, Point-to-Point, normales Netz) eingetragen.
- Network-LSA (Typ 2): Der designierte Router (DR) eines Netzsegments erzeugt ein Network-LSA für dieses Netz, das neben der Netzadresse und -maske auch eine Liste der anderen angrenzenden Router enthält.
- Summary-LSA (Typ 3/4): Informationen über Ziele außerhalb einer Area können von den ABR (Area border router) je nach Konfiguration als LSA-Typ 3 (wenn es sich um eine Netz-Information handelt) oder LSA-Typ 4 (bei einer weitergeleiteten Router-Erreichbarkeit) in eine andere Area weitergegeben werden. LSAs vom Typ 3 werden auch verwendet, um Default-Routen in (Stub-)Areas zu propagieren.
- AS-External LSA (Typ 5): Router, die aus Sicht des OSPF das eigene autonome System abschließen, können für extern gelernte oder manuell konfigurierte Routen Typ-5-LSAs erzeugen. Diese enthalten Netzadresse und -maske des Zielnetzwerks sowie einen Verweis auf den ankündigenden Router. Eine gängige Anwendung von Typ-5-LSAs ist, Default-Routen in die Backbone-Area zu injizieren.
- NSSA-External-LSA (Typ 7): LSA-Typ7 wird am NSSA ASBR generiert. Type-5 LSAs sind in NSSA Areas nicht erlaubt, daher generiert der NSSA ASBR Type-7 LSAs dafür. Ein NSSA-External-LSA ist annähernd identisch mit einem AS-External-LSA. Im Gegensatz zu den AS-External-LSAs, die durch ein gesamtes OSPF-AS geflutet werden, werden NSSA-External-LSAs nur innerhalb der NSSA-Area geflutet, in der sie erzeugt wurden.
- Opaque-LSA (Typ 9): Dieser LSA-Typ wird Link lokal und somit nicht über Router hinweg verbreitet. Aktuell wird dieser LSA-Typ für eine Graceful Restart Funktion genutzt.
- Opaque-LSA (Typ 10): Dieser LSA-Typ wird Area lokal verbreitet. Aktuell wird dieser LSA-Typ für Traffic Engineering Funktionen genutzt.
- Opaque-LSA/Graceful Restart (Typ 11): Dieser LSA-Typ wird AS weit geflutet. RFC 5187 ersetzt den Opaque-LSA Typ durch Graceful Restart LSA. Diese Veränderung gilt allerdings nur für OSPFv3. Eine Nutzung dieses LSA Types ist derzeit nicht bekannt.
Merkmale
- OSPF garantiert ein schleifenfreies Routing im Gegensatz zu RIP (= verhindert Kreisrouting)
- Hello-Protokoll für die Überwachung der Nachbarn
- Es unterstützt VLSM sowie CIDR
- OSPF ist für große skalierbare Netze gut geeignet
- Das Area-Konzept vereinfacht die Kommunikation und Wartung
OSPF Open Shortest Path First header version 2
OSPF Open Shortest Path First header 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Version Type Length Router ID Area ID Checksum AuType Authentication Authentication (ctd.) Data - Die Größe des Version-Felds beträgt 8 Bit.
- Die Größe des Typ-Felds beträgt 8 Bit.
-
Typ Beschreibung Referenz 1 Hello. RFC 2328, RFC 2740 2 Database description. RFC 2328, RFC 2740 3 Link state request. RFC 2328, RFC 2740 4 Link state update. RFC 2328, RFC 2740 5 Link state acknowledgment. RFC 2328, RFC 2740
- Die Größe des Length-Feldes beträgt 16 Bit. Es enthält die Gesamtpaketlänge.
- Die Größe des Feldes Router ID beträgt 32 Bit.
- Die Größe des Feldes Area ID beträgt 32 Bit.
- Die Größe des Checksum-Feldes beträgt 16 Bit. Es enthält die Standard IP-Prüfsumme.
- Die Größe des Felds AuType (Authentifikations-Typ) beträgt 16 Bit.
-
Authentication type Beschreibung Referenz 0 None. RFC 2328 1 Simple password authentication. RFC 2328 2 Cryptographic authentication. RFC 2328 3
–
65535Reserved.
- Die Größe des Felds Authentication beträgt 64 Bit.
OSPF Open Shortest Path First header version 3
OSPF Open Shortest Path First header version 3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Version
(Version)Type
(Typ)Length
(Länge)Router ID
(Routerbezeichner)Area ID
(Bereichsbezeichner)Checksum
(Prüfsumme)Instance ID
(Instanzbezeichner)Reserved
(reserviert)Data
(Daten)- Die Version 3 des OSPF ist für IPv6 vorgesehen und in RFC 2740 definiert.
- Die Instance ID (Instanzbezeichner) beträgt 8 Bit.
- Reserved (reserviert) beträgt 8 Bit.
OSPF Unterschiede zwischen v2 und v3
Die Protokoll Definition von OSPFv3 führte, neben der Erweiterung um IPv6 Funktionalität, einige Unterschiede zu v2 ein. Die Unterschiede werden im folgenden aufgelistet:
- Die Bezeichnung „subnet“ wurde ersetzt durch „link“. Hintergrund ist die Definition eines Interfaces. In OSPFv2 wird ein Interface als ein Subnetz betrachtet, dies führt dazu, dass auf einem Interface nur eine Nachbarschaftsbeziehung in einem Subnetz erfolgen kann. Allerdings kann ein Interface auch mehrere Subnetze enthalten und sehr wohl über diese Nachbarschaftsbeziehung aufbauen wollen. Diese Umdefinition behebt den Umstand und erhöht die Möglichkeiten zur Nachbarschaftsbildung.
- Nachbarschaftserkennung anhand der Router ID. In OSPFv2 werden Nachbarn, auf NBMA-Links, über die Interface-Adressen erkannt. Bei Point-to-Point-Links werden die Nachbarn über die Router-ID identifiziert. Dieser Unterschied wird in OSPFv3 aufgehoben, und sämtliche Nachbarn werden über die Router-ID identifiziert.
- Authentifizierung entfernt. In OSPFv2 wird im Header eine Authentifizierung durchgeführt. Diese wurde in OSPFv3 vollständig entfernt. Die Funktion wird nun durch den IPv6 Authentication Header ersetzt (Funktion verschoben auf unteren Layer).
- Weiterleitung von unbekannten LSA-Typen. In OSPFv2 werden unbekannte LSA-Typen gelöscht und nicht weiter verbreitet. OSPFv3-Implementierungen sollen auch unbekannte LSA-Typen weiterleiten.
Literatur
- Wolfgang Schulte: Handbuch der Routing Protokolle der Netze, SVH Verlag, 2009, ISBN 978-3-8381-1066-0
Weblinks
- RFC 5187 OSPF Version 3 Graceful Restart, Juni 2008
- RFC 2740 OSPF Version 3, Dezember 1999
- RFC 2370 OSPF Opaque LSA Option, Juli 1998
- RFC 2328 OSPF Version 2, April 1998
- RFC 1850 OSPF Version 2 MIB, November 1995
- RFC 1793 Extending OSPF to Support Demand Circuits, April 1995
- RFC 1587 OSPF NSSA Option, März 1994
- RFC 1253 OSPF Version 2 MIB, August 1991, ersetzt durch RFC 1850
- RFC 1247 OSPF Version 2, Juli 1991, ersetzt durch RFC 2370
- RFC 1131 OSPF Version 2, Juli 1991, ersetzt durch RFC 1247
- irvtool – Ein RIP/OSPF Visualisierungstool (Java/GPL)
- OSPF-C++-Quellcode
- Freie Implementation gängiger Routingprotokolle, unter anderem auch OSPF
- BGP und OSPF sicher implementiert
- Vorlesungsunterlagen zu OSPF und BGP
Wikimedia Foundation.