VLAN-Lab: VLANs und Inter-VLAN-Routing auf einer Ubuntu-VM im Browser

In diesem Lab erhält jede lernende Person ein kleines Büronetzwerk, das sie aufteilen soll. In der einen Ubuntu-VM der lernenden Person sind fünf Maschinen aufgebaut: ein Switch, ein Router sowie ein Host und ein Server, die in ein VLAN gehören, und ein zweiter Host, der in ein anderes gehört. Zu Beginn ist alles angeschlossen und nichts konfiguriert, sodass alles ein einziges Netzwerk ist. Die lernende Person legt zwei VLANs auf dem Switch an, verbindet sie über den Router mit einem Kabel wieder und fügt eine Regel hinzu, die ein VLAN vom Server fernhält.

Auf dem Computer der lernenden Person wird nichts installiert, und es werden weder ein Switch noch ein Router gebraucht: Jede Maschine ist ein Netzwerk-Namespace, der Switch ist eine Linux-Bridge mit VLAN-Filterung, und die Befehle sind die echten, bridge vlan, ip link und nft.

Was die Lernenden lernen

Was ein VLAN ist und warum ein Switch eines braucht: jedem Switch-Port ein VLAN und einen ungetaggten Access-Port für einen Host geben und beide VLANs getaggt über einen Trunk-Port zum Router führen, mit dem Befehl bridge vlan; mit ip link für jedes VLAN ein 802.1Q-Subinterface auf dem Router anlegen, ihm die Gateway-Adresse geben, die seine Hosts erwarten, und das Weiterleiten einschalten, was Inter-VLAN-Routing auf einem Router-on-a-Stick ist; und eine nft-Regel auf dem Router schreiben, die ein VLAN von einem Server fernhält und alles andere weiterhin funktionieren lässt. Die Lernenden testen es mit ping, arping, traceroute und tcpdump und schreiben alles in zwei Dateien, damit es nach einem Neustart wiederkommt.

Die Topologie

Der Switch sw hat vier Ports. Der Host h10 und der Server srv gehören in VLAN 10, auf 10.10.0.0/24, und der Host h20 in VLAN 20, auf 10.20.0.0/24. Der Router r1 hat ein Kabel, am vierten Port, und noch keine Adresse. Zu Beginn liegt jeder Port im Standard-VLAN 1, sodass h20 srv noch direkt über den Switch erreichen kann und nichts ein Gateway erreichen kann. Die Arbeit der lernenden Person steht in zwei Dateien, von denen bei jedem Start des Labs eine im Switch und eine im Router ausgeführt wird. Die Adressen stehen in der README, die das Lab im Home-Verzeichnis hinterlässt und die sagt, was zu tun ist, und keine der Lösungen verrät.

Im Browser ausführen

VM-Labs werden als Lab-Aufgabe in einem Modul gestellt, und das Beispiel steht auf der Seite des Labs. Die Maschine ist klein: eine CPU, 1 GB Arbeitsspeicher und 10 GB Festplatte.

  1. Lab hinzufügen. Fügen Sie in einem Modul, das Sie unterrichten, eine Aufgabe hinzu und wählen Sie die Karte „Ubuntu-VM-Lab“. Die Seite zeigt statt einer Compose-Datei eine kurze Beschreibung der Maschine.
  2. Vom Beispiel ausgehen. Die Seite bietet fertige Labs als Ausgangspunkt an. Wählen Sie „VLANs und Routing zwischen VLANs“. Ein Beispiel zu verwenden ersetzt den Text, und „Rückgängig“ bringt Ihren zurück.
  3. Veröffentlichen und eine eigene Kopie starten. Veröffentlichen Sie, dann „Starten“. Das Einrichtungsskript des Labs installiert beim ersten Start der VM iproute2, nftables und einige kleine Netzwerkwerkzeuge aus dem Archiv von Ubuntu und schreibt den Befehl vlanlab, zwei leere Konfigurationsdateien und die README, in wenigen Sekunden.
  4. Terminal öffnen. Öffnen Sie sein Terminal und lesen Sie README.md im Home-Verzeichnis: Sie nennt, was aufzubauen ist, und verrät keine der Lösungen.

Eine Basics-Lektion zu diesem Lab

VLAN Basics ist eine kleine Lektion, die in diesem Lab durchgearbeitet wird, einer Ubuntu-VM: Jeder Schritt ist erklärt und hat eine Schaltfläche „Ausführen“, die ihren Befehl in das Terminal der Maschine tippt und zeigt, was ausgegeben wurde. Lernende lernen die Maschinen kennen und sehen jeden Switch-Port in VLAN 1, fragen h20 mit arping nach srv und erhalten direkt über den Switch eine Antwort, pingen das andere Netzwerk und bekommen nichts zurück, und stellen fest, dass der Router noch keine Adresse hat.

Die Lektion sieht sich um und überlässt die eigentliche Aufgabe des Labs, den Aufbau der VLANs, den Lernenden, sie verteilt also keine Lösungen. Sie ist absichtlich klein: Sie zeigt Lehrkräften, was eine in einem Lab durchgearbeitete Lektion ist, und das Lab erledigt den Rest. Kopieren Sie sie in ein eigenes Modul, um sie zu ändern.

Wie bewertet wird

Das Lab hat eine Prüfung. Sie läuft nach einem frischen Start auf einer Kopie der gespeicherten Maschine, lädt die beiden Dateien der lernenden Person so, wie es der Start tut, und testet dann, was zwischen den Maschinen tatsächlich geschieht: Hosts im selben VLAN antworten einander direkt, Hosts in verschiedenen VLANs nicht, der Router hat für jedes VLAN ein 802.1Q-Subinterface und die Gateway-Adresse und leitet weiter, h10 und h20 erreichen einander über den Router, und h20 erreicht srv über keinen Port und kein Protokoll, während h10 es weiterhin kann. Eine Regel, die VLAN 20 von allem abschneidet, besteht nicht, ebenso wenig eine Regel auf dem Server, Adressübersetzung, ausgeschaltete VLAN-Filterung oder von Hand getippte und nie in den Dateien gespeicherte Befehle. Die erste Zeile der Ausgabe der Prüfung sagt, warum.

  1. Zuweisen. Weisen Sie das Lab wie jede Aufgabe zu, auf Wunsch mit Fälligkeitsdatum. Jede lernende Person erhält eine eigene VM, die zwischen den Sitzungen erhalten bleibt.
  2. Prüfung ausführen. Klicken Sie in der Zeile einer lernenden Person in der Klassenliste auf „Prüfung ausführen“. Das startet eine Kopie ihrer gespeicherten Maschine, die nicht zurückgespeichert wird, führt das Prüfskript des Labs als root aus und zeigt, ob es bestanden wurde, was es ausgegeben hat und wann. Die lernende Person erfährt das Ergebnis nicht.
  3. Bewerten. Lesen Sie die erste Zeile der Ausgabe der Prüfung: Sie sagt, was nicht stimmt, etwa ein Host, der ein anderes VLAN noch direkt über den Switch erreicht, oder ein Ping, der nicht über den Router lief. Geben Sie die Arbeit mit einer Begründung zur Überarbeitung zurück, wenn mehr nötig ist.

Die Definition auf GitHub

Die Datei ist die gesamte Lab-Definition, derselbe Text, den die Plattform ausführt: Größe, Einrichtungsskript, Topologie-Werkzeug, README und Prüfung. Kopieren Sie sie und ändern Sie die Adressen oder fügen Sie ein VLAN hinzu, um ein längeres Lab zu erstellen.

Häufige Fragen

Braucht das Lab einen verwalteten Switch, einen Router oder eine Lizenz?
Nein. Der Switch ist eine Linux-Bridge mit VLAN-Filterung und der Router ist Linux, das Pakete weiterleitet, beides im eigenen Kernel von Ubuntu. Die Werkzeuge werden beim Start der VM der lernenden Person aus dem Archiv von Ubuntu installiert, und nichts davon wird von uns verteilt.
Können Lernende aus dem Lab das echte Internet erreichen?
Nein. Die VM erreicht das Archiv von Ubuntu, PyPI, npm und GitHub und sonst nichts, und das Netzwerk zwischen den fünf Maschinen ist virtuell und liegt in der VM. Die Maschinen sind Netzwerk-Namespaces und keine getrennten Computer.
Was baut eine lernende Person im VLAN-Lab auf?
Zwei VLANs auf dem Switch, jeweils mit einem ungetaggten Access-Port für jeden Host und einem getaggten Trunk zum Router, dann ein 802.1Q-Subinterface für jedes VLAN auf dem Router, was Inter-VLAN-Routing auf einem Router-on-a-Stick ist. Zuletzt hält eine nft-Regel auf dem Router VLAN 20 vom Server fern.