Router in IP-Netzwerken

Ein Rechner kann normalerweise nur innerhalb des eigenen Netzwerks kommunizieren. Um in ein anderes Netzwerk zu gelangen, benötigt man ein Gerät, das die Datenpakete weiterleitet. Diesen Vorgang nennt man Routing und das Gerät, das die Aufgabe dafür übernimmt, nennt man Router. IP bzw. TCP/IP ist grundsätzlich routingfähig, ohne diese Fähigkeit würde das Internet nicht funktionieren. Das Internet besteht aus vielen kleinen Netzwerken, die über viele Router miteinander vernetzt sind und die dafür sorgen, dass die Datenpakete ankommen. Auch in Firmennetzwerken werden Router eingesetzt, einerseits damit die Mitarbeiter Zugang ins Internet haben und andererseits, um den Zugriff auf andere Netzwerke zu ermöglichen.

Ein Router kann sowohl als Hardwarerouter oder Softwarerouter betrieben werden. Hardwarerouter sind speziell für das Routing ausgelegt und bieten zusätzliche nützliche Funktionen. Softwarerouter werden meistens auf Servern eingesetzt, die nebenbei noch andere Aufgaben zu erfüllen haben. Der Vorteil dabei ist, dass man lediglich eine Routingsoftware installieren muss und der Preis für einen Router eingespart werden kann. Dafür sind Softwarerouter meistens nicht so schnell und haben kaum Zusatzfunktionen.

Funktionsweise eines Routers

Wird ein Datenpaket in das Netzwerk gesendet, prüft das IP-Protokoll, ob das Datenpaket für das eigene Netzwerk bestimmt ist. Dabei wird die eigene IP-Adresse und die Subnetzmaske mit der IP-Adresse und Subnetzmaske des Ziels verglichen und so die Netzwerk-ID ermittelt. Befindet sich das Ziel im eigenen Netzwerk, wird das Datenpaket direkt an die Zieladresse geleitet. Sind die beiden Netzwerk-ID's unterschiedlich, wird das Datenpaket an den Router geschickt. Der Router hat für beide Netzwerke eine IP-Adresse, besitzt somit eine Schnittstelle zu beiden Netzwerken und prüft anhand der Routingtabelle, ob es möglich ist, das Datenpaket an das andere Netzwerk weiter zu leiten. Ist es möglich, schickt der Router die Daten in das andere Netzwerk.

Funktionsweise eines Routers

Routingtabelle

Ein Systemadministrator kann auf dem Router oder auf sonstigen Rechnern jederzeit die Routingtabelle einsehen. Hierfür wird die Kommandozeile geöffnet und der Befehl route print eingegeben. Als Ergebnis erhält man eine Tabelle mit fünf Spalten. Sie haben folgende Bedeutung:

  • Netzwerkziel: Hier sind die Netzwerk-ID's der Zielnetze aufgelistet.
  • Netzwerkmaske: Die zugehörige Subnetzmaske für das Zielnetz.
  • Gateway: Der Gateway gibt an, wohin das Datenpaket geschickt wird, um das Netzwerkziel zu erreichen. Ist man bereits direkt an das Netzwerk angeschlossen, steht in der Spalte Auf Verbindung. Ansonsten die IP-Adresse des Routers, der die Weiterleitung übernimmt.
  • Schnittstelle: Die Schnittstelle ist die IP-Adresse der Netzwerkkarte, über die das Datenpaket an das Ziel geschickt wird.
  • Metrik: Jede Route wird anhand von "Kosten" ermittelt. Je niedriger die Kosten sind, umso schneller gelangt man an das Ziel. Wenn für ein Zielnetzwerk mehrere Routen vorhanden sind, wird automatisch die Route mit den niedrigsten Kosten genommen. Je mehr Router zwischen geschaltet sind, umso höher sind die Kosten. Die Metrik kann auch vom Systemadministrator selbst festgelegt werden, um die Routen zu beeinflussen.
Routingtabelle
Tabelle mit Informationen über Netzwerke

Das Netzwerkziel mit der Subnetzmaske 0.0.0.0 ist die Standardroute. Alle Pakete, für die kein passender Eintrag gefunden wird, werden in diesem Beispiel über die IP-Adresse 192.168.1.107 an das Gateway unter 192.168.1.1 geschickt. Darunter fallen z.B. alle Internetseiten, denn sie befinden sich nicht im eigenen Netzwerk und normalerweise existieren hierfür auch keine Routingeinträge.

Das Netzwerkziel 127.0.0.0 ist die Loopbackadresse und ist immer für den lokalen PC reserviert. Die Pakete, die an das Netzwerkziel gesendet werden, verlassen den PC nicht. Beispielsweise könnte man auf dem lokalen PC einen Webserver einrichten und über die IP-Adresse 127.0.0.1 testen. 127.255.255.255 ist die Broadcastadresse des Netzwerks 127.0.0.0.

Das Netzwerk 169.254.0.0 ist ein Bereich für die Automatische IP-Adressierung, auch APIPA genannt. Wenn kein DHCP-Server gefunden wird, um eine IP-Adresse zu erhalten, vergeben sich die Rechner selbständig automatisch eine IP-Adresse aus diesem Bereich.

Die Netzwerke 192.168.1.0, 192.168.40.0 und 192.168.179.0 sind in diesem Beispiel lokale Netzwerke, mit denen man verbunden ist und über die IP-Adressen 192.168.1.107, 192.168.40.1 oder 192.168.179.1 erreicht werden können. Für jedes Netzwerk gibt es auch hier eine Broadcastadresse.

224.0.0.0 sind Netzwerke für Multicastsendungen und 255.255.255.255 für Broadcastsendungen für die jeweiligen Netzwerke.

Router haben eine feste IP-Adresse. Das heißt, sie werden nicht dynamisch durch einen DHCP-Server zugewiesen. Sonst würden die Routingtabellen fehlerhaft sein und das Routing würde nicht funktionieren. Daher sollte man auch nach Möglichkeit nicht die IP-Adresse ändern, sonst muss man die Routingtabellen ebenfalls anpassen.

Unbekannte Route hinzufügen

Wenn das Netzwerk direkt an den Router angeschlossen ist, gibt es normalerweise keine Probleme, mit dem Netzwerk zu kommunizieren. Problematisch wird es, wenn das Zielnetzwerk nicht direkt an den Router angeschlossen ist, die Datenpakete den Weg über mehrere Router nehmen müssen und der Router das andere Netzwerk nicht kennt.

Wenn z.B. ein Rechner aus dem Netzwerk 172.16.178.0 mit einem Rechner aus dem Netzwerk 192.168.178.0 kommunizieren möchte, werden die Datenpakete an den Router 1 geschickt. Router 1 schaut in seine Routingtabelle und bemerkt, dass er nur Schnittstellen zu 172.16.178.0 und 10.168.178.0 hat und daher das Netzwerk 192.168.178.0 nicht kennt. In dem Fall müssen auf Router 1 und Router 2 die jeweils unbekannten Netzwerke eingetragen bzw. die Routen müssen hinzugefügt werden. Damit eine Kommunikation möglich ist, muss sowohl die Hinroute als auch die Rückroute funktionieren.

Mehrere Netzwerke routen
Routing über mehrere Router

Eine Route wird über die Kommandozeile mit folgendem Befehl hinzugefügt:

route add "Netzwerk-ID" mask "Subnetzmaske" "Gateway"

In diesem Beispiel wäre der Befehl für Router 1 wie folgt:

route add 192.168.178.0 mask 255.255.255.0 10.168.178.1

Für Router 2:

route add 172.16.178.0 mask 255.255.0.0 10.168.178.2

Befehl route add
Kommandozeile auf Router 1
Route add auf Router 2
Kommandozeile auf Router 2

Als Gateway gibt man die IP-Adresse an, über die man das hinzugefügte Netzwerk erreichen kann. Die unterschiedlichen Subnetzmasken kommen durch die unterschiedlichen Adressklassen. Netzwerk 1 ist ein Klasse B Netzwerk und Netzwerk 3 ein Klasse C Netzwerk.

Route entfernen

Eine Route kann auch wieder entfernt werden. Hierfür gibt man folgenden Befehl ein:

route delete "Netzwerk-ID"

Route ändern

Eine Route kann auch geändert werden, wobei lediglich der Gateway oder die Metrik geändert werden kann. Hierfür gibt es folgenden Befehl:

route change "Netzwerk-ID" mask "Subnetzmaske" "Neuer Gateway" metric "neue Metrik"

Die Metrik kann übrigens auch beim Hinzufügen angegeben werden.

Routingtabellen auf den Clients

Manchmal kann es notwendig sein, auch auf den Clients die Routingtabellen anzupassen. Wenn man das Beispiel betrachtet, fällt auf, dass Netzwerk 2 mit 2 Routern verbunden ist. Somit gibt es keinen Standardgateway. Möchte z.B. ein Client aus Netzwerk 2 mit einem Rechner aus Netzwerk 1 kommunizieren, weiß der Client nicht, welcher Router angesprochen werden soll. In solchen Fällen müssen auf den Clients die Routingtabellen ebenfalls angepasst werden. Eine solche Konstellation sollte nach Möglichkeit vermieden werden, da es sehr viel Aufwand bedeutet, die Routingtabellen auf den Clients aktuell zu halten.