Routingtabelle
Jeder Host im Netzwerk verfügt über eine Routingtabelle, die Auskunft darüber gibt, welcher Router über welche Schnittstelle verfügbar ist, um welches Netzwerk zu erreichen. Natürlich hat auch ein Router eine solche Tabelle.
Nr | Ziel | Subnet | Router | Device | Metrik |
---|---|---|---|---|---|
1 | 193.175.183.0 | 255.255.255.0 | 0.0.0.0 | enp0s25 | 100 |
2 | 0.0.0.0 | 0.0.0.0 | 193.175.183.1 | enp0s25 | 200 |
3 | 193.175.182.0 | 255.255.255.0 | 193.175.183.2 | enp0s25 | 100 |
4 | 169.254.0.0 | 255.255.0.0 | 0.0.0.0 | enp0s25 | 1000 |
- 1. Diese Route zeigt ins eigene Netzwerk und wird automatisch erstellt, sobald der Host seine IP-Adresse erhält.
- 2. Eine Route mit dem Ziel 0.0.0.0 ist eine Default-Route. und weist auf die Adresse des Gateways für alle Netzwerkadressen, die nicht explizit aufgelöst werden.
- 3. Diese Route zeigt in ein anderes LAN mit der Adresse 193.175.182.0/24, das über den Router 193.175.183.2 erreicht wird.
- 4. Die Adressen 169.254.0.0/16 sind für ZeroConf reserviert. Damit erhalten Hosts, die weder per DHCP noch manuell eine IP-Adresse bekommen haben, die Möglichkeit, miteinander zu kommunizieren.
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 enp0s25Sollen die Datenpakete in eine interne Netzwerkstruktur umgeleitet werden, können solche Tabellen auch umfangreicher werden, wie das Beispiel einer Firma mit Filialen zeigt.
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:
- Viele Router haben mehrere LAN-Anschlüsse und dienen so als "Mehrfachsteckdose" für LAN-Kabel. Damit integrieren sie einen Hub beziehungsweise Switch.
- Manche Router haben eine Antenne und beherrschen damit WLAN. In diesem Fall arbeiten sie als Access Point oder Hot Spot.
- Eine Firewall sorgt dafür, dass Pakete von außen nur eindringen, wenn sie auch angefordert wurden.
- Da im IPv4 ständig Adressknappheit herrscht, haben die meisten Netzwerke nur eine routingfähige IP-Adresse. Diese wird über einen NAT-Mechanismus - auch Masquerading genannt - auf die Hosts des lokalen Netzwerks umgeschlagen, damit auch mehrere Hosts einen Zugriff auf das Internet erhalten.
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.