Dynamisches Routing mit RIP

Natürlich hat es in einem wirklich großen Netz, wie dem Internet keinen Sinn alle Routen von Hand einzutragen, und zwar weil.

  • sich ständig die Netzstruktur ändert indem neue Teilnetze hinzukommen und andere verschwinden.

  • es sich um tausende von Netzen handelt, deren Routing-Tabellen sich nicht mehr effektiv und fehlerfrei von Hand verwalten lassen.

Man braucht also Methoden um Routing-Informationen automatisch zwischen verschiedenen Routern auszutauschen. Auch dafür gibt es verschiedene Protokolle

Das Internet besteht aus einer Unzahl autonomer Systeme, die intern die verschiedensten Routing-Algorithmen anwenden. Unsere oben erwähnten Firmennetze A, B und C wären z.B. autonome Systeme, die ihr internes Routing abhandeln wie sie wollen.

Es gibt allerdings auch Standards für internes Routing, durch das sich die Implementierung an den Grenzen zwischen autonomen System vereinfacht. Ein Protokoll für das Routing in einem autonomen System heißt internes Gateway-Protokoll (IGP), ein Protokoll für das Routing zwischen autonomen System heißt externes Gateway-Protokoll (EGP).

Wir behandeln zuerst einmal IGPs wie z.B.

RIP ( das Routing Information Protocol)

Wie schon im letzten Abschnitt behandelt werden Routen mit möglichst wenig Zwischenstationen bevorzugt. Um herauszufinden welche Route nun die billigste ist, kann ein Router eine sogenannte Distanz-Vektor-Tabelle führen, die die Metriken der einzelnen Routen angibt.  Betrachten wir dazu einmal folgende Grafik.

Einige Gateways

Die Tabelle für diese Grafik im letzten Abschnitt sähe  so aus:

  A B C D E F G H I
A   1 2 1 2 3 4 3 3
B 1   1 2 3 4 5 4 4
C 2 1   1 2 3 4 3 4
D 1 2 1   1 2 3 2 3
E 2 3 2 1   1 2 1 2
F 3 4 3 2 1   1 2 1
G 4 5 4 3 2 1   2 1
H 3 4 3 2 1 2 2   1
I 4 5 4 3 2 1 1 1  

Natürlich berücksichtigt eine Tabelle dieser Art keine sonstigen Informationen wie z.B die Übertragungsgeschwindigkeit. RIP würde wenn es die Wahl zwischen einer analogen Telefonleitung mit 14.400 bps und einer metric von 1 und einer Gigabit-Ethernet-Verbindung mit zwei Hops bedenkenlos die Telefonleitung nehmen, weil diese in Hops gemessen billiger ist.

Jeder Router führt eine solche Tabelle und natürlich müssen die Tabellen zwischen den verschiedenen Routern abgeglichen werden.

Beim Routing Information Protocol werden diese Tabellen deshalb in regelmäßigen Abständen per Broadcast im Netz verteilt, und von den anderen Routern verarbeitet. Der dadurch verursachte Verkehr im Netwerk ist auch einer der größten Nachteile von RIP

Ein Rechner der am RIP teilnimmt kann entweder; aktiv oder passiv sein. Ist er aktiv, dann sendet er seine Routing-Tabellen an andere Maschinen. Die meisten Router sind aktive Geräte. Ein passiver Rechner sendet keine Routing-Tabellen, empfängt aber die Tabellen von aktiven Geräten und gleicht seine Tabellen mit diesen ab. RIP benutzt das User Datagram Protocol auf Port 520. Die Begriffe UDP und Port behandeln wir später.

Jeder Rechner der am RIP teilnimmt hält also eine Tabelle mit einem Eintrag pro Maschine vor, mit der er reden kann. In der Tabelle sind Einträge für die IP-Adresse des Ziels, die IP-Adresse des nächsten Gateways auf dem Weg, ein Flag das anzeigt, ob der Eintrag kürzlich aktualisiert wurde und ein paar Timer.

Ein Timeout-Timer wird jedesmal initialisiert wenn eine Route eingetragen oder aktualisiert wird. Wenn der Timer abläuft (einstellbar, meistens nach 180 Sekunden, wird das Ziel als unerreichbar angesehen. Ist dieser Timer abgelaufen, wird die Route zwar noch weitergegeben, aber mit maximaler metric.

Danach übernimmt ein Garbage-Collection-Timer, der normalerweise 120 Sekunden läuft. Ist  auch dieser abgelaufen wird die Route aus der Tabelle entfernt.

Schließlich läuft noch ein Response-Timer, der alle 30 Sekunden eine RIP-Message an die Nachbarmaschinen sendet.

Eine RIP-Message sieht wie folgt aus:

RIP-Message

Der Header besteht aus 3 Feldern für

  • command - 1 für eine Anfrage, 2 für eine Antwort.
  • version - die Versionsnummer des RIP-Protokolls
  • unused - ein unbenutztes Feld

Der Rest besteht aus Adress-Informationen. Jeder Adressatz beginnt mit einem Identifier für das benutze Protokoll ( 2 für RIP ) gefolgt von einem Satz von Adressen. Das letzte Feld ist eine Metric, die die Anzahl der Hops zu dem Netwerk angibt.

Eine Anfrage wird normalerweise an einen anderen Router gesendet, wenn ein Update der Routing-Tabelle notwendig ist. Wenn eine Anfrage empfangen wird, wird diese untersucht und mit der eigenen Routing-Tabelle verglichen. Ist dort eine Route die der Anfrage entspricht, dann wird die Metric an der entsprechenden Stelle in die Antwort eingesetzt. Man nennt dieses Verfahren triggered Updates.