IPv6-DNS-Abfragen unter Linux durchführen

CompTIABeginner
Jetzt üben

Einführung

In diesem Labor lernen Sie die wesentlichen Fähigkeiten, um IPv6-DNS-Abfragen auf einem Linux-System durchzuführen und zu verifizieren. Sie werden untersuchen, wie Linux-Systeme Domainnamen zu IPv6-Adressen auflösen, eine kritische Funktion für moderne Netzwerke. Diese praktische Erfahrung wird Sie durch die Verwendung von Standard-Befehlszeilenprogrammen führen, um nach IPv6-Adressdatensätzen abzufragen und die Netzwerkkonnektivität zu testen.

Sie beginnen mit der Überprüfung der Datei /etc/resolv.conf, um die konfigurierten DNS-Server zu identifizieren. Als Nächstes verwenden Sie zwei leistungsstarke Werkzeuge, dig und nslookup, um gezielt nach AAAA-Datensätzen abzufragen, die Domainnamen IPv6-Adressen zuordnen. Abschließend verwenden Sie den Befehl ping6, um zu bestätigen, dass Ihr System eine direkte Verbindung zu einem Ziel über dessen IPv6-Adresse herstellen kann, und schließen damit den vollständigen Zyklus von Auflösung und Konnektivität ab.

DNS-Server-Konfiguration in /etc/resolv.conf überprüfen

In diesem Schritt lokalisieren und inspizieren Sie die DNS-Server-Konfiguration auf Ihrem Ubuntu-System. Dies ist der grundlegende Schritt, um zu verstehen, wie Ihr Rechner Domainnamen in IP-Adressen auflöst, was für die gesamte Netzwerkkommunikation, einschließlich IPv6, unerlässlich ist.

Die primäre Konfigurationsdatei für die DNS-Auflösung unter Linux ist /etc/resolv.conf. Diese Datei listet die IP-Adressen der Nameserver auf, die Ihr System abfragen wird.

Zuerst betrachten wir den Inhalt dieser Datei. Führen Sie in Ihrem Terminal, das bereits geöffnet ist und sich im Verzeichnis ~/project befindet, den folgenden Befehl aus:

cat /etc/resolv.conf

Dieser Befehl liest die Datei /etc/resolv.conf und zeigt deren Inhalt direkt im Terminal an.

Sie sollten eine oder mehrere Zeilen sehen, die mit nameserver beginnen. Diese Einträge definieren die DNS-Server. Die Adressen können entweder IPv4 (z. B. 8.8.8.8) oder IPv6 (z. B. 2001:4860:4860::8888) sein. Die Identifizierung dieser Server ist der erste Schritt zur Diagnose von DNS-bezogenen Problemen.

Beispielausgabe:

## Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
##     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
## 127.0.0.53 is the systemd-resolved stub resolver.
## run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53
options timeout:2 attempts:3 rotate single-request-reopen

Im obigen Beispiel ist das System so konfiguriert, dass es den systemd-resolved Stub-Resolver unter 127.0.0.53 verwendet. Dies ist ein lokaler DNS-Resolver, der Anfragen an die tatsächlichen DNS-Server weiterleitet, die für Ihr System konfiguriert sind. Sie können systemd-resolve --status ausführen, um Details zu den tatsächlich verwendeten Nameservern anzuzeigen. Wenn Ihr System für IPv6-DNS konfiguriert wäre, würden Sie hier eine IPv6-formatierte Adresse sehen.

Durch den Abschluss dieses Schritts wissen Sie nun, wie Sie die DNS-Server finden, auf die Ihr System für die Namensauflösung angewiesen ist. Im nächsten Schritt verwenden Sie ein Befehlszeilenwerkzeug, um aktiv einen dieser Server nach einem IPv6-Adressdatensatz abzufragen.

IPv6 AAAA-Record mit dig abfragen

In diesem Schritt verwenden Sie das Befehlszeilenwerkzeug dig, um einen DNS-Server gezielt nach einem IPv6-Adressdatensatz abzufragen. Während der A-Record einen Domainnamen einer IPv4-Adresse zuordnet, ordnet der AAAA-Record (oder "quad-A"-Record) einen Domainnamen einer IPv6-Adresse zu.

Das Dienstprogramm dig (domain information groper) ist ein leistungsstarkes und flexibles Werkzeug zur Abfrage von DNS-Servern. Es ist Teil des Pakets dnsutils, das möglicherweise nicht standardmäßig installiert ist.

Zuerst stellen wir sicher, dass dig auf Ihrem System verfügbar ist. Führen Sie die folgenden Befehle aus, um Ihre Paketliste zu aktualisieren und dnsutils zu installieren:

sudo apt-get update
sudo apt-get install -y dnsutils

Nachdem dig nun installiert ist, können Sie es verwenden, um den AAAA-Record für eine Domain abzurufen, die bekanntermaßen IPv6-fähig ist, wie z. B. ipv6.google.com.

Führen Sie den folgenden Befehl in Ihrem Terminal aus:

dig AAAA ipv6.google.com

Dieser Befehl weist dig an, nach Datensätzen vom Typ AAAA für die Domain ipv6.google.com zu suchen.

Betrachten wir die Ausgabe. Sie ist in mehrere Abschnitte unterteilt, aber der für uns wichtigste ist der ANSWER SECTION.

Beispielausgabe:

; <<>> DiG 9.18.1-1ubuntu1.3-Ubuntu <<>> AAAA ipv6.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35612
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;ipv6.google.com.  IN AAAA

;; ANSWER SECTION:
ipv6.google.com.        10      IN      CNAME   ipv6.l.google.com.
ipv6.l.google.com.      10      IN      AAAA    2607:f8b0:4005:814::200e

;; Query time: 148 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Thu Jul 17 10:56:59 CST 2025
;; MSG SIZE  rcvd: 93

Im ANSWER SECTION sehen Sie, dass ipv6.google.com zunächst zu einem CNAME-Record aufgelöst wird, der auf ipv6.l.google.com verweist, welcher dann zu einer IPv6-Adresse (z. B. 2607:f8b0:4005:814::200e) aufgelöst wird. Das Vorhandensein sowohl des CNAME- als auch des AAAA-Records bestätigt, dass ipv6.google.com eine IPv6-Adresse hat und Ihr System diese erfolgreich auflösen konnte.

Sie haben nun erfolgreich dig verwendet, um eine spezifische IPv6-DNS-Abfrage durchzuführen. Im nächsten Schritt lernen Sie, wie Sie dasselbe mit einem anderen gängigen Dienstprogramm, nslookup, tun.

AAAA-Record mit nslookup nachschlagen

In diesem Schritt lernen Sie, ein weiteres gängiges Dienstprogramm, nslookup, zu verwenden, um dieselbe Aufgabe der Abfrage eines AAAA-Records durchzuführen. Während dig von Systemadministratoren oft wegen seiner detaillierten Ausgabe bevorzugt wird, ist nslookup ebenfalls weit verbreitet und nützlich für schnelle Abfragen.

Das Werkzeug nslookup (name server lookup) ist ebenfalls Teil des Pakets dnsutils, das Sie im vorherigen Schritt installiert haben, sodass Sie nichts Neues installieren müssen.

Um nslookup anzuweisen, einen bestimmten Datensatztyp zu finden, verwenden Sie die Option -query=. Wir werden erneut nach einem AAAA-Record suchen, um die IPv6-Adresse einer Domain zu finden. Verwenden wir diesmal eine andere IPv6-fähige Domain, wie z. B. facebook.com.

Führen Sie in Ihrem Terminal den folgenden Befehl aus:

nslookup -query=AAAA facebook.com

Dieser Befehl weist nslookup an, speziell den AAAA-Record für facebook.com vom Standard-DNS-Server anzufordern.

Die Ausgabe von nslookup ist in der Regel prägnanter als die von dig. Suchen Sie nach dem Abschnitt "Non-authoritative answer".

Beispielausgabe:

Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
Name:   facebook.com
Address: 2a03:2880:f131:83:face:b00c:0:25de

Die Ausgabe zeigt deutlich die IPv6-Adresse, die mit facebook.com verknüpft ist, im Abschnitt "Non-authoritative answer". Der Begriff "Non-authoritative" bedeutet lediglich, dass die Antwort von einem DNS-Server stammt, der nicht die endgültige Autorität für die Domain ist, was bei rekursiven DNS-Abfragen normal ist.

Sie haben nun erfolgreich zwei verschiedene Werkzeuge, dig und nslookup, verwendet, um einen Domainnamen in eine IPv6-Adresse aufzulösen. Im letzten Schritt testen Sie die tatsächliche Netzwerkkonnektivität mit einer dieser aufgelösten Domains.

IPv6-Konnektivität mit ping6 testen

In diesem letzten Schritt kombinieren Sie DNS-Auflösung und Netzwerktests, um die End-to-End-IPv6-Konnektivität zu überprüfen. Nachdem Sie in den vorherigen Schritten erfolgreich einen Domainnamen in seine IPv6-Adresse aufgelöst haben, müssen Sie nun prüfen, ob Ihr System tatsächlich über das Netzwerk mit dieser Adresse kommunizieren kann.

Dazu verwenden Sie den Befehl ping6. Dieses Dienstprogramm ist das IPv6-Äquivalent des bekannten ping-Befehls und wird verwendet, um die Erreichbarkeit im Netzwerk zu testen, indem ICMPv6-Echo-Anforderungspakete an einen Zielhost gesendet werden.

Wenn Sie ping6 einen Domainnamen übergeben, führt dieser zwei Aktionen aus:

  1. Er löst zunächst den Domainnamen in eine IPv6-Adresse auf, indem er dessen AAAA-Record abfragt.
  2. Anschließend sendet er Ping-Pakete an die aufgelöste IPv6-Adresse.

Testen wir die Konnektivität zu ipv6.google.com. Wir verwenden die Option -c 4, um nur 4 Pakete zu senden und dann zu stoppen; andernfalls würde ping unbegrenzt laufen.

Führen Sie in Ihrem Terminal den folgenden Befehl aus:

ping6 -c 4 ipv6.google.com

Beobachten Sie die Ausgabe. Wenn Ihr System über eine funktionierende IPv6-Verbindung zum Internet verfügt, sehen Sie erfolgreiche Antworten.

Beispiel für erfolgreiche Ausgabe:

PING ipv6.google.com(prg03s07-in-x0e.1e100.net (2a00:1450:4001:82e::200e)) 56 data bytes
64 bytes from prg03s07-in-x0e.1e100.net (2a00:1450:4001:82e::200e): icmp_seq=1 ttl=118 time=1.23 ms
64 bytes from prg03s07-in-x0e.1e100.net (2a00:1450:4001:82e::200e): icmp_seq=2 ttl=118 time=1.30 ms
64 bytes from prg03s07-in-x0e.1e100.net (2a00:1450:4001:82e::200e): icmp_seq=3 ttl=118 time=1.25 ms
64 bytes from prg03s07-in-x0e.1e100.net (2a00:1450:4001:82e::200e): icmp_seq=4 ttl=118 time=1.28 ms

--- ipv6.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 1.230/1.265/1.300/0.027 ms

Erwartete Ausgabe in den meisten Lab-Umgebungen:

ping6: connect: Network is unreachable

Wichtiger Hinweis: In der LabEx VM sehen Sie wahrscheinlich "Network is unreachable", wenn Sie versuchen, IPv6-Adressen anzupingen. Das liegt daran, dass die Laborumgebung die IPv6-Adresse auflösen kann, aber keine IPv6-Route zum öffentlichen Internet hat. Dieses häufige Szenario, bekannt als "IPv6-Lücke", zeigt den entscheidenden Unterschied zwischen erfolgreicher DNS-Auflösung und tatsächlicher Netzwerkkonnektivität. Die Tatsache, dass die DNS-Auflösung in den vorherigen Schritten funktionierte, die Konnektivität hier jedoch fehlschlägt, veranschaulicht, dass Ihr System ordnungsgemäß IPv6-Adressen abfragen und empfangen kann, auch wenn es keine tatsächlichen IPv6-Verbindungen herstellen kann.

Herzlichen Glückwunsch! Sie haben dieses Labor abgeschlossen. Sie haben gelernt, wie Sie Ihre lokale DNS-Konfiguration überprüfen, dig und nslookup zum Abfragen von IPv6 AAAA-Records verwenden und ping6 zum Testen der IPv6-Konnektivität einsetzen.

Zusammenfassung

In diesem Labor haben Sie die grundlegenden Schritte für IPv6-DNS-Abfragen in einer Linux-Umgebung gelernt. Sie haben damit begonnen, die Datei /etc/resolv.conf zu untersuchen, um die DNS-Server zu identifizieren, die Ihr System verwendet. Anschließend haben Sie geübt, zwei wesentliche Befehlszeilenprogramme, dig und nslookup, zu verwenden, um gezielt nach IPv6 AAAA-Records zu suchen und Domainnamen erfolgreich in ihre entsprechenden IPv6-Adressen aufzulösen.

Schließlich haben Sie den Befehl ping6 verwendet, um die IPv6-Konnektivität zu testen, was den wichtigen Unterschied zwischen DNS-Auflösung und tatsächlicher Netzwerkkonnektivität verdeutlichte. Obwohl die Laborumgebung IPv6-Adressen erfolgreich auflösen kann, fehlt ihr die IPv6-Weiterleitung zum öffentlichen Internet, was zu Fehlermeldungen wie "Network is unreachable" führt. Durch die Durchführung dieser Schritte haben Sie praktische Erfahrungen mit den Kernwerkzeugen und Konzepten für die Verwaltung und Fehlerbehebung der IPv6-Namensauflösung unter Linux gesammelt und den Unterschied zwischen erfolgreichen DNS-Abfragen und tatsächlicher Netzwerkkonnektivität verstanden.