Router
Willemers Informatik-Ecke
Ein Router vermittelt Pakete in der IP-Schicht. Dazu ist typischerweise mit zwei Netzwerkschnittstellen ausgestattet.

Default-Route

Die Hosts in einem Netzwerk erreichen ihre Partner im eigenen Netzwerk direkt über deren IP-Adresse. Wenn man es genau nimmt, werden die Pakete sogar über ihre Hardware-Adresse versendet, die sie per ARP ermitteln.

IP-Adressen, die nicht zum eigenen Netzwerk gehören, werden pauschal an den Default-Router versendet. Die Adresse dieses Routers erfährt der Host in der Regel durch das DHCP beim Start.

Der Default-Router kann aber auch von Hand umgestellt werden. Das folgende Beispiel löscht zunächst die bisherige Default-Route, um dann den Router 192.168.109.8 anzumelden. Statt dem Schlüsselwort default kann bei IPv4 auch 0.0.0.0 verwendet werden.

route del default
route add default gw 192.168.109.8

Statische Routing-Tabellen

Jeder Host hat eine Routing-Tabelle, mit der er feststellen kann, an welchen Router er sich wenden soll, um unterschiedliche Netzwerke zu erreichen. Auch wenn es aufgrund der leichteren Konfiguration sinnvoll ist, die Routing-Entscheidung auf den Router zu verlagern, ist es möglich, auch jeden einzelnen Host entscheiden zu lassen, wo ein Paket hingeht.

Die Routing-Tabelle lässt man sich mit dem Befehl route -n oder netstat -nr anzeigen.

$ netstat -nr
Kernel-IP-Routentabelle
Ziel            Router          Genmask         Flags   MSS Fenster irtt Iface
0.0.0.0         192.168.109.2   0.0.0.0         UG        0 0          0 enp0s25
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 enp0s25
192.168.109.0   0.0.0.0         255.255.255.0   U         0 0          0 enp0s25
Sollen die Datenpakete in eine interne Netzwerkstruktur umgeleitet werden, können solche Tabellen auch umfangreicher werden, wie das Beispiel einer Firma mit Filialen zeigt.

Dynamisches Routing

Das Internet ist in der Lage, Leitungsunterbrechungen zu umlaufen, ohne dass Administratoren eingreifen. Dies ist nur dadurch möglich, dass die Routing-Tabellen dynamisch sind und bei Ausfall durch andere Routen ersetzt werden können.

Dazu erfassen die Router die Laufzeiten von alternativen Routen zu Zielen als Metriken. Der Informationsaustausch und die Änderung der Routing-Tabellen erfolgt im Internet über das Border Gateway Protocol oder auch Exterior-Gateway-Protokoll (EGP) bezeichnet. Für interne Routing-Abläufe wird das Routing Information Protocol (RIP) verwendet.

Tunneling durch verschlüsselten Kanal

Das Paket wird als Payload in ein IP-Paket gesetzt, das als neues Ziel den Endhost des Tunnels angibt. Als neuer Absender wird das Gateway am Anfang des Tunnels eingesetzt.

Weiterleiten von Paketen: Forwarding

Ein Linux-System mit zwei Schnittstellen wird nicht automatisch Pakete von einer Schnittstelle zur anderen tragen, auch wenn die Schnittstellen unterschiedliche IP-Netzwerke darstellen. Dies muss erst aktiviert werden.

Dazu wird der "Schalter" ip_forward umgeschaltet. Für den Zugriff auf solche Schalter stellt Linux im Pseudoverzeichnis /proc einen Zugriff auf die Prozesstabelle bereit. Über die virtuellen Unterverzeichnisse sys und net kommt man zur Netzwerkkonfiguration.

Je nach IP-Version muss man nun das Verzeichnis ipv4 oder ipv6 verwenden und darin die virtuelle Datei ip_forward mit einer 1 oder 0 füllen. Standarmäßig steht sie auf 0, also kein Forwarding.

Um eine 1 in die Datei zu bekommen, verwendet man den Befehl echo um eine 1 auf dem Bildschirm auszugeben, leitet die Ausgabe aber dann mit einem Größerzeichen auf die virtuelle Datei um:

echo 1 > /proc/sys/net/ipv4/ip_forward

Ausgelesen wird die Datei mit dem Befehl cat.

cat /proc/sys/net/ipv4/ip_forward

Fragmentierung

Manche Geräte können nur kleinere Pakete weiterleiten. Darum werden Pakete auf dem Transport zerteilt. Da das Zusammensetzen nicht ohne Aufwand zu machen ist, bleibt es bei der Fragmentierung.

Bei IPv4 erfolgt die Fragmentierung durch die Router. Bei IPv6 erhält der Sender eine entsprechende ICMPv6-Aufforderung und sendet das Paket zerteilt.

Zusätzliche Leistungen eines Routers

Ein Router ist in erster Linie für die Verteilung von IP-Paketen zuständig und damit ein Gerät des Network-Layers.

Häufig sind diese Geräte allerdings mit weiteren anderen Geräten kombiniert, die nicht eigentlich zum Network-Layer gehören:

Auf Software-Ebene integrieren sie häufig auch Leistungen anderer Schichten, schon allein, weil der Router an einer entsprechenden Stelle im Netzwerk positioniert ist.

LAN-Zugriff von außen: Port-Forwarding

Manchmal möchte man genau das erreichen, was NAT unterbindet: Einen Computer im lokalen Netzwerk von außen erreichbar machen.

Einstellungen im Router

Soll beispielsweise der Außendienstmitarbeiter Zugriff auf den Intranet-Server bekommen, muss dieser mit seinem Port 80 (besser wäre natürlich 443) von außen erreichbar sein. Das geht aber so einfach nicht.

Die meisten Router bieten aber die Möglichkeit an, einen Port des Routers weiterzuleiten. Dazu wird in der Konfiguration des Routers ein Port eingestellt und welcher der lokalen Computer sich um Anfragen dieses Ports kümmert. Sie werden dann einfach an den Computer durchgereicht.

Dynamischer Domain Name Service (DDNS)

Dabei entsteht den meisten Routern ein Problem, weil viele Provider die IP-Adresse des Routers täglich tauschen. Auf diesem Grund müsste man von außen wissen, welche IP-Adresse heute dran ist.

Eine Lösung ist das DDNS, das in den meisten Routern konfigurierbar ist. Sobald dem Router eine neue IP-Adresse zugeteilt wird, meldet er diese an einen DDNS-Dienstleister, der die neue IP-Adresse mit einem Hostname seiner Domain verbindet. Auf diese Weise ist der Router immer unter diesem Namen, wenn auch unter ständig wechselnden IP-Adressen zugreifbar.

Problem des Providers

Nicht jeder Provider ist in der Lage (oder willens), jedem Kunden eine eigene routingfähige IP-Adresse zur Verfügung zu stellen. Dann steht zwischen den Kunden-Routern und dem Internet noch einmal ein NAT.

Die Konsequenz ist, dass der Kunde kein Port-Forwarding betreiben kann, weil sein Router von außen nicht erreichbar ist.

Zugriff von außen ohne Port-Forwarding

Diverse Network Attached Storage (NAS) bieten die Möglichkeit, dass man auch mit seinem Smartphone von unterwegs auf die Daten des kleinen Dateiservers zugreifen kann. Dazu sei keine Manipulation am Router notwendig.

Hier ist Vorsicht geboten. Denn hinter einer NAT ist die NAS eigentlich von außen unerreichbar. Damit das Smartphone das NAS überhaupt erreichen kann, ist ein Helfershelfer notwendig, der die Kommunikation umdreht. Der NAS fordert quasi das Smartphone an. Da aber auch der NAS nicht wissen kann, wo im weiten Internet das Smartphone zu finden ist, muss wohl ein Hersteller-Server die Brücke schlagen. Und da steht zu befürchten, dass dieser Server dann auch die Daten mitlesen kann.