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

Einen Namen Schritt für Schritt nachschlagen (DNS)

Nach dieser Lektion: Ich kann einen Namen mit dig nachschlagen und sagen, welcher Record geantwortet hat.

Lektion, 55 Min.11 BefehleDHCP-und-DNS-Lab: dnsmasq für ein kleines Netzwerk im Browser konfigurieren

Die Seite, die nur bei einer Person lief

Eine DNS-Abfrage macht aus einem Namen eine Adresse. Ein Rechner sieht zuerst in seiner eigenen Hosts-Datei nach und fragt erst dann einen DNS-Server. Wer diese Reihenfolge kennt, repariert einen Namen, der nur auf einem Laptop geht.

Ein Techniker im Support bekommt einen Anruf. Die Webseite des Ladens öffnet sich auf einem Laptop und auf einem anderen nicht. Beide hängen im selben Netz.

Die Ursache ist eine alte Zeile in einer kleinen Datei auf dem zweiten Laptop. Sie antwortet auf den Namen, bevor jemand das Netz fragt.

Am Ende dieser Lektion

Notiz

Ich kann einen Namen mit dig nachschlagen und sagen, welcher Record geantwortet hat.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Resolverder Teil eines Rechners, der Namen nachschlägt
Hosts-Dateieine kurze Liste von Namen und Adressen auf dem Rechner selbst/etc/hosts
CNAMEein Record, der sagt: Dieser Name ist ein anderer Name
TTLdie Sekunden, die eine Antwort behalten werden darf300
NXDOMAINdie Antwort, dass dieser Name nicht existiert
Zonedie Namen, für die ein DNS-Server zuständig istladen.test

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein Rechner sucht an zwei Stellen

Bevor ein Rechner das Netz fragt, liest er seine Hosts-Datei. Steht der Name dort, gewinnt diese Antwort. Erst danach fragt der Resolver einen DNS-Server.

Die Reihenfolge steht in der Datei /etc/nsswitch.conf. Das Wort files meint die Hosts-Datei, und dns meint den Server.

Die Reihenfolge des Rechners lesen

Befehl
grep '^hosts' /etc/nsswitch.conf

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

Einen Namen wie ein Programm nachschlagen

Befehl
getent hosts localhost

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

Ein DNS-Server antwortet mit Records

Ein DNS-Server führt eine Zone, die Namen, für die er zuständig ist. Jeder Name hat Records, und jede Antwort trägt eine TTL: Ein Resolver darf sie so lange behalten.

Hier starten Sie einen kleinen eigenen Server für einen erfundenen Laden. Er lauscht auf Port 5300, nur auf diesem Rechner, und führt eine Zone, laden.test.

Einen Übungsserver für den Laden starten

Befehl
sudo dnsmasq --conf-file= --no-hosts --no-resolv --port=5300 --listen-address=127.0.0.1 --bind-interfaces --local-ttl=300 --local=/laden.test/ --host-record=laden.test,10.20.30.40 --host-record=post.laden.test,10.20.30.50 --cname=www.laden.test,laden.test --mx-host=laden.test,post.laden.test,10 --txt-record=laden.test,v=demo

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

Ein Beispiel: mit dig fragen

Sie tippenEs fragtEs gibt aus
dig +short @127.0.0.1 -p 5300 laden.testDen A-Record10.20.30.40
dig +noall +answer ... www.laden.testDen Namen mit seinen RecordsEine CNAME-Zeile, dann die A-Zeile
dig +short ... laden.test MXWer die Post annimmt10 post.laden.test.
dig +short ... -x 10.20.30.40Welchen Namen die Adresse hatladen.test.

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Die Adresse des Ladens erfragen

Befehl
dig +short @127.0.0.1 -p 5300 laden.test

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

Der Kette vom Namen www folgen

Befehl
dig +noall +answer @127.0.0.1 -p 5300 www.laden.test

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

Fragen, wer die Post annimmt

Befehl
dig +short @127.0.0.1 -p 5300 laden.test MX

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

Fragen, welchen Namen eine Adresse hat

Befehl
dig +short @127.0.0.1 -p 5300 -x 10.20.30.40

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

Der Status sagt, was schiefging

Jede Antwort hat einen Status. NOERROR heißt, der Server hat geantwortet. NXDOMAIN heißt, der Name steht in keiner Zone, die der Server führt.

REFUSED heißt, der Server antwortet für diesen Namen gar nicht. Ihr Übungsserver führt nur laden.test und hat sonst niemanden zum Fragen.

Einen Namen erfragen, der fehlt

Befehl
dig @127.0.0.1 -p 5300 nichts.laden.test | grep 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.

Einen Namen aus einer anderen Zone erfragen

Befehl
dig @127.0.0.1 -p 5300 laden.invalid | grep 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.

Ein häufiger Fehler

Warnung

Viele denken, dig und ping schlagen einen Namen auf dieselbe Weise nach. Das stimmt nicht. dig fragt nur einen DNS-Server. Die meisten Programme, auch ping, lesen zuerst die Hosts-Datei. Ein Name kann im Browser gehen und bei dig nichts zeigen.

Sehen, wie beide Wege auseinandergehen

Befehl
dig +short @127.0.0.1 -p 5300 localhost

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

Eine echte Suche geht Etikett für Etikett abwärts

Im Internet kennt kein einzelner Server alle Namen. Ein Resolver fragt die Wurzel, dann den Server für die Endung und dann den der Firma.

Das Lab hat kein Internet: Diese Tabelle wird gelesen und nicht ausgeführt. Sie zeigt die Fragen für www.laden.beispiel.

Ein Beispiel: www.laden.beispiel nachschlagen

SchrittDer Resolver fragtDie Antwort
1Einen WurzelserverFragen Sie die Server für die Endung .beispiel
2Einen Server für .beispielFragen Sie die Server für laden.beispiel
3Einen Server für laden.beispielwww ist 203.0.113.20, 300 Sekunden gültig
4Niemanden, 300 Sekunden langDer Resolver antwortet aus seinem Speicher

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Den Übungsserver beenden

Befehl
sudo pkill -f '[-]-port=5300'

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

Zum Weitermachen: der Kopf von dig

Führen Sie dig @127.0.0.1 -p 5300 laden.test noch einmal aus, bei laufendem Übungsserver, und lesen Sie den ganzen Kopf.

Suchen Sie die Zeile mit den Flags und die Zahlen der Fragen und Antworten. Fragen Sie dann nichts.laden.test und vergleichen Sie. Welche Zahl hat sich geändert?