Loading AI tools
Netzwerkprotokoll Aus Wikipedia, der freien Enzyklopädie
Open Shortest Path First (OSPF) bezeichnet ein von der IETF entwickeltes Link-State-Routing-Protokoll. Es ist im RFC 2328[1] festgelegt und basiert auf dem von Edsger W. Dijkstra entwickelten „shortest-path“-Algorithmus.[2]
Anwendung | HTTP | IMAP | SMTP | DNS | … |
Transport | TCP | UDP | |||
Internet | OSPF, IP(IPv4/IPv6) | ||||
Netzzugang | Ethernet | Token Bus |
Token Ring |
FDDI | … |
OSPF ist vielleicht das am häufigsten verwendete Interior Gateway Protocol (IGP) in großen Unternehmensnetzen. Das am häufigsten verwendete Exterior-Gateway-Protokoll (EGP) ist das Border Gateway Protocol (BGP), das Haupt-Routing-Protokoll zwischen autonomen Systemen im Internet.
Um die Nachteile von RIP (Routing Information Protocol) auszugleichen, wurde ab 1988 das Open-Shortest-Path-First-Verfahren (OSPF) entwickelt. Die Hauptvorteile von OSPF gegenüber RIP bestehen in der schnelleren Konvergenz und der besseren Skalierbarkeit für größere Netzwerke. Wie der Name andeutet, besitzt OSPF zwei Charakteristika, das der Offenheit im Sinne einer öffentlichen Spezifikation als RFC 2328[1] und das der Verwendung des SPF-Algorithmus. In UNIX-Systemen ist OSPF als gated-Dämon implementiert. OSPF gehört zur Klasse der Link-State-Routing-Protokolle. Für IPv6 gilt RFC 5340.[3]
Der Standard definiert nicht, wie die Kosten zu berechnen sind. Die Grundlage des SPF-Algorithmus bilden nicht, wie der Name nahelegt, die Anzahl der Hops, sondern die Pfadkosten. Entscheidungskriterium für die Vorteilhaftigkeit eines Weges und damit Metrik wird die nominale Datenrate.
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.
Ein grundlegendes und wichtiges Konzept bei OSPF stellt die Hierarchie in sogenannten Areas (Bereichen) dar. Alle OSPF-Router können verschiedenen Areas zugeordnet werden. Dabei hat die sogenannte Backbone Area (Area 0) eine besondere Stellung. Alle anderen regulären Areas müssen direkt mit dieser Backbone Area verbunden sein. Sollte eine direkte Verbindung nicht möglich sein, können diese weit entfernten Areas durch Virtual Links mit der Backbone Area verbunden werden.[4]
Wird mehr als eine Area eingesetzt, müssen diese direkt oder indirekt mittels Virtual Link über eine Backbone Area gekoppelt werden. Diese Backbone Area hat immer die Nummer 0 und stellt als oberste OSPF-Hierarchieinstanz die Verbindungsbrücke zwischen allen Areas dar.
Alle anderen Areas außer der Backbone Area sind reguläre Areas. Die Area-Nummer kann ein Zahlenwert zwischen 1 und 4294967295 (= 232 - 1) oder eine äquivalente Netz-ID (z. B. 192.168.1.0) sein.
Normalerweise muss eine reguläre Area direkt mit der Backbone Area verbunden sein. Kann eine reguläre Area jedoch aus Designgründen nicht direkt an die Backbone Area angebunden werden, sind Virtual Links als Hilfsmittel zu konfigurieren. Diese überbrücken eine dazwischen liegende Area, welche dann zur Transit Area wird. Die Virtual Links stellen eine Art Tunnelverbindung zwischen einer Area und der Backbone Area dar; der Verkehr zwischen Teilnehmern in abgesetzter Area und Transit-Area wird jedoch direkt, d. h. nicht über die Backbone-Area vermittelt.
Eine Stub Area ist eine reguläre Area, in welcher deren Area Border Router die Weiterleitung von LSA-Nachrichten vom Typ 5 filtern. Damit wird für alle normalen Router in einer Stub Area deren Area Border Router als Gateway propagiert.
Eine Totally Stubby Area (TSA) ist eine reguläre Area, in welcher deren Area Border Router die Weiterleitung von LSA-Nachrichten vom Typ 3, 4 und 5 filtern. Damit wird für alle normalen Router in einer Totally Stubby Area ausschließlich deren Area Border Router als Gateway propagiert.
Eine Not So Stubby Area (NSSA) ist eine Stub Area, welche durch ein anderes IGP- oder EGP-Protokoll externe Routen erlernt, aber in welcher deren Area Border Router die Weiterleitung von LSA-Nachrichten vom Typ 5 filtern. Diese externen Routinginformationen würden normalerweise in einer Stub Area nicht propagiert. Ist die Stub Area aber als eine Not So Stubby Area konfiguriert, so werden externe Routing-Updates mit LSA-Nachrichten vom Typ 7 an die Area Border Router der Stub Area weitergeleitet. Diese wiederum wandeln dann diese LSA-Nachrichten vom Typ 7 in LSA-Nachrichten vom Typ 5 um und propagieren diese externen Routen in die Backbone Area.[5]
Eine Totally Not-So-Stubby Area (Totally NSSA) ist eine reguläre Area, in welcher deren Area Border Router die Weiterleitung von LSA-Nachrichten vom Typ 3, 4 und 5 filtern. Externe Routen werden genauso wie bei NSSA mit LSA-Nachrichten vom Typ 7 propagiert und durch ABR in LSA-Nachrichten vom Typ 5 umgewandelt.[6]
In jedem (N)BMA-Netz (LAN-Segment) werden automatisch ein OSPF-Router zum Designated Router und ein weiterer zum Backup Designated Router gewählt.[7] Alle regulären Router senden ihre Updates an den Designated Router, und dieser wiederum ist der einzige, der Updates an alle anderen Router weiterleitet. Fällt ein Designated Router aus, übernimmt der Backup Designated Router dessen Aufgaben und wird selbst zum Designated Router. Sogleich wird ein anderer Router in dem LAN-Segment zum Backup Designated Router gewählt.
Jede Area hat einen Area Border Router (ABR). Dieser ABR dient als Schnittstelle zwischen einer regulären Area und der Backbone Area. Wenn in einer Area nur ein Router existiert, so ist dieser automatisch auch der Designated Router (DR). Existieren in einer Area mehrere Router, so wird über einen Algorithmus automatisch ein Router zum ABR propagiert und ein weiterer zum Backup-ABR. Alle weiteren Router werden als normaler Router behandelt.
Ein ABR kann LSA-Nachrichten filtern und über Route Summarization mehrere Routen zusammenfassen, um Routingtabellen zu vereinfachen.
Erlernt ein Router externe Routen über ein IGP- oder EGP-Protokoll und propagiert diese im OSPF-Netzwerk, so stellt dieser einen Autonomous System Boundary Router (ASBR) dar.[8]
Wenn alternative Netzwerkpfade aus Sicht von OSPF dieselben metrischen Pfadkosten besitzen, so werden diese Pfade abwechselnd verwendet, um eine Lastverteilung zu ermöglichen.
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 wider. 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.
Ein Link State Advertisement (LSA) ist eine Nachricht mit Informationen über die lokale Topologie eines Netzwerkes. Sie wird von jedem Router des Netzwerkes erzeugt und enthält Informationen über benachbarte Router (d. h., beide haben eine Schnittstelle im selben Netz) und adjazente Router (d. h., sie tauschen Routing-Informationen aus). Nach der Erstellung einer LSA wird sie mittels Flooding durch die gesamte Routing-Domäne verteilt. Die Gesamtheit aller LSAs aller Router und Netze bildet die Link State Database (LSDB), eine Adjazenz-Datenbank, anhand derer der günstigste Pfad für ein Datenpaket durch das Netz ermittelt werden kann. Die LSAs können in regelmäßigen Abständen erneut versendet werden, um Veränderungen im Netzwerk in der LSDB nachzuhalten.
OSPF-Router tauschen Informationen über die erreichbaren Netze mit sogenannten LSA-Nachrichten (Link State Advertisements) aus. Hierbei sind folgende LSA-Typen definiert:
Die Link State ID identifiziert die Instanz, die von der LSA beschrieben wird. Die Link State ID wird durch die Frage „Was beschreibt die LSA?“ charakterisiert. Die folgende Tabelle zeigt die möglichen Belegungen für die Link State ID, abhängig vom Typ der LSA:
LSA Typ | Beschreibung | Link State ID |
---|---|---|
1 | Punkt-zu-Punkt-Verbindung zu einem anderen Router | Router-ID des aussendenden Routers |
2 | Anbindung an ein Transit-Netz (Broadcast) | IP-Adresse des Designated Routers |
3 | Verbindung zu einem Stub-Netz | IP-Netzadresse des Ziel-Netzes mit Subnetmask |
4 | Verbindung zu einem ASBR als Gateway | Router-ID des beschriebenen ASBR |
5 | AS-externe Ziele | IP-Netzadresse des Ziel-Netzes mit Subnetmask |
6 | Group Membership LSA | Multicast-Adresse |
Link State Advertisement 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 |
LS Age | Options | LS Type | |||||||||||||||||||||||||||||
Link State ID | |||||||||||||||||||||||||||||||
Advertising Router | |||||||||||||||||||||||||||||||
LS Sequence Number | |||||||||||||||||||||||||||||||
LS Checksum | Length |
Designated Router (deutsch: ernannter Router) wird optional in Open Shortest Path First verwendet, um die durch den Routing-Prozess erzeugte Netzlast in Broadcast-Netzen mit vielen OSPF-Routern zu verringern.
Um die Menge der zu übertragenden LSAs einzudämmen, wird in Netzwerken, die nicht aus isolierten Punkt-zu-Punkt-Verbindungen bestehen, ein Designated Router (DR) gewählt. Der DR ist verantwortlich dafür, die Aktualisierungsinformation innerhalb seines Netzwerksegmentes zu verteilen. Der DR steigt damit zum verwaltungsmäßigen Zentrum einer Area auf. Der Backup-Designated Router (BDR) nimmt die Rolle seines Stellvertreters ein.
Die Wahl eines Designated Routers erfolgt transparent. Entscheidungskriterium ist die höchste Router-Priorität, diese wird vom Hello-Protokoll bestimmt. Falls keine Router-Prioritäten konfiguriert wurden bzw. die Router-Prioritäten gleich sein sollten, wird anhand der Router-ID entschieden wer der Designated Router wird. Die Router-ID ist die Loopback-Adresse, ist eine solche nicht konfiguriert, wird die höchste konfigurierte IP-Adresse des Routers gewählt. In besonderen Fällen kann direkt Einfluss auf den Auswahlprozess genommen werden, indem eine Router-ID konfiguriert oder eine Loopback-Adresse als Ersatz erzeugt wird. Der Wahlprozess findet über den Austausch von Hello-Paketen statt. Fällt der DR aus, übernimmt der BDR fast nahtlos dessen Rolle, ohne erst einen erneuten Wahlvorgang eines DR zu initiieren. Dies geschieht selbst dann nicht, wenn zwischenzeitlich neue Router mit höherer IP-Adresse hinzugekommen sein sollten. Abschließend wird noch ein BDR gewählt.
Das Hello-Protokoll ist in Open Shortest Path First für den Netzwerkbetrieb ein integraler Bestandteil des gesamten Routingprozesses. Es ist verantwortlich für:
Alle ankommenden Hello-Pakete werden auf die Area ID und anderen Parametern geprüft. Wenn diese mit den lokalen Einstellungen übereinstimmen, wird dieser Router als Nachbar eingetragen.
OSPF 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 | |||||||||||||||||||||||||||||||
Data |
OSPF 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 Protokolldefinition von OSPFv3 führte, neben der Erweiterung um IPv6-Funktionalität, einige Unterschiede zu OSPFv2 ein. Die Unterschiede werden im Folgenden aufgelistet:
ospfd(8)
– OpenBSD System Manager's Manual