Commande dig

Avez-vous déjà réfléchi à ce qui se passe lorsque vous tapez une adresse comme google.com dans votre navigateur ? Comment votre ordinateur sait-il où envoyer votre requête ? Derrière cette magie apparente se cache un acteur clé : le DNS (Domain Name System), souvent surnommé “l’annuaire d’Internet”.
Pour comprendre et diagnostiquer ce monde invisible, il existe un outil simple mais extrêmement puissant : dig (Domain Information Groper). Que vous soyez un étudiant curieux, un administrateur système débutant ou un passionné de réseaux, apprendre à utiliser dig vous ouvrira les portes du fonctionnement d’Internet.
Dans ce tutoriel, je vais vous montrer comment installer et utiliser dig, un outil puissant pour interroger les serveurs DNS, analyser leurs réponses, et résoudre des problèmes réseau. En utilisant dig, vous découvrirez comment Internet localise les services que nous utilisons quotidiennement.

Installation de dig

Voici comment l’installer sur Debian et Ubuntu:
Mettre à jour vos dépôts de paquets :

sudo apt update

Installer dnsutils :

sudo apt install dnsutils -y

Cela installera dig ainsi que d’autres outils DNS utiles.

Voici comment l’installer sur RHEL/CentOS
Mettre à jour vos dépôts de paquets :

sudo yum update

Installation bind-utils

sudo yum install bind-utils -y

Pour RHEL 8 et CentOS 8

sudo dnf update
sudo dnf install bind-utils -y

Vérifier l’installation de dig
Après l’installation, vous pouvez vérifier que dig est bien installé en exécutant :

dig -v

 

Découvrir la Commande dig

Je vais vous montrer comment utiliser les principales fonctionnalités de dig. Voici la syntaxe de base :

dig [@serveur_DNS] nom_de_domaine [type_enregistrement]

[@serveur_DNS] : Spécifiez un serveur DNS particulier (optionnel).
nom_de_domaine : Le domaine que vous voulez interroger (ex. google.com).
[type_enregistrement ]: Spécifiez le type d’enregistrement DNS à rechercher (A, MX, TXT, etc.).

Commandes pratiques avec dig

Trouver l’adresse IP d’un domaine (type A)
Je vais vous montrer comment trouver l’adresse IPv4 associée à un domaine :

dig google.com

Résultat : L’adresse IP sera affichée dans ANSWER SECTION.

Rechercher les enregistrements MX (Mail Exchange)
Pour trouver les serveurs de messagerie d’un domaine, utilisez :

dig google.com MX

Résultat : Vous verrez la liste des serveurs de messagerie (MX) et leur priorité.

 

Utiliser un serveur DNS spécifique
Vous pouvez interroger un serveur DNS particulier, comme celui de Cloudflare (1.1.1.1) :

dig @1.1.1.1 google.com

Cela peut être utile pour vérifier si un problème DNS est lié à un serveur spécifique.

Rechercher des enregistrements TXT
Les enregistrements TXT contiennent des informations textuelles importantes pour un domaine. Parmi les utilisations courantes, on trouve les configurations liées à la sécurité des emails, comme SPF et DKIM :
•SPF (Sender Policy Framework) : Cet enregistrement définit les serveurs autorisés à envoyer des emails pour un domaine donné. Cela aide à réduire les risques de spam ou d’usurpation d’identité (spoofing).
•DKIM (DomainKeys Identified Mail) : Cet enregistrement fournit une clé cryptographique permettant de signer les emails. Il garantit que les messages n’ont pas été altérés pendant leur transit.
Pour visualiser ces informations, utilisez la commande suivante :
dig google.com TXT
Vous verrez toutes les données textuelles associées au domaine.

Obtenir des résultats simplifiés
Avec l’option +short, je vais vous montrer comment simplifier la sortie :

dig google.com +short

Résultat : Seules les informations essentielles, comme les adresses IP, sont affichées.

Trouver une adresse IPv6 (type AAAA)
Pour les domaines compatibles IPv6, utilisez :

dig google.com AAAA

Cela retourne l’adresse IPv6 si elle est disponible.

 

Suivre le chemin des requêtes DNS avec +trace
Je vais maintenant vous montrer comment utiliser l’option +trace pour analyser le chemin complet d’une requête DNS :

dig +trace google.com

Vous verrez chaque étape de la résolution DNS :
Serveurs racine : Point de départ de la recherche.
Serveurs TLD : Serveurs pour le domaine de premier niveau (.com, .org, etc.).
Serveurs autoritaires : Serveurs finaux fournissant l’adresse IP.
Par exemple :

google.com. 300 IN A 142.250.69.110

Cette ligne affiche l’adresse IP finale du domaine.

Rechercher le serveur responsable d’un domaine (SOA)
Je vais vous montrer comment obtenir les informations sur le serveur DNS maître d’un domaine :

dig google.com SOA

Le résultat inclut le nom du serveur et des détails sur la configuration DNS.

Dans mon cas le serveur DNS est 1.0.0.2 (cloudflare)

Tester plusieurs serveurs DNS
Pour vérifier si différents serveurs DNS renvoient des résultats cohérents :

dig @8.8.8.8 google.com
dig @1.1.1.1 google.com

Comparez les réponses pour détecter d’éventuelles incohérences.

Diagnostiquer un domaine avec plus de détails
Ajoutez des options pour un diagnostic plus précis :

dig google.com +nocmd +noall +answer

Résultat : Affiche uniquement la réponse DNS, sans le reste des informations.

 

Résolution de Problèmes

Je vais vous montrer comment identifier et résoudre les problèmes les plus courants que vous pouvez rencontrer en utilisant dig.
Pas de réponse DNS :
Problème : Vous exécutez une requête avec dig, mais elle échoue ou reste bloquée, affichant un message comme :

;; connection timed out; no servers could be reached

Vérifiez votre connexion réseau ou utilisez un autre serveur DNS .
Vérifiez la connectivité avec un ping :

ping 8.8.8.8

Essayez un autre serveur DNS, comme Google (8.8.8.8) :

dig @8.8.8.8 google.com

Si cette requête fonctionne, cela signifie que votre serveur DNS par défaut est peut-être hors service ou mal configuré.

Détection d’un blocage du port 53 avec dig

Je vais vous montrer comment utiliser dig pour identifier si le port 53, utilisé pour les requêtes DNS, est bloqué par un pare-feu. Ce problème peut se produire si vous êtes capable de faire un ping vers une adresse IP (comme 1.1.1.1 ou 8.8.8.8), mais que vous ne pouvez pas résoudre de noms de domaine (google.com).
Si vous utilisez un serveur DNS local comme Pi-hole, DNSmasq ou BIND, celui-ci doit pouvoir communiquer avec les serveurs DNS supérieurs (comme 8.8.8.8 ou 1.1.1.1) pour résoudre les adresses externes.
Si ce lien est rompu, votre serveur DNS continuera de fonctionner pour les requêtes locales, mais ne pourra plus résoudre les noms de domaine vers Internet. Les requêtes vont s’accumuler dans le cache et, une fois saturé, cela peut provoquer des erreurs sur le serveur DNS local. Dans ce cas, Internet cessera de fonctionner pour votre réseau local, bien que les connexions IP directes puissent toujours être établies.

Cas où le port 53 peut être bloqué involontairement

Un blocage du port 53 peut arriver dans plusieurs situations :
✔️ Pare-feu mal configuré (iptables, firewalld, pfSense, FortiGate)
✔️ Fournisseur d’accès à Internet (FAI) qui force l’utilisation de ses propres DNS
✔️ Routeur configuré pour intercepter ou rediriger les requêtes DNS
✔️ Proxy ou filtrage réseau qui limite l’accès aux DNS externes
Dans tous ces cas, si votre serveur DNS local ne peut pas atteindre les DNS en amont, vous observerez des pannes progressives jusqu’à un blocage total de la résolution DNS.

Étapes pour diagnostiquer un blocage du port 53

Tester la connectivité réseau avec ping : Avant de suspecter un problème de DNS, assurez-vous que votre connexion Internet fonctionne bien.

ping 8.8.8.8

Si le ping fonctionne, votre connexion réseau est en place.
Si le ping échoue : Le problème vient peut-être de la connectivité Internet (vérifiez votre routeur, votre configuration réseau).

Tester une requête DNS avec dig : Essayez de résoudre un nom de domaine via un serveur DNS public :

dig @8.8.8.8 google.com

Si vous obtenez une réponse DNS valide → Le port 53 fonctionne et votre problème vient d’ailleurs.
Si vous obtenez une erreur comme connection timed out, cela peut indiquer soit un serveur DNS injoignable, soit un blocage du port 53.

En effet :
– Le ping vers le serveur DNS fonctionnait.
– Mais les requêtes DNS échouaient.

En cas de blocage du port 53, vous pouvez soit vérifier les règles du pare-feu sur votre réseau, soit utiliser un serveur DNS fonctionnant sur un autre port (par exemple, avec des outils comme dnscrypt-proxy).
Astuce : Si vous suspectez un pare-feu matériel (par exemple, un FortiGate), vous pouvez vérifier ses logs ou demander à l’administrateur réseau de lever cette restriction.

La commande dig est un outil essentiel pour explorer et diagnostiquer les infrastructures DNS. Je vous ai montré comment l’installer et l’utiliser avec des exemples pratiques adaptés aux débutants. En maîtrisant ces commandes, vous serez mieux préparé pour résoudre des problèmes réseau ou simplement comprendre comment les DNS fonctionnent.
Essayez maintenant les commandes et amusez-vous à explorer le monde des DNS ! 😊

Bonne chance!