DHCP-und-DNS-Lab: dnsmasq für ein kleines Netzwerk im Browser konfigurieren

In diesem Lab erhält jede lernende Person ein kleines Netzwerk in einer eigenen Ubuntu-VM: einen Server und zwei Computer, pc1 und pc2, die ganz ohne Adresse starten. Auf dem Server läuft dnsmasq ohne Konfiguration, und die lernende Person schreibt die eine Datei, mit der er Adressen vergibt und die Namen des Labs beantwortet. Auf dem Computer der lernenden Person wird nichts installiert, und ein Skript bewertet das Ergebnis, Sie müssen also nicht jede Maschine einzeln lesen.

Was die Lernenden lernen

Wie ein Computer eine Adresse bekommt und einen Namen findet. DHCP: ein Bereich, aus dem Leases vergeben werden, wie lange ein Lease gilt, der Router und der DNS-Server, die der Server jedem Client mitteilt, und eine feste Adresse für einen Computer, ausgewählt über seine Hardwareadresse (MAC). DNS: einen Namen aus einem Eintrag in der eigenen Konfiguration des Servers beantworten und jeden anderen Namen ablehnen, da der Server ihn nirgendwohin weiterleiten kann. Außerdem lernen sie die echten Werkzeuge kennen: dnsmasq auf dem Server, dhclient und dig auf den Clients, ip zum Lesen des Ergebnisses und tcpdump, um das Gespräch zu beobachten.

Das Netzwerk und die Aufgabe

Der Server hat die Adresse 10.0.10.1, und pc1 und pc2 hängen am selben Switch, jeder mit einer festen Hardwareadresse, die die README nennt. Die lernende Person schreibt /etc/dnsmasq.d/lab.conf so, dass der Server Adressen aus einem vorgegebenen Bereich für zwölf Stunden vergibt, den Clients einen vorgegebenen Router und DNS-Server mitteilt, pc2 immer eine bestimmte Adresse gibt, files.lab und printer.lab mit vorgegebenen Adressen beantwortet und sonst nichts beantwortet. Die README nennt jeden Wert, aber keine Optionsnamen und keine Konfigurationszeilen.

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 „DHCP und DNS mit dnsmasq“. 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 dnsmasq, den DHCP-Client, dig und tcpdump aus dem Archiv von Ubuntu und baut die drei Maschinen auf, in wenigen Sekunden.
  4. Terminal öffnen. Öffnen Sie sein Terminal und lesen Sie README.md im Home-Verzeichnis: Sie nennt, was der Server leisten muss, und verrät keine der Lösungen.

Eine Basics-Lektion zu diesem Lab

DHCP and DNS 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 drei Maschinen kennen und sehen, dass die Clients keine Adresse haben, bitten pc1 um eine und bekommen keine, fragen den Server nach einem Namen und werden abgewiesen, und lesen die Konfigurationsdatei, die leer ist.

Die Lektion sieht sich um und überlässt die eigentliche Aufgabe des Labs, das Schreiben der Konfiguration, 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 und sieht daher nur, was die lernende Person gespeichert hat. Sie beendet jedes laufende dnsmasq, startet eines aus den gespeicherten Dateien in /etc/dnsmasq.d, setzt beide Clients zurück und lässt sie mit dem echten DHCP-Client erneut anfragen. Dann liest sie, was passiert ist: Jeder Client hat eine Adresse im Bereich, den Router, den DNS-Server und das Lease von zwölf Stunden, das die Aufgabe verlangt, pc2 hat seine feste Adresse, und die beiden Namen werden zu den richtigen Adressen aufgelöst, während andere Namen abgelehnt oder nicht gefunden werden. Von Hand auf den Clients eingetragene Adressen, ein Platzhalter, der jeden Namen beantwortet, in /etc/hosts eingetragene Namen und ein von Hand gestartetes dnsmasq mit einer nie gespeicherten Datei bestehen nicht, und die erste Zeile der Ausgabe der Prüfung sagt, welcher Teil und 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 nennt das Erste, was nicht stimmt, und sagt, warum. 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, README und Prüfung. Kopieren Sie sie und ändern Sie die Adressen und Namen, in der Einrichtung und der Prüfung zusammen, um ein eigenes Lab zu erstellen.

Häufige Fragen

Braucht das Lab einen zweiten DHCP-Server oder einen echten Router?
Nein. Der Server und die Clients sind Netzwerk-Namespaces, die ein virtueller Switch in der VM der lernenden Person verbindet, und der Router, von dem die Clients erfahren, ist nur eine Adresse im Lease. Es gibt keinen anderen DHCP-Server, der dazwischenfunken könnte.
Lässt sich ein Name außerhalb des Labs auflösen?
Nein. Die VM erreicht nur das Archiv von Ubuntu, PyPI, npm und GitHub, und der DNS-Server des Labs kann einen Namen nirgendwohin weiterleiten, daher verlangt das Lab, dass alles außer den beiden Namen abgelehnt oder nicht gefunden wird.
Was prüft das DHCP-und-DNS-Lab?
Die Prüfung startet dnsmasq aus den gespeicherten Dateien, lässt beide Clients erneut anfragen und liest, was passiert ist. Jeder Client muss eine Adresse im Bereich, den Router, den DNS-Server und das Lease von zwölf Stunden haben, pc2 muss seine feste Adresse haben, und die beiden Namen des Labs müssen aufgelöst werden, während andere Namen abgelehnt werden.