Die Aufgabe der Netzwerkschicht ist es, Datenpakete von einem Host zu einem anderen zu transportieren, beispielsweise von meinem Arbeitsplatz aus dem LAN in die weite Welt des Internets zu dem Host, auf dem der Webserver installiert ist, von dem ich Webseiten anfordern möchte.
Internet Protocol und seine Adressen
Ein Host befindet sich in einem Netzwerk. Handelt es sich um das gleiche lokale Netzwerk (LAN), wird der Host über seine Hardware-Adresse, der MAC, angesprochen. Ansonsten wird der Router ausfindig gemacht, der in das fremde LAN führt.Die IP-Adresse unterscheidet also zwischen Netzwerk-Adresse und der Adresse des Hosts in dem Netzwerk.
IPv4
Das derzeit verwendete Protokoll Internet Protocol Version 4 (IPv4) verwendet 32 Bit große Adressen. Mit 32 Bit lässt sich ein Zahlenraum von 0 bis zu 4 Milliarden darstellen. Das entsprach in den 1980er Jahren knapp dem Umfang der Weltbevölkerung. Aus der damaligen Sicht genug, da dann ja jeder Mensch einen eigene Computer haben könnte. Das war seinerzeit unvorstellbar, da Computer noch kühlschrankgroß waren und soviel kosteten wie ein Eigenheim. Da inzwischen tatsächlich jeder Mensch ein Smartphone hat und es darüber hinaus jede Menge anderer Internet-Teilnehmer gibt, ist ein Umstieg auf IPv6 seit Jahrzehnten dringend notwendig.
IPv4-Adressen
IPv4-Adressen sind 32 Bit lang, also 4 Byte. Jedes Byte wird dezimal dargestellt und zur Unterteilung durch einen Punkt getrennt. Diese Darstellung bezeichnet man als dotted decimal. Beispielsweise:192.168.109.199
Die IPv4-Adresse hat einen Netz- und einen Hostanteil, der heutzutage in der CIDR-Schreibweise per Schrägstrich dargestellt wird. Beispielsweise 192.168.109.199/24, wenn die Netzwerkadresse 24 Bit einnimmt.
In der klassischen Darstellung wird eine Subnetmask verwendet, die der IP-Adresse ähnelt und für jedes Bit der Netzwerkadresse eine 1 setzt, etwa 255.255.255.0 statt der CIDR-Darstellung /24.
Private Adressen und das NAT
Die IPv4-Adressenknappheit hätte schon viel früher zu Katastrophen geführt, wenn man nicht dazu übergegangen wäre, lokale Netzwerke vom Internet so abzukoppeln, dass die Hosts im LAN nur noch eine internetfähige IP-Adresse benötigen.Die Idee ist, dass der Router eine internetfähige IP-Adresse vom Provider erhält und stellvertretend für das lokale Netzwerk die Internetaktivitäten übernimmt. Das Verfahren nennt sich NAT Network Address Translation und erhmöglicht es, den Hosts im LAN beliebige Adressen zu vergeben. Typischerweise verwendet man private Adressen, die im Internet nicht weitergeleitet werden. So kann dieser Nummernkreis in beliebig vielen LANs parallel verwendet werden.
Routing
Die Hauptaufgabe der Netzwerkschicht und damit des Internet Protokolls ist es, die Pakte von einem Host zu einem anderen zu bekommen. Dabei besteht die größte Problematik darin, den Pfad zum Zielrechner zu finden.Computer im eigenen LAN sind kein Problem - oder genauer gesagt, ein Problem der Verbindungsschicht.
Das IP befasst sich mit dem Transport der Pakete durch die Netzwerke hin zum Zielnetzwerk, in dem sich der Ziel-Host befindet. Damit besteht die Hauptaufgabe, des IPs darin, den nächsten Router zu finden.
Routingtabelle
Dazu verfügt jeder Host im Netzwerk über eine Routingtabelle, die Auskunft darüber gibt, welcher Router über welche Schnittstelle verfügbar ist, um welches Netzwerk zu erreichen.Die Routingtabelle lässt sich mit den Befehlen route -r, netstat -nr oder ip route anzeigen.
$ route -n Kernel-IP-Routentabelle Ziel Router Genmask Flags Metric Ref Use Iface 0.0.0.0 193.175.183.1 0.0.0.0 UG 100 0 0 enp0s25 0.0.0.0 172.16.80.1 0.0.0.0 UG 600 0 0 wlp2s0 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 enp0s25 172.16.80.0 0.0.0.0 255.255.240.0 U 600 0 0 wlp2s0 193.175.183.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s25
- Die Zieladresse 0.0.0.0 wird auch default genannt. Hier werden alle Pakete hingesandt, für die es kein explizites Ziel gibt. Typischerweise verweist sie auf den Router, der ins Internet führt.
- Es gibt eine zweite Default-Route, die allerdings über ein anderes Interface auf einen anderen Router verweist. Hier ist es der WLAN-Adapter.
- Die Adresse 168.254.0.0 wird für eine Zeroconf-Technik verwendet, wie beispielsweise Rendevouz bzw. APIPA
- Die Adresse 193.175.183.0 ist das lokale Netzwerk für den Ethernetanschluss.
- Die Adresse 172.16.80.0 ist das lokale Netzwerk für die WLAN-Verbindung.
- Unter der Überschrift Router sieht man die jeweilige Adresse des Gateways, also des Routers, der diesen Tabelleneintrag bedient. Die Adresse 0.0.0.0 ist in diesem Fall kein Router, sondern die eigene Schnittstelle.
- Unter der Überschrift Iface ist das Ethernetinterface emp0s25 und der WLAN-Adapter wlp2s0 zu sehen.
- Unter der Überschrift Metric steht die Gewichtung des jeweiligen Eintrags. Ein kleiner Wert wird gegenüber einem hohen Wert bevorzugt. So kann eine Ausfallroute gekennzeichnet werden, falls die Hauptroute ausfällt.
Statisches Routen
Der Der Router ist das wichtigste Netzwerkgerät der IP-Schicht. Das IP beschäftigt sich damit, Pakete zu dem Router zu bringen, der letztlich die beste Route zum Zielrechner hat.Die Verbindungen innerhalb einer Firma werden typischerweise von Hand gesetzt. Man spricht vom statischen Routen.
Das folgende Beispiel zeigt eine Firma, die ihren Hauptsitz in Norgaardholz und ihren Zweitsitz in Gintoft hat. Zwei kleinere Filialen sind in Frankfurt und Hamburg vorhanden. Für die Hosts in Gintoft, Frankfurt und Hamburg reicht eine Default-Route auf ihren Router. Der Router in Norgaardholz dagegen muss die Pakete in die entsprechenden Filialen weiterleiten. Die Situation würde sich ändern, wenn die PCs auch einen Zugriff auf das Internet bekommen sollten.
Verbindungen von mehreren Standorten einer Firma wurden in den 1990er Jahren typischerweise mit ISDN über digitale Telefonleitungen realisiert.
VPN - Der Tunnel durch das Internet
Heutzutage ist ISDN nicht zu langsam, sondern auch zu teuer. Es bietet sich an, solche Verbindungen über das Internet zu erstellen. Allerdings ist das Internet unsicher und kann abgehört werden. Um dies zu unterbinden, wird ein Tunnel über die SSH-Bibliothek erstellt und so ein verschlüsselter Tunnel durch das Internet gebaut.Eine offene Implementierung ist openVPN.
Dynamisches Routing
Im Internet oder in sehr großen Netzwerken ist der Aufbau und die Verwaltung statischer Routingtabellen nicht sinnvoll. Darum gibt es dynamische Verfahren, die Informationen zwischen den Routern austauschen und deren Routingtabellen dynamisch ändern. So können Einträge hinzugefügt und gelöscht werden, aber vor allem die Metriken so verändert werden, dass der Routenpfad bei Änderung der Qualität geändert wird.
Interior Gateway Protocol
Für interne Routing-Abläufe war das Routing Information Protocol (RIP) lange Zeit standard. Es verwendet den Distance-Vector-Algorithmus, fragt die Nachbar-Router nach deren Routing-Tabellen. Verspricht eine neue Route eine kürzere Distanz, wird die alte gelöscht.Abgelöst wurde RIP durch OSPF (Open Shortest Path First). Es basiert auf dem Kürzester-Pfad-Algorithmus von Dijkstra, den man auch aus den Navigationsgeräten im Auto kennt.
Die Interior Gateway Protkolle benötigen in der Regel die Kenntnis der kompletten Netzwerkstruktur. Auch wenn diese sich diese Kenntnis selbstständig aneignen, ist dies für das Internet nicht brauchbar.
Exterior-Gateway-Protocol
Im Internet ist eine vollständige Kenntnis des Netzwerks nicht möglich. Der Informationsaustausch und die Änderung der Routing-Tabellen erfolgt im Internet typischerweise über das Border Gateway Protocol. Dazu erfassen die Router die Laufzeiten von alternativen Routen zu Zielen als Metriken und korrigieren sie in Abstimmung mit den benachbarten Routern.IPv6
Die nächste Generation von IP ist bereits seit Jahrzehnten am Start. Das Hauptproblem des bisherigen IPv4 ist und bleibt die Knappheit an freien IP-Adressen. Das Problem wurde hauptsächlich durch NAT entschärft, aber erst durch IPv6 wird es behoben sein, weil die Adressbreite von 32 auf 128 Bit erhöht wurde.Nährere Informationen zu IPv6 finden Sie auf der Informatik-Ecke-Seite zum Thema IPv6.