Ausfallsichere Netze wünscht sich jeder Admin. Die Realität zeigt aber, dass Stecker wackeln, Router abstürzen und Kabel brechen. In dieser Situation zeigt sich dynamisches Routing von seiner besten Seite: Falls es einen alternativen Weg zum Zielrechner gibt, dann findet ihn Zebra[1] - und vergleichbare Routing-Programme auch. Dynamisches Routing sorgt zusätzlich für eine sinnvolle Lastverteilung auf mehrfach vorhandene Verbindungen.
Mit Hilfe verschiedener Algorithmen bestimmt das Routing-Protokoll den besten Weg zum Ziel. Grundlage für diese Entscheidung sind so genannte Metriken. Je nach Protokoll unterscheiden sich die Metriken, sie bewerten die alternativen Wege zum Beispiel abhängig von der Anzahl der Router (Hops) oder der Bandbreite auf den Wegabschnitten. Um sich der aktuellen Situation im Netz anzupassen, berechnet jeder Router seine Routing-Tabelle in bestimmten Intervallen neu, dadurch bleiben die Einträge konsistent. Im Gegensatz dazu gibt beim statischen Routing der Systemadministrator diese Tabellen vor. Bei größeren Netzen wird die Konfiguration schnell unübersichtlich, es können Inkonsistenzen entstehen, die ganze Netzabschnitte lahm legen.
In Abbildung 1 ist ein Firmennetzwerk zu sehen, das im Folgenden als Beispiel dient. Jeder Router kennt die direkt an seine Interfaces angeschlossenen Netze. Bei Router A sind es das Netz 10.0.1.0/24 an Interface E2, 10.0.2.0/24 an E0 und 10.0.3.0/24 an E1. Für jedes angeschlossene Netz enthält die Routing-Tabelle einen Eintrag, den das statische Routing verwendet.
|
Entwickler: Kunihiro Ishiguro und IP Infusion
Lizenz: GPL
Aktuelle Version: 0.93b
Status: Beta (1.0 Final demnächst erwartet)
Protokolle: BGP 4 und 4+, RIP v1 und v2, RIPng sowie OSPF v2 und v3
Architektur: Einzelne Server für jede Routing-Protokollfamilie, verbunden durch einen zentralen Zebra-Daemon
Besonderheit: Lässt sich mit Textdateien konfigurieren oder per Telnet über ein interaktives VTY-Interface
|
Grundlagen des dynamischen Routings
Router A leitet IP-Pakete, die für eines der direkt angeschlossenen Netze bestimmt sind, über das richtige Interface weiter. Die Netze, die er nur indirekt über Router B und C erreicht, sind Router A aber nicht bekannt. In einfachen Fällen kommt dann eine Default-Route zum Einsatz, die alle Pakete an ein Default-Interface weiterleitet, wenn der Router das Zielnetz nicht kennt.
Beim dynamischen Routing teilen sich die Router mit Hilfe eines Routing-Protokolls gegenseitig mit, welche Netze über sie erreichbar sind. Auf diese Weise kann sich jeder Router im Netzwerk ein eigenes Bild (ein Modell) von dem Gesamtnetz machen. Die von den Nachbar-Routern eingesetzten Wege schreibt er in seine Tabelle - vorausgesetzt die Informationen sind aktueller oder besser als die alten Einträge. Jeder Router kennt nun alle Verbindungen und alle Zielnetze im Netzwerk.
Abbildung 2 zeigt, wie sich die Router gegenseitig informieren. Die Tabelle des Routers A enthält nach dem Update neue Einträge für die bisher unbekannten Netze 10.0.4.0/24, 10.0.5.0/24 und 10.0.6.0/24. Hat jeder Router im Netz alle Informationen des Netzes und sind diese konsistent, dann spricht man von einem konvergenten Netz.
Dynamische Routing-Protokolle lassen sich in zwei Gruppen einteilen: interne und externe Protokolle. Intern beziehungsweise extern bezieht sich dabei auf ein so genanntes autonomes System. Autonome Systeme (AS) sind als Administrations-Domäne definiert. Es handelt sich dabei um ein Firmennetz, ein Hochschulnetz oder ein beliebiges Netz, das als abgeschlossene Einheit zu sehen ist. Innerhalb des AS kommen interne Routing-Protokolle zum Einsatz, die Router kennen alle Wege zu den Netzen im eigenen autonomen System.
Abbildung 1: In diesem Beispielnetz kennt jeder der drei Router A, B und C nur die Wege in jene Netze, mit denen er direkt verbunden ist. Die Routing-Tabellen enthalten das zum Zielnetz passende Interface.
Abbildung 2: Beim dynamischen Routing informieren sich die Router gegenseitig über die ans Netzwerk angeschlossenen Netze. Die über Updates gelernten Einträge sind fett gedruckt.
Abbildung 3: Die autonomen Systeme sind über Border-Router miteinander verbunden. Sie kommunizieren über ein externes Routing-Protokoll, während im autonomen System interne Routing-Protokolle zum Einsatz kommen.
Wege suchen - intern oder extern
Das Internet besteht aus vielen autonomen Systemen. Damit die Router auch Netze außerhalb des eigenen erreichen können, sind diese Systeme über externe Routing-Protokolle verbunden (siehe Abbildung 3).
An der Grenze der AS befinden sich so genannte Border-Router, sie stellen eine Verbindung mit anderen autonomen Systemen her. Da diese nicht sämtliche Details über die interne Netzstruktur kennen müssen, geben die Border-Router nur eine Zusammenfassung an die anderen Border-Router weiter. Diese als Summary bezeichneten Informationen fassen die Adressbereiche zusammen, die über den jeweiligen Router erreichbar sind. Das sorgt auch dafür, dass die Routing-Tabellen in den Border-Routern nicht zu groß werden.
Meist ist das gesamte AS aus Sicht des externen Routing-Protokolls nur ein einzelnes Netzwerk. Ein über das Internet angeschlossener BGP-Router (Border Gateway Protocol) muss dennoch etwa 100000 Einträge in seiner Routing-Tabelle verwalten. BGP ist eines der bekanntesten externen Routing-Protokolle. Beispiele für interne Protokolle sind RIP (Routing Information Protocol), OSPF (Open Shortest Path First) und ISIS (Intermediate System to Intermediate System).
Zu den Aufgaben der Routing-Protokolle gehört es nicht nur, Wege-Informationen zu verteilen. Sie müssen auch vermeiden, dass Pakete im Kreis laufen, also dafür sorgen, dass keine Routing-Loops auftreten. Ein weiteres Kriterium für die Qualität eines Protokolls ist die Zeit, die es benötigt, um die Routen im Netz zu verteilen. Wichtig ist die Zeit, die vergeht, bis jeder Router alle nötigen Informationen hat, um alle Wege zu kennen. Dann befindet sich das Netz in einem konvergenten Zustand. Der Zeitraum, der bis zum Erreichen dieses Zustands vergeht, heißt Konvergenzzeit.