Menu Fermer

Comment utiliser la commande Dig sur Linux (recherche DNS)

La commande dig dans Linux est utilisée pour collecter des informations DNS. Il signifie Domain Information Groper et collecte des données sur les serveurs de noms de domaine. La commande Dig est utile pour résoudre les problèmes DNS, mais est également utilisé pour effectuer toutes sortes de résolutions DNS.

Ce guide vous aidera à comprendre et à utiliser la commande Dig sur Linux avec des exemples.

Comment utiliser la commande Dig sur Linux (recherche DNS)

Comment installer Dig

Dig n’est pas une commande de base Linux.
Il convient donc d’installer le paquet en utilisant le gestionnaire de packages de votre distribution Linux.

Installer dig sur Debian/Ubuntu avec APT :

sudo apt-get install dnsutils

Installer dig sur Fedora avec dnf :

sudo yum install bind-utils

Quelle est la syntaxe de dig

Voici la syntaxe de la commande dig :

dig <serveur> <nom> <type>
  • <serveur> – le nom d’hôte ou l’adresse IP à laquelle la requête est dirigée
  • <nom> – Le DNS (serveur de noms de domaine) du serveur à interroger
  • <type> – Le type d’enregistrement DNS à récupérer. Par défaut (ou s’il est laissé vide), dig utilise le type d’enregistrement A

Comment utiliser la commande Dig avec des exemples

Faire une recherche DNS

dig www.malekal.com

La commande dig affiche ensuite 5 sections :

  1. Un récapitulatif des drapeaux et en-tête : Les flag et quelques options DNS
  2. OPT PSEUDOSECTION : 
    • EDNS – Extension system for DNS si utilisé
    • Le cookie DNS si présent
    • Flags – vide car aucun drapeau n’a été spécifié
    • UDP – La taille du paquet UDP
  3. Answer Section : la réponse DNS. Pour la supprimer, il faut utiliser +[no]answer
  4. Authority section : les serveurs DNS faisant autorités. Celles-ci ne s’affichent que si vous effectué la recherche DNS avec les serveurs d’autorité. Pour l’afficher ou la retirer, on utilise +[no]authority.
  5. Enfin la section STATISTICS avec des informations supplémentaires sur la requête DNS
Interpréter la commande DIG de Linux

La section ANWSER est la plus importante :

  • La première colonne répertorie la recherche du nom de domaine qui a été interrogé
  • La deuxième colonne est Time-To-Live, un délai défini après quoi l’enregistrement est actualisé
  • La troisième colonne montre la classe de requête – dans ce cas, IN signifie Internet
  • La quatrième colonne affiche le type de requête – dans ce cas, «A» représente un enregistrement A (adresse)
  • La colonne finale affiche l’adresse IP associée au nom de domaine
Interpréter la commande DIG de Linux

La section en-tête affiche les informations qu’elle a reçues du serveur. Les drapeaux se réfèrent au format de réponse.
On y trouve aussi la version de dig.

On peut la retirer avec l’option +[no]comments.

Interpréter la commande DIG de Linux

Comprendre la section d’en-tête de la commande DIG
La section PSEUDOSECTION affiche des données avancées :

  • EDNS – Extension system for DNS, s’il est utilisé
  • Drapeaux – vide car aucun drapeau n’a été spécifié
  • UDP – Taille du paquet UDP
Interpréter la commande DIG de Linux

La section QUESTIONS affiche les données de requête envoyées :

  • La première colonne est le nom de domaine interrogé
  • La deuxième colonne est le type (in = Internet) de la requête
  • La troisième colonne spécifie l’enregistrement (a = adresse), sauf indication contraire
  • Compréhension de la section de question de la commande DIG

Interpréter la commande DIG de Linux

La section STATISTICS montre des métadonnées sur la requête :

  • Temps de requête – le temps qu’il a fallu pour une réponse
  • Serveur – L’adresse IP et le port du serveur DNS répondant. Vous pouvez remarquer une adresse de bouclage dans cette ligne – cela fait référence à un paramètre local qui traduit les adresses DNS
  • Quand – horodatage lorsque la commande a été exécutée
  • Taille MSG RCVD – La taille de la réponse du serveur DNS

Cette section se désactiver avec l’option +[no]additional.

Interpréter la commande DIG de Linux

Comment spécifier un serveur DNS

Par défaut, Dig utilise la configuration locale (/etc/resolv.conf) pour décider quel serveur de noms utiliser.
Utilisez la commande suivante pour spécifier le serveur de domaine de Google :

dig @8.8.8.8 google.fr

Le terminal imprime la sortie suivante :

Comment spécifier un serveur DNS dans dig

Comment obtenir les serveurs MX d’un domaine

L’option -t vous permet d’obtenir certaines données DNS spécifiques.
Par exemple pour faire une recherche des serveurs MX d’un domaine, utilisez -t mx :

dig -t mx google.fr

De même par exemple pour afficher les entrées SPF :

dig -t txt google.fr

Utiliser l’option short answer

Pour afficher uniquement l’adresse IP associée au nom de domaine, entrez ce qui suit :

dig google.fr +short
Comment obtenir les serveurs MX d'un domaine

Afficher des détails dans la section answer

Exécutez +noall +answer avec la commande Dig pour accéder aux informations détaillées dans la section answer :

dig google.fr +noall +answer
Afficher des détails dans la section answer

Utiliser l’option Trace

L’option +trace répertorie chaque serveur différent que la requête passe jusqu’à sa destination finale.
Utilisez cette option de commande pour identifier l’adresse IP où le trafic tombe.

dig google.fr +trace
Utiliser l'option Trace

Faire une recherche DNS inversée (reverse DNS)

Pour connaitre le DNS d’une adresse IP (DNS inversé) :

dig -x 172.217.14.238
Faire une recherche DNS inversée (reverse DNS)

Tester la validité DNSSEC

Dig permet aussi de tester la validité DNSSEC.
Pour rappel, cela permet d’authentifier les réponses des serveurs DNS.
J’en parle dans cet article : DNSSEC, DNS Over TLS ou HTTPS (DoT et DoH) et DNSCrypt : les différences

La syntaxe :

dig www.malekal.com +dnssec

Si le serveur DNS est configuré pour utiliser DNSSEC alors le flag ad apparaît.
Dans les réponses, une section RRSIG s’affiche aussi.

Tester la résolution DNSSEC avec dig

Comment utiliser le mode batch pour lire les noms d’hôte à partir d’un fichier

Dig peut aussi lire un fichier texte afin d’effectuer une recherche de DNS en mode batch

  • Par exemple, créez le fichier dns.txt :
vim dns.txt
  • Puis utilisez dig avec l’option -f pour spécifier ce dernier :
dig -f dns.txt +short

Comment modifier les options permanentes de dig

Les informations affichées par DIG peuvent être modifiées dans le fichier ~/.digrc.

  • Ouvrez le fichier pour l’édition avec la commande suivante:
sudo vim ~/.digrc
  • Puis ajoutez les options dig souhaitées :
+noall
+noauthority
+answer
  • Effectuez une résolution DNS
dig www.google.fr
  • Puis vérifiez l’en-tête ou si la commande dig retourne bien les options configurées
Comment modifier les options permanentes de dig