Einstecken, und alles läuft
Eine neue Kollegin steckt ihren Laptop an die Wanddose und öffnet die Firmenseite. Niemand hat eine Adresse getippt. Niemand hat einen Server eingetragen.
Zwei kleine Dienste haben das in unter einer Sekunde erledigt. Einer leiht dem Laptop eine Adresse. Der andere macht aus einem Namen eine Zahl.
Diese Lektion öffnet beide.
Am Ende dieser Lektion
Notiz
Ich kann erklären, wie ein Host eine Adresse und einen Namen bekommt.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| DHCP | der Dienst, der Geräten auf Anfrage Adressen leiht | |
| Lease | eine Adresse, die für eine feste Zeit geliehen ist | 12 Stunden |
| Scope | der Adressbereich, den ein DHCP-Server verleihen darf | 10.0.10.100 bis 10.0.10.150 |
| Reservierung | eine feste Adresse für ein Gerät, erkannt an seiner Hardware-Adresse | |
| DNS | der Dienst, der einen Namen in eine Adresse verwandelt | |
| Record | eine Angabe, die ein DNS-Server über einen Namen führt |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Gerät ohne Adresse bittet um eine
Ein neues Gerät hat noch keine Adresse und weiß nicht, wo der Server steht. Also schickt es seine erste Nachricht an alle im Netz. Das ist ein Broadcast.
Ein DHCP-Server antwortet. Beide sprechen in vier Schritten, die man sich als Discover, Offer, Request und Acknowledge merkt.
Ein Beispiel: die vier Schritte
| Schritt | Absender | Was er sagt |
|---|---|---|
| Discover | Gerät | Gibt es hier einen DHCP-Server? |
| Offer | Server | Sie dürfen diese Adresse haben |
| Request | Gerät | Ich nehme diese Adresse, bitte |
| Acknowledge | Server | Sie gehört Ihnen bis zu dieser Zeit |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Den Server und zwei Clients kennenlernen
dnslab statusHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
pc1 um eine Adresse bitten lassen
sudo dnslab renew pc1Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Was die Antworten sagen
Der erste Run zeigt, dass server eine Adresse hat und pc1 und pc2 keine.
Der zweite Run wartet etwa drei Sekunden. Dann gibt er pc1 was given nothing: no DHCPOFFER came back aus. Das Discover ging hinaus, und kein Offer kam zurück.
Eine Adresse wird geliehen, nicht geschenkt
Ein Lease gilt eine feste Zeit. Das Gerät muss ihn verlängern, bevor er endet. Verschwindet es, geht die Adresse zurück in den Vorrat.
Der Scope ist der Vorrat, aus dem der Server verleihen darf. Eine Reservierung bindet eine feste Adresse an eine Hardware-Adresse, ein Drucker bekommt so immer dieselbe.
Ein Beispiel: eine Zeile der Lease-Datei
| Feld | Beispiel | Bedeutung |
|---|---|---|
| Ablauf | 1761300000 | Wann der Lease endet, in Sekunden seit 1970. Null heißt nie |
| Hardware-Adresse | 02:00:00:00:00:0a | Wer den Lease hält |
| Adresse | 10.0.10.101 | Was verliehen wurde |
| Name | kasse1 | Der Name, den das Gerät nannte, oder ein Stern |
| Client-ID | 01:02:00:00:00:00:0a | Eine zweite Kennung oder ein Stern |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Die Hardware-Adresse eines Clients lesen
sudo ip netns exec pc1 ip -o link show eth0Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Konfigurationsdatei des Servers lesen
cat /etc/dnsmasq.d/lab.confHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Warum der Server nichts verleiht
Der erste Run gibt eine Zeile mit link/ether 02:00:00:00:00:01 aus. Mit dieser Hardware-Adresse unterscheidet der Server pc1 von pc2.
Der zweite Run zeigt drei Zeilen Kommentar und sonst nichts. Ohne Scope hat dnsmasq keine Adressen zum Verleihen.
DNS macht aus einem Namen eine Adresse
Menschen merken sich Namen. Router brauchen Zahlen. Ein DNS-Server führt Records, die beides verbinden.
Ein Gerät fragt seinen eingestellten DNS-Server. Der antwortet aus seinen Records oder fragt einen anderen Server und merkt sich die Antwort eine Weile.
DHCP sagt dem Gerät, welchen DNS-Server es nutzen soll.
Ein Beispiel: gängige Record-Typen
| Typ | Er beantwortet | Beispiel |
|---|---|---|
| A | Welche IPv4-Adresse hat dieser Name? | dateien.lab ist 10.0.10.20 |
| AAAA | Welche IPv6-Adresse hat dieser Name? | dateien.lab ist eine lange Hexzahl |
| CNAME | Ist dieser Name ein anderer Name? | www ist dasselbe wie shop |
| MX | Welcher Server nimmt Mail für diese Domain an? | mail.example.org |
| PTR | Welchen Namen hat diese Adresse? | 10.0.10.20 ist dateien.lab |
| TXT | Welche Notiz hängt daran? | Ein kurzer Text |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Den Server nach einem Namen fragen
sudo ip netns exec server dig +noall +comments @10.0.10.1 files.labHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die DNS-Serverliste von pc1 lesen
cat /etc/netns/pc1/resolv.confHier 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 glauben, DHCP und DNS seien ein Dienst. Sie tun Verschiedenes. DHCP leiht Geräten Adressen. DNS beantwortet Fragen zu Namen. Ein Programm kann beides leisten, wie dnsmasq hier, und es bleiben zwei Aufgaben.
Weiterführend: einer Verlängerung zusehen
Sobald Ihre Konfiguration im Lab funktioniert, führen Sie sudo dnslab renew pc1 zweimal aus, mit einer Minute Abstand.
Lesen Sie jedes Mal die Lease-Datei des Servers mit sudo cat /run/dnslab/dnsmasq.leases. Bekommt pc1 dieselbe Adresse? Was hat sich in seiner Zeile geändert, und warum? Prüfen Sie die Datei mit Ihrer Funktion aktive_leases.