In der TCP-IP-Visualisierung sehen wir, was bei einem Webseiten-Aufruf passiert. Aber woher weiss der Router (das Gerät in der Mitte) überhaupt, wohin das Paket mit einer Ziel-IP geschickt werden muss? Antwort: er schaut in seiner Routing-Tabelle nach.
Routing beschreibt die Weiterleitung von IP-Paketen in der Vermittlungsschicht des Internet.
Das Internet ist hierarchisch aufgebaut. Das heisst, dass ein lokales Netz (Subnetz) erst mal für sich funktioniert, aber dass mehrere Subnetze über Router miteinander verbunden sind1).
Die Vermittlungsschicht bietet ja den Ende-zu-Ende-Transport von Paketen. Bei der Weiterleitung bleiben die Quell- und Ziel-Adressen eines Pakets also immer die gleichen, so wie auch die Postadresse eines Pakets während des Transports nicht verändert wird (Ausnahme: NAT).
Jedes Gerät im Internet unterhält eine Routing-Tabelle. Diese definiert, was passiert, wenn das Gerät auf der Netzzugangs-Schicht ein Paket mit seiner MAC-Adresse empfängt. Die Handlung hängt nur von der Ziel-IP-Adresse ab:
Ziel-IP | Handlung |
---|---|
Gehört dem Gerät selbst | Paket empfangen |
Im gleichen Subnetz wie das Gerät | Paket direkt an das Zielgerät senden |
Alles andere | An den Router (auch Gateway) senden zur Weiterleitung |
Die Adresse des Routers wird den Endgeräten normalerweise zusammen mit der IP-Adresse, der Subnetz-Grösse und dem DNS-Server mitgeteilt, wenn sie sich mit dem Netzwerk verbinden.
Die Routing-Tabelle verwendet Subnetz-Adressen, um die Routing-Information zu beschreiben. Bei Windows-Systemen wird manchmal statt der CIDR-Notation noch die Kombination von Adresse und Subnetz-Maske verwendet.
Ziel-Netz | Router | Handlung |
---|---|---|
1.1.3.2/32 | – | Paket empfangen (eigene Adresse) |
1.1.3.0/24 | – | Direkt versenden, Ziel im gleichen Subnetz 1.1.3.* |
0.0.0.0/0 | 1.1.3.1 | Alles andere: An den Router (auch Gateway) 1.1.3.1 senden zur Weiterleitung |
Dabei bedeutet ein Präfix der Länge /32
, dass nur genau die aufgeführte IP-Adresse gemeint ist. Speziell ist ein Tabelleneintrag mit dem Netz 0.0.0.0/0
: dies bedeutet, dass kein einziges Bit der Ziel-IP relevant ist - der Eintrag passt also zu allen IP-Adressen und wird deshalb auch default route genannt. Die default route bestimmt, was mit Paketen passiert, für die es keinen anderen Eintrag gibt. Es sollte in einer Routing Tabelle somit nur eine einzige default route geben. Oft wird sie auch mit dem *
markiert.
Die Routing-Tabelle lässt sich mit den Befehlen netstat -rn
(Mac, Linux), route print
(Windows) oder ip route show
(Linux) anzeigen
.
Router sind die Knoten, die das Internet zusammenhalten. Ein Router ist nicht nur Teil eines einzigen, sondern mindestens von zwei Subnetzen. Er kann Pakete zwischen den zwei Netzen vermitteln.
Die Routing-Tabelle eines Routers ist dementsprechend etwas aufwändiger. Sie listet für jeden bekannten IP-Bereich auf, wer der next hop ist, also der Router, der ein Stück näher an der Destination ist:
IP-Präfix | Router | Handlung |
---|---|---|
1.1.3.1/32 | – | Paket empfangen (eigene Adresse) |
3.3.3.3/32 | – | Paket empfangen (eigene Adresse) |
1.1.3.0/24 | – | Direkt versenden über Netzwerkkarte 1, Ziel im gleichen Subnetz 1.1.3 |
3.3.3.0/24 | – | Direkt versenden über Netzwerkkarte 2, Ziel im gleichen Subnetz 3.3.3 |
1.1.1.0/24 | 3.3.3.2 | Weiterleiten über 3.3.3.2 |
1.1.8.0/24 | 3.3.3.8 | Weiterleiten über 3.3.3.8 |
1.1.6.0/24 | 3.3.3.4 | Weiterleiten über 3.3.3.4 |
0.0.0.0/0 | 3.3.3.1 | Default-Route: An den Router (auch Gateway) 3.3.3.1 senden zur Weiterleitung |
Um die richtige Handlung herauszufinden, kann es nötig sein, mehrmals in der Tabelle nachzuschlagen. Beispielsweise erhält der obige Router ein Paket für 1.1.6.6.
Auf die gleiche Weise sind alle Subnetze des Internets über Router miteinander verbunden.