Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

NAT-Grundlagen

Die ganze Lektion steht hier zum Lesen. Erstellen Sie ein kostenloses Konto, um sie in einem Live-Lab auszuführen.

Ubuntu-VM-Lab5 Min. Lesezeit4 Befehle

Was du machst

Maschinen in einem privaten Netzwerk, zum Beispiel 10.0.0.0/24, haben Adressen, zu denen das Internet keinen Weg zurück kennt. NAT (Network Address Translation, Adressübersetzung) lässt ein Gateway für sie sprechen. Du siehst dir ein kleines Netzwerk an, schickst eine Anfrage, die keine Antwort bekommt, und findest heraus, warum. Du behebst es nicht: Das ist die eigentliche Aufgabe des Labs.

Bevor du anfängst

Notiz

Drücke oben in der Leiste dieser Lektion auf Lab starten. Dieses Lab ist eine ganze Ubuntu-Maschine nur für dich, mit drei kleinen Maschinen darin. Sie braucht deshalb etwas länger zum Starten als ein Container. Jede Schaltfläche Ausführen tippt ihren Befehl in das Terminal der Maschine, einen nach dem anderen. Sagt einer, dass die Maschine noch startet, warte ein paar Sekunden und drücke ihn noch einmal. Willst du zuschauen oder eigene Befehle tippen, drücke in der Leiste auf Terminal öffnen (neuer Tab).

1. Lerne die Maschinen kennen

Jede Maschine ist ein eigener Netzwerk-Namespace mit eigenen Adressen. lan ist die private Maschine, srv ist ein Server draußen, und gw ist das Gateway mit je einem Kabel zu beiden: 10.0.0.1 zum LAN und 203.0.113.1 nach draußen. Die letzten drei Zeilen sagen, welche Maschine eine Webseite ausliefert.

Befehl
netlab status

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

2. Frage den Server draußen nach seiner Seite

sudo ip netns exec lan führt den folgenden Befehl in lan aus. curl fragt den Server draußen nach seiner Seite und gibt nach drei Sekunden auf: Connection timed out. Die Anfrage hat lan verlassen, und nichts kam zurück. --noproxy '*' hält curl vom Web-Proxy fern, den die VM selbst benutzt und den diese Maschinen nicht erreichen.

Befehl
sudo ip netns exec lan curl --noproxy '*' -sS -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.

3. Frage draußen, was dort bekannt ist

Eine Route ist eine Zeile in einer Tabelle: „Um dieses Netzwerk zu erreichen, geh in diese Richtung.“ Der Server draußen hat eine einzige Zeile, für sein eigenes Kabel, 203.0.113.0/24. Für 10.0.0.0/24 hat er keine. Selbst wenn die Anfrage dort ankäme, hätte die Antwort also keinen Weg zurück zu einer privaten Adresse.

Befehl
sudo ip netns exec srv ip route

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

4. Frage das Gateway, was es tut

Die Regeln des Gateways sind nftables. Das hier sind alle: eine Kette, die das LAN Verbindungen beginnen lässt und den Rest verwirft, und nichts, was eine Adresse übersetzt. Genau das fehlt.

Befehl
sudo ip netns exec gw nft list ruleset

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Jetzt das Lab

Tipp

Du hast herausgefunden, warum die Anfrage keine Antwort bekommt. Es zum Laufen zu bringen ist die Aufgabe dieses Labs. Öffne README.md in deinem Home-Ordner mit cat README.md im Terminal. Dort steht, was zu tun ist, aber keine Lösungen.

Für Lehrkräfte

Tipp

Diese Lektion ist ein kleines Beispiel für eine Lektion, die in einem Lab bearbeitet wird: Die Schritte und die Schaltflächen „Ausführen“ sind die Lektion, und das Lab ist die eigene Kopie jeder lernenden Person. Sie wird in einem VM-Lab bearbeitet: Jede lernende Person hat eine eigene Ubuntu-Maschine mit dem Netzwerk darin, und ein Klick auf „Ausführen“ tippt in deren Terminal und zeigt, was ausgegeben wurde. Das Lab selbst enthält eine Prüfung, die das fertige Gateway danach bewertet, was das Netzwerk dann tut. Kopieren Sie die Lektion in Ihr eigenes Modul und ändern Sie sie, oder bauen Sie mit dem Menü Lab im Lektionseditor eine neue.

Über dieses Lab und seinen Quellcode: NAT-Gateway-Lab: Masquerading und Portweiterleitung mit nftables im Browser

Sie unterrichten eine Klasse? Weisen Sie diese Lektionen Ihren Lernenden zu, mit Bewertung und einem Lab für jede lernende Person.