Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische...

40
Rheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest Path First (OSPF) Seminar: Datenkommunikation SS 2003 Jan Gall Matrikelnummer: 222692 Betreuung: Rajendra Persaud Lehrstuhl für Informatik IV, RWTH Aachen

Transcript of Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische...

Page 1: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

Rheinisch-Westfälische Technische Hochschule AachenLehrstuhl für Informatik IVProf. Dr. rer. nat. Otto Spaniol

Open Shortest Path First(OSPF)

Seminar: DatenkommunikationSS 2003

Jan GallMatrikelnummer: 222692

Betreuung: Rajendra PersaudLehrstuhl für Informatik IV, RWTH Aachen

Page 2: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

Inhaltsverzeichnis

1 Einleitung 1

2 Klassifizierung von Routing-Algorithmen 2

3 Modellierung 5

4 Open Shortest Path First 74.1 Link-State-Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84.2 Aufbau des Shortest Path Tree und der Routing-Tabelle . . . . . . . . . . . . . . . .10

4.2.1 Router und Transit Networks . . . . . . . . . . . . . . . . . . . . . . . . . .114.2.2 Stub Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134.2.3 Externe Routen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134.2.4 Komplexitätsanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14

4.3 Aufteilung in Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174.3.1 Die Backbone Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184.3.2 Stub Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194.3.3 Klassifizierung von Routern . . . . . . . . . . . . . . . . . . . . . . . . . .194.3.4 Beispiel für die Aufteilung in Areas . . . . . . . . . . . . . . . . . . . . . .20

4.4 Konstruktion der Link-State-Datenbank . . . . . . . . . . . . . . . . . . . . . . . .234.4.1 Link State Advertisements . . . . . . . . . . . . . . . . . . . . . . . . . . .234.4.2 Generischer Paket-Header . . . . . . . . . . . . . . . . . . . . . . . . . . .254.4.3 Das Hello-Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .274.4.4 Adjazenzen (oder: Der Flooding-Prozess) . . . . . . . . . . . . . . . . . . .29

5 Quality-of-Service Erweiterung von OSPF 315.1 Der Pfad-Auswahl-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . .32

5.1.1 Stub Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .345.2 Protokoll-Erweiterung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .345.3 Analyse der Implementierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35

i

Page 3: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

1 Einleitung

Abbildung 1: Visualisierung vom NCSA1

Bei der Entwicklung von Computer-Netz-werken war ein Designaspekt unter an-derem, die Komplexität der zugrunde lie-genden Technik vor dem Benutzer zu ver-bergen. So kann jeder das heutige Inter-net nutzen, ohne mit Begriffen wie Rou-ter, Switch oder TCP/IP2 vertraut zu sein;für den Anwender ist es dabei unerheblich,wie die Daten von einem entfernten Hostauf den eigenen Rechner gelangen.

Eine zentrale Rolle bei der Funktionsweisevon paket-orientierten Netzwerken kommtdabei dem Routing zu, das für die Wei-terleitung von Paketen zwischen zwei ent-fernten Rechnern zuständig ist. Dabei be-stimmt jeder Router unabhängig anhandseiner aktuellen Routing-Tabelle, eventu-ellen Nebenbedingungen und des ankom-menden Pakets den ausgehenden Link, über den das Paket weitergeleitet werden soll. Diese Routing-Entscheidung wird abhängig vom zugrunde liegenden Routing-Algorithmus getroffen, der damit ent-scheidend für den Paketfluss in einem Netzwerk ist. Außerdem ist der eingesetzte Algorithmus für dieEinhaltung geforderter Nebenbedingungen zuständig, wie zum Beispiel der Vermeidung dedizierterNetze oder der Gewährleistung einer garantierten Dienstqualität.

In Abschnitt 2werden zunächst generelle Eigenschaften von Routing-Algorithmen vorgestellt, dieeine Klassifizierung der Algorithmen zulassen. Es wird zwischenLink-StateundDistance-VectorAl-gorithmen unterschieden. Außerdem wird die Aufteilung eines Netzes inAutonomous Systems(ASs)vorgestellt, wodurch Routing in großen Netzen erst möglich wird.

Abschnitt 3beschreibt die Modellierung von Netzwerken, d. h. wie Netzwerke als Strukturen in Rou-tern repräsentiert werden.

Abschnitt 4behandelt das ProtokollOpen Shortest Path First(OSPF) Version 2, ein sehr verbreite-tes Protokoll für Intra-AS Routing, d. h. das Routing innerhalb eines Autonomous Systems. Dabeiwird ein Top-Down Ansatz verfolgt, der das Protokoll allerdings aus Platzgründen nicht erschöpfendbehandeln kann.

Abschnitt 5behandelt schließlich eine Quality-of-Service (QoS) Erweiterung zu OSPF, die die Aus-wahl von Pfaden mit einer garantierten Bandbreite ermöglicht.

1National Center for Supercomputing Applications, siehehttp://archive.ncsa.uiuc.edu/SCMS/DigLib/text/technology/Visualization-Study-NSFNET-Cox.html. Die Abbildung zeigt den Traffic in das ANS/NSFnet T3 Backbone im Novem-ber 1993. Die farbigen Linien repräsentieren virtuelle Verbindungen von Netzen in das Backbone.

2Transmission Control Protocol/Internet Protocol

1

Page 4: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

2 Klassifizierung von Routing-Algorithmen

Routing-Algorithmen lassen sich zunächst instatischebzw.dynamischeAlgorithmen einteilen.

Beim statischen Routing sind die Routing-Tabellen im Router fest vorgegeben, so dass die einzigeAufgabe darin besteht, zu jedem ankommenden Paket den zugehörigen ausgehenden Link aus einerstatischen, vorher konfigurierten Tabelle auszulesen. Falls kein passender Eintrag gefunden wird, wirddas entsprechende Paket entweder verworfen oder an das Interface weitergeleitet, das als „Default-Route“ gesetzt ist. Dieses Verfahren ist offensichtlich nur für kleinere oder solche Netze geeignet,deren Topologie sich selten verändert oder bei denen die Auslastung verschiedener Links nicht starkschwankt, da jede nötige Änderung der Routing-Tabelle eine manuelle Anpassung erfordert. Ein Vor-teil dieses Verfahrens ist, dass man sich nach einmaliger (erfolgreicher) Konfiguration nicht um Pro-bleme wie „Routing Loops“ oder Oszillation bzw. „Route Flapping“, einem ständigen Wechsel zwi-schen möglichen Routen zu einem Ziel, kümmern muss.

Wesentlich flexibler sind dynamische Routing-Algorithmen, bei dem die Router Änderungen der To-pologie eines Netzes selbstständig erkennen und ihre Routing-Tabellen entsprechend anpassen. DieseKlasse lässt sich weiter unterteilen inLink-Stateund Distance-VectorAlgorithmen.3 Hierbei unter-scheiden sich die Link-State von den Distance-Vector Algorithmen durch die Sichtweise eines Rou-ters auf das Netz, d. h. welche Informationen er über das Netz hat.

Link-State Routing-Algorithmen sind auch bekannt alsglobaleRouting-Algorithmen [5]. Sie berech-nen den kürzesten Pfad zwischen Quell- und Zielhost anhand von vollständigem Wissen über dieTopologie des Netzwerks; der Algorithmus benötigt als Eingabe zu jedem Link im Netz den Start-und Endknoten und die Kosten. Das heißt, dass der Algorithmus diese Informationen vor dem Startder eigentlichen Berechnung zum Beispiel mittels Flooding bestimmen muss. Anschließend könnendie kürzesten Pfade entweder zentral oder von jedem Router separat bestimmt werden (z. B. mit demDijkstra-Algorithmus). Ein Vertreter dieser Klasse ist OSPF (Open Shortest Path First), auf das inAbschnitt 4ausführlich eingegangen wird.

Distance-Vector Routing-Algorithmen werden auch alsdezentraleRouting-Algorithmen bezeich-net [5]. Die Berechnung eines kürzesten Pfades geschieht hier in einer iterativen, verteilten Weise.Kein Router hat vollständiges Wissen über das Netz. Beim Aufbau der Routing-Tabelle beginnt jederRouter die Berechnung mit den Kosten der Links zu seinen direkten Nachbarn. Durch einen itera-tiven Prozess von Berechnungen und Informationsaustausch wird nach und nach der kürzeste Pfadzu jedem Zielhost bestimmt. Der Name „Distance Vector“ rührt daher, dass ein Router im Allgemei-nen nicht den vollständigen kürzesten Pfad zwischen zwei Punkten kennt. Stattdessen weiß er nur,an welchen seiner Nachbarn er ein Paket weiterleiten muss, um es entlang des kürzesten Pfades zueinem bestimmten Zielhost zu routen. Zusätzlich kennt er noch die Kosten des Pfades von ihm selbstzu diesem Zielhost. Als Quasi-Standard hat sich im Internet als Vertreter dieser Klasse BGP (BorderGateway Protocol)4 etabliert.

3Daneben gibt es noch hybride Algorithmen, EIGRP (Enhanced Interior Gateway Routing Protocol) vereint mit demDiffusing Update Algorithmus(DUAL) zum Beispiel Fähigkeiten beider Klassen.

4BGP ist eigentlich kein Distance-Vector Algorithmus im „klassischen“ Sinn (Bellman-Ford-Algorithmus), sondernvielmehr ein Path-Vector Algorithmus. Ein Nachbar sagt nicht nur,ob, sondern auchwie er ein Ziel erreichen kann. Eintypischer Vertreter dieser Klasse ist zum Beispiel RIP (Routing Information Protocol).

2

Page 5: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

Bis jetzt wurde ein Netz als ein Zusammenschluss von gleichberechtigten Routern und Hosts betrach-tet. In der Praxis ist dieser Ansatz aus mindestens zwei wichtigen Gründen nicht möglich:

1. Skalierung: Mit steigender Zahl von Routern steigt auch der Overhead zur Berechnung, Spei-cherung und Weitergabe der Routing-Tabellen. Die zur Verfügung stehende Bandbreite würdezum Großteil durch die Kommunikation der Router untereinander benötigt. Ein iterativer Dis-tance-Vector Algorithmus würde bei einem Netz der Größe des Internets niemals konvergieren.

2. Administrative Autonomie: In unterschiedlichen Netzen werden auch unterschiedliche Anfor-derungen bzw. Nebenbedingungen an den einzusetzenden Routing-Algorithmus gestellt; au-ßerdem ist vielen Organisationen daran gelegen, den internen Aufbau des eigenen Netzes zuverbergen. Die Wahl eines geeigneten Algorithmus sollte also dem zuständigen Administra-tor unterliegen. Trotzdem muss es weiterhin möglich sein, das eigene mit anderen Netzen zuverbinden.

Die Lösung besteht in einer hierarchischen Sichtweise des Netzwerks (hierarchisches Routing). Ver-schiedene Router werden zu einemAutonomous System(AS) zusammengefasst. Router innerhalbeines ASs verwenden oft einen einheitlichen Routing-Algorithmus und unterliegen meist derselbenadministrativen Kontrolle. ASs sind weltweit eindeutig nummeriert, dieAutonomous System Num-ber (ASN) AS701 gehört zum Beispiel UUNET Technologies, Inc., einem der größten IP-Carrierweltweit (sog. Tier-1 Carrier); AS702 ist UUNET Europe. Ähnlich wie bei IP-Adressen definiert dieIANA 5 auch für ASNs einen privaten Bereich von AS64512 bis AS65535.

Ein Routing-Algorithmus innerhalb eines ASs wirdIntra-Autonomous SystemRouting-Algorithmusgenannt. Um eine Kommunikation zwischen verschiedenen ASs zu gewährleisten, müssen ein odermehr Router die zusätzliche Aufgabe übernehmen, Pakete über die Grenzen des ASs hinweg zu rou-ten. Diese Router werden alsGatewayoderBoundary Routerbezeichnet. Ein Algorithmus zur Be-stimmung eines Pfades zwischen zwei ASs wird alsInter-Autonomous SystemRouting-Algorithmusbezeichnet. In einigen Quellen werden für Intra-AS bzw. Inter-AS Routing die BegriffeInterior Ga-teway Protocol(IGP) bzw.Exterior Gateway Protocol(EGP) synonym verwendet.

Einem Intra-AS Router müssen durch diese Unterscheidung nur noch die Router innerhalb des eige-nen ASs, zu denen insbeondere auch die Boundary Router gehören, bekannt sein; außerdem ist derIntra-AS Routing-Algorithmus beliebig austauschbar, solange die Boundary Router ein Inter-AS Pro-tokoll beherrschen, mit dem sie mit anderen ASs kommunizieren können. Im Internet haben sich fastausschließlich zwei verschiedene Typen von Routing-Algorithmen etabliert6:

• Dynamische Link-State Routing-Algorithmen für Intra-AS Routing

• Dynamische Distance-Vector Routing-Algorithmen für Inter-AS Routing

Neben Routing-Algorithmen, die in die obigen Klassen fallen, gibt es natürlich noch andere, die in derPraxis allerdings so gut wie gar nicht eingesetzt werden, wie zum Beispiel dasHot Potato Routing.

5Internet Assigned Numbers Authority, siehehttp://www.iana.org/6RIP (Routing Information Protocol) ist als Distance-Vector Algorithmus für Routing innerhalb von ASs die in der

Praxis am häufigsten eingesetzte Ausnahme.

3

Page 6: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

Dabei versucht jeder Router, ein ankommendes Paket „so schnell wie möglich“ weiterzuleiten, indemer es auf einen beliebigen freien Link weiterleitet, unabhängig vom Ziel des Pakets.

RT3.1

RT1.2

RT1.3

Ethernet

RT3.2

RT3.3

AS3

AS2

AS1 RT2.1

RT1.1 H1

H2

RT2.2

Abbildung 2: Intra-AS und Inter-AS Routing

In Abbildung 2wird die Aufteilung eines Netzes in verschiedene ASs verdeutlicht. Das dargestellteNetzwerk ist in drei Autonomous Systems eingeteilt. AS1 besteht beispielsweise aus drei RouternRT1.1 – RT1.3. Diese verwenden ein einheitliches Intra-AS Routing-Protokoll, um das Routing in-nerhalb des ASs zu gewährleisten. Neben OSPF7 sind hier RIP8, Integrated IS–IS9 und Ciscos pro-prietäres (E)IGRP10 die in der Praxis am häufigsten eingesetzten Protokolle.

Router RT1.1 ist diesen Routern als AS Boundary Router bekannt und ist für die Weiterleitung vonDatenverkehr in bzw. aus dem AS1 zuständig. Für dieses Inter-AS Routing wird praktisch ausschließ-lich BGP411 eingesetzt. RT1.1 tauscht zu diesem Zweck Pfadinformationen mit den Routern RT2.1und RT3.1 aus, die ihrerseits wieder AS Boundary Router in AS2 bzw. AS3 sind.

Falls Host H1 ein Paket an H2 schicken will, wird dieses zuerst an Router RT1.3 gesendet, da dies dieeinzige Möglichkeit für H1 ist, Daten in das Netz zu schicken. RT1.3 erkennt, dass das Paket an einZiel außerhalb des eigenen ASs adressiert ist und leitet es dementsprechend an den Boundary RouterRT1.1 weiter. Dieser entscheidet nun, an welchen Router er das Paket seinerseits weiterleitet. Sobalddas Paket am Boundary Router RT2.1 angelangt ist, wird es schließlich entsprechend dem Intra-ASRouting-Protokoll von AS2 an den Zielhost H2 geleitet.

7Open Shortest Path First8Routing Information Protocol9Integrated Intermediate System-to-Intermediate System

10(Enhanced) Interior Gateway Routing Protocol11Border Gateway Protocol, Version 4

4

Page 7: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

3 Modellierung

Bei OSPF spielt die so genannteLink-State-Datenbankeine entscheidende Rolle. Sie beschreibt einNetzwerk aus der Sichtweise von OSPF als gerichteten Graph (vergleichbar mit einer Adjazenz-matrix). Dabei besteht die Knotenmenge aus einzelnen Netzen (z. B. ein Ethernet) oder anderenNetzwerk-Devices wie Routern oder Hosts. Ein Netz ist hier zu verstehen als ein Paar aus IP-Adresseund Netzwerkmaske. Zwei Knoten sind genau dann miteinander verbunden, wenn es in dem Netzwerkeinen Link zwischen den entsprechenden Komponenten gibt.

N1

H1

N2 SLIP

5 2

RT3

1 4

RT2

3 6 10

RT1 2

(a) grafische Repräsentation

VON

RT1 RT2 RT3 N1 N2 H1RT1 4 2RT2 3 0RT3 2 0

NA

CH

N1 6N2 1 5H1 10

(b) Link-State-Datenbank

Abbildung 3: Beispiel für ein Netzwerk

In Abbildung 3 ist ein Netzwerk dargestellt, in3(a) als grafische Repräsentation und in3(b) dieentsprechende Link-State-Datenbank, d. h. ein gerichteter Graph. Das Netzwerk besteht aus den dreiRoutern RT1 – RT3, zwei Netzen N1 und N2 und zusätzlich einem Host H1, der über eine SLIP12-Verbindung direkt mit RT1 verbunden ist.

Die Kosten jedes Links werden direkt an den Ausgang des entsprechenden Devices geschrieben.Die Verbindung von RT1 zu RT2 hat die Kosten 3, in umgekehrter Richtung die Kosten 4. EineVerbindung von einem Netz zu einem Router wird mit Kosten 0 angenommen, da sonst ein Paketbeim Senden durch ein Netz zweimal Kosten verursachen würde. Die Kosten eines Links sind vomSystemadministrator konfigurierbar, je niedriger sie sind desto wahrscheinlicher ist es, dass der ent-sprechende Link zur Weiterleitung von Paketen genutzt wird. Router RT2 und RT3 sind so genannte„benachbarte Router“ (Neighboring Routers), da sie ein Interface zum selben Netz N2 haben.

Das Netz N1 ist ein so genanntesStub Network, ein Netz, das nur mit einem Router verbunden ist.Im Gegensatz dazu ist N2 einTransit Network, da es Datenverkehr transportieren kann, der wederseinen Ursprung noch sein Ziel in N2 selbst hat. Jedes Netz ist entweder ein Stub Network oder,wenn es mit zwei oder mehr Routern verbunden ist, ein Transit Network. Es besitzt eine zugehörigeIP-Adresse und Netzwerkmaske, die die Größe des Netzes beschreibt. Hosts, die direkt mit einem

12Serial Line IP

5

Page 8: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

Router verbunden sind, werden wie Stub Networks mit Netzwerkmaske0xffffffff behandelt (sogenannteHost-Routes) und haben deshalb auch eine Verbindung zu dem entsprechenden Router mitKosten 0. Man sieht anhand der Link-State-Datenbank, dass Stub Networks in dieser Repräsentationkeine ausgehenden Kanten haben, so dass diese Spalten zukünftig direkt weggelassen werden.

Alle Links werden im Folgenden als bidirektional angenommen, so dass Pfeilspitzen, falls nicht an-ders angegeben, bei der grafischen Darstellung weggelassen werden.

Des Weiteren wird hier implizit angenommen, dass jedem Interface eines Routers eine IP-Adressezugewiesen ist, auch wenn das bei direkten Punkt-zu-Punkt-Verbindungen wie zwischen den RouternRT1 und RT2 nicht erforderlich ist. Allerdings muss jedem Router in der Praxis mindestens eineIP-Adresse zugewiesen sein, auch wenn er ausschließlich Punkt-zu-Punkt-Verbindungen hat.

3 5 RT1 RT2

Ib Ia

(a) Punkt-zu-Punkt-Netzwerk

VON

RT1 RT2RT1 5RT2 3

NA

CH

Ia 5Ib 3

(b) Link-State-Datenbank

Abbildung 4: Punkt-zu-Punkt-Netzwerk

In Abbildung 4ist eine entsprechende Punkt-zu-Punkt-Verbindung mit expliziter Vergabe von Inter-face-Adressen dargestellt. Interface-Adressen werden als Stub-Links, d. h. Links zu einem Stub Net-work, modelliert, wobei jeder Router eine Stub-Verbindung zum Interface des anderen Routers anbie-tet. Optional kann dem Punkt-zu-Punkt-Netzwerk ein IP-Subnet zugewiesen werden. In diesem Fallhätten beide Router einen Stub-Link zu diesem Subnet, anstatt zur IP-Adresse des jeweils anderen.Mit dieser Modellierung ist sichergestellt, dass jeder Router Teil mindestens eines Netzes ist. Dieswird später bei der Erstellung der Routing-Tabelle von Bedeutung sein.

6

Page 9: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

4 Open Shortest Path First

Open Shortest Path First (OSPF) ist ein Intra-AS13 Routing-Protokoll, das von der „OSPF workinggroup“ der Internet Engineering Task Force (IETF) für den Einsatz in IP-basierten Netzwerken ent-wickelt wurde. Es trägt die IP-Protokoll-Nummer 89 und ist in Version 2 definiert in RFC14 2328 [8].RFC 2740 [4] definiert OSPF Version 3 und beschreibt Änderungen für den Einsatz in IPv6-Netzen,worauf hier jedoch nicht eingegangen wird. OSPF ist ein offener, d. h. nicht-proprietärer Standard, sodass es auch freie Implementierungen gibt, wie zum Beispiel das Zebra-Paket15, das unter derGNU16

General Public License17 (GPL) veröffentlicht ist.

OSPF unterscheidet zwischen Broadcast- und Nicht-Broadcast-Netzen. Ein Broadcast-Netz (z. B.Ethernet, FDDI18 oder Token-Ring) zeichnet sich dadurch aus, dass Router die Möglichkeit haben,eine einzelne Nachricht an alle anderen angeschlossenen Router zu schicken. Bei diesen Netzen wer-den benachbarte OSPF-Router durch Multicasts an die AdresseAllSPFRouters bestimmt. BeimEinsatz in Nicht-Broadcast-Netzen (z. B. X.25, ATM19 oder Frame-Relay) läuft OSPF in einem derzwei folgenden Modi: Non-Broadcast Multi-Access (NBMA) oder Point-to-Multipoint. Der einge-setzte Modus entscheidet darüber, wie OSPF das Fluten von Paketen in einem Netz gewährleistet.Im NBMA-Modus wird die fehlende Broadcast-Fähigkeit emuliert, die Repräsentation von NBMA-Netzen ist dadurch dieselbe wie die von Broadcast-Netzen. Dieser Modus sollte in Nicht-Broadcast-Netzen bevorzugt werden, wobei vorausgesetzt wird, dass alle Router im NBMA-Netz direkt mit-einander kommunizieren können. Falls dies nicht möglich ist, sollte der Point-to-Multipoint-Modusgewählt werden. OSPF behandelt dann alle Verbindungen zwischen zwei Routern, als wären es Punkt-zu-Punkt-Verbindungen. In dieser Arbeit liegt der Schwerpunkt auf dem Einsatz in Broadcast-Netzen,da diese die Mehrheit der eingesetzten Netze darstellen.

OSPF erlaubt die Aufteilung eines ASs in so genannteAreas, indem verschiedene Netze zu einerGruppe zusammengefasst werden. Die Topologie einer einzelnen Area wird vor dem Rest des ASsverborgen und dementsprechend wird eine erhebliche Reduzierung des Routing-Traffic möglich. InUnterabschnitt 4.3wird ausführlich auf diese Aufteilung eingegangen.

Jeder Router in einem AS besitzt eine eindeutige, 32-Bit lange Router-ID. Es hat sich als zweckmäßigherausgestellt, hierfür die IP-Adresse des Routers zu verwenden; falls ein Router mehrere Adressenbesitzt, so kann zum Beispiel immer die kleinste gewählt werden.

Der Austausch von Protokoll-Paketen erfolgt wahlweise authentifiziert, so dass eine gewollte oderungewollte Manipulation der Routing-Informationen verhindert wird. Die Authentifizierung erfolgtdurch ein 64-Bit Feld im Header der Protokoll-Pakete. RFC 2328 [8] definiert zwei verschiedene

13Autonomous System14Request for Comments15Freie Routing-Software veröffentlicht unter GNU General Public License, siehehttp://www.zebra.org.16GNU’s Not Unix!, siehehttp://www.gnu.org17GNU General Public License, siehehttp://www.gnu.org/copyleft/gpl.html18Fiber Distributed Data Interface19Asynchronous Transfer Mode

7

Page 10: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

Authentifizierungsmechanismen: Entweder ein 64-Bit langes Passwort oder eine Signatur der Paketezusammen mit einemShared Secret, das jeder Router kennt (z. B. mittels des MD5-Algorithmus20).

Bei verschiedenen, gleich langen kürzesten Pfaden zu einem Ziel wird der Datenverkehr auf die ver-schiedenen ausgehenden Links verteilt (Equal Cost Multipath), um eine gleichmäßige Auslastung derLinks zu erzeugen. OSPF erlaubt außerdem eine Unterscheidung des Datenverkehrs anhand des imIP-Header enthaltenen Type-of-Service Feldes (TOS), so dass für verschiedene Klassen von Datenverschiedene Pfade gewählt werden können. In der Praxis wird diese Option allerdings selten einge-setzt und ist teilweise noch nicht einmal implementiert.

Für die Funktionsweise von OSPF werden in der Spezifikation zwei entscheidende Arten von Paketendefiniert: Zum einen dieHello-Pakete, die zur Identifizierung benachbarter Router genutzt werden;zum anderen so genannteLink State Advertisements(LSAs). Die LSAs beschreiben den lokalen Zu-stand eines Routers oder Netzes; dies umfasst bei einem Router den Zustand seiner Interfaces sowieseiner Nachbarn, bei einem Netz den Adressbereich und die angeschlossenen Router. Netzwerk-LSAswerden in Broadcast- und NBMA-Netzen mit zwei oder mehr Routern durch den so genanntenDe-signated Routerbestimmt (sieheUnterabschnitt 4.4für Details). Dieser ist Teil des Netzes und wirdmittels des Hello-Protokolls für jedes derartige Netz von den an das Netz angeschlossenen Routerngewählt.

Jede Ziel- bzw. Netzangabe in OSPF-Paketen erfolgt als Paar von IP-Adresse und variabler Subnetz-maske (VLSM, Variable-Length Subnetwork Mask). Dadurch wird die Aufteilung eines Netzes inmehrere Subnetze möglich (IP-Subnetting), aber auch umgekehrt ein Zusammenfassen von kleinenNetzen zu einem großen (IP-Supernetting), so dass mehrere Netze in einem einzigen LSA zusammen-gefasst werden können. Falls es zu Überschneidungen von Adressbereichen kommt, wird das Paketnach der Regellongest match firstweitergeleitet, d. h. es wird das Ziel mit der längeren Subnetzmaskebevorzugt. Im Extremfall heißt dies, dass eine Host-Route der Form192.168.0.1/32 immer derDefault-Route0.0.0.0/0 vorgezogen wird, da sie genauer ist.

Die LSAs werden durch die gesamte Routing-Domain geflutet. Die gesammelten Router- und Netz-werk-LSAs bilden in einem Router die so genannteLink-State-Datenbank, die die Grundlage für dieErstellung der Routing-Tabelle darstellt. Diese Datenbank ist in jedem Router innerhalb der Routing-Domain identisch.

4.1 Link-State-Datenbank

In Abbildung 5ist ein Autonomous System dargestellt. Die Netze N3, N6, N8 und N9 sind „TransitNetzworks“, die restlichen Netze (innerhalb des ASs) „Stub Networks“. Die Router RT5 und RT7sind AS Boundary Router und haben zusätzlich BGP-Verbindungen zu anderen ASs. Diese Routenwerden als AS-external-LSAs in das Autonomous System geflutet. OSPF bietet auch die Möglich-keit, dass ein AS Boundary Router eine Default-Route anbietet, so dass nicht jede Route einzeln in

20MD5 Message-Digest Algorithmus, siehe RFC 1321 [11]

8

Page 11: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

N2

N4

N11

N1

N3

N9

N10

N8 N6

N7

H1 SLIP

N12

N15

N12 N13 N14

1 3

1 3

8 1 6 8

8 1

2

RT6 6 6

7

6

1

1 3 5

RT8

1

4

2 1

RT9

3

1

RT12 10 1

2

RT1

RT2

RT4

RT10

RT11

RT7

RT5

RT3

8 8 8

2

9

7

Abbildung 5: Ein Autonomous System

9

Page 12: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

VON

RT12 N9 N10 H1RT12

N9 1

NA

CH

N10 2H1 10

(a) Router-LSA von RT12

VON

RT9 RT11 RT12 N9RT9 0

RT11 0

NA

CH

RT12 0N9

(b) Netzwerk-LSA von N9

Abbildung 6: Ausgewählte LSAs

das AS geflutet werden muss und die Link-State-Datenbank klein bleibt. InAbbildung 6sind ex-emplarisch verschiedene LSAs dargestellt, in6(a)das LSA des Routers RT12, in6(b) das LSA desNetzes N9. Dieses wird durch den Designated Router erstellt, einem der an das Netz angeschlosse-nen Router RT9, RT11 oder RT12, der durch das Hello-Protokoll gewählt wurde. Die gesammeltenLSAs bilden in jedem Router eine einheitliche Link-State-Datenbank, die die gesamte Topologie desASs beschreibt. Ein Router bestimmt anhand dieser Datenbank seine Routing-Tabelle, indem er den„Shortest Path Tree“ mit sich selbst als Wurzel berechnet.21 Dieser Baum liefert den gesamten Pfadzu allen Zielen in der Link-State-Datenbank, auch wenn für den eigentlichen Forwarding-Prozess nurder nächste jeweilige Hop von Bedeutung ist.

Die Berechnung des Shortest Path Tree beruht auf demDijkstra- bzw.Shortest Path First-Algorithmus(SPF-Algorithmus) und wird im Folgenden beschrieben.

4.2 Aufbau des Shortest Path Tree und der Routing-Tabelle

In diesem Abschnitt wird auf die Erstellung des Shortest Path Tree und der Routing-Tabelle ein-gegangen, die einzelnen Schritte werden anhand des Routers RT6 ausAbbildung 5 verdeutlicht.RFC 2328 [8] schreibt explizit nicht vor, dass der im Folgenden vorgestellte Algorithmus verwen-det werden muss, es wird lediglich gefordert, dass das Ergebnis dasselbe ist. Dementsprechend gibtes auch Verbesserungsvorschläge, z. B. den Incremental-SPF-Algorithmus in [6].

Zuerst wird die alte Routing-Tabelle für ungültig erklärt, der Aufbau der neuen Tabelle erfolgt „fromscratch“, d. h. ohne Rückgriff auf eine bereits existierende Tabelle. Die alte Tabelle wird gespeichert,so dass Änderungen an der Tabelle später erkannt werden können.

Die Erstellung der Routing-Tabelle erfolgt in mehreren, logisch voneinander getrennten Phasen. In derersten Phase der Berechnung werden alle Ziele innerhalb des ASs berechnet. Hierbei werden zuerst

21Streng genommen berechnet der Algorithmus keinen Baum, da durch eventuell auftretendes „Equal Cost Multipath“Zyklen auftreten können. Diese Bezeichnung hat sich jedoch in der Literatur durchgesetzt und wird auch hier verwendet.

10

Page 13: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

alle Links zwischen Routern und Transit Networks22 betrachtet. Mittels des Dijkstra-Algorithmuswird hieraus der Shortest Path Tree gebildet, und falls es sich bei einem in den Baum eingefügtenKnoten um ein Netzwerk oder einen AS Boundary Router handelt, wird dieser Knoten in die Routing-Tabelle übernommen. In der zweiten und dritten Phase werden die Stub Networks bzw. externenRouten dem Shortest Path Tree als Blätter hinzugefügt und in die Routing-Tabelle übernommen.

4.2.1 Router und Transit Networks

In der ersten Phase wird mittels des Dijkstra-Algorithmus der Shortest Path Tree aufgebaut. Bei demAlgorithmus wird eine Art „äquidistante Welle“ um den Ausgangsknoten ausgesandt. Knoten lassensich in drei Mengen einteilen: Solche, zu denen bereits kürzeste Pfade gefunden wurden23, Randkno-ten, die während der Ausführung des Algorithmus schon gesehen wurden, zu denen aber ein kürzesterPfad noch nicht unbedingt bekannt ist, und Knoten, die noch nicht gesehen wurden. Randknoten wer-den in einer Kandidaten-Liste gespeichert; Pfade zu demjenigen Knoten in der Kandidaten-Liste, derder Wurzel am nächsten liegt, sind garantiert die kürzesten. Dieser Knoten wird aus der Liste entferntund in den Shortest Path Tree eingefügt.

Während der Berechnung wird häufiger eine Menge von „Next Hops“ benötigt. Diese Menge enthältdie Interfaces, die der berechnende Router, d. h. der Wurzelknoten, zum Erreichen des Ziels benut-zen kann. In den meisten Fällen besteht diese Menge aus einem einzigen Hop, nur wenn es mehreregleich teure Routen zum Ziel gibt, enthält die Menge mehrere Elemente. Jeder Hop besteht dabei ausdem ausgehenden Interface, das beim Forwarding-Prozess benutzt werden soll, sowie der IP-Adressedes nächsten Routers (falls vorhanden). Wenn zwischen dem gerade betrachteten Zielknoten und derWurzel mindestens ein Router liegt (d. h. in der Mehrzahl der Fälle), werden die Next Hops vom Va-terknoten des Zielknotens übernommen. Andernfalls wird zwischen zwei Fällen unterschieden: DerVaterknoten ist selbst die Wurzel und hat eine direkte Verbindung zum Zielknoten (entweder ein Rou-ter oder ein Netz). In diesem Fall wird als ausgehendes Interface das Interface genommen, das direktmit dem Zielknoten verbunden ist. Im zweiten Fall ist der Vaterknoten ein Netz, das direkt mit derWurzel verbunden ist. Hier kann die Next-Hop-Menge entweder direkt vom Netz übernommen wer-den, oder sie wird durch die IP-Adresse des an das Netz angeschlossenen Interfaces des Zielknotensbestimmt. Man sieht, dass für die Berechnung der Next-Hop-Menge der Ziel- und dessen Vaterknotenausreichend sind.

Die Schritte zur Berechnung des Shortest Path Tree sehen im Einzelnen wie folgt aus (inTabelle 1sind die Schritte für den Router RT6 exemplarisch dargestellt):

1. Initialisierung der Datenstrukturen: Die Kandidaten-Liste wird geleert und der Baum wird mitdem Router, der die Berechnung durchführt, als Wurzel initialisiert.

22Zu jedem Transit Network gibt es in der Link-State-Datenbank ein entsprechendes Netzwerk-LSA, das vom zugehö-rigen Designated Router bestimmt wird.

23Wegen „Equal Cost Multipath“ kann es durchaus mehr als einen kürzesten Pfad zu einem Knoten geben.

11

Page 14: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

2. Seiv der Knoten, der dem Baum als letztes hinzugefügt wurde. Das mit diesem Knoten assozi-ierte LSA beschreibt die Kosten zu jedem adjazenten Knotenw. Für jeden im LSA beschriebe-nen Link(v, w):

(a) Fallsw ein Stub Network ist, betrachte den nächsten Link inv’s LSA.

(b) Sonst istw entweder ein Router oder ein Transit Network. Suchew’s LSA in der Daten-bank. Falls dieses nicht existiert oderw keine Verbindung zurück zuv hat24, betrachte dennächsten Link.

(c) Fallsw schon im Shortest Path Tree vorhanden ist, betrachte den nächsten Link.

(d) Berechne die Kostend von der Wurzel des Baums bis zum Knotenw. Die Kosten entspre-chen dabei der Summe aus dem schon berechneten kürzesten Pfad von der Wurzel bisvund den Kosten des Links zwischenv undw. Fallsd:

• kleiner ist als der Wert fürw in der Kandidaten-Liste oderw noch nicht in derKandidaten-Liste enthalten ist, fügew eventuell hinzu und setze den Abstand vonder Wurzel zuw in der Kandidaten-Liste aufd. Berechne außerdem die Next-Hop-Menge mit Zielknotenw und dessen Vaterknotenv als Eingabe. Diese Menge vonHops wird bei den Werten vonw in der Kandidaten-Liste hinzugefügt bzw. ersetztdie bisherige Menge.

• gleich dem Wert vonw in der Kandidaten-Liste ist, berechne die Next-Hop-Mengeund füge sie beiw’s Einträgen in der Kandidaten-Liste hinzu.

• größer ist als der Wert fürw in der Kandidaten-Liste, betrachte den nächsten Link.

3. Falls die Kandidaten-Liste leer ist, wurde der Shortest Path Tree für die Transit Nodes (Routerund Transit Networks) vollständig bestimmt. Andernfalls wähle den Knoten in der Kandidaten-Liste, der der Wurzel am nächsten liegt, lösche ihn aus der Liste und füge ihn dem Shortest PathTree hinzu. Falls mehrere Knoten am nächsten zur Wurzel liegen, müssen Netzwerk-Knoten vorRouter-Knoten gewählt werden, um alle Equal-Cost-Pfade zu finden.

4. Änderung der Routing-Tabelle:

• Falls der neu hinzugefügte Knoten ein AS Boundary Router25 ist, füge ihn zur Routing-Tabelle hinzu.

• Falls der neu hinzugefügte Knoten ein Netz repräsentiert, füge ihn zur Routing-Tabellehinzu.

5. Iteriere den Algorithmus durch Sprung zu Schritt2.

24Es reicht ein beliebiger Pfad zurück zuv. Hierdurch wird sichergestellt, dass die Link-State-Datenbanken zwischenzwei benachbarten Routern synchronisiert wurden.

25Oder ein „Area Border Router“, sieheUnterabschnitt 4.3

12

Page 15: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

4.2.2 Stub Networks

In der nächsten Phase des Algorithmus werden die Stub Networks zum Baum hinzugefügt, indemein weiteres Mal alle Router-LSAs betrachtet werden. Seiv der aktuell betrachtete Router. Für jedenStub-Network-Link inv’s LSA führe die folgenden Schritte aus:

1. Berechne den Abstandd von der Wurzel zum Stub Network. Die Kosten sind dabei die Summeaus dem Pfad von der Wurzel zuv (in Phase 1 berechnet) und den Kosten für den Link vonvzu dem Netz.

2. Update der Routing-Tabelle: Fallsd größer ist als der in der Routing-Tabelle vorhandene Ein-trag, betrachte den nächsten Stub-Network-Link. Ansonsten berechne die Next-Hop-Menge fürv und das aktuell betrachtete Stub Network als Vater- und Sohnknoten. Fallsd gleich der Entfer-nung in der aktuellen Routing-Tabelle ist, füge diese Menge der Routing-Tabelle entsprechendhinzu. Fallsd kleiner ist, überschreibe den aktuellen Eintrag in der Routing-Tabelle, indem dieKosten aufd und die Menge der Next-Hops auf die gerade berechnete Menge gesetzt werden.Danach betrachte den nächsten Stub-Network-Link.

Mit Vollendung dieser Phase ist die Erstellung der Routing-Tabelle für lokale Ziele beendet. Dieresultierende Routing-Tabelle von Router RT6 ist in Tabelle2(a) auf Seite16 dargestellt. Da jederRouter Teil eines Netzes ist (sieheAbschnitt 3), ist auch jeder Router innerhalb des ASs erreichbar.

4.2.3 Externe Routen

Als Letztes werden die externen Ziele betrachtet. Für jedes AS-external-LSA, das in die Routing-Tabelle übernommen wird, wird ein Eintrag mit dem ausgehenden Interface vorgenommen, das auchzum Erreichen des Boundary Routers benutzt wird, der diese Route anbietet. Es gibt zwei Typen vonexternen Routen. Der Typ entscheidet über die Kosten des Links bzw. darüber, welche Metrik für dieAngabe der Kosten benutzt wird:

Type 1 external:Die Kosten für externe Links werden in derselben Metrik angegeben, die auch denKosten innerhalb des ASs zugrunde liegt. Die Gesamtkosten eines Pfades ergeben sich damitaus den Kosten des Pfades zum anbietenden AS Boundary Router plus den Kosten für dasErreichen des externen Ziels (→ Distance-Vector Verhalten).

Type 2 external:Alle Kosten von externen Links werden als um Größenordnungen höher angenom-men. Jede Type 2 Metrik ist größer als ein beliebiger Pfad innerhalb des ASs.

Angenommen die Router RT5 und RT7 inAbbildung 5offerieren Type 1 externe Routen in das AS,dann ergeben sich die Gesamtkosten für einen Pfad zu einem der externen Ziele N12 – N15 als Sum-me aus dem Pfad zum Boundary Router und den externen Link- bzw. Pfadkosten. Falls zwei ASBoundary Router einen Link zu demselben AS anbieten, wird der Pfad mit den niedrigsten Gesamt-kosten gewählt. Die Router RT5 und RT7 bieten beide eine Route zu N12 an, so dass N12 zweimalin den Shortest Path Tree eingefügt wird. RT6 würde hier jedoch den Pfad über RT7 bevorzugen,da er mit Gesamtkosten 10 kürzer ist als der Pfad über RT5 mit Gesamtkosten 14; daher gibt es nur

13

Page 16: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

einen entsprechenden Eintrag in der Routing-Tabelle. Die Ergänzungen zu RT6’s Routing-Tabelle fürexterne Routen ist in Tabelle2(b)auf Seite16dargestellt.

Bei Type 2 externen Routen wird der Boundary Router gewählt, der den Link mit den geringstenKosten zu einem externen Ziel anbietet, unabhängig von der Distanz zum anbietenden BoundaryRouter selbst. Falls mehrere gleich teure Verbindungen zu einem Ziel existieren, wird die interneDistanz herangezogen, um eine Entscheidung zu treffen. Bei gleicher interner Distanz wird auf „EqualCost Multipath“ zurückgegriffen, um den Datenverkehr gleichmäßig auf mehrere Verbindungen zuverteilen.

Eine Type 1 Route wird gegenüber einer Type 2 Route zu demselben Ziel immer bevorzugt.

Beide Typen von externen Routen haben gemeinsam, dass ein Paket an ein externes Ziel immer überden AS Boundary Router geleitet wird, der diese Route anbietet. Dies ist jedoch nicht immer wün-schenswert: Angenommen es gibt inAbbildung 5einen weiteren Router RTx, der an das Netz N6 an-geschlossen ist und weitere Routen zu externen Zielen anbietet; RTx nimmt nicht am OSPF-Protokollteil, tauscht aber BGP-Informationen mit dem Boundary Router RT7 aus. RT7 bietet dann Routenzu allen Zielen an, die über RTx weitergeleitet werden sollen. Eventuell wird dadurch ein extra Hoperforderlich (z. B. für Pakete aus N7), da jedes Paket an ein externes Ziel, das RTx anbietet, über RT7geschickt wird.

Um dies zu umgehen, bietet OSPF die Möglichkeit, in einem AS-external-LSA eineForwardingAddressanzugeben. Im obigen Beispiel würde RT7 die IP-Adresse von RTx als Forwarding Addressfür alle Ziele angeben, die über RTx geleitet werden sollen. Falls eine Forwarding Address gesetzt ist(d. h. ungleich0.0.0.0 ), sollte sie zu einem Ziel außerhalb des eigenen ASs zeigen.

Eine andere Anwendung der Forwarding Address ist, dass ein Router im Inneren des ASs alsRou-te Serverfungieren kann. InAbbildung 5könnte sich zum Beispiel RT6 als AS Boundary Routerausgeben und externe Routen (statisch konfiguriert oder durch externe Routing-Protokolle erlernt)anbieten. Durch ein korrektes Setzen der Forwarding Address wird späterer Datenverkehr direkt anden richtigen Boundary Router geschickt.

In Tabelle 1ist die Berechnung des Shortest Path Tree für Router RT6 dargestellt.Abbildung 7zeigtden resultierenden Baum und inTabelle 2ist die endgültige Routing-Tabelle dargestellt, aufgeteilt inlokale und externe Ziele.

4.2.4 Komplexitätsanalyse

Phase 1: Bei dem vorgestellten Algorithmus wurde bewusst auf die Details der Implementierungverzichtet. Da kein Knoten in dieser Phase mehr als einmal im Shortest Path Tree vorhanden ist undKnoten in den Baum ausschließlich auf der untersten Ebene eingefügt werden, kann diese Operationin konstanter Zeit erfolgen, die Effizienz des Algorithmus hängt damit wesentlich von der Verwaltungder Kandidaten-Liste ab [10].

14

Page 17: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

Betrachteter Knoten(Distanz)

Kandida-ten-Liste

Distanz Next Hop(s)

RT6 RT3 6 RT3RT5 6 RT5RT10 7 RT10

RT3 (6) RT5 6 RT5RT10 7 RT10N3 7 RT3

RT5 (6) RT10 7 RT10N3 7 RT3RT4 14 RT5RT7 12 RT5

N3 (7) RT10 7 RT10RT4 714 RT5 RT3RT7 12 RT5RT1 7 RT3RT2 7 RT3

RT10 (7) RT4 7 RT3RT7 12 RT5RT1 7 RT3RT2 7 RT3N6 8 RT10N8 10 RT10

RT4 (7) RT7 12 RT5RT1 7 RT3RT2 7 RT3N6 8 RT10N8 10 RT10

RT1 (7) RT7 12 RT5RT2 7 RT3N6 8 RT10N8 10 RT10

RT2 (7) RT7 12 RT5N6 8 RT10N8 10 RT10

N6 (8) RT7 812 RT5 RT10N8 10 RT10RT8 8 RT10

RT7 (8) N8 10 RT10RT8 8 RT10

RT8 (8) N8 10 RT10N8 (10) RT11 10 RT10RT11 (10) N9 11 RT10N9 (11) RT9 11 RT10

RT12 11 RT10RT9 (11) RT12 11 RT10RT12 (11)

(a) Phase 1

Router-LSA Stub Networks Distanz Next Hop(s)RT1 (7) N1 10 RT3RT2 (7) N2 10 RT3RT3 (6) N4 8 RT3RT8 (8) N7 12 RT10RT9 (11) N11 14 RT10RT12 (11) H1 21 RT10

N10 13 RT10

(b) Phase 2

BoundaryRouter

AS-external-LSA Distanz Next Hop(s)

RT5 (6) N12 14 RT5N13 14 RT5N14 14 RT5

RT7 (8) N12 10 RT10N15 17 RT10

(c) Phase 3

Tabelle 1: Berechnung des Shortest Path Tree und der Routing-Tabelle für RT6

15

Page 18: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

N12 N13 N14

""""8 8bbbb8

RT5

N4

RT4

N2

3

RT2

N1

3

RT1

EE

QQQQ

N3

!!!!!2S

S1

RT3

N11

3

RT9

N10 H1

2

@@10

RT12

@

@

N9

1

RT11

N8

N7

4

RT8

N12 N15

2

@@9

RT7

""""S

S

N6

!!!!!3aaaaa1

RT10

((((((((((((((((6!!!!!6

hhhhhhhhhhhh7

RT6

Abbildung 7: Shortest Path Tree für Router RT6

Ziel Next Hop(s) DistanzN1 RT3 10N2 RT3 10N3 RT3 7N4 RT3 8N6 RT10 8N7 RT10 12N8 RT10 10N9 RT10 11N10 RT10 13N11 RT10 14H1 RT10 21RT5 RT5 6RT7 RT10 8

(a) Lokale Ziele

Ziel Next Hop(s) DistanzN12 RT10 10N13 RT5 14N14 RT5 14N15 RT10 17

(b) Externe Ziele

Tabelle 2: Routing-Tabelle von RT6

16

Page 19: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

Auf der Datenstruktur müssen folgende Operationen ausgeführt werden:

1. Initialisierung der leeren Liste.

2. Prüfen, ob die Liste leer ist.

3. Auswahl des Knotens mit der geringsten Distanz zur Wurzel und Entfernen aus der Liste.

4. Hinzufügen von neuen Knoten oder Änderung von Knoten in der Liste.

Eine Möglichkeit der Implementierung ist, die Kandidaten-Liste nicht explizit zu verwalten, sondernstattdessen mit jedem Knoten die bisherige kürzeste Entfernung und ein zusätzliches Bit, das angibt,ob der Knoten schon gewählt ist, zu speichern. Bei der Initialisierung wird die Entfernung auf∞gesetzt und dasgewählt -Bit gelöscht. Der eigentliche Algorithmus benötigt dann bei einem Gra-phenG = (V, E) mit V = 1, . . . , n (Knotenmenge) undE ⊆ V × V (Kantenrelation)Θ(|V |)Schleifendurchläufe mit Laufzeit jeweilsO(|V |), insgesamt ist die Gesamtlaufzeit alsoO(|V |2). Diesist sehr effizient für Graphen mit vielen Kanten26; da Netzwerke jedoch in den meisten Fällen eherdünne Graphen sind, bietet sich eine Implementierung mittels eines Heaps an.

Bei einer Implementierung der Liste mittels eines Heaps können die Operationen1 und2 in konstan-ter, die Operation3 in logarithmischer Zeit ausgeführt werden. Falls ein Knoten in Schritt4 neu indie Liste eingefügt wird, benötigt diese Operation ebenfalls logarithmische Zeit. Da eine Änderungder Elemente in der Liste von einem Heap normalerweise nicht unterstützt wird, kann ein geänderterKnoten einfach zusätzlich in den Heap eingefügt werden, der Heap enthält dann unter Umständendenselben Knoten mit verschiedenen Entfernungen. Der Algorithmus arbeitet korrekt, wenn nur dieerste Entnahme eines Knotens aus dem Heap (und damit die kürzeste Entfernung) berücksichtigt wird.

Bei dieser Implementierung wird für jede Kante gerade ein Eintrag im Heap vorgenommen, so dassdieser nie mehr alsO(|E|) Knoten enthält. Aus|E| ≤ |V |2 folgt log|E| ≤ 2 · log|V | und deshalb auchO(log|E|) = O(log|V |), somit benötigt sowohl das Einfügen als auch das Entfernen aller Knoten ausdem HeapO(|E| · log|V |) Rechenschritte.

Phasen 2 und 3: Die Effizienz dieser Phasen hängt von der Implementierung der Link-State-Da-tenbank ab, es werden jedoch niemals mehr alsO(|V |) Schritte benötigt. Da für zusammenhängendeGraphen|V | − 1 ≤ |E| gilt, folgt O(|V |) ⊆ O(|E|).

Insgesamt ergibt sich daher eine Komplexität vonO(|E| · log|V |).

4.3 Aufteilung in Areas

Der inUnterabschnitt 4.2vorgestellte Algorithmus hat bei einer Implementierung mittels eines Heapszur Verwaltung der Kandidaten-Liste und einem Graphen (bzw. Netz)G = (V, E) als Eingabe eineKomplexität vonO(|E| · log|V |). Um die Link-State-Datenbank und damit den Berechnungsaufwand

26Bei Ω(|V |2) Kanten ist die Laufzeit linear in der Größe der Eingabe, also größenordnungsmäßig optimal.

17

Page 20: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

und Routing-Traffic gering zu halten, erlaubt OSPF eine Aufteilung des ASs in so genannteAreas.Zusammengehörige Netze und Hosts werden in Gruppen eingeteilt; eine solche Gruppe, zusammenmit den Routern, die ein Interface zu dieser haben, bilden eine Area. In jeder Area läuft eine separateKopie des SPF-Algorithmus und in jeder Area gibt es eine eigene Link-State-Datenbank. Neben derSkalierbarkeit können auch administrative oder geographische Gründe eine Rolle bei der Aufteilungdes ASs in Areas spielen.

Die Topologie einer einzelnen Area wird vor dem Rest des ASs verborgen, ein Router innerhalbeiner Area hat keine Informationen über die Topologie des Gesamtnetzes außerhalb seiner Area, undumgekehrt.

4.3.1 Die Backbone Area

Die Backbone Area27 spielt bei OSPF eine besondere Rolle. Sie hat die Area-ID0.0.0.0 28. JedeArea muss mit dem Backbone verbunden sein, insbesondere gehören Router, die Interfaces zu mehrals einer Area haben (so genannteArea Border Router(ABR)), immer zum Backbone, so dass eskeine direkte Verbindung zwischen zwei Nicht-Backbone-Areas gibt.

Diese Einschränkung zwingt zu einer sternförmigen Auslegung eines ASs und verhindert so die „klas-sischen“ Probleme der Distance-Vector-Protokolle wie Routing-Loops oder Count-to-Infinity.29

Beim Routing unterscheidet man nun zwischenintra-area, wenn ein Paket Ursprung und Ziel inderselben Area hat, bzw.inter-area, wenn Ursprung und Ziel in verschiedenen Areas liegen. EinInter-Area-Pfad kann in drei kontinuierliche Teilstücke aufgeteilt werden: Einen Pfad vom Ursprungdes Pakets zu einem Area Border Router, einen Backbone-Pfad zu einem ABR der Ziel-Area undeinen Pfad von diesem ABR zum Ziel.

Die Auswahl des richtigen Area Border Routers für ein bestimmtes Ziel erfolgt in derselben Weise,wie AS Boundary Router für externe Ziele gewählt werden. Jeder ABR flutet für Netze (und AS Boun-dary Router) innerhalb seiner angeschlossenen Areas so genannteSummary-LSAsin das Backbone,dabei können auch mehrere Netze mittels IP-Supernetting zu einem Summary-LSA zusammengefasstwerden (hierbei wird die größte Entfernung zu einem der Ziel-Netze als Distanz angegeben). Da alleABRs per Definition Teil des Backbones sind, erhalten auch alle diese Summary-LSAs. Nachdem einABR den Shortest Path Tree für eine Area berechnet hat, werden die Routen zu allen Inter-Area-Zielenhinzugefügt. Auf die Entfernung in den gesammelten Summary-LSAs wird die Backbone-Distanz zudem jeweiligen ABR, der diese Route anbietet, hinzuaddiert (→ Distance-Vector Verhalten), und da-nach werden sie in die „eigene“ Area geflutet, so dass jeder Router innerhalb der Area weiß, welcherABR welches Ziel mit welcher Distanz erreichen kann.

27Oder kurz: das Backbone28Oder kurz: Area 029BGP löst diese Probleme über Umwege: Update-Pakete enthalten den gesamten Pfad zu einem Ziel, so dass Routing-

Loops sofort erkannt werden. Daneben gibt es verschiedene andere Mechanismen wie „Split Horizon with Poison Re-verse“, „Hold Down“ bzw. „Triggered Update“.

18

Page 21: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

Das Backbone muss immer logisch zusammenhängend sein. Falls das physikalisch nicht gegeben ist,bietet OSPF die Möglichkeit, einenVirtual Link zwischen zwei Backbone-Routern zu etabliereren,die ein Interface zu derselben Nicht-Backbone-Area haben. Pakete, die entlang eines Virtual Linksgeroutet werden sollen, werden gemäß Intra-Area-Routing durch die gemeinsame Nicht-Backbone-Area weitergeleitet. Virtual Links gehören zum Backbone, die beiden Router werden behandelt, alsob sie durch eine Punkt-zu-Punkt-Verbindung mit Kosten des Intra-Area-Pfades verbunden wären.

Falls durch den Ausfall eines Links eine Area in einzelne Teile zerfällt, wird jeder Teil wie eine einzel-ne Area behandelt. Um volle Routing-Funktionalität zu gewährleisten, darf allerdings ein angegebenerAdressbereich in einem LSA nicht über mehrere Komponenten verteilt sein. Eine Partitionierung derBackbone-Area muss unbedingt vermieden werden, da sonst Teile des ASs unerreichbar werden.

4.3.2 Stub Areas

In einigen ASs besteht ein Großteil der Link-State-Datenbank aus AS-external-LSAs, die normaler-weise durch das gesamte Autonomous System geflutet werden. Um dies zu vermeiden, bietet OSPFdie Möglichkeit, eine Area als so genannteStub Areazu konfigurieren.30 AS-external-LSAs wer-den nicht in Stub Areas geflutet, stattdessen muss von mindestens einem Area Border Router viaSummary-LSAs eine Default-Route für die Area angeboten werden. Dies geht offensichtlich nur,wenn es entweder einen einzigen ABR gibt oder die Auswahl des ABR keine Rolle spielt. Außerdemgelten für Stub Areas die Einschränkungen, dass keine Virtual Links durch sie konfiguriert werdenkönnen und kein AS Boundary Router Teil einer Stub Area sein darf. Eine Stub Area hat auschließlichVerbindungen zum Backbone. Das Backbone selbst kann nicht als Stub Area konfiguriert werden.

4.3.3 Klassifizierung von Routern

Router lassen sich gemäß der bisherigen Ausführungen in die folgenden vier Kategorien einteilen,wobei diese durchaus nicht disjunkt sind:

Internal Router:Alle Interfaces des Routers liegen in derselben Area. In diesem Router läuft eineeinzelne Instanz des SPF-Algorithmus und er besitzt genau eine Link-State-Datenbank.

Area Border Router (ABR):Ein ABR hat Interfaces zu mehreren Areas. Für jede Area läuft in diesemRouter eine separate Kopie des SPF-Algorithmus mit entsprechenden eigenständigen Link-State-Datenbanken.

Backbone Router:Mindestens ein Interface ist mit der Backbone-Area verbunden. Dies beinhaltetinsbesondere alle Area Border Router. Dennoch ist nicht jeder Backbone Router auch einABR.

30RFC 3101 [9] definiert außerdemNot-So-Stubby Areas(NSSA), Cisco zusätzlich nochTotally Stubby Areas. DieUnterscheidung beruht auf dem unterschiedlichen Umgang mit externen Routen, worauf hier jedoch nicht eingegangenwird.

19

Page 22: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

AS Boundary Router:Ein Router, der Routing-Informationen mit Routern außerhalb des eigenenASs austauscht. Diese Klasse ist unabhängig von den oberen, ein AS Boundary Router kannein Internal- oder Area Border Router sein, er kann im Backbone liegen, muss aber nicht.

4.3.4 Beispiel für die Aufteilung in Areas

In Abbildung 8ist eine Aufteilung des Autonomous Systems ausAbbildung 5in verschiedene Areasdargestellt. Dies ist natürlich eine theoretische Aufteilung; in der Praxis gilt als Faustregel, dass 50Router pro Area ein guter Kompromiss zwischen dem Aufwand für die im Router durchgeführtenBerechnungen bzw. Routing-Traffic und dem Konfigurationsaufwand sind.

Area 1 besteht aus den Netzen N1 – N4 und den daran angeschlossenen Routern RT1 – RT4. Area2 besteht aus den Netzen N6 – N8 und den Routern RT7, RT8, RT10 und RT11. Area 3 enthältschließlich die Netze N9 – N11, den Host H1 und die Router RT9, RT11 und RT12. Area 3 seiaußerdem so konfiguriert, dass die Netze N9 – N11 und Host H1 vom ABR RT11 in einem einzelnenSummary-LSA zusammengefasst werden.

Die Router RT1, RT2, RT5, RT6, RT8, RT9 und RT12 sind Internal Router; RT3, RT4, RT7, RT10und RT11 sind Area Border Router; RT3 – RT7, RT10 und RT11 sind Backbone Router. RT5 undRT7 sind schließlich, wie bisher, AS Boundary Router.

RT11 ist ein Backbone Router, da er Interfaces zu zwei verschiedenen Areas hat. Damit das Backbonelogisch zusammenhängend ist, wurde ein Virtual Link zwischen RT10 und RT11 konfiguriert. Manbeachte, dass bei einem Ausfall des Links zwischen RT6 und RT10 das Backbone in zwei Teile zer-fällt. Die Konfiguration eines weiteren Virtual Links zwischen RT7 und RT10 würde dem Backbonemehr Zusammenhalt und damit Robustheit gegenüber einem solchen Fehler verleihen.

In Abbildung 9ist die resultierende Link-State-Datenbank von Area 1 dargestellt. N3 ist das einzigeNetz in der Datenbank, da es das einzige Transit Network ist, zu dem ein entsprechendes Netzwerk-LSA generiert wurde; die anderen Netze in Area 1 sind Stub Networks. Es fällt auf, dass der Vorteilder Reduzierung der Größe der Link-State-Datenbank dadurch erkauft wird, dass nicht immer diekürzesten Pfade zu einem Ziel gewählt werden: RT3 könnte zum Beispiel die Ziele RT5 oder RT7über einen kürzeren Pfad erreichen, wenn Pakete über RT4 geroutet werden würden. Dies ließe sichdurch die Konfiguration eines Virtual Links zwischen RT3 und RT4 erreichen, da dieser Teil desBackbones wäre.

Es ist Aufgabe der ABRs RT3 und RT4, in Area 1 die Entfernungen zu allen Zielen außerhalb derArea bekannt zu machen. Dies beinhaltet die Entfernung zu allen Netzen (und damit insbesondereHost-Routes) und den AS Boundary Routern RT5 und RT7. RT3 und RT4 schicken somit insgesamtjeweils sieben LSAs in Area 1, drei Router-LSAs (RT3 bzw. RT4, RT5 und RT7) und vier Summary-LSAs (N6–N8 und Area 3). Danach werden der Datenbank die externen Ziele hinzugefügt, da dieseper AS-external-LSA unverändert durch das gesamte AS geflutet werden.31

31Mit Ausnahme von Stub Areas

20

Page 23: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

N2

N4

N11

N1

N3

N9

N10

N8 N6

N7

H1 SLIP

N12

N15

N12 N13 N14

1 3

1 3

8 1 6 8

8 1

2

RT6 6 6

7

6

1

1 3 5

RT8

1

4

2 1

RT9

3

1

RT12 10 1

2

RT1

RT2

RT4

RT10

RT11

RT7

RT5

RT3

8 8 8

2

9 Virtual Link

Area 1

Area 2 Area 3

3

2

7

Abbildung 8: Aufteilung des ASs ausAbbildung 5in Areas

21

Page 24: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

VON

RT1 RT2 RT3 RT4 RT5 RT7 N3RT1 0RT2 0RT3 0RT4 0RT5 14 8RT7 20 14N1 3N2 3N3 1 1 1 1

NA

CH

N4 2N6 16 15N7 20 19N8 18 18

N9–N11, H1 29 36N12 8 2N13 8N14 8N15 9

Abbildung 9: Link-State-Datenbank von Area 1

22

Page 25: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

Umgekehrt müssen RT3 und RT4 auch sicherstellen, dass die lokalen Ziele der Area 1 im Backboneund damit allen ABRs bekannt gemacht werden. Hierzu schicken sie ein Summary-LSA für jedesder vier Netze in Area 1 mit der entsprechenden Entfernung in das Backbone. Die LSAs sind inTabelle 3dargestellt. RT3 und RT4 schicken somit insgesamt jeweils fünf LSAs in das Backbone, einRouter-LSA (RT3 bzw. RT4) und vier Summary-LSAs (N1 – N4).

Netzwerk RT3 RT4N1 4 4N2 4 4N3 1 1N4 2 3

Tabelle 3: Summary-LSAs von Area 1 in das Backbone

In Tabelle 4ist die resultierende Routing-Tabelle für Router RT4 dargestellt. RT6 ist in der Tabelle alsZiel vorhanden, da dieser Router ausschließlich Punkt-zu-Punkt-Verbindungen zu anderen Routernhat und deshalb implizit eine Interface-Adresse vergeben wurde (sieheAbschnitt 3). Tabelle 5zeigtdie Änderungen der Tabelle, falls ein zusätzlicher Virtual Link zwischen RT3 und RT4 konfiguriertwird; dieser Link hätte die Kosten des Intra-Area-Pfades zwischen den beiden Routern, also 1 inbeiden Richtungen.

Man beachte, dass es zwei Einträge für Router RT3 in der Tabelle gibt, da er zwei Areas mit RT4gemeinsam hat (Area 1 und das Backbone). Alle Inter-Area-Pfade werden mit dem Backbone asso-ziiert; dies ist bei Area Border Routern immer der Fall. Außerdem existieren in diesem Beispiel zweiEqual-Cost-Pfade zum Netz N12, es wird allerdings in beiden Fällen Router RT5 als nächster Hopgewählt.

4.4 Konstruktion der Link-State-Datenbank

In den vorherigen Abschnitten wurde auf die Erstellung der Routing-Tabelle anhand der gesammeltenLSAs, also der Link-State-Datenbank, eingegangen. Außerdem wurde gezeigt, wie mittels geeigneterKonfiguration von Areas innerhalb eines ASs eine erhebliche Verkleinerung der Datenbank möglichist. In diesem Abschnitt geht es nun darum, wie ein einzelnes Element der Datenbank, d. h. ein ein-zelnes LSA, erzeugt wird.

4.4.1 Link State Advertisements

Insgesamt definiert RFC 2328 [8] vier Typen von LSAs:

Router-LSAs (Typ 1):Jeder Router generiert ein solches LSA für jede Area, zu der er gehört. Esbeschreibt den Zustand jedes Interfaces des Routers zu dieser Area. Dabei wird zwischen

23

Page 26: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

Ziel Area Pfad-Typ Distanz Next Hop(s) anbietende(r)Router

N1 1 intra-area 4 RT1 ?N2 1 intra-area 4 RT2 ?N3 1 intra-area 1 ? ?N4 1 intra-area 3 RT3 ?RT3 1 intra-area 1 ? ?RT3 0 intra-area 21 RT5 ?RT5 0 intra-area 8 ? ?RT6 0 intra-area 15 RT5 ?RT7 0 intra-area 14 RT5 ?RT10 0 intra-area 22 RT5 ?RT11 0 intra-area 25 RT5 ?N6 0 inter-area 15 RT5 RT7N7 0 inter-area 19 RT5 RT7N8 0 inter-area 18 RT5 RT7N9 – N11, H1 0 inter-area 36 RT5 RT11N12 ? Typ 1 ext. 16 RT5 RT5, RT7N13 ? Typ 1 ext. 16 RT5 RT5N14 ? Typ 1 ext. 16 RT5 RT5N15 ? Typ 1 ext. 23 RT5 RT7

Tabelle 4: Routing-Tabelle von RT4

Ziel Area Pfad-Typ Distanz Next Hop(s) anbietende(r)Router

RT3 0 intra-area 1 ? ?RT6 0 intra-area 9 RT3 ?RT10 0 intra-area 16 RT3 ?RT11 0 intra-area 19 RT3 ?N9 – N11, H1 0 inter-area 30 RT3 RT11

Tabelle 5: Änderungen der Routing-Tabelle von RT4 nach Konfiguration eines Virtual Links zwischen RT3und RT4

24

Page 27: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

vier Typen von Links unterschieden: Punkt-zu-Punkt-Verbindungen, Links zu einem Tran-sit Network, Links zu einem Stub Network und Virtual Links. Außerdem enthält es dieInformation, ob der Router ein ABR oder AS Boundary Router ist. Router-LSAs werdeninnerhalb einer Area geflutet.

Network-LSAs (Typ 2):Dieses LSA wird in Transit Broadcast- oder NBMA-Netzen durch den De-signated Router generiert. Es enthält eine Liste aller an das Netz angeschlossenen Router,inklusive des Designated Routers selbst. Network-LSAs werden innerhalb einer Area geflu-tet.

Summary-LSAs (Typ 3, 4):Diese LSAs werden durch Area Border Router generiert und in die mitdiesem LSA assoziierte Area geflutet. Jedes Summary-LSA beschreibt eine Route zu einemZiel außerhalb der Area, aber immer noch innerhalb des eigenen ASs (d. h. Inter-Area Rou-ten). In Stub Areas muss mindestens ein ABR ein „Default“ Summary-LSA fluten. Die Kos-ten werden aufStubDefaultCost gesetzt, ein konfigurierbarer Parameter, der in ver-schiedenen Area Border Routern durchaus unterschiedlich gesetzt werden kann. Ein Typ 3Summary-LSA beschreibt eine Route zu einem Netzwerk, Typ 4 zu einem AS BoundaryRouter.

AS-external-LSAs (Typ 5):Diese LSAs werden von AS Boundary Routern generiert und beschrei-ben Ziele in anderen ASs, die Angabe einer Default-Route ist möglich. Für jedes externeZiel wird ein eigenes LSA erzeugt. AS-external-LSAs sind die einzigen, die, mit Ausnahmevon Stub Areas, durch das gesamte AS geflutet werden.

4.4.2 Generischer Paket-Header

Es gibt fünf verschiedene OSPF-Protokoll-Pakete, jedes besitzt einen einheitlichen Header, der inAbbildung 10dargestellt ist.

0 7 15 23 31

Version Type Packet Length

Router-ID

Area-ID

Checksum AuType

Authentication

Authentication

Abbildung 10: OSPF Paket-Header

Die Bedeutung der einzelnen Felder, wie sie RFC 2328 [8] definiert, ist im Folgenden beschrieben:

25

Page 28: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

Version: Die Version des Protokolls. RFC 2328 [8] definiert Version 2.

Type: Der OSPF Paket-Typ. Einer der folgenden fünf Typen:

1. Hello

2. Database Description

3. Link State Request

4. Link State Update

5. Link State Acknowledgment

Hello-Paketewerden periodisch alleHelloInterval Sekunden an jedes Interface (inklu-sive Virtual Links) geschickt. Sie dienen der Auffindung und Aufrechterhaltung der Nach-barschaftsbeziehungen zwischen benachbarten Routern. Falls länger alsRouterDead-Interval kein Paket von einem Nachbarn empfangen wurde, wird der entsprechendeLink für „tot“ erklärt.32

Database-Description-Paketebeschreiben den Inhalt der Link-State-Datenbank eines Rou-ters; es können mehrere Pakete zur Beschreibung benutzt werden.33

Link-State-Request-Paketewerden benutzt, falls nach dem Austausch von Database-De-scription-Paketen ein Router feststellt, dass Teile seiner Datenbank veraltet sind. Mittelsdieser Pakete werden Teile der Datenbank eines benachbarten Routers angefordert.Link-State-Update-Paketeenthalten ein oder mehr LSAs. Durch sie wird der Flooding-Prozess von OSPF realisiert.Link-State-Acknowledgment-Paketedienen dazu, den Flooding-Prozess zuverlässig zu ma-chen. Jedes LSA muss explizit bestätigt werden, mehrere LSAs können in einem einzelnenLink-State-Acknowledgment-Paket bestätigt werden.

Für den eigentlichen Synchronisationsprozess bilden zwei Router eine Master/Slave-Bezie-hung, darauf wird hier jedoch nicht eingegangen.

Packet Length:Die Länge des Protokoll-Pakets in Bytes (inklusive des OSPF-Headers).

Router-ID: Die Router-ID des Routers, der das Paket geschickt hat.

Area-ID: Identifiziert die Area, zu der ein Paket gehört. Jedes Paket gehört zu einer eindeutigen Area,Pakete entlang eines Virtual Links tragen die Area-ID des Backbones (0.0.0.0 ).

Checksum:Die Standard-IP-Prüfsumme des Pakets, beginnend mit dem OSPF-Header, exklusive des64-Bit langen Authentifizierungsfeldes.

AuType & Authentication:Zur Authentifizierung des Pakets, siehe den Abschnitt über Authentifizie-rung auf Seite7.

32HelloInterval ist in Broadcast-Netzen defaultmäßig zehn Sekunden,RouterDeadInterval 4-mal so lange.33Da OSPF-Pakete via IP ausgetauscht werden, können Pakete, deren Größe die Maximum Transfer Unit (MTU) eines

Interfaces übersteigt, fragmentiert werden. Dies sollte jedoch vermieden werden; alle OSPF-Pakete sind so ausgelegt, dassein (zu) großes Paket in mehrere kleine aufgespalten werden kann.

26

Page 29: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

4.4.3 Das Hello-Protokoll

Hello-Pakete dienen der Auffindung und Aufrechterhaltung Nachbarschaftsbeziehung zwischen be-nachbarten Routern. Die Felder im Paket-Header zusätzlich zum Standard-OSPF-Header sind inAb-bildung 11dargestellt.

0 7 15 23 31

Network Mask

HelloInterval Options Router Priority

RouterDeadInterval

Designated Router

Backup Designated Router

Neighbor...

Abbildung 11: Hello-Paket

Das FeldNetwork Maskenthält die mit diesem Interface assoziierte Netzwerk-Maske, bei einemClass-B-Netzwerk, in dem das dritte Byte des Adressbereichs für IP-Subnetting genutzt wird, zumBeispiel0xffffff00 . DasOptions-Feld beschreibt optionale Fähigkeiten eines Routers, z. B. obAS-externe Routen empfangen und weitergeleitet werden, d. h. ob er Mitglied einer Stub Area ist (E-Bit). RFC 2328 [8] definiert insgesamt fünf Optionen, von denen allerdings nur auf das E-Bit nähereingegangen wird. DieRouter Prioritywird bei der Wahl des (Backup) Designated Routers benutzt;falls sie auf 0 gesetzt ist, ist der Router nicht wählbar. Das Feld(Backup) Designated Routerent-hält die IP-Adresse des Interfaces des (Backup) Designated Routers zu einem angeschlossenen Netz.Die Adresse0.0.0.0 impliziert, dass es keinen (Backup) Designated Router gibt. DieNeighbor-Felder bilden eine Liste aller Router-IDs der Router in dem Netz, von denen innerhalb der letztenRouterDeadInterval Sekunden gültige Hello-Pakete empfangen wurden.

Hello-Pakete werden in Broadcast- und Punkt-zu-Punkt-Netzen per Multicast an die AdresseAll-SPFRouters (224.0.0.5 )34 geschickt, über Virtual Links per Unicast. Pakete an Multicast-A-dressen sollten in OSPF nie mehr als einen Hop weitergeleitet werden, das Time-to-Live-Feld imIP-Header sollte deshalb auf 1 gesetzt werden. Jeder Router, der am OSPF-Protokoll teilnimmt, sollteauf den Empfang von Paketen an diese Adresse vorbereitet sein.

Durch das Hello-Protokoll erhält jeder Router die Informationen, die für die Erstellung des Router-LSAs notwendig sind. Ein Netzwerk-LSA wird von dem zuständigen Designated Router generiert.

34Der Adressbereich224.0.0.0/4 enthält Multicast-Adressen, siehehttp://www.iana.org/assignments/multicast-addresses.

27

Page 30: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

Wahl des (Backup) Designated Routers In Broadcast- und NBMA35-Netzen dient das Hello-Protokoll außerdem zur Wahl des(Backup) Designated Routers, auch wenn der Wahl-Algorithmusselbst keinen Informationsaustausch benötigt. Der Algoritmus wird auf jedem an das Netz ange-schlossenen Router ausgeführt, wenn eine Änderung in der Nachbarschaft festgestellt wird. Er benö-tigt als Eingabe eine Liste aller Router in dem Netz (durch das Hello-Protokoll bestimmt), inklusivedes berechnenden Routers selbst. Beim Start eines Routers wechselt das an ein solches Netz ange-schlossene Interface in den Status „Waiting“ und startet einen Timer, um zunächst durch Sammelnvon Hello-Paketen zu versuchen, einen bereits existierenden Designated Router zu finden. Falls derAlgorithmus auf einem Router zum ersten Mal ausgeführt wird, werden sowohl Designated Router alsauch Backup Designated Router mit0.0.0.0 initialisiert; dies impliziert die Abwesenheit beider.Im Einzelnen sehen die Schritte für einen RouterX wie folgt aus:

1. Lösche alle Router von der Liste, die nicht wählbar sind, d. h. eine Router-Priorität 0 haben.

2. Speichere die bisherigen Einträge für den (Backup) Designated Router.

3. Berechnung des Backup Designated Routers (BDR):Nur die Router in der Liste sind wählbar, die sich nicht selbst in ihren Hello-Paketen als Desi-gnated Router ausgegeben haben. Falls sich ein oder mehr Router als BDR ausgegeben haben,wähle den mit der höchsten Router-Priorität. Falls dies nicht eindeutig ist, wird der Router mitder höchsten Router-ID zum BDR erkärt. Falls sich kein Router als BDR ausgegeben hat, wirdnach demselben Verfahren der BDR aus der Liste bestimmt (wieder ohne Berücksichtigung derRouter, die sich als Designated Router ausgegeben haben).

4. Berechnung des Designated Routers (DR):Falls sich ein oder mehr Router als DR ausgegeben haben, wähle den mit der höchsten Router-Priorität. Falls dies nicht eindeutig ist, wird der Router mit der höchsten Router-ID zum DRerklärt. Falls sich kein Router als DR ausgegeben hat, wird der Router, der im vorherigen Schrittzum BDR gewählt wurde, zum DR erklärt.

5. Falls X nun neuerdings (Backup) Designated Router oder neuerdings nicht mehr (Backup)Designated Router ist, wiederhole die Schritte3 und 4 und beende den Algorithmus. Durchdiesen Schritt wird (neben anderen Dingen) sichergestellt, dass sich kein Router sowohl als DRals auch als BDR ausgibt.

Die auf den ersten Blick recht hohe Komplexität wird durch verschiedene Nebenbedingungen an denAlgorithmus erzwungen. Bei Ausfall des DR in einem Netz sollte der BDR automatisch „nachrü-cken“. Es kann kein neuer BDR gewählt werden, bevor der alte BDR seine neue Position als DRakzeptiert hat. Man beachte, dass der obige Algorithmus ein und denselben Router sowohl zum DRals auch zum BDR wählen kann, auch wenn das nie der berechnende RouterX selbst sein kann.Weder muss der gewählte DR unbedingt der Router mit der höchsten Router-Priorität noch der BDRder mit der zweithöchsten Priorität sein. Falls sowohl RouterX als auch alle anderen Router eineRouter-Priorität 0 haben, d. h. selbst nicht wählbar sind, wird weder ein DR noch ein BDR gewählt.

35Non-Broadcast Multi-Access

28

Page 31: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

Falls es vor dem Beginn des Algorithmus einen eindeutigen Designated Router gab, wird dieser auchdanach wieder DR sein, d. h. der DR wechselt nicht. Genausowenig wechselt der BDR bei vorhande-nem DR.

Bei einem Wechsel des DR werden vom Netzwerk und jedem angeschlossenen Router neue LSAs er-zeugt. Bis die Link-State-Datenbank wieder konvergiert ist, kann es passieren, dass man als Benutzereine ICMP36-unreachable Nachricht als Antwort auf ein Datenpaket erhält. Aus diesem Grund sollteder DR nur selten wechseln, Router-Prioritäten sollten so gewählt sein, dass der zuverlässigste Routerwahrscheinlich DR wird.

Neben der Erstellung des Netzwerk-LSAs ist eine andere Aufgabe des Designated Routers, so ge-nannte „Adjazenzen“ zu allen anderen an das Netz angeschlossenen Routern zu etablieren.

4.4.4 Adjazenzen (oder: Der Flooding-Prozess)

Bei OSPF, wie bei jedem anderen Link-State Routing-Algorithmus, ist es entscheidend, dass jederRouter innerhalb einer Routing-Domain eine einheitliche Link-State-Datenbank hat. Bei OSPF sorgendie Link-State-Update-Pakete dafür, dass LSAs durch die gesamte Routing-Domain geflutet werden.Ein Link-State-Update-Paket kann mehrere verschiedene LSAs enthalten und trägt jedes LSA vonseinem Ursprung einen Hop weiter. Damit dieser Flooding-Prozess zuverlässig arbeitet, muss derEmpfang jedes LSAs in einem Link-State-Acknowledgment-Paket bestätigt werden.

Zur Synchronisation der Datenbanken zwischen Routern formen diese so genannteAdjazenzen. Beider Initialisierung einer Adjazenz tauschen die Router Database-Description-Pakete aus. Link-State-Update-Pakete (und damit LSAs) werden nur entlang von Adjazenzen ausgetauscht. Falls zwei Routeradjazent sind, ist sichergestellt, dass sie eine identische Link-State-Datenbank haben. Adjazenzenwerden nur zwischen benachbarten Routern etabliert, aber nicht alle benachbarten Router werdenadjazent.

Router, die über eine Punkt-zu-Punkt-Verbindung, ein Point-to-Multipoint-Netzwerk oder einen Vir-tual Link verbunden sind, werden immer adjazent.

In Broadcast- und NBMA-Netzen etabliert jeder Router eine Adjazenz mit dem DR und dem BDR.Hierdurch muss nicht jeder Router mit jedem anderen Router in einem Netz seine Datenbank syn-chronisieren, was eine erhebliche Reduzierung des Routing-Traffic zur Folge hat.37 Der (Backup)Designated Router schickt seine Link-State-Update- und Link-State-Acknowledgment-Pakete an dieMulticast-AdresseAllSPFRouters (224.0.0.5 ), alle anderen Router an die AdresseAllD-Routers (224.0.0.6 ). Sowohl der DR, als auch der BDR, sollten auf den Empfang von Paketenan diese Adresse vorbereitet sein.

36Internet Control Message Protocol37Dies ist einer der Gründe, warum beim Einsatz von OSPF in Nicht-Broadcast-Netzen der NBMA-Modus gegenüber

dem Point-to-Multipoint-Modus bevorzugt werden sollte.

29

Page 32: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

Hier wird auch der Vorteil des Backup Designated Routers sichtbar: Falls der Designated Routerausfällt, hat der Backup Designated Router schon Adjazenzen zu allen Routern etabliert, wodurch dieKonvergenzzeit niedrig gehalten wird.

30

Page 33: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

5 Quality-of-Service Erweiterung von OSPF

RFC 2676 [3] beschreibt eine Quality-of-Service (QoS) Erweiterung von OSPF. Das RFC trägt denStatus „experimental“. Ziel ist es, für einen Datenstrom einen Pfad mit garantierter Bandbreite zuwählen, ohne die Funktionsweise von OSPF stark zu beeinflussen. Die vorgestellte Methode wurdebasierend auf der GateD Implementierung38 des OSPF Protokolls umgesetzt und anhand von Simula-tionen auf Effizienz getestet.

Die Funktionsweise von QoS-Routing kann in drei Schritte eingeteilt werden, wobei in RFC 2676 [3]nur auf den ersten Schritt genauer eingegangen wird:

1. Beschaffung der für die Berechnung eines QoS-Pfades nötigen Informationen sowie Berech-nung eines solchen Pfades, der die Anforderungen einer Anfrage erfüllt.

2. Aufbau des berechneten Pfades.

3. Verwaltung des aufgebauten Pfades.

Grundlage der Betrachtung ist ein Netzwerk, das sowohl Best-Effort- als auch QoS-Pakete, also Pake-te mit QoS-Anforderungen, unterstützt. Ein QoS-Router muss dazu fähig sein, bestimmte Ressourcenfür QoS-Pakete zu reservieren, um dessen Anforderungen zu erfüllen.

Es wird davon ausgegangen, dass die QoS-Anforderungen eines Datenstroms dem Routing-Protokollzugänglich sind. Nach der Bearbeitung einer solchen Anfrage gibt der Routing-Algorithmus einenPfad zurück, der für die gegebenen Anforderungen am geeignetsten ist. Die Länge des zurückgege-benen Pfades kann dabei zwischen dem nächsten Hop („Hop-by-Hop Path Selection“-Modell) bis zueiner vollständigen Route („Explicit Route“-Modell) variieren; in RFC 2676 [3] wird jedoch nur aufden ersten Fall eingegangen, auch wenn bei Unicast-Datenströmen keine grundlegende Änderung desAuswahl-Algorithmus, der für die Pfadbestimmung zuständig ist, nötig ist.

Der Einfachheit halber werden in RFC 2676 [3] einige Einschränkungen gemacht: Es werden aus-schließlich homogene Umgebungen betrachtet, d. h. jeder Router (und jedes Router-Interface) in ei-nem Netz ist QoS-fähig im Sinne dieses RFCs. Außerdem werden nur Unicast-Datenströme betrachtetund es wird nicht auf die Aufteilung eines ASs in Areas eingegangen. Als zusätzliche (QoS-)Metrikwird die für einen Link zur Verfügung stehende Bandbreite benutzt, es wird jedoch nicht darauf ein-gegangen, wie dieser Wert bestimmt wird. Der Auswahl-Algorithmus versucht, einen Pfad zu finden,der die Anforderung an die Bandbreite erfüllt und gleichzeitig minimale Ressourcen des Netzwerksbenötigt, d. h. bei dem die Anzahl der Hops minimal ist. Bei zwei Pfaden mit gleicher Anzahl vonHops wird der mit der größeren freien Bandbreite gewählt. Die Kosten eines Pfades sind damit eineFunktion sowohl der zur Verfügung stehenden Bandbreite als auch der Anzahl der benötigten Hops.Für (zeit)kritische Datenströme sind außerdem verschiedene „Policies“ vorgesehen, die vor der Aus-führung des eigentlichen Auswahl-Algorithmus bestimmte Links aus dem Netzwerk entfernen, z. B.Satelliten-Verbindungen mit hoher Latenzzeit.

38GateD Consortium, the Gate Daemon project, siehehttp://www.gated.org/

31

Page 34: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

Um dies zu gewährleisten, muss jedem Router die aktuell zur Verfügung stehende Bandbreite undVerzögerung (Propagation Delay)39 jedes Links bekannt sein. Diese Informationen werden in so ge-nannten erweiterten LSAs durch die Routing-Domain geflutet. Neben der Frage,wie diese Informa-tionen genau verschickt werden, ist ein anderer Aspekt,wannsie verschickt werden.

Eine Möglichkeit ist, die Updates periodisch zu verschicken. Der Nachteil daran ist, dass Änderungenin der zur Verfügung stehenden Bandbreite eine gesamte Periode lang unberücksichtigt bleiben kön-nen, so dass viele falsche bzw. ungünstige Routing-Entscheidungen getroffen werden. Idealerweisesollte jedem Router die aktuell zur Verfügung stehende Bandbreite bekannt sein; dies würde dazuführen, dass Updates jedesmal verschickt werden müssten, wenn sich die Auslastung eines Links än-dert. Da dies jedoch aus praktischen Gründen nicht möglich ist, läuft es auf einen Trade-Off zwischenProtokoll-Overhead und Aktualität der Informationen hinaus. Eine Lösung wäre zum Beispiel, diezur Verfügung stehende Bandbreite in gleiche Klassen einzuteilen und Updates dann zu verschicken,wenn eine Grenze zwischen zwei Klassen überschritten wird.

5.1 Der Pfad-Auswahl-Algorithmus

Neben dem eigentlichen Auswahl-Algorithmus selbst ist ein weiterer wichtiger Punkt, wann dieserausgeführt wird. Zwei mögliche Optionen sind, dass er entweder jedes Mal, wenn eine QoS-Anfragegestellt wird, ausgeführt wird („on-demand“) oder die Berechnungen unabhängig von einer einzelnenAnfrage in einem „pre-computation“-Schritt durchgeführt werden. Der Vorteil der ersten Möglich-keit ist, dass man sich keinerlei Gedanken darüber machen muss, wann der Algorithmus ausgeführtwird; auf der anderen Seite ist es sehr aufwendig, den Algorithmus für jede einzelne Anfrage separatauszuführen. Bei der zweiten Möglichkeit deckt der Rechenaufwand mehrere Anfragen ab, dafür istder Berechnungsaufwand des Algorithmus größer, da im Vorhinein Pfade zu allen möglichen Zie-len für beliebige Bandbreitenanforderungen berechnet werden müssen. In RFC 2676 [3] wird nurauf die zweite Möglichkeit eingegangen. Hierbei spielt es eine wichtige Rolle, wie oft der Algorith-mus ausgeführt wird, da davon auch die Güte der getroffenen Entscheidungen abhängt, je nachdem,wie aktuell die Informationen sind. Der Algorithmus wird entweder periodisch ausgeführt, was denVorteil hat, dass man eine feste Obergrenze für den Berechnungsaufwand angeben kann, oder nacheiner festen Anzahl vonN Anfragen wiederholt. Daneben können auch hybride Methoden aus beidenMöglichkeiten realisiert werden.

Der folgende Algorithmus berechnet zu jedem Ziel einen Pfad mit maximaler Bandbreite und ei-ner minimalen Anzahl von Hops. Ähnlich wie beim SPF-Algorithmus werden zunächst keine Linkszu Stub Networks betrachtet, diese werden später hinzugefügt. Der Algorithmus beruht auf demBellman-Ford-Algorithmus. Eine Eigenschaft des Algorithmus ist, dass nach demh-ten Iterations-schritt ein optimaler Pfad, d. h. ein Pfad mit maximaler Bandbreite, zu jedem Ziel innerhalb vonhHops berechnet wurde. Nach Beendigung des Algorithmus liefern diese Informationen zu jeder QoS-Anfrage einen Pfad mit minimaler Anzahl von Hops und ausreichender Bandbreite. In jedem Iterati-onsschritt werden die Ergebnisse in der QoS-Routing-Tabelle gespeichert. Dies ist eineK×H-Matrix,

39Es wird davon ausgegangen, dass sich die Verzögerung eines Links über der Zeit nicht signifikant ändert.

32

Page 35: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

wobeiK die Anzahl der Ziele (Knoten im Graph) undH die maximal erlaubte bzw. mögliche Anzahlvon Hops ist.H kann entweder implizit, z. B. durch den Durchmesser des Graphen, oder explizit ge-setzt werden, um die Komplexität des Algorithmus besser kontrollieren zu können. Im zweiten Fallmuss sichergestellt sein, dassH größer als der längste Pfad mit minimaler Anzahl von Hops im Netz-werk ist. Der Eintrag(n, h) wird im h-ten Iterationsschritt bestimmt und besteht aus den folgendenzwei Einträgen:

• bw: Die maximal zur Verfügung stehende Bandbreite entlang eines Pfades mit höchstenshHops zwischen dem berechnenden Router und dem Zielknotenn.

• neighbor : Dieses Feld beinhaltet die Routing-Informationen zu dem assoziierten Pfad. BeimHop-by-Hop-Modell ist dies ein benachbarter Router.

Vor der Ausführung werden allebw-Felder mit 0 initialisiert und dieneighbor -Felder gelöscht.Im ersten Schritt wird die erste Spalte, die den 1-Hop-Pfaden entspricht, gesetzt. Dasbw-Feld wirdauf die verfügbare Bandbreite des direkten Links zwischen dem berechnenden Router und jedemadjazenten Knoten gesetzt, dasneighbor -Feld verweist entsprechend auf den adjazenten Knoten.

Im h-ten Iterationsschritt wird zunächst die(h− 1)-te Spalte in Spalteh kopiert. Zusätzlich wird eineListe von Knoten gespeichert, bei denen im letzten Iterationsschritt derbw-Wert geändert wurde. DerAlgorithmus betrachtet jeden Link(n,m), wobein ein Knoten ist, dessenbw-Wert im letzten Schrittgeändert wurde, und berechnet die maximale Bandbreite eines Pfades mit (höchstens)h Hops zumKnotenm, dessen letzter Link der Link(n, m) ist. Dies entspricht dem Minimum desbw-Eintrags(n, h − 1) in der Tabelle und der verfügbaren Bandbreite des Links zwischenn undm. Falls dieserWert größer ist als der bisherige Wert des Eintrags in(m,h), wurde ein besserer Pfad zum Zielm mithöchstensh Hops gefunden und der neue Wert wird in dasbw-Feld übernommen. Dasneighbor -Feld wird beim Hop-by-Hop-Routing auf denselben Wert wie das des(n, h− 1)-ten Eintrags gesetzt.

Nach insgesamtH Schritten terminiert der Algorithmus. In jeder Zeile der QoS-Routing-Tabelle stehtdanach eine monoton steigende Folge, die die maximale Bandbreite entlang eines Pfades zu diesemZiel mit höchstens so vielen Hops, die der Spaltenposition entspricht, angibt. Um zu einer ankom-menden Anfrage eine die Bandbreitenanforderung erfüllende Route zu wählen, wird in der Zeile desentsprechenden Ziels solange die Anzahlh der Hops erhöht, bis eine Position gefunden wurde, derenbw-Wert größer oder gleich der geforderten Bandbreite ist. Falls bis zur PositionH kein entsprechen-der Eintrag gefunden wurde, kann die Anfrage nicht erfüllt werden. Zur Unterstützung von Equal-Cost-Pfaden, d. h. Pfaden mit gleicher freier Bandbreite und gleicher Anzahl von Hops, muss in demneighbor -Feld anstatt eines einzelnen nächsten Hops eine Liste von Hops gespeichert werden.

Ein Problem des obigen Algorithmus ist, dass für ein Paket beim Durchlaufen eines Transit Networkszwei Hops angenommen werden. Dies ist dasselbe Problem, weswegen bei der Modellierung Linksvon einem Transit Network zu einem Router mit Kosten 0 angenommen werden. Zur Lösung desProblems muss bei jeder Änderung der QoS-Routing-Tabelle unterschieden werden, ob es sich beidem aktuell betrachteten Knoten um ein Transit Network handelt oder nicht. Näheres hierzu steht inRFC 2676 [3].

33

Page 36: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

5.1.1 Stub Networks

Ähnlich wie bei der Erstellung der Routing-Tabelle von OSPF werden in einem zweiten Schritt dieStub Networks in die QoS-Routing-Tabelle eingefügt. Für jedes neue in einem Router-LSA gefundeneStub Network wird eine weitere Zeile in die QoS-Routing-Tabelle eingefügt, diebw-Felder mit 0initialisiert und dieneighbor -Felder gelöscht. Falls das Stub NetworkS im Router-LSA vonVgefunden wurde, berechnen sich diebw-Felder nach der Formel

bw(S, h) = max(

bw(S, h), min(bw(V, h), b(V, S)

)),

wobei bw(S, h) und bw(V, h) für den bw-Wert in der QoS-Routing-Tabelle vonS bzw. V in derSpalteh steht, undb(V, S) die aktuell freie Bandbreite des Links zwischenV undS ist. Das heißt,dass der Eintrag nur geändert wird, falls ein besserer als der bisherige Pfad zuS mit höchstenshHops gefunden wurde. In diesem Fall wird das Minimum der freien Bandbreite auf dem Pfad vomberechnenden Router zuV und dem Link zwischenV undS gewählt. Falls der Pfad überV besserals der bisherige ist, wird dasneighbor -Feld vonS in der entsprechenden Spalte durch das vonVersetzt, bei gleich guten Pfaden wird das Feld vonV an das vonS angehängt.

5.2 Protokoll-Erweiterung

In OSPF teilen Router ihre optionalen Fähigkeiten mittels des Options-Feldes im Header von Hello-Paketen mit (sieheAbbildung 11). Dasselbe Feld befindet sich auch in Database-Description-Paketenund allen LSAs. In der älteren OSPF-Protokoll-Spezifikation RFC 1583 [7] wurde in diesem Feld dasT-Bit definiert, um die Fähigkeit eines Routers zur Unterstützung verschiedener Metriken (TOS40-Routing-Fähigkeit) zu signalisieren. Dieses Bit ist jedoch seit RFC 2328 [8] obsolet, dennoch könnenaus Kompatibilitätsgründen TOS-spezifische Informationen in Router-, Summary- und AS-external-LSAs eingefügt werden.

RFC 2676 [3] sieht QoS-Routing als eine Art von TOS-basiertem Routing an und die QoS-Fähigkeitals eine Erweiterung der TOS-Fähigkeit. Es wird vorgeschlagen, dass T-Bit (umdefiniert in Q-Bit)als Indikator für die QoS-Fähigkeit eines Router zu benutzen; ein Router setzt dieses Bit in seinenHello-Paketen, um seine QoS-Fähigkeit anzuzeigen. Wenn das Bit in Router- oder Summary-LSAsgesetzt ist, heißt das, dass QoS-Informationen in diesem Paket ausgewertet werden müssen; wenn esin einem Network-LSA gesetzt ist, ist das Netz QoS-fähig.

Durch die Benutzung einer erweiterten TOS-Notation für QoS-Metriken müssen bis auf die (Wie-der-)Einführung des T-Bits als Q-Bit keine Änderungen am OSPF-Paket-Format vorgenommen wer-den.

40Type-of-Service

34

Page 37: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

5.3 Analyse der Implementierung

Das hier vorgestellte Verfahren wurde basierend auf der GateD Implementierung (Version 4) um-gesetzt und auf einer IBM IntelliStation Z Pro mit 200 MHz Pentium Pro Prozessor und 64 MBHauptspeicher ausgeführt. Als Betriebssystem wurde FreeBSD 2.2.5 eingesetzt. Für die Ermittlungempirischer Daten wurden verschiedene Netze aufgebaut, bestehend aus Blöcken zu je vier Routernund einem Transit Network (zu Details der Topologie siehe [1]).

In Tabelle 6sind die Ergebnisse abhängig von der Größe des Netzes und damit der Größe der Link-State-Datenbank mit steigender Anzahl von LSAs dargestellt. Man sieht, dass der Aufwand für den„pre-computation“-Schritt relativ zum normalen SPF-Algorithmus zwar größer ist, sich aber den-noch in einem zu bewältigendem Rahmen bewegt; nichtsdestotrotz muss diese Berechnung natürlichwesentlich öfter ausgeführt werden. Die Zeit für die Auswahl eines entsprechenden Pfades ist im Ver-gleich dazu sehr gering. Ein anderer Punkt ist der Speicherbedarf: Man sieht, dass die QoS-Routing-Tabelle ungefähr 80% mehr Speicher benötigt als die reguläre Routing-Tabelle.

Größe der Link-State-Datenbank 25 49 81 121 169 225Zeit für reguläre SPF-Berechnung [µs] 215 440 747 1158 1621 2187Zeit für pre-computation [µs] 736 1622 2883 4602 6617 9265Zeit für Pfad-Auswahl [µs] .7 1.6 2.8 4.6 6.6 9.2Größe der SPF-Routing-Tabelle [Bytes]2608 4984 8152 12112 16864 22408Größe der QoS-Routing-Tabelle [Bytes]3924 7952 13148 19736 27676 36796

Tabelle 6: Aufwand der QoS-Berechnung

Ausgehend von dieser Implementierung und den gemessenen Daten wurde eine Simulation eines Net-zes, das ungefähr dem eines nationalen ISPs41 entspricht, erstellt (siehe [2]). Die Ergebnisse sind inTabelle 7dargestellt. In7(a)steht die Prozessorauslastung als Prozentangabe der durch den gesamtenGateD-Prozess benötigten Rechenzeit abhängig von den beiden Parametern „Link-State Threshold“und „pre-computation Periode“. Der erste Parameter gibt an, um wie viel Prozent die verfügbareBandbreite eines Links schwanken darf, bevor ein neues LSA generiert wird, während der zweiteParameter aussagt, wie oft der „pre-computation“-Schritt ausgeführt wird.

pre-computation PeriodeLink-State Threshold 1 sec 5 sec 50 sec

10 % .45% .29% .17%80 % .16% .04% .02%

(a) Prozessorlast

Link-State Threshold10 % 3112 Bytes/sec80 % 177 Bytes/sec

(b) Datenverkehr

Tabelle 7: Simulationsergebnisse

41Internet Service Provider

35

Page 38: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

Man sieht, dass die Prozessorlast sehr gering ist, sogar wenn die QoS-Routing-Tabelle jede Sekundeneu berechnet wird und ein neues LSA jedesmal generiert wird, wenn die zur Verfügung stehendeBandbreite eines Links um 10% im Vergleich zum vorherigen Wert abweicht. In7(b) ist der für QoS-Routing benötigte Datenverkehr dargestellt. Auch hier ist zu sehen, dass der benötigte Anteil relativgering im Vergleich zu einem realistischen Gesamtwert ist.

Insgesamt ergibt sich, dass QoS-Routing-Funktionalität eine im Sinne von Prozessorauslastung undBandbreite durchaus zu bewältigende Erweiterung darstellt. Der benötigte Overhead liegt in einemRahmen, den heutige Prozessoren durchaus leisten können.

36

Page 39: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

Literatur

[1] G. Apostolopoulos, R. Guerin, and S. Kamat.Implementation and performance meassurementsof QoS routing extensions to OSPF. In Proceedings of INFOCOM ’99, pages 680–688, NewYork, March 1999.

[2] G. Apostolopoulos, R. Guerin, S. Kamat, et al.QoS routing: A performance perspective. InProceedings of ACM SIGCOMM ’98, pages 17–28, Vancouver, Canada, October 1998.

[3] G. Apostolopoulos, D. Williams, S. Kamat, et al.RFC 2676: QoS Routing Mechanisms andOSPF Extensions, August 1999.

[4] R. Coltun, D. Ferguson, J. Moy, et al.RFC 2740: OSPF for IPv6, December 1999.

[5] J. F. Kurose and K. W. Ross.Computer Networking: A Top-Down Approach Featuring theInternet. Addison Wesley, N. Reading, MA, 2nd edition, July 2002.

[6] J. M. McQuillan, I. Richter, and E. C. Rosen.ARPANET Routing Algorithm Improvements.Technical Report 3803, BBN, April 1978.

[7] J. Moy. RFC 1583: OSPF Version 2, March 1994.

[8] J. Moy. RFC 2328: OSPF Version 2, April 1998.

[9] P. Murphy.RFC 3101: The OSPF Not-So-Stubby Area (NSSA) Option, January 2003.

[10] T. Ottmann and P. Widmayer.Algorithmen und Datenstrukturen. BI-Wissenschaftsverlag, 2ndedition, July 1993.

[11] R. Rivest.RFC 1321: The MD5 Message-Digest Algorithm, April 1992.

37

Page 40: Open Shortest Path First (OSPF) Seminar ... · PDF fileRheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol Open Shortest

IndexAdjazenz,29AllDRouters , 29AllSPFRouters , 29Area,7, 18

Backbone,18Stub,19

AS, sieheAutonomous SystemAutonomous System,3

Backbone,sieheAreaBackup Designated Router,28

Database Description,29Default-Route,2, 19Designated Router,8, 28Dijkstra-Algorithmus,11Distance-Vector,sieheRouting

E-Bit, 27Equal Cost Multipath,8Exterior Gateway Protocol,3externe Routen,13

Forwarding Address,14

Hello-Pakete,8HelloInterval , 26Host-Route,6

Interior Gateway Protocol,3IP-Subnetting,8IP-Supernetting,8, 18

Link State Advertisement,8External,8, 13, 25Network,8, 25Router,8, 23Summary,18, 25

Link-State,sieheRoutingLink-State-Datenbank,5, 8longest match first,8LSA, sieheLink State Advertisement

NBMA, 7Neighboring Router,5

Options-Feld,27, 34OSPF,7

Protokoll-Pakete,26

Point-to-Multipoint,7Policy,31

Q-Bit, 34Quality-of-Service,31

Route Server,14Router

Area Border,18, 19AS Boundary,3, 20Backbone,19Gateway,3Internal,19

Router-ID,7RouterDeadInterval , 26Routing,2

Distance-Vector,2dynamisch,2hierarchisch,3Inter-Area,18Inter-AS,3Intra-Area,18Intra-AS,3Link-State,2statisch,2

Shortest Path Tree,10, 11Stub Network,5, 8

T-Bit, 34TOS,sieheType-of-ServiceTransit Network,5, 8Type-of-Service,8, 34

Virtual Link, 19VLSM, 8

38