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
diginstallé 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: +cmdSi vous ne voulez pas que ces lignes soient incluses dans la sortie, utilisez le
+nocmdoption. Cette option doit être la toute première après ledigcommande. -
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: 5Cette section peut être supprimée en utilisant le
+nocommentsoption, 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
digutilitaire. Vous pouvez en savoir plus sur les mécanismes d'extension pour DNS (EDNS) ici.;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096Pour exclure cette section de la sortie, utilisez le
+noednsoption. -
Dans la section "QUESTION"
digaffiche la requête (question). Par défaut,digdemande l'enregistrement A.;; QUESTION SECTION: ;linux.org. IN AVous pouvez désactiver cette section en utilisant le
+noquestionoption. -
La section « RÉPONSE » nous fournit une réponse à notre question. Comme nous l'avons déjà mentionné, par défaut
digdemandera l'enregistrement A. Ici, nous pouvons voir que le domainelinux.orgpointe vers le104.18.59.123Adresse IP.;; ANSWER SECTION: linux.org. 300 IN A 104.18.59.123 linux.org. 300 IN A 104.18.58.123Habituellement, vous ne voulez pas désactiver la réponse, mais vous pouvez supprimer cette section de la sortie en utilisant le
+noansweroption. -
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
+noauthorityoption. -
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:3b82Le
+noadditionaloption désactive la section supplémentaire d'une réponse. -
La dernière section de la
digla 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: 212Vous pouvez désactiver cette partie avec le
+nostatsoption.
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.