Warum alle Geräte zu Hause eine Adresse teilen
NAT (Network Address Translation) lässt viele Geräte mit privaten Adressen über eine einzige öffentliche Adresse ins Internet gehen. Ohne NAT wären die IPv4-Adressen längst aufgebraucht.
Dein Handy, dein Laptop und der Fernseher teilen sich zu Hause eine Adresse. Heute siehst du, woran der Router erkennt, welche Antwort für wen ist.
Am Ende dieser Lektion
Notiz
Ich kann erklären, wie viele Geräte sich eine Adresse teilen.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| NAT | der Router tauscht private Adressen gegen die öffentliche aus | |
| Port | eine Nummer, die ein Programm auf einem Gerät benennt | 443 |
| NAT-Tabelle | die Liste, die zeigt, welche Antwort zu welchem Gerät gehört | |
| Portweiterleitung | eine feste Regel, die Anfragen von außen an ein Gerät drinnen schickt | |
| Gateway | der Router zwischen privatem Netz und Internet |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Bevor du anfängst
Notiz
Dies ist wieder ein anderes Lab. Drück oben in der Leiste auf Lab starten und warte, bis die Maschine läuft. Im Lab stehen drei Maschinen: lan ist ein Gerät im privaten Netz, gw ist das Gateway, srv ist ein Server im Internet.
Das Problem: private Adressen kommen nicht zurück
Ein Gerät mit der Adresse 10.0.0.2 schickt eine Anfrage an einen Server im Internet. Der Server soll antworten, aber 10.0.0.2 gibt es dort nicht. Die Antwort würde ins Leere gehen.
Darum tauscht das Gateway beim Hinausgehen die private Adresse gegen seine öffentliche aus. Das ist NAT. Der Server schickt die Antwort an das Gateway.
Die drei Maschinen des Labs auflisten
netlab statusHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die private Adresse von lan lesen
sudo ip netns exec lan ip -br addrHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die zwei Adressen des Gateways lesen
sudo ip netns exec gw ip -br addrHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Adressen im Lab
| Maschine | Netz | Adresse |
|---|---|---|
| lan | privat | 10.0.0.2 |
| gw innen | privat | 10.0.0.1 |
| gw außen | Internet (Dokumentationsbereich) | 203.0.113.1 |
| srv | Internet (Dokumentationsbereich) | 203.0.113.2 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ports unterscheiden die Gespräche
Ein Gerät führt viele Gespräche gleichzeitig: Webseite, Musik, Chat. Jedes hat eine Nummer, den Port. Der Browser hört nicht auf Port 443, er schickt dorthin und benutzt selbst eine zufällige Nummer.
Das Gateway merkt sich für jedes Gespräch ein Paar: privates Gerät und Port gegen eigene öffentliche Portnummer.
Beispiel: eine NAT-Tabelle mit drei Gesprächen
| Privat | Außen (Gateway) | Ziel |
|---|---|---|
| 10.0.0.2:51000 | 203.0.113.1:40000 | 203.0.113.2:8000 |
| 10.0.0.2:51001 | 203.0.113.1:40001 | 203.0.113.2:8000 |
| 10.0.0.3:51000 | 203.0.113.1:40002 | 203.0.113.2:8000 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Die Antwort findet ihren Weg über den Port
Die Antwort kommt an 203.0.113.1:40002 an. Das Gateway schaut in die Tabelle: 40002 gehört zu 10.0.0.3:51000. Es tauscht die Adresse zurück und reicht das Paket weiter.
Die Tabelle sieht den Unterschied zwischen zwei Geräten, die beide den Port 51000 benutzen. Die Ports außen sind eindeutig.
Die Verbindungen ansehen, die das Gateway sich merkt
sudo ip netns exec gw conntrack -LHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ein häufiger Fehler
Warnung
Viele denken, NAT sei eine Firewall und schütze darum jedes Gerät. NAT ändert nur Adressen. Dass von außen nichts hineinkommt, liegt daran, dass es keine Tabellenzeile für Anfragen von außen gibt. Eine Weiterleitung kann diese Lücke aufmachen.
Portweiterleitung öffnet einen Weg von außen
Du willst einen Server im Heimnetz von außen erreichen, etwa ein Spiel mit Freunden. Von außen gibt es keine Tabellenzeile dafür.
Mit einer Portweiterleitung sagst du dem Gateway fest: Alles, was auf Port 8080 ankommt, geht an 10.0.0.2 auf Port 80. Das gilt nur für diesen einen Port, alles andere bleibt zu.
Die Regeln lesen, mit denen das Gateway startet
sudo ip netns exec gw nft list rulesetHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Eine Anfrage von lan an srv schicken
sudo ip netns exec lan curl --noproxy '*' -s -m 3 http://203.0.113.2:8000/Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Weiterführend: was bei zu vielen Gesprächen passiert
Ein Port ist eine Zahl bis 65 535. Das Gateway hat also höchstens so viele Gespräche gleichzeitig nach draußen. Die meisten Netze brauchen weit weniger.
Rechne nach: Wenn jedes Gerät 100 Gespräche offen hält, wie viele Geräte passen dann etwa hinter eine einzige Adresse? Es sind rund 655.