Router

Große Netzwerke wie das Internet bestehen aus vielen kleineren Teilnetzwerken. Die Verbindung der verschiedenen Netze wird durch spezielle Rechner hergestellt. Das sind, neben Bridges, Switches und Gateways, im Internet vor allem Router. Diese haben die Aufgabe, Daten zwischen Rechnern in verschiedenen Netzen auf möglichst günstigen Wegen weiterzuleiten. Zum Beispiel wenn Rechner 1 im Netz B Daten an Rechner 2 im Netz C schicken möchte.

Router verbinden, im Gegensatz zu Bridges, in OSI-Schicht 3 auch Netze unterschiedlicher Topologien. Sie sind Dreh- und Angelpunkt in strukturiert aufgebauten LAN- und WAN-Netzen. Mit der Fähigkeit, unterschiedliche Netztypen sowie unterschiedliche Protokolle zu routen, ist eine optimale Verkehrslenkung und Netzauslastung möglich. Routing wird erst dann erforderlich, wenn Kommunikation zwischen Stationen in unterschiedlichen Subnetzen erfolgen soll. Sie sind nicht protokolltransparent, sondern müssen in der Lage sein, alle verwendeten Protokolle zu erkennen, da sie Informationsblöcke protokollspezifisch umsetzen.

Bevor ein Router ein Paket mit einer bestimmten IP-Adresse weiterleiten kann, muß er für diese Adresse zunächst den Weg durch das Netz zum Zielrechner bestimmen. Das geschieht mit Hilfe spezieller Protokolle wie ARP, RIP, OSPF, EGP/BGP. Er arbeitet also nicht wie die Bridge oder der Switch mit den Adressen der MAC-Ebene. Dieses hat den Vorteil, das ein Host nicht die MAC-Adresse des Empfängers wissen muß, um diesem eine Nachricht zu übermitteln. Die Adresse der Netzwerk-Protokollebene, z. B. IP genügt. Dieses Weiterleiten von Daten anhand einer Tabelle heißt Routen.
In der Routingtabelle ist aber nicht der gesamte Weg zu einem Rechner mit einer bestimmten IP-Adresse gespeichert. Vielmehr kennt der einzelne Router nur die nächste Zwischenstation (engl. next hop) auf dem Weg zum Ziel. Das kann ein weiterer Router oder der Zielrechner sein.

 

Grundlegende Komponenten von Routern

Der Router besteht, wie ein Computer auch, aus CPU und Speicher. Dazu kommen mehrere Netzwerkadapter, die eine Verbindung zu jenen Netzen herstellen, die mit dem Router verbundenen sind. Die Adapter sind meist über einen Systembus mit der CPU des Routers verbunden. Die CPU wiederum hält im Hauptspeicher des Rechners die Routingtabelle vor.

LAN Interfaces:
Die meisten Router haben ein oder mehrere LAN-Interfaces, je nach Topologie für Token-Ring, Ethernet, 100BASE-T Fast Ethernet, FDDI oder auch ATM. Für den Anschluß entsprechender Medien sind entweder alternativ nutzbare Ports (z.B. Ethernet AUI, BNC, RJ45) vorhanden oder der Anschluß ist als Einschub realisiert und kann daher den Erfordernissen angepaßt werden. WAN Interfaces:
WAN-Leitungen werden von unterschiedlichen Anbietern mit unterschiedlichen Geschwindigkeiten angeboten. Entsprechend variieren die Kosten und die Schnittstellen. Für kleinere Anbindungen (z.B. Workgroups) werden Verbindungen mit einer Übertragungsgeschwindigkeit von 64 Kbit/s empfohlen. Es gibt natürlich Applikationen, wo eine geringere Übertragungsrate ausreicht. Werden höhere Übertragungsraten benötigt, so bietet sich die in Europa übliche E1-Verbindung (im Prinzip ein ISDN Primärmultiplexanschluß) mit einer Übertragungsrate von 2048 kbit/s an. Router haben einen oder mehrere WAN-Ports, die entweder fest eingebaut sind oder bei modularen Modellen mit entsprechenden Schnittstellenmodulen aufgerüstet werden können. Übliche physikalische Schnittstellen für Synchronbetrieb sind RS449, V.35 und X.21, für asynchronen Betrieb das RS232-Interface. Für den Anschluß an ISDN wird die S0-Schnittstelle verwendet.

 

Routing

Da, wie gesagt, Routing auf Schicht 3 stattfindet, wird in diesem Abschnitt auf das Internet-Protocol vorgegriffen (siehe Kapitel 10: 10 TCP/IP).
Wenn einer der Netzwerkadapter ein Datenpaket erhält, so verarbeitet er zunächst die Schicht-2-Protokolldaten, extrahiert dann das IP-Paket und reicht es zur weiteren Verarbeitung an die CPU weiter. Diese entnimmt dem Paketkopf die IP-Adresse des Zielrechners. Wenn nicht der Router selber adressiert ist, muß das Paket weitergeleitet werden. Dazu sucht die CPU in der Routingtabelle nach der passenden Next-Hop-Information. Die Next-Hop-Information beinhaltet zum einen die Nummer des Netzwerkadapters über den das Paket ausgegeben werden soll und zweitens die IP-Adresse des Next-Hop. Diese Adresse übergibt die CPU des Routers nun zusammen mit dem IP-Paket an den entsprechenden Netzwerkadapter. Dieser generiert daraus ein Schicht-2-Paket und sendet es ab.
Bevor ein Router ein Paket mit einer bestimmten IP-Adresse weiterleiten kann, muß er für diese Adresse zunächst den Weg durch das Netz zum Zielrechner bestimmen. Das geschieht mit Hilfe spezieller Protokolle wie ARP, RIP, OSPF, EGP/BGP.

 
Betrachten wir dazu ein stark vereinfachendes Beispiel. Dabei werden lokale Netze im folgenden nur noch als gelbe Ovale dargestellt. Innerhalb eines lokalen Netzes hat jeder Rechner eine eigene IP-Adresse. Zwei Netze werden miteinander über Router (rotes Rechteck) gekoppelt.
Bei der Verbindung von mehr als zwei Netzen existieren Knotenpunkte, an denen eine Richtungsentscheidung getroffen werden muß. Router mit mehreren Interfaces legen den Weg eines Paketes durch das Netz fest. Es ginge im Prinzip auch nur mit einem Interface - aber auf Kosten der Performance.
Das Konzept wird rasch an vielen Stellen umgesetzt. Es entstehen miteinander gekoppelte Netze. Aber noch haben nicht alle Netze miteinander eine Verbindung.
Durch weitere Verbindungen haben nun alle Netze Kontakt. Jeder Rechner kann mit jedem anderen Rechner kommunizieren, auch wenn sie nicht in zwei benachbarten Netzen liegen.
Durch Querverbindungen entsteht ein vermaschtes System. Auch wenn eine der Verbindungen ausfällt, kann die Kommunikation weiterlaufen.

Durch die für das Routen notwendige Untersuchung des Datenpakets, erhöht sich die Verweilzeit der Daten im Router selbst (Latenzzeit). Die eigentliche Stärke von Routern liegt in ihrer Fähigkeit mittels bestimmter Algorithmen den bestmöglichen Weg für ein Datenpaket zum Empfanger aus seiner Routing-Tabelle zu wählen.
Um die Daten "routen" zu können, ist es notwendig, daß der Router alle angeschlossenen Netzwerkprotokolle versteht und diese auch die Fähigkeit des Routens unterstützen. Der Vorteil des Routers gegenüber der Bridge ist die logische Trennung und die Bildung von (Sub-)Netzen bei TCP/IP bzw. von Areas bei DECNET.
Weitere Features von Routern sind ihre Netzwerk-Management- und die Filter-Funktionen. Durch geeignet gewählte Routing-Einstellungen ist es möglich, die Netwerk-Performance je nach Anforderungen ans Netz zu verbessern. Die Filterfunktionen auf Netzwerk-Protokollebene sind ähnlich wie bei der Bridge. Router bieten aber eine generell höhere Isolation da sie z. B. Broadcasts in der Regel nicht weiterleiten. Außerdem können sie zusätzlich als "screening Router" verwendet werden, indem z. B. bestimmten IP-Adressen der Zugriff auf bestimmte Netzteile verwehrt wird. Aus den erwähnten Gründen sind Router in der Regel per Software konfigurierbar.

Bei Hochgeschwindigkeitsnetzen im Gigabitbereich ist die oben beschriebene Struktur eines Routers nicht mehr ausreichend. Die CPU und der Systembus müßten dabei die Summe der Übertragungsraten aller angeschlossenen Netzwerke verarbeiten können. Bei 2 GBit/s Datenübertragungsgeschwindigkeit entspricht das bei einer angenommenen Paketgröße von 1000 Bits bis zu zwei Millionen IP-Paketen pro Sekunde und Netzwerkanschluß. Bei solchen Hochleistungsroutern geht man dazu über, die Aufgabe des Weiterleitens von IP-Paketen den einzelnen Netzwerkadaptern zu übertragen. Die Netzwerkadapter erhalten zu diesem Zweck eine eigene CPU und Speicher, in dem sich eine Kopie der zentralen Routingtabelle des Routers befindet. Trifft bei diesem Routermodell ein IP-Paket bei einem der Adapter ein, bestimmt dieser den Next-Hop und gibt das Paket direkt an den entsprechenden Ausgangsadapter weiter. Die CPU des Routers ist nur noch für die Ausführung der Routingprotokolle und die Verwaltung der zentralen Routingtabelle sowie anderer administrativer Aufgaben zuständig. Die zentrale Routingtabelle wird im Fall einer Änderung anschließend in die Speicher der einzelnen Netzwerkadapter kopiert.

 

Die Routingtabelle

Eine einfache Tabelle über alle 232 (bei IPv4) bzw. 2128 (bei IPv6) möglichen IP-Adressen wäre kaum machbar. Schließlich kann ein Router über die direkt mit ihm verbundenen Netze nur maximal einige tausend Rechner erreichen. In der Regel sind es sogar weniger als hundert. In der Routingtabelle ist auch nicht der gesamte Weg zu einem Rechner mit einer bestimmten IP-Adresse gespeichert. Vielmehr kennt der einzelne Router nur die nächste Zwischenstation (engl. next hop) auf dem Weg zum Ziel. Das kann ein weiterer Router oder der Zielrechner sein.

Die IP-Adressen sind nicht einzeln wahllos auf Rechner in der ganzen Welt verstreut worden. Bei IPv4 ist der Adreßraum in fünf verschiedene Klassen A-C unterteilt worden. Jede IPv4-Adresse besteht aus einer Klassenkennung, einer Netzadresse, einer möglichen Subnetzadresse und einer Rechneradresse. Jede Organisation im Internet bekommt eine Netzadresse aus einer bestimmten Klasse zugewiesen. Mit den Netzadressen der verschiedenen Klassen sind unterschiedliche Kontingente von Rechneradressen verbunden, je nachdem wie viele Adressen von einer Organisation benötigt werden. So sind die Netzadressen der Klasse B 14 Bit lang, und für die Adreßverteilung innerhalb einer Organisation stehen 16 Bit zur Verfügung. Für die mögliche Aufteilung in Subnetze und die Verteilung der Adressen an einzelne Rechner innerhalb der Organisationen sind diese selber zuständig.

 

Beispiel für drei IP-Netze mit Routern

Das folgende Netz besteht aus drei IP-Netzen, die über Router verbunden sind. Jeder Router hat zwei Netzwerk-Interfaces, die jeweils in zwei der Netze hängen. Es ist nicht unbedingt erforderlich, für jedes Netz ein eigenes Interface zu verwenden; über sogenannte 'virtuelle Interfaces' kann man mehrere Netze auf ein Hardwareinterface legen.

Die Routing-Tabellen dazu sehen so aus:

Router 1
Empfänger im Netzwerk Zustellung über
192.168.0.0 direkt
192.168.1.0 direkt
192.168.2.0 192.168.1.2
Router 2
Empfänger im Netzwerk Zustellung über
192.168.0.0 192.168.1.1
192.168.1.0 direkt
192.168.2.0 direkt

 

Routingverfahren

Das Routing (Wegewahl, Pfadsteuerung) hat die Aufgabe, Pfade für die Übertragung durch ein Netz festzulegen. Jeder Vermittlungsknoten fällt dabei eine Entscheidung auf welcher Übertragungsleitung ein eingelaufenes Paket weitergeleitet werden soll. Im Prinzip läft die Entscheidung innerhalb des Routers folgendermaßen ab:

Beim Routing werden diverse Ziele verfolgt:

Es gibt eine Reihe von Routingverfahren, die sich hinsichtlich Zentralisierung und Dynamik unterscheiden:

Routingverfahren lassen sich in folgende Teile aufteilen:

 

Statisches Routing

Statisches Routing (Static Routing, Directory Routing) ist nicht adaptiv und einfach aber sehr häufig benutzt. Die Eigenschaften sind:

 

Zentralisiertes Routing

Zentralisiertes Routing arbeitet auf einem zentralen Knoten (Routing Control Center RCC). Es handelt sich um ein adaptives Verfahren: In großen Netzen dauert die Berechnung sehr lange. Durch Ausfall des RCC kann das gesamte Netz inoperabel werden.

 

Isoliertes Routing

Beim isolierten Routing wird die Wegewahl von jedem Knoten nur aufgrund von Informationen, die er selber sammelt, getroffen. Eine Anpassung an den den globalen Zustand eines Netzes ist nur mit Hilfe beschränkter Informationen möglich.

 

Verteiltes adaptives Routing

Diese Verfahren sind gekennzeichnet durch:

 

Hierarchisches Routing

Bei großen Netzen ist die Speicherung und Übermittlung von Routing-Tabelle kaum noch möglich (Speicherplatz, Netzbelastung). Desweiteren verlangsamt das Durchsuchen langer Tabellen die Weiterleitung der Pakete erheblich. Daher verfährt man wie folgt:

mit freundlicher Unterstützung von Herrn Prof. Jürgen Plate