1.3.2. Routingtabellen

Betrachten wir nun ein Beispiel eines Internetwork. Das Beispiel stellt einen Aussschnitt aus dem Wissenschaftsnetz des DFN-Vereins (Zustand bis 1996) dar.

Im oberen Teil des Bildes sehen wir das Netz 143.23. Es gehört zur Klasse B. Dieses Netz basiert "unterhalb" von IP auf einer Paketvermittlungstechnologie nach X.25, deren Funktionsweise an anderer Stelle erläutert werden wird. Uns interessiert hier erst einmal nur, daß es mehrere Verbindungen zu diesem Netz gibt:

Dann gibt es noch vier weitere Netze, die alle zur Klasse C gehören, was man am Adreßpräfix (den ersten drei Zahlen der Adresse) erkennt.

Sie sehen auch, daß Router üblicherweise mehrere IP-Adressen haben, im Standardfall je eine in jedem der beteiligten Netze.

In den Routern müssen nun Informationen vorhanden sein, die dem Router eine Entscheidung über die Weiterleitung der IP-Datagramme ermöglichen. Dies sind die Routingtabellen. Diese Tabellen enthalten (unter anderem) folgende Informationen:

  1. eine Zieladresse (das kann ein einzelner Rechner oder ein ganzes Netz sein)
  2. den nächsten Router oder ein direkt verbundenes Netz
  3. das Router-Interface, auf dem das Datagramm abzuschicken ist
Für den Router 1 könnte man folgende Einstellungen vornehmen:

Ziel nächster Router oder direkt verbundenes Netz Interface
Netz 192.51.1 Netz 192.51.1 B
Netz 192.27.3 Netz 192.27.3 A
Netz 143.23 192.27.3.2 (Router 2) A
Netz 192.11.4 192.27.3.2 (Router 2) A
Netz 192.11.7 192.27.3.2 (Router 2) A

Es fällt auf, daß für die letzten drei Ziele die Weiterleitungsregeln identisch sind. Weiterhin ist unangenehm, daß für alle weiteren (weltweit!) zu erreichenden Netze weitere Routingeinträge erforderlich würden. Dieses Problem löst man durch Einführung eines Standard-Zieles (default), das alle Ziele erfaßt, die nicht durch explizite Regeln beschrieben wurden. Damit erhält die Routingtabelle in Router 1 folgendes Aussehen:

Ziel nächster Router oder direkt verbundenes Netz Interface
Netz 192.51.1 Netz 192.51.1 B
Netz 192.27.3 Netz 192.27.3 A
default 192.27.3.2 (Router 2) A

Im Router 2 wird der Fall etwas komplizierter. Das Netz 143.23 ist (wie die meisten Weitverkehrsnetze) in einer Technologie ausgeführt, mit der nicht alle Netzteilnehmer direkt und gleichzeitig erreicht werden. Die Angabe Netz 143.23 als direkt verbundenes Netz ist also leider nicht möglich. Eine einfache "Lösung" könnte darin bestehen, "alles übrige" zu Router 4 zu schicken:

Ziel nächster Router oder direkt verbundenes Netz Interface
Netz 192.27.3 Netz 192.27.3 B
Netz 192.51.1 192.27.3.5 (Router 1) B
default 143.23.1.1 (Router 4) A

In Router 4 werden dann folgende Einträge benötigt:

Ziel nächster Router oder direkt verbundenes Netz Interface
Netz 192.27.3 143.23.8.2 (Router 2) A
Netz 192.51.1 143.23.8.2 (Router 2) A
Netz 192.11.4 143.23.40.5 (Router 3) A
Netz 192.11.7 143.23.40.5 (Router 3) A
... ... ...
default ... B

Das funktioniert so. Da aber jeglicher Inlandsverkehr über Router 4 geleitet wird, ist da ein Flaschenhals-Effekt sehr wahrscheinlich.

Die Abhilfe könnte so aussehen, daß bereits Router 2 die "Partner" im Inland alle kennt und damit folgende Routingtabelle enthalten muß:

Ziel nächster Router oder direkt verbundenes Netz Interface
Netz 192.27.3 Netz 192.27.3 B
Netz 192.51.1 192.27.3.5 (Router 1) B
Netz 192.11.4 143.23.40.5 (Router 3) A
Netz 192.11.7 143.23.40.5 (Router 3) A
... ... ...
default 143.23.1.1 (Router 4) A

Die drei Punkte in der Tabelle deuten an, daß dort wohl noch eine Vielzahl von Einträgen gebraucht wird.

Aus diesem Beispiel sollten Sie die grundsätzliche Handhabung von Routingtabellen erkennen. Sie konnten auch sehen, daß es häufig mehrere Varianten der Routingeinstellung gibt.
Oft muß ein Kompromiß zwischen möglichst wenigen und einfachen Einstellungen und möglichst wenigen Umwegen für die Daten geschlossen werden.


Frage 1.3.2.1.:

Überlegen Sie, wie die Einstellungen im Router 3 aussehen müssen (es gibt wieder die beiden diskutierten Varianten)!


Bei der Auswertung der Routing-Tabelle haben "konkretere" Einträge Vorrang vor "allgemeineren", d.h., sie erfolgt in dieser Reihenfolge:
  1. Host-Zieladresse suchen -> Abschicken an Router/Netz
  2. Netz-Zieladresse suchen -> Abschicken an Router/Netz
  3. default-Eintrag verwenden

Comer gibt im Band 1 von Internetworking with TCP/IP in etwa die folgende kompakte Beschreibung des IP-Routing-Algorithmus an, wobei als Parameter das zu routende Datagramm sowie die Routing-Tabelle verwendet werden:

  1. Die IP-Ziel-Adresse D ist aus dem Datagramm zu extrahieren. Die darin enthaltene Netzadresse N ist an Hand der Adreß-Klasse zu ermitteln.

  2. Falls N mit der Adresse eines direkt verbundenen Netzes übereinstimmt, dann ist das Datagramm über dieses Netz an Ziel D zu senden. Dazu ist die Hardwareadresse von D zu ermitteln (z.B. durch ARP), das Datagramm geeignet zu verpacken (z.B. in einem Ethernet-Frame) und abzuschicken.

  3. Anderenfalls ist zu testen, ob die Tabelle eine hostspezifische Route für D (spezielle Route für einen Host mit einem Interface, dessen Adresse D lautet) enthält. Falls dies zutrifft, ist das Datagramm an das in der Tabelle angegebene nächste Ziel (Router oder direkt verbundenes Netz) weiterzuschicken.

  4. Anderenfalls ist zu testen, ob die Tabelle eine Route für Netz N enthält. Falls dies zutrifft, ist das Datagramm an das in der Tabelle angegebene nächste Ziel (Router oder direkt verbundenes Netz) weiterzuleiten.

  5. Anderenfalls ist zu testen, ob die Tabelle eine Default-Route enthält. Falls dies zutrifft, ist das Datagramm an den in der Tabelle spezifizierten Default-Router zu schicken.

  6. Anderenfalls ist ein Routing-Fehler aufgetreten.

Einen Spezialfall wollen wir noch anhand eines Ausschnitts aus dem vorigen Beispiel betrachten:

Der rot dargestellte Rechner ist an die Netze 192.27.3 und 192.51.1 angeschlossen.
Das bedeutet nicht automatisch, daß es sich dabei um einen (redundanten) Router handelt. Der hier dargestellte Fall wird als "multihomed Host" bezeichnet. Dieser Rechner hat zwei IP-Adressen und kann von beiden Netzen aus direkt erreicht werden. Das kann aus Gründen der Redundanz, des Durchsatzes oder der Verzögerungszeiten sinnvoll sein.


Frage 1.3.2.2.:

Adressen werden nicht nur in der Netzwerk-Schicht verwendet. Welche anderen Arten von Adressen kennen Sie? Wo sind diese relevant?


© Uwe Hübner, Holger Trapp, 20.3.98