top of page

OSPF für IPv4 im LAN und WAN (Teil 1)

Aktualisiert: 6. Sept. 2021

Alle modernen IP-basierten Datennetzwerke erkennen automatisch, an welchem Ort sich IP-Adressen und damit User und Services befinden. Ebenso erkennen heute LANs und WANs im Unternehmen problemlos, wenn Leitungen ausfallen oder alternative Wegstrecken zur Datenübertragung bereitstehen.

Ausfälle werden damit auf Sekundenbereiche minimiert, was insbesondere bei der Kopplung von Data Centers oder im Bereich VoIP wichtig ist.


In so ziemlich jedem Netzwerk läuft dazu ein dynamisches Routing-Protokoll zwischen den beteiligten Routern, welches sehr zügig alle Routing-Informationen verbreitet.

Ein beliebter Vertreter der Routing-Protokolle ist das offene dynamische Routing-Protokoll OSPF (Open Shortest Path First). Neben EIGRP (Enhanced Interior Gateway Routing Protocol) (Cisco porträtier), BGP (Border Gateway Protocol) und ISIS (Intelligent Schedulding and Information System) ist OSPF eines der am weit verbreitetsten Routing-Protokolle.

Zugegeben, statische Routen sind besonders in kleineren Netzen ungleich öfter im Einsatz. Statische Routen gelten jedoch dem Sin nach nicht als Routing-Protokoll, sondern eben als manuell gesetzte Routen, die so lange gelten, bis sie wieder zurückkonfiguriert werden und keine Rücksicht auf Verfügbarkeit der Leitungswege nehmen. Bedeutet, auch im Fehlerfall beharren statische Routen auf ihre Wirksamkeit.


OSPF ist also ein Routing-Protokoll, mit dem Netzwerk-Informationen innerhalb eines einzelnen so genannten autonomen Systems ausgetauscht werden. Der Begriff „autonomes System“ ist frei in seiner Auslegung und ist in der Praxis durch die Leistungsfähigkeit der teilnehmenden Router begrenzt. Üblicherweise erstreckt sich ein autonomes System im OSPF daher über ein Unternehmen oder über einen Standort. OSPF fällt somit in die Gruppe der schnellen IGPs (Interior Gateway Protocol). Das Gegenteil vom IGP ist ein EGP (Exterior Routing Protokoll), dazu zählt bspw. BGP und ISIS. Diese Protokolle sind für sehr große Netzwerkinformationen, wie für das weltweite Internet oder bei Carrier und ISP (Internet Service Provider), zuständig.

Quasi schnelle, feine lokale Informationen (IGP) gegenüber langsam grobe, jedoch weltweite Informationen (EGP).


OSPF ist auf Grund seiner Schnelligkeit und seiner erprobten Wirkungsweise ein perfektes Routing-Protokoll innerhalb von Firmen, im Campus, LAN und ähnlichen Netzen. BGP und ISIS sind wiederum die perfekten Routing-Protokolle für eine weltweite Routing-Verbindung zwischen Standorten. BGP Version 4, ist zudem das Standard-Routing-Protokoll im Internet.


OSPF passt noch in eine weitere Schublade, nämlich in die Gruppe der „Link-State-Routing- Protokolle". Das Gegenteil vom Link-State-Routing-Protokoll wiederum ist das „Distance-Vector-Routing-Protokoll“, wie es bspw. das nur noch selten verwendete RIP ist.


Das Link-State-Routing-Protokoll läuft auf jedem Router (Netzwerkknoten).

Das Grundkonzept des „Link-State-Routings“ ist, dass jeder Router seine eigene Verbindungskarte bzw. Netzwerkübersicht in Form eines Diagramms erstellt. Jeder Router weiß also, welche Router mit anderen Routern über welche Leitungen verbunden sind. Zwischen den OSPF-Routern wird als Rechengrundlage eine Datenbank ausgetauscht, diese Datenbank ist im normalen Zustand bei allen Routern komplett identisch. Jeder Router hat also die gleichen Basisdaten.

Den optimalen Weg durch das Netzwerk berechnen die OSPF-Router mit dem Dijkstra-Algorithmus, der auch als OSPF-Algorithmus bezeichnet wird. Jeder Router bildet sich aus den gleichen Grunddaten ein eigenes Netzwerkdiagramm und sieht sich selbst als Mittelpunkt des Geschehens.


Der Dijkstra-Algorithmus ist ein mathematischer Algorithmus zum Ermitteln der kürzesten Wege zwischen Punkten, egal für welches praktische Problem.

Der Dijkstra-Algorithmus findet somit auch in den Netzwerken LAN und WAN den kürzesten Weg zwischen den Routern. Der Algorithmus wählt dazu den Weg über die Router mit der geringsten „Entfernung“ aus. Ändert sich die zu Grunde liegende Datenbasis, so wird die Entfernung neu berechnet und die Wegewahl, wenn notwendig, aktualisiert.


Im Beispiel der Abbildung 1 können mehrere Wege von Router A zu Router E verwendet werden. Der kürzeste Weg zum Durchqueren würde in diesem Beispiel jedoch über B gehen, da die Summe der Distanz 4 beträgt. Das Erreichen des Routers E von A über CB oder CD würde eine Distanz von 9 bzw. 10 ergeben, diese Werte sind höher als der beste Wert 4.



Abbildung 1 zeit verbundene Router, Dijkstra’s algorithm
Abbildung 1: Dijkstra’s algorithm


Im OSPF gibt es zumindest praktisch keine maximale Distanz im Sinne der Metrik oder der Routekosten. Die Metrik, bzw. die Distanz, dient als Vergleich von Routen untereinander.

Falls unterschiedliche Routingprotokolle die gleichen Routingeinträge für die gleichen Netze und Masken haben, entscheidet die so genannte administrative Distanz, welches Routingprotokoll seine Route in der Routingtabelle platzieren darf. (Diese administrative Distanz ist nicht zu verwechseln mit der oben genannten Distanz im Sinner der Routekosten der Routen). OSPF wird zumindest auf Cisco-Routern mit einer administrativen Distanz von 110 bewertet. Die administrative Distanz ist ein manueller administrativer Wert, der bei gleicher Netzlänge angibt, welchem Routingprotokoll vertraut werden soll.


Warum ist OSPF im Enterprise-Umfeld LAN so beliebt?


Das Routing-Protokoll OSPF wurde zuletzt 1998 in der RFC (Request for Comments) 2328 für IPv4 als OSPF-Version 2 definiert und seitdem mit einigen optional anwendbaren RFCs aktualisiert.


Der entscheidende Vorteil eines Link-State-Routing-Protokolls wie OSPF, ist die komplette Kenntnis der Topologie, damit können Router umfassende Entscheidungen anhand ihrer Routing-Kriterien treffen.


Eine mögliche Alternative bei den IGP Routing-Protokollen ist RIP (Routing Information Protocol).

RIP ist geeignet für kleine Netzwerke. Es ist sehr einfach im Aufbau und in der Konfiguration, allerdings auch nicht ganz so schnell. Mehr als 15 Hops nacheinander sind im RIP-Netzwerk nicht möglich.


Hier werden die Routingprotokolle RIP und OSPF vergliechen.
Tabelle 1: RIP und OSPF

Eine weitere Alternative ist das Routing-Protokoll EIGRP (Enhanced Interior Gateway Routing Protocol), welches ursprünglich von Cisco kommt und daher fast ausschließlich in von Cisco basierten Netzwerken zum Einsatz kommt. EIGRP nutzt den so genannten DUAL (Diffusing Update Algorithm) und gilt als Distance-Vector- Protokoll, statt Link-State-Routing-Protokoll.

Der Hauptunterschied zwischen diesen beiden Routing-Protokollen OSPF und EIGRP ist, dass jeder OSPF-Router eine Übersicht über das gesamte Netz hat und die Leitungen zwischen den Routern mit „Kosten“, basierend auf der Bandbreite, versieht.

EIGRP hingegen kennt nur die Routing-Information seiner direkt verbundenen Nachbarn, hat also keine Gesamtübersicht. In die Berechnung von den EIGRP-Routen fließt dafür jedoch neben der Bandbreite noch das Delay der Leitungen mit ein.

Alle diese Werten lassen sich in beiden Routing-Protokollen manuell anpassen und so die Routen manipulieren.


Hier werden die Routingprotokolle EIGRP und OSPF verglichen
Tabelle 2: EIGRP vs. OSPF


In Netzwerken mit Routern von Cisco Systems ist das Routing-Protokoll EIGRP zu Recht weit verbreitet.


OSPF ist hingegen in Netzen mit Routern anderer Hersteller das oft verwendete Routing-Protokoll. Zudem hat OSPF weitere spezielle Optionen und Bits, die sich für eine sehr gute Zusammenarbeit mit BGP oder im MPLS (Multiprotocol Label Switching) eignen.


Diese Tabelle stellt OSPF dem Routingprotokoll BGP gegenüber
Tabelle 3: Die Routingprotokolle BGP und OSPF


OSPF LAB, IPv4


Zu Erläuterung der kommenden OSPF Lab-Konfiguration dient das kleine Netzwerkschaubild in Abbildung 2.



Hier ist das OSPF Lab als Netzwerkdiagramm dargestellt.

Man erkennt auf dem Netzwerkdiagramm, dass sich Router 01 im Netz 192.168.1.0/24 befindet und zwei Loopback Interfaces 10.10.10.10/24 und 11.11.11.11/ 24 hat.

Über das Netz 192.168.1.0/24 ist zudem Router 01 mit Router 02 verbunden.

Der Link zwischen Router 02 und Router 03 befindet sich im Netz 172.1.1.0/24. Die Router 02 und 03 haben ebenfalls Loopback Interfaces.


Der Vorteil von virtuellen Loopback Interfaces ist, dass sie immer „up“ sind, es gibt kein Hardware- oder Leitungs-„down“, außer, sie werden manuell deaktiviert. Damit eigenen sich Loopback Interfaces zur Administration der Router, so auch als Endpunkt, wie Services, also VPN-Gateway oder Router-Peering-Adressen.


LAB, Konfiguration


Router 01

!

interface Loopback0

ip address 10.10.10.10 255.255.255.0

!

interface Loopback1

ip address 11.11.11.11 255.255.255.0

!

interface GigabitEthernet0/0

ip address 192.168.1.1 255.255.255.0

ip ospf 1 area 0

duplex auto

!

router ospf 1

router-id 10.10.10.10

network 10.0.0.0 0.255.255.255 area 0

network 11.0.0.0 0.255.255.255 area 0

!


In der Konfiguration ist zu sehen, wie das Loopback Interface ganz einfach mit zwei Zeilen eingerichtet wird und in der Konfiguration wie ein normales Interface erscheint.


Router 02

!

interface Loopback0

ip address 20.20.20.20 255.255.255.0

!

interface Loopback1

ip address 21.21.21.21 255.255.255.0

!

interface GigabitEthernet0/0

ip address 192.168.1.2 255.255.255.0

ip ospf 1 area 0

!

interface GigabitEthernet0/1

ip address 172.1.1.1 255.255.255.0

ip ospf 1 area 1

!

router ospf 1

router-id 20.20.20.20

redistribute static subnets

network 20.0.0.0 0.255.255.255 area 0

network 21.0.0.0 0.255.255.255 area 1

!


Der Router 02 hat eine leicht geänderte Konfiguration, er hat zwei in zwei verschiedenen OSPF Areas.

OSPF kann in verschiedene so genannte Areas aufgeteilt werden. Dadurch wird die Datenbank begrenzt, da zwischen den Areas nur abstrahierte Daten (bestimmte LSA-Types) ausgetauscht werden. Mit dieser Methode skaliert OSPF in großen Netzen, verliert allerdings zwischen den Areas an Granularität in der Routing-Information.


Die (lokale relevante) OSPF Process ID ist jeweils 1. Jeder Router kann theoretisch mehrere OSPF Process IDs haben. Die unterschiedlichen OSPF-Prozesse sind jedoch voneinander getrennt und tauschen untereinander keine Daten aus. (Das Redistributieren von Routen zwischen zwei OSPF-Prozessen per Befehl ist natürlich möglich.)


Damit OSPF Netze mit in das Routing aufnimmt, gibt es zwei Konfigurations-möglichkeiten:

1. Wir können in der Interfacekonfiguration das gesamte Interface dem OSPF-Prozess und der Area zuweisen. Diese Methode ist die neuere Möglichkeit und berücksichtigt mehrere auch wechselnde IP-Adressen, wie es insbesondere bei IPv6 der Fall ist.


!

interface GigabitEthernet0/0

ip address 192.168.1.1 255.255.255.0

ip ospf 1 area 0

duplex auto

speed auto

media-type rj45

!


Die 2. und ältere Möglichkeit ist, ein IP-Netz in OSPF hinein zu integrieren, besteht mit dem Befehl “ip ospf 1 area 0” direkt in der OSPF-Konfiguration.


router ospf 1

network 192.168.1.0 0.0.0.255 area 0


Areas im OSPF


Egal über welche Konfigurationsmethode, die Angabe der Area ist notwendig. Ohne diese Information könnte OSPF das Netz keiner Area zuweisen.

In kleineren Netzen gibt es oft nur die Area 0, die auch als Backbone-Area bezeichnet wird.

Verschiedene Areas separieren den SPF (Sender Police Framework), eine Berechnung nach Dijkstra wird nur innerhalb einer Area ausgeführt.


Zudem gibt es noch einige Arten von „Stub“-Areas. Diese Areas haben weniger Routen, oft nur die Default-Route. Diese Art von Areas sind optimal für Außenstellen oder Netzen mit nur einer oder zwei wenigen Verbindungen zu anderen Netzen. Demzufolge ist es nicht notwendig, über alle fein granulierten Routen zu verfügen, der Weg in das zentrale Netz ist eh immer gleich.


Während des Aufbaus der OSPF neighbors werden verschiedene Bits geprüft, unter anderem die Area-Types. OSPF-Nachbarn müssen also die gleiche Konfiguration für die Areas haben (bspw. „Stub“), sonst kommt kein „neighbor“-Status zwischen den OSPF-Routern zustande.


Propagieren von default- und statischen Routen


Im nachfolgenden Beispiel haben wir den Befehl „stub area“ nur auf Router 03 konfiguriert. Die OSPF neighbors sind „down“, das spiegelt sich in der Konsequenz auch in der Routing-Tabelle wider.

Stub Area, Rotingtabelle Router 3

Jetzt konfigurieren wir „stub area 1“ auch auf dem Router 02 und prüfen, wie sich diese Konfigänderung auf dem Router 03 auswirkt.


!

Router ospf 1

Area 1 stub

!


Nun sehen sich die Router als OSPF-Nachbarn und die Routing-Tabelle füllt sich.

Der erste Eintrag auf Router 02 ist eine Default-Route, gelernt über OSPF.


Routingtabelle Router 3 OSPF stub Area

Wir entfernen nun wieder den „Stub“-Eintrag und prüfen, ob die Default-Route immer noch dort steht: Ohne den „Stub“-Eintrag geht die Default-Route in der Area verloren.



Routingtabelle Router 3 OSPF, kein "stub" mehr


Alternativ sorgt das Kommando: „default-information originate always” auf dem Router 01, dass diese Default-Route immer propagiert wird. (genau genommen als "exernal type 2"- Route.)


Die default route wurde redistributiert


Der Unterscheid zwischen den Kommandos „stub area“ und „default originate“ ist, dass “default-information originate always“: die Route als (LSA-Type) „external route“ an alle Areas und nicht nur in der lokalen Areas verteilt. Der „Stub“-Befehl sorgt indirekt nur für eine Verteilung der Default-Route innerhalb der entsprechenden „Stub“-Area.


Wenn wir auf einen OSPF-Router statische Routen per OSPF redistributieren wollen, so lautet der Befehl:

!

Router ospf 1

Redistribution static subnets

!

Beispielswiese haben wir auf dem Router 1 diese statische Router konfiguriert:


!

ip route 192.168.10.0 255.255.255.0 192.168.1.0

!


Um diese statische Route per OSPF zu announcen, konfigurieren wir ein „redistribution static" im OSPF auf dem Router 01. (Bei Bedarf schränkt eine Route-map die statischen Routen per referenzierter Access-List ein.)


Hier sehen wir die Route am Ende der Routing-Tabelle als „O E2“ („O E2“ bedeutet OSPF, external route, Type 2):



Da ist unsere OSPF "external static route".


Mit dem Befehl „redistribute connected subnets” können alle Netze aller Interfaces in den OSPF-Prozess integriert werden. Um das im Lab einmal zu probieren, haben wir die nachfolgende Konfig auf dem Router 01 ausgerollt:


!

router ospf 1

router-id 10.10.10.10

priority 50

redistribute connected subnets

network 192.168.1.0 0.0.0.255 area 0

!


Wir haben nur das Netzwerk zwischen Router 01 und Router 02 per „network“ hinzugefügt.

Die Network-Statements für die Loopback-Interfaces haben wir entfernt und statt dessen den Befehl „redistribute connected“ hinzugefügt.


Die Routing-Tabelle ist im Wesentlichen identisch mit der Tabelle in Abbildung 5. Alle Routen zu den Loopback-Interfaces wurden gelernt.


OSPF Prozess ID


Um noch mal auf die oben angesprochene OSPF Prozess-ID zurückzukommen, haben wir das LAB (siehe Abbildung 2) erweitert, das nun wie hier in Abbildung 7 aussieht:

OSPF Lab mit verschiedenen Prozess IDs
Abbildung 7: OSPF Lab mit verschiedenen Prozess IDs

Nun haben wir im LAB ein weiteres Interfaces Gig 0/2 zwischen den Routern 01 und 03.

Die verschiedenen OSPF Prozess-IDs sind farblich getrennt, gelb ist die Prozess ID 1 und blau stellt die Prozess ID 2 dar.

Die OSPF Prozess-ID ist ein lokaler Wert, der nicht zwischen den Routern übertragen wird. Sind die verschiedenen Prozess-IDs im OSPF konfiguriert, so gibt es verschiedene OSPF-Prozesse mit geänderten Routing-Datenbanken etc.


In der Abbildung 8 ist die Routing-Tabelle von Router 02 zu sehen. Router 02 hat nur den OSPF Prozess 1 konfiguriert.



Router OSPF Prozess ID 1

Demzufolge kennt Router 02 keine Routing-Informationen von anderen OSPF-Prozessen.

Wir schauen uns mal in der Routing-Tabelle von Router 03 an, welche Routen er über OSPF gelernt hat (Abbildung 9):



Und wieder die Routingtabelle von Router 3

Mit dem Befehl „sh ip ospf neighbor“ können Sie den status der OSPF-Neighbors sehen.


Router 02 sieht nur seine direkten Nachbarn. (Wenn die Nachbarn eine andere Router-ID haben, so baut OSPF trotzdem eine neighbor shipment auf, da die Prozess-ID beim Verbindungsaufbau nicht übertragen wird. Lediglich zwei OSPF-Prozesse auf einem Router tauschen sich untereinander nicht aus.)


Als Neighbor-ID wird die OSPF Router-ID verwendet und nicht die Interface IP-Adresse.


Der Neighbor-Status ist in unserem Beispiel richtigerweise „Full/BDR“, das bedeutet, dass die Nachbarschaft korrekt aufgebaut ist.

Mögliche andere Status sind:


  • nothing at all

  • state = down

  • state = init

  • state = exstart

  • state = exchange

  • state = 2-way

  • state = loading


OSPF Neighbor status

Ist der Status „down“ oder gibt es keine Statusanzeige, so passt die Konfiguration zwischen den Nachbarn nicht. In diesem Fall ist die Konfig, bspw. die Area-Zuordnung oder das OSPF-Passwort, zu prüfen.


Aufbau eines OSPFv2 für IPv4 Packet

An diesem Beispiel sehen wir, dass der Router 02 der „designated“ Router ist.

Wenn der Link an einem OSPF-Router zum ersten mal aktiv wird, so wird der Router mit der höchsten Router-ID der designierte Router. Gibt es schon einen designierten Router, so behält dieser seinen Status. (Die Router-ID und die anderen Entscheidungsparameter sind einstellbar, wir gehen hier vom Standardverhalten aus.)


So stellt sich ein OSPF „hello"-Paket im Wireshark dar:



Weiterhin sehen wir in dem Wireshark Capture in Abbildung 12 Routing-Updates und ein „acknowledgement“ der Routing-Information.



OSPF Pakete, hello and acknowledge



2.603 Ansichten1 Kommentar

Aktuelle Beiträge

Alle ansehen

OPNsense-Partner

bottom of page