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.
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.
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.
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.
sudo ip netns exec srv ip routeHier 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.
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.
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.