Dig (Domain Information Groper) est un puissant outil de ligne de commande pour interroger les serveurs de noms DNS.
Le dig
, vous permet d'interroger des informations sur divers enregistrements DNS, y compris les adresses d'hôte, les échanges de courrier et les serveurs de noms. C'est l'outil le plus couramment utilisé par les administrateurs système pour résoudre les problèmes DNS en raison de sa flexibilité et de sa facilité d'utilisation.
Ce tutoriel explique comment utiliser le dig
utilité à travers des exemples pratiques et des explications détaillées des dig
les plus courants options.
Installation de dig
#
Pour vérifier si le dig
La commande est disponible sur votre type de système :
dig -v
Le résultat devrait ressembler à ceci :
DiG 9.11.3-1ubuntu1.1-Ubuntu
Si dig
n'est pas présent sur votre système, la commande ci-dessus affichera "dig:command not found". Le dig
L'outil peut être installé à l'aide du gestionnaire de packages de la distribution.
Installer dig
sur Ubuntu et Debian #
sudo apt update && sudo apt install dnsutils
Installer dig
sur CentOS et Fedora #
sudo yum install bind-utils
Installer dig
sur Arch Linux #
sudo pacman -S bind-tools
Comprendre le dig
Sortie #
Dans sa forme la plus simple, lorsqu'il est utilisé pour interroger un seul hôte (domaine) sans aucune option supplémentaire, le dig
la commande est assez détaillée.
Dans l'exemple suivant, nous effectuons sur linux.org
domaine :
dig linux.org
Le résultat devrait ressembler à ceci :
Allons section par section et expliquons le résultat du dig
commande :
-
La première ligne de la sortie imprime le
dig
installé version et le nom de domaine demandé. La deuxième ligne affiche les options globales (par défaut, uniquement cmd).; <<>> DiG 9.13.3 <<>> linux.org ;; global options: +cmd
Si vous ne voulez pas que ces lignes soient incluses dans la sortie, utilisez le
+nocmd
option. Cette option doit être la toute première après ledig
commande. -
La section suivante comprend des détails techniques sur la réponse reçue de l'autorité requise (serveur DNS). L'en-tête montre l'opcode (l'action effectuée par
dig
) et le statut de l'action. Dans cet exemple, le statut estNOERROR
, ce qui signifie que l'autorité requise a servi la requête sans aucun problème.;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37159 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 5
Cette section peut être supprimée en utilisant le
+nocomments
option, qui désactive également les en-têtes d'autres sections. -
La pseudo-section "OPT" n'est affichée que dans les nouvelles versions de
dig
utilitaire. Vous pouvez en savoir plus sur les mécanismes d'extension pour DNS (EDNS) ici.;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096
Pour exclure cette section de la sortie, utilisez le
+noedns
option. -
Dans la section "QUESTION"
dig
affiche la requête (question). Par défaut,dig
demande l'enregistrement A.;; QUESTION SECTION: ;linux.org. IN A
Vous pouvez désactiver cette section en utilisant le
+noquestion
option. -
La section « RÉPONSE » nous fournit une réponse à notre question. Comme nous l'avons déjà mentionné, par défaut
dig
demandera l'enregistrement A. Ici, nous pouvons voir que le domainelinux.org
pointe vers le104.18.59.123
Adresse IP.;; ANSWER SECTION: linux.org. 300 IN A 104.18.59.123 linux.org. 300 IN A 104.18.58.123
Habituellement, vous ne voulez pas désactiver la réponse, mais vous pouvez supprimer cette section de la sortie en utilisant le
+noanswer
option. -
La section "AUTORITÉ" nous indique quel(s) serveur(s) sont l'autorité pour répondre aux requêtes DNS sur le domaine interrogé.
;; AUTHORITY SECTION: linux.org. 86379 IN NS lia.ns.cloudflare.com. linux.org. 86379 IN NS mark.ns.cloudflare.com.
Vous pouvez désactiver cette section de la sortie en utilisant le
+noauthority
option. -
La section « SUPPLÉMENTAIRE » nous donne des informations sur les adresses IP des serveurs DNS faisant autorité indiqués dans la section autorité.
;; ADDITIONAL SECTION: lia.ns.cloudflare.com. 84354 IN A 173.245.58.185 lia.ns.cloudflare.com. 170762 IN AAAA 2400:cb00:2049:1::adf5:3ab9 mark.ns.cloudflare.com. 170734 IN A 173.245.59.130 mark.ns.cloudflare.com. 170734 IN AAAA 2400:cb00:2049:1::adf5:3b82
Le
+noadditional
option désactive la section supplémentaire d'une réponse. -
La dernière section de la
dig
la sortie inclut des statistiques sur la requête.;; Query time: 58 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Oct 12 11:46:46 CEST 2018 ;; MSG SIZE rcvd: 212
Vous pouvez désactiver cette partie avec le
+nostats
option.
Imprimer uniquement le numéro de réponse
Généralement, vous ne voudriez obtenir qu'une réponse courte à votre dig
requête.
1. Obtenez une réponse courte #
Pour obtenir une réponse courte à votre requête, utilisez le +short
choix :
dig linux.org +short
104.18.59.123
104.18.58.123
La sortie inclura uniquement les adresses IP de l'enregistrement A.
2. Obtenez une réponse détaillée #
Pour une réponse plus détaillée, désactivez tous les résultats en utilisant le +noall
options, puis activez uniquement la section de réponse avec le +answer
option.
dig linux.org +noall +answer
; <<>> DiG 9.13.3 <<>> linux.org +noall +answer
;; global options: +cmd
linux.org. 67 IN A 104.18.58.123
linux.org. 67 IN A 104.18.59.123
Interroger le numéro de serveur de noms spécifique
Par défaut, si aucun serveur de noms n'est spécifié, dig
utilise les serveurs listés dans /etc/resolv.conf
fichier.
Pour spécifier un serveur de noms sur lequel la requête sera exécutée, utilisez le @
(arobase) suivi de l'adresse IP ou du nom d'hôte du serveur de noms.
Par exemple, pour interroger le serveur de noms Google (8.8.8.8) pour obtenir des informations sur linux.org
domaine que vous utiliseriez :
dig linux.org @8.8.8.8
; <<>> DiG 9.13.3 <<>> linux.org @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39110
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;linux.org. IN A
;; ANSWER SECTION:
linux.org. 299 IN A 104.18.58.123
linux.org. 299 IN A 104.18.59.123
;; Query time: 54 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Oct 12 14:28:01 CEST 2018
;; MSG SIZE rcvd: 70
Interroger un type d'enregistrement #
Dig vous permet d'effectuer n'importe quelle requête DNS valide en ajoutant le type d'enregistrement à la fin de la requête. Dans la section suivante, nous vous montrerons des exemples de recherche des enregistrements les plus courants, tels que A (l'adresse IP), CNAME (nom canonique), TXT (enregistrement de texte), MX (échangeur de messagerie) et NS ( serveurs de noms).
1. Interroger les enregistrements A #
Pour obtenir la liste de toutes les adresse(s) d'un nom de domaine, utilisez le a
choix :
dig +nocmd google.com a +noall +answer
google.com. 128 IN A 216.58.206.206
Comme vous le savez déjà, si aucun type d'enregistrement DNS n'est spécifié, dig
demandera l'enregistrement A. Vous pouvez également interroger l'enregistrement A sans spécifier le a
option.
2. Interroger les enregistrements CNAME #
Pour trouver le nom de domaine alias, utilisez le cname
choix :
dig +nocmd mail.google.com cname +noall +answer
mail.google.com. 553482 IN CNAME googlemail.l.google.com.
3. Interroger les enregistrements TXT #
Utilisez le txt
possibilité de récupérer tous les enregistrements TXT pour un domaine spécifique :
dig +nocmd google.com txt +noall +answer
google.com. 300 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95"
google.com. 300 IN TXT "v=spf1 include:_spf.google.com ~all"
google.com. 300 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
4. Interroger les enregistrements MX #
Pour obtenir une liste de tous les serveurs de messagerie pour un domaine spécifique, utilisez le mx
choix :
dig +nocmd google.com mx +noall +answer
google.com. 494 IN MX 30 alt2.aspmx.l.google.com.
google.com. 494 IN MX 10 aspmx.l.google.com.
google.com. 494 IN MX 40 alt3.aspmx.l.google.com.
google.com. 494 IN MX 50 alt4.aspmx.l.google.com.
google.com. 494 IN MX 20 alt1.aspmx.l.google.com.
5. Interroger les enregistrements NS #
Pour trouver les serveurs de noms faisant autorité pour notre domaine spécifique, utilisez le ns
choix :
dig +nocmd google.com ns +noall +answer
google.com. 84527 IN NS ns1.google.com.
google.com. 84527 IN NS ns2.google.com.
google.com. 84527 IN NS ns4.google.com.
google.com. 84527 IN NS ns3.google.com.
6. Interroger tous les enregistrements #
Utilisez le any
option pour obtenir une liste de tous les enregistrements DNS pour un domaine spécifique :
dig +nocmd google.com any +noall +answer
google.com. 299 IN A 216.58.212.14
google.com. 299 IN AAAA 2a00:1450:4017:804::200e
google.com. 21599 IN NS ns2.google.com.
google.com. 21599 IN NS ns1.google.com.
google.com. 599 IN MX 30 alt2.aspmx.l.google.com.
google.com. 21599 IN NS ns4.google.com.
google.com. 599 IN MX 50 alt4.aspmx.l.google.com.
google.com. 599 IN MX 20 alt1.aspmx.l.google.com.
google.com. 299 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
google.com. 21599 IN CAA 0 issue "pki.goog"
google.com. 599 IN MX 40 alt3.aspmx.l.google.com.
google.com. 3599 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95"
google.com. 21599 IN NS ns3.google.com.
google.com. 599 IN MX 10 aspmx.l.google.com.
google.com. 3599 IN TXT "v=spf1 include:_spf.google.com ~all"
google.com. 59 IN SOA ns1.google.com. dns-admin.google.com. 216967258 900 900 1800 60
Numéro de recherche DNS inversée
Pour interroger le nom d'hôte associé à une adresse IP spécifique, utilisez le -x
option.
Par exemple, pour effectuer une recherche inversée sur 208.118.235.148
vous taperiez :
dig -x 208.118.235.148 +noall +answer
Comme vous pouvez le voir sur la sortie ci-dessous l'adresse IP 208.118.235.148
est associé au nom d'hôte wildebeest.gnu.org
.
; <<>> DiG 9.13.3 <<>> -x 208.118.235.148 +noall +answer
;; global options: +cmd
148.235.118.208.in-addr.arpa. 245 IN PTR wildebeest.gnu.org.
Requêtes groupées #
Si vous souhaitez interroger un grand nombre de domaines, vous pouvez les ajouter dans un fichier (un domaine par ligne) et utiliser le -f
option suivie du nom du fichier.
Dans l'exemple suivant, nous interrogeons les domaines répertoriés dans le domains.txt
fichier.
lxer.com
linuxtoday.com
tuxmachines.org
dig -f domains.txt +short
108.166.170.171
70.42.23.121
204.68.122.43
Le fichier .digrc #
Le dig
le comportement de la commande peut être contrôlé en configurant des options par utilisateur dans le ${HOME}/.digrc
fichier.
Si le .digrc
est présent dans le répertoire personnel de l'utilisateur, les options qui y sont spécifiées sont appliquées avant les arguments de la ligne de commande.
Par exemple, si vous souhaitez afficher uniquement la section de réponse, ouvrez votre éditeur de texte et créez le ~/.digrc
suivant fichier :
+nocmd +noall +answer
Conclusion #
dig
est un outil de ligne de commande pour interroger les informations DNS et résoudre les problèmes liés au DNS.
Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.