Vernetzung mehrerer Netze mit Router

Bei der Einrichtung eines lokalen Netzwerks in unserem Start-up-Unternehmen haben wir uns darauf beschränkt, Teilnetze über einen einzigen Router miteinander zu vernetzen. In großen Rechnernetzen sieht die Realität dagegen anders aus: Üblicherweise sind Teilnetze über viele Router in Form einer vermaschten Topologie miteinander verbunden und der Weg eines Datenpakets durch das Rechnernetz ist nicht unbedingt eindeutig bestimmt.

Wir betrachten also ein komplexeres Rechnernetz, das aus mehreren Teilnetzen besteht, die mit Routern wie in der Abbildung gezeigt verbunden sind.

Hier sind jetzt insgesamt 6 Teilnetze beteiligt. Die folgende Abbildung veranschaulicht diese Teilnetze mit den zugehörigen IP-Adressen.

Statische Routingtabellen

Die Kommunikation in einem solchen Rechnernetz funktioniert nicht ohne Weiteres, da jeder Router zunächst nur die an ihn mündenden Teilnetze kennt. Um Nachrichten zuverlässig auch in entfernte Teilnetze zu transportieren, arbeiten Router mit sogenannten Routingtabellen.

Eine vereinfachte Routingtabelle von Router I in unserem Beispielnetz könnte wie folgt aussehen:

Aufgabe 1

a) Kannst du die Einträge der Routingtabelle deuten?

b) Welche Tabellenzeile könnte man zu dem Zielrechner 192.168.1.10 zusätzlich ergänzen? Welche Vorteile hätte eine solche Ergänzung und welche Probleme würde sie möglicherweise mit sich bringen?

Konfiguration von statischen Routen in Filius

Routingtabellen in Filius (sie heißen dort „Weiterleitungstabellen“) sehen ähnlich aus wie die obige Beispieltabelle.

Aufgabe 2

a) Öffne in Filius die Datei filius_mehrere_netze.fls. Die Routingtabelle eines Routers findest du in dessen Einstellungen unter dem Punkt „Weiterleitungstabelle“. Entferne hier zum Betrachten und Bearbeiten der Tabelle stets das Häkchen bei der Einstellung „Alle Einträge anzeigen“.

Wie unterscheiden sich die Routingtabellen von Router I und II in Filius von der Beispieltabelle zu Aufgabe 1? Kannst du die Unterschiede deuten? Mache auch Verbindungstests mit dem ping-Befehl zwischen den Rechnern 192.168.0.10, 192.168.1.10 und 192.168.2.10.

(b) Der Rechner 192.168.2.10 antwortet noch nicht auf ping-Anfragen der anderen Rechner, da die Routingtabelle von Router III noch nicht konfigueriert ist. Füge die fehlenden Einträge hinzu.

Aufgabe 3)

Erweitere das Rechnernetz aus Aufgabe 2 wie abgebildet. Ergänze auch die Routingtabellen der Router so, dass Rechner 192.168.4.10 von den anderen Rechnern aus erreichbar ist.

Aufgabe 4)

a) Entferne das in der Abbildung markierte Kabel aus deinem Rechnernetz. Warum schlägt nun der Verbindungstest zwischen den Rechnern 192.168.0.10 und 192.168.1.10 trotz zweier alternativer Routen fehl?

b) Passe die Routingtabellen der Router so an, dass Nachrichten zwischen den Rechnern 192.168.0.10 und 192.168.1.10 über eine der Alternativrouten gesendet werden.

Aufgabe 5)

Löse das Rätsel

Weitere Beispiele

Dynamisches Routing

Da es in Rechnernetzen regelmäßig Änderungen gibt - sei es das Einfügen eines neuen Rechners oder der Ausfall einer Verbindung - müssen auch die Routingtabellen der Router immer wieder angepasst beziehungsweise neu erstellt werden. Es liegt auf der Hand, dass ein Administrator eines großen Rechnernetzes schnell überfordert ist, wenn er regelmäßig alle Routingtabellen von Hand auf den neusten Stand bringen muss. Abhilfe schafft hier ein Routingprotokoll, nach dem die Router ihre Routingtabellen selbst dynamisch ermitteln.

In Filius kannst du das dynamische Ermitteln einer Routingtabelle in der Konfiguration des Routers durch das setzen des Häkchens „Automatisches Routing“ aktivieren. Die Routingtabelle ist in Filius dann jedoch nicht mehr einsehbar.

Wie ein Routingprotokoll zum dynamischen Erstellen von Routingtabellen funktioniert, kannst du im Kapitel „Vermittlung von Datenpaketen“ entlang eines Rollenspiels erkunden:

Wie findet ein Datenpaket seine Route im Netz der Vermittlungseinheiten?

Die folgende Abbildung zeigt ein einfaches Netz aus Routern, die der Einfachheit halber statt über IP-Adressen mit den Buchstaben A, B, … identifiziert werden.

Jeder Router verfügt über eine Routingtabelle, in der genau festgelegt ist, wie ein Datenpaket weitergeleitet wird.

Die Routingtabelle ist folgendermaßen zu lesen: Zum Zielknoten Z gelangt ein Datenpaket über den Nachbarknoten N mit einer bestimmten Anzahl H von Schritten / Hops. Mit Hilfe solcher Routingtabellen wird ein Datenpaket, das sich z.B. aktuell im Knoten A befindet und zum Zielknoten E weitertransportiert werden soll, zum Nachbarknoten C weitervermittelt. Beachte, dass das Datenpaket mit der gleichen Anzahl von Hops auch an den Nachbarknoten B vermittelt werden könnte. In der Routingtabelle ist eine von mehreren günstigsten Möglichkeiten vermerkt.

Erstellung von Routingtabellen

Routingtabellen werden dynamisch von den Routern nach dem folgenden Routingprotokoll ermittelt.

Wir gehen davon aus, dass jeder Router seine Nachbarknoten kennt. In einem ersten Schritt trägt jeder Router die direkt zu erreichenden Nachbarn in seiner Routingtabelle ein.

Beispiel:

Routingtabelle von Router A:

Jetzt beginnt der Informationsaustausch zwischen den Routern. Jeder Router sendet eine Kopie seiner aktuellen Tabelle an alle seine Nachbarknoten.

Router B sendet folgende Tabelle an Router A:

Router C sendet folgende Tabelle an Router A:

Router A verarbeitet die Informationen, die in den ihm übermittelten Tabellen stecken. Z.B. „weiß“ Router A jetzt, dass Router D über Router C mit insgesamt 2 Hops erreichbar ist. Router A „weiß“ auch, dass Router D über Router B mit insgesamt 2 Hops erreichbar ist. Nach internen Strategien (wie z. B der Reihenfolge der verarbeiteten Tabellen) erstellt Router A jetzt eine neue Tabelle mit seinem aktuellen Wissen.

Routingtabelle von Router A:

Jetzt beginnt der nächste Schritt der Informationsweitergabe. Router A sendet seine neue Tabelle wieder an alle seine Nachbarn und empfängt im Gegenzug von seinen Nachbarn deren aktuelle Tabellen. Wenn sich zusätzliche Informationen in diesen übermittelten Tabellen befinden, dann werden diese Informationen in die eigenen Tabellen übernommen.

Dieser Prozess der Informationsweitergabe führt in der Regel nach wenigen Schritten zu stabilen Tabellen.

Diese Tabellen werden trotzdem in einem festgelegten Rhythmus aktualisiert. Wenn eine Verbindungsleitung z.B. ausfällt, dann müssen die Routen ggf. dynamisch angepasst werden. Das geschieht, indem die Tabellen durch neu übermittelte Informationen aktualisiert werden.

Kategorien von dynamischen Routingprotokollen

Distance Vectoring

Distance-Vector-Protokolle basieren auf der Idee, den besten Pfad zu einem Zielnetzwerk basierend auf der Entfernung (Anzahl der Hops) und der Richtung (Vektor) zum Ziel zu wählen. Router, die Distance-Vector-Protokolle verwenden, teilen ihre Routingtabellen nur mit ihren direkten Nachbarn. Bei jedem Update wird die Entfernung zu jedem Zielnetzwerk und die Richtung (der nächste Router auf dem Pfad) übertragen.

Ein bekanntes Beispiel für ein Distance-Vector-Protokoll ist das Routing Information Protocol (RIP). Distance-Vector-Protokolle sind jedoch anfällig für Routing-Loops und können in großen Netzwerken langsam konvergieren.

Router R4 kennt nur seine Nachbarn und die Distanzvektoren (Hops) zu den jeweiligen Netzwerken

Link-State-Protokolle funktionieren anders als Distance-Vector-Protokolle. Anstatt nur Entfernungen und Richtungen mit direkten Nachbarn auszutauschen, teilen Router, die Link-State-Protokolle verwenden, Informationen über ihre direkten Verbindungen (Links) und deren Zustand mit allen anderen Routern im Netzwerk. Jeder Router erstellt daraus eine vollständige Topologiekarte des Netzwerks und berechnet den kürzesten Pfad zu jedem Zielnetzwerk mithilfe von Algorithmen wie dem Dijkstra-Algorithmus.

Ein bekanntes Beispiel für ein Link-State-Protokoll ist das Open Shortest Path First (OSPF) Protokoll. Link-State-Protokolle sind weniger anfällig für Routing-Loops und konvergieren in der Regel schneller als Distance-Vector-Protokolle.

Router R4 kennt die ganze Topologie

Path Vector

Path-Vector-Protokolle sind eine Erweiterung der Distance-Vector-Protokolle und teilen Informationen über den gesamten Pfad (eine Sequenz von Netzwerkadressen) zum Zielnetzwerk. Jeder Router aktualisiert und speichert Informationen über die Pfade zu verschiedenen Zielen und trifft Routingentscheidungen basierend auf diesen Pfaden.

Ein Beispiel für ein Path-Vector-Protokoll ist das Border Gateway Protocol (BGP). Path-Vector-Protokolle sind in der Regel besser skalierbar und vermeiden Routing-Loops, die in Distance-Vector-Protokollen auftreten können.

Übersicht der Routingprotokolle