Effectuer des recherches DNS IPv6 sous Linux

CompTIABeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez les compétences essentielles pour effectuer et vérifier les recherches DNS IPv6 sur un système Linux. Vous explorerez comment les systèmes Linux résolvent les noms de domaine en adresses IPv6, une fonction critique pour les réseaux modernes. Cette expérience pratique vous guidera dans l'utilisation des utilitaires de ligne de commande standard pour interroger les enregistrements d'adresses IPv6 et tester la connectivité réseau.

Vous commencerez par inspecter le fichier /etc/resolv.conf pour identifier les serveurs DNS configurés. Ensuite, vous utiliserez deux outils puissants, dig et nslookup, pour interroger spécifiquement les enregistrements AAAA, qui mappent les noms de domaine aux adresses IPv6. Enfin, vous utiliserez la commande ping6 pour confirmer que votre système peut établir une connexion directe avec une cible en utilisant son adresse IPv6, complétant ainsi le cycle complet de résolution et de connectivité.

Inspecter la configuration du serveur DNS dans /etc/resolv.conf

Dans cette étape, vous localiserez et inspecterez la configuration du serveur DNS sur votre système Ubuntu. C'est l'étape fondamentale pour comprendre comment votre machine résout les noms de domaine en adresses IP, ce qui est essentiel pour toute communication réseau, y compris l'IPv6.

Le fichier de configuration principal pour la résolution DNS sous Linux est /etc/resolv.conf. Ce fichier liste les adresses IP des serveurs de noms que votre système interrogera.

Tout d'abord, visualisons le contenu de ce fichier. Dans votre terminal, qui est déjà ouvert et dans le répertoire ~/project, exécutez la commande suivante :

cat /etc/resolv.conf

Cette commande lit le fichier /etc/resolv.conf et affiche son contenu directement dans le terminal.

Vous devriez voir une ou plusieurs lignes commençant par nameserver. Ces entrées définissent les serveurs DNS. Les adresses peuvent être en IPv4 (par exemple, 8.8.8.8) ou en IPv6 (par exemple, 2001:4860:4860::8888). L'identification de ces serveurs est la première étape pour diagnostiquer tout problème lié au DNS.

Exemple de sortie :

## 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

Dans l'exemple ci-dessus, le système est configuré pour utiliser le résolveur stub systemd-resolved à l'adresse 127.0.0.53. Il s'agit d'un résolveur DNS local qui transmet les requêtes aux serveurs DNS réels configurés pour votre système. Vous pouvez exécuter systemd-resolve --status pour voir les détails des serveurs de noms réellement utilisés. Si votre système était configuré pour le DNS IPv6, vous verriez une adresse au format IPv6 ici.

En terminant cette étape, vous savez maintenant comment trouver les serveurs DNS sur lesquels votre système s'appuie pour la résolution de noms. Dans l'étape suivante, vous utiliserez un outil en ligne de commande pour interroger activement l'un de ces serveurs pour un enregistrement d'adresse IPv6.

Interroger un enregistrement AAAA IPv6 avec dig

Dans cette étape, vous utiliserez l'outil en ligne de commande dig pour interroger un serveur DNS spécifiquement pour un enregistrement d'adresse IPv6. Alors que l'enregistrement A mappe un nom de domaine à une adresse IPv4, l'enregistrement AAAA (ou enregistrement "quad-A") mappe un nom de domaine à une adresse IPv6.

L'utilitaire dig (domain information groper) est un outil puissant et flexible pour interroger les serveurs DNS. Il fait partie du paquet dnsutils, qui peut ne pas être installé par défaut.

Tout d'abord, assurons-nous que dig est disponible sur votre système. Exécutez les commandes suivantes pour mettre à jour votre liste de paquets et installer dnsutils :

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

Maintenant que dig est installé, vous pouvez l'utiliser pour rechercher l'enregistrement AAAA d'un domaine connu pour prendre en charge l'IPv6, tel que ipv6.google.com.

Exécutez la commande suivante dans votre terminal :

dig AAAA ipv6.google.com

Cette commande demande à dig de rechercher les enregistrements de type AAAA pour le domaine ipv6.google.com.

Examinons la sortie. Elle est divisée en plusieurs sections, mais la plus importante pour nous est la ANSWER SECTION.

Exemple de sortie :

; <<>> 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

Dans la ANSWER SECTION, vous pouvez voir que ipv6.google.com se résout d'abord en un enregistrement CNAME pointant vers ipv6.l.google.com, qui se résout ensuite en une adresse IPv6 (par exemple, 2607:f8b0:4005:814::200e). La présence des enregistrements CNAME et AAAA confirme que ipv6.google.com possède une adresse IPv6 et que votre système a réussi à la résoudre.

Vous avez maintenant utilisé avec succès dig pour effectuer une recherche DNS IPv6 spécifique. Dans l'étape suivante, vous apprendrez à faire la même chose avec un autre utilitaire courant, nslookup.

Rechercher un enregistrement AAAA avec nslookup

Dans cette étape, vous apprendrez à utiliser un autre utilitaire courant, nslookup, pour effectuer la même tâche d'interrogation d'un enregistrement AAAA. Bien que dig soit souvent préféré par les administrateurs système pour sa sortie détaillée, nslookup est également largement disponible et utile pour des recherches rapides.

L'outil nslookup (name server lookup) fait également partie du paquet dnsutils, que vous avez installé à l'étape précédente, vous n'avez donc rien de nouveau à installer.

Pour demander à nslookup de trouver un type d'enregistrement spécifique, vous utilisez l'option -query=. Nous rechercherons à nouveau un enregistrement AAAA pour trouver l'adresse IPv6 d'un domaine. Utilisons cette fois un domaine différent prenant en charge l'IPv6, tel que facebook.com.

Dans votre terminal, exécutez la commande suivante :

nslookup -query=AAAA facebook.com

Cette commande demande à nslookup de demander spécifiquement l'enregistrement AAAA pour facebook.com auprès du serveur DNS par défaut.

La sortie de nslookup est généralement plus concise que celle de dig. Recherchez la section "Non-authoritative answer".

Exemple de sortie :

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

La sortie montre clairement l'adresse IPv6 associée à facebook.com dans la section "Non-authoritative answer". Le terme "Non-authoritative" signifie simplement que la réponse provient d'un serveur DNS qui n'est pas l'autorité ultime pour le domaine, ce qui est normal pour les requêtes DNS récursives.

Vous avez maintenant utilisé avec succès deux outils différents, dig et nslookup, pour résoudre un nom de domaine en une adresse IPv6. Dans la dernière étape, vous testerez la connectivité réseau réelle en utilisant l'un de ces domaines résolus.

Tester la connectivité IPv6 avec ping6

Dans cette dernière étape, vous combinerez la résolution DNS et les tests réseau pour vérifier la connectivité de bout en bout en IPv6. Après avoir résolu avec succès un nom de domaine vers son adresse IPv6 dans les étapes précédentes, vous devez maintenant vérifier si votre système peut réellement communiquer avec cette adresse sur le réseau.

Pour ce faire, vous utiliserez la commande ping6. Cet utilitaire est l'équivalent IPv6 de la commande ping familière et est utilisé pour tester l'accessibilité du réseau en envoyant des paquets de requête d'écho ICMPv6 à un hôte cible.

Lorsque vous fournissez un nom de domaine à ping6, il effectue deux actions :

  1. Il résout d'abord le nom de domaine en une adresse IPv6 en interrogeant son enregistrement AAAA.
  2. Il envoie ensuite des paquets ping à l'adresse IPv6 résolue.

Testons la connectivité à ipv6.google.com. Nous utiliserons l'option -c 4 pour envoyer seulement 4 paquets puis nous arrêter ; sinon, ping s'exécuterait indéfiniment.

Dans votre terminal, exécutez la commande suivante :

ping6 -c 4 ipv6.google.com

Observez la sortie. Si votre système dispose d'une connexion IPv6 fonctionnelle à Internet, vous verrez des réponses réussies.

Exemple de sortie réussie :

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

Sortie attendue dans la plupart des environnements de laboratoire :

ping6: connect: Network is unreachable

Note importante : Dans la VM LabEx, vous verrez probablement "Network is unreachable" lorsque vous tenterez de pinger des adresses IPv6. C'est parce que l'environnement de laboratoire peut résoudre l'adresse IPv6 mais n'a pas de route IPv6 vers l'Internet public. Ce scénario courant, connu sous le nom de "lacune IPv6" (IPv6 gap), démontre la différence cruciale entre une résolution DNS réussie et une connectivité réseau réelle. Le fait que la résolution DNS ait fonctionné dans les étapes précédentes mais que la connectivité échoue ici illustre que votre système peut correctement interroger et recevoir des adresses IPv6, même lorsqu'il ne peut pas établir de connexions IPv6 réelles.

Félicitations ! Vous avez terminé ce laboratoire. Vous avez appris à inspecter votre configuration DNS locale, à utiliser dig et nslookup pour interroger les enregistrements AAAA IPv6, et à utiliser ping6 pour tester la connectivité IPv6.

Résumé

Dans ce laboratoire, vous avez appris les étapes fondamentales pour effectuer des recherches DNS IPv6 dans un environnement Linux. Vous avez commencé par inspecter le fichier /etc/resolv.conf pour identifier les serveurs DNS que votre système est configuré pour utiliser. Vous avez ensuite pratiqué l'utilisation de deux utilitaires essentiels en ligne de commande, dig et nslookup, pour interroger spécifiquement les enregistrements AAAA IPv6, résolvant ainsi avec succès les noms de domaine vers leurs adresses IPv6 correspondantes.

Enfin, vous avez utilisé la commande ping6 pour tester la connectivité IPv6, ce qui a démontré la distinction importante entre la résolution DNS et la connectivité réseau réelle. Même si l'environnement de laboratoire peut résoudre avec succès les adresses IPv6, il lui manque le routage IPv6 vers l'Internet public, ce qui entraîne des erreurs "Network is unreachable". En accomplissant ces étapes, vous avez acquis une expérience pratique des outils et concepts clés pour gérer et dépanner la résolution de noms IPv6 sous Linux, et vous comprenez la différence entre les requêtes DNS réussies et la connectivité réseau réelle.