Dig signifie "groper d'informations de domaine".
À l'aide de la commande dig, vous pouvez interroger les serveurs de noms DNS pour vos tâches liées à la recherche DNS. Cet article explique 10 exemples d'utilisation de la commande dig.
1. Utilisation simple de la commande dig (comprendre la sortie dig)
Lorsque vous transmettez un nom de domaine à la commande dig, il affiche par défaut l'enregistrement A (l'adresse IP du site interrogé) comme indiqué ci-dessous.
Dans cet exemple, il affiche l'enregistrement A enregistrement de redhat.com dans la « ANSWER SECTION » de la sortie de la commande dig.
$ dig redhat.com ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62863 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 3 ;; QUESTION SECTION: ;redhat.com. IN A ;; ANSWER SECTION: redhat.com. 37 IN A 209.132.183.81 ;; AUTHORITY SECTION: redhat.com. 73 IN NS ns4.redhat.com. redhat.com. 73 IN NS ns3.redhat.com. redhat.com. 73 IN NS ns2.redhat.com. redhat.com. 73 IN NS ns1.redhat.com. ;; ADDITIONAL SECTION: ns1.redhat.com. 73 IN A 209.132.186.218 ns2.redhat.com. 73 IN A 209.132.183.2 ns3.redhat.com. 73 IN A 209.132.176.100 ;; Query time: 13 msec ;; SERVER: 209.144.50.138#53(209.144.50.138) ;; WHEN: Thu Jan 12 10:09:49 2012 ;; MSG SIZE rcvd: 164
La sortie de la commande dig comporte les sections suivantes :
- En-tête :affiche le numéro de version de la commande dig, les options globales utilisées par la commande dig et quelques informations d'en-tête supplémentaires.
- QUESTION SECTION :Ceci affiche la question posée au DNS. c'est-à-dire ceci est votre entrée. Puisque nous avons dit "dig redhat.com", et que le type par défaut utilisé par la commande dig est un enregistrement, cela indique dans cette section que nous avons demandé l'enregistrement A du site Web redhat.com
- SECTION DE RÉPONSE :Ceci affiche la réponse qu'il reçoit du DNS. c'est-à-dire ceci est votre sortie. Cela affiche l'enregistrement A de redhat.com
- AUTHORITY SECTION :Ceci affiche le serveur de noms DNS qui a l'autorité pour répondre à cette requête. Fondamentalement, cela affiche les serveurs de noms disponibles de redhat.com
- SECTION ADDITIONNELLE :Cela affiche l'adresse IP des serveurs de noms répertoriés dans la SECTION AUTORITÉ.
- La section Statistiques en bas affiche quelques statistiques de commande de creusement, y compris le temps qu'il a fallu pour exécuter cette requête
2. Afficher uniquement la SECTION RÉPONSE de la sortie de la commande Dig
Pour la plupart, tout ce que vous devez regarder est la "SECTION DE RÉPONSE" de la commande dig. Ainsi, nous pouvons désactiver toutes les autres sections comme indiqué ci-dessous.
- +nocomments – Désactiver les lignes de commentaires
- +noauthority – Désactiver la section d'autorité
- +noadditional – Désactiver la section supplémentaire
- +nostats – Désactiver la section des statistiques
- +noanswer – Désactiver la section de réponse (bien sûr, vous ne voudriez pas désactiver la section de réponse)
La commande dig suivante affiche uniquement la SECTION DE RÉPONSE.
$ dig redhat.com +nocomments +noquestion +noauthority +noadditional +nostats ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com +nocomments +noquestion +noauthority +noadditional +nostats ;; global options: +cmd redhat.com. 9 IN A 209.132.183.81
Au lieu de désactiver toutes les sections que nous ne voulons pas une par une, nous pouvons désactiver toutes les sections en utilisant +noall (cela désactive également la section de réponse) et ajouter le +réponse qui n'affichera que la section de réponse.
La commande ci-dessus peut également être écrite sous une forme courte comme indiqué ci-dessous, qui affiche uniquement la SECTION DE RÉPONSE.
$ dig redhat.com +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com +noall +answer ;; global options: +cmd redhat.com. 60 IN A 209.132.183.81
3. Interroger les enregistrements MX à l'aide de dig -t MX
Pour interroger les enregistrements MX, transmettez MX comme argument à la commande dig comme indiqué ci-dessous.
$ dig redhat.com MX +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com MX +noall +answer ;; global options: +cmd redhat.com. 513 IN MX 5 mx1.redhat.com. redhat.com. 513 IN MX 10 mx2.redhat.com.
Vous pouvez également utiliser l'option -t pour transmettre le type de requête (par exemple :MX) comme indiqué ci-dessous.
$ dig -t MX redhat.com +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -t MX redhat.com +noall +answer ;; global options: +cmd redhat.com. 489 IN MX 10 mx2.redhat.com. redhat.com. 489 IN MX 5 mx1.redhat.com.
4. Interroger les enregistrements NS à l'aide de dig -t NS
Pour interroger l'enregistrement NS, utilisez le type NS comme indiqué ci-dessous.
$ dig redhat.com NS +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com NS +noall +answer ;; global options: +cmd redhat.com. 558 IN NS ns2.redhat.com. redhat.com. 558 IN NS ns1.redhat.com. redhat.com. 558 IN NS ns3.redhat.com. redhat.com. 558 IN NS ns4.redhat.com.
Vous pouvez également utiliser l'option -t pour transmettre le type de requête (par exemple :NS) comme indiqué ci-dessous.
$ dig -t NS redhat.com +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -t NS redhat.com +noall +answer ;; global options: +cmd redhat.com. 543 IN NS ns4.redhat.com. redhat.com. 543 IN NS ns1.redhat.com. redhat.com. 543 IN NS ns3.redhat.com. redhat.com. 543 IN NS ns2.redhat.com.
5. Afficher TOUS les types d'enregistrements DNS à l'aide de dig -t ANY
Pour afficher tous les types d'enregistrement (A, MX, NS, etc.), utilisez ANY comme type d'enregistrement, comme indiqué ci-dessous.
$ dig redhat.com ANY +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com ANY +noall +answer ;; global options: +cmd redhat.com. 430 IN MX 5 mx1.redhat.com. redhat.com. 430 IN MX 10 mx2.redhat.com. redhat.com. 521 IN NS ns3.redhat.com. redhat.com. 521 IN NS ns1.redhat.com. redhat.com. 521 IN NS ns4.redhat.com. redhat.com. 521 IN NS ns2.redhat.com.
(ou) Utilisez -t TOUT
$ dig -t ANY redhat.com +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -t ANY redhat.com +noall +answer ;; global options: +cmd redhat.com. 367 IN MX 10 mx2.redhat.com. redhat.com. 367 IN MX 5 mx1.redhat.com. redhat.com. 458 IN NS ns4.redhat.com. redhat.com. 458 IN NS ns1.redhat.com. redhat.com. 458 IN NS ns2.redhat.com. redhat.com. 458 IN NS ns3.redhat.com.
6. Afficher la sortie courte à l'aide de dig +short
Pour afficher uniquement l'adresse IP d'un site Web (c'est-à-dire l'enregistrement A), utilisez l'option de forme courte comme indiqué ci-dessous.
$ dig redhat.com +short 209.132.183.81
Vous pouvez également spécifier un type d'enregistrement que vous souhaitez afficher avec l'option +short.
$ dig redhat.com ns +short ns2.redhat.com. ns3.redhat.com. ns1.redhat.com. ns4.redhat.com.
7. Recherche DNS inversée à l'aide de dig -x
Pour effectuer une recherche DNS inversée en utilisant l'adresse IP en utilisant dig -x comme indiqué ci-dessous
Par exemple, si vous n'avez qu'une adresse IP externe et que vous souhaitez connaître le site Web qui lui appartient, procédez comme suit.
$ dig -x 209.132.183.81 +short www.redhat.com.
Pour afficher tous les détails de la recherche DNS inversée, supprimez l'option +short.
$ dig -x 209.132.183.81 ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -x 209.132.183.81 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62435 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 3 ;; QUESTION SECTION: ;81.183.132.209.in-addr.arpa. IN PTR ;; ANSWER SECTION: 81.183.132.209.in-addr.arpa. 600 IN PTR www.redhat.com. ;; AUTHORITY SECTION: 183.132.209.in-addr.arpa. 248 IN NS ns2.redhat.com. 183.132.209.in-addr.arpa. 248 IN NS ns1.redhat.com. 183.132.209.in-addr.arpa. 248 IN NS ns3.redhat.com. 183.132.209.in-addr.arpa. 248 IN NS ns4.redhat.com. ;; ADDITIONAL SECTION: ns1.redhat.com. 363 IN A 209.132.186.218 ns2.redhat.com. 363 IN A 209.132.183.2 ns3.redhat.com. 363 IN A 209.132.176.100 ;; Query time: 35 msec ;; SERVER: 209.144.50.138#53(209.144.50.138) ;; WHEN: Thu Jan 12 10:15:00 2012 ;; MSG SIZE rcvd: 193
8. Utiliser un serveur DNS spécifique en utilisant dig @dnsserver
Par défaut, dig utilise les serveurs DNS définis dans votre fichier /etc/resolv.conf.
Si vous souhaitez utiliser un autre serveur DNS pour effectuer la requête, spécifiez-le dans la ligne de commande sous la forme @dnsserver.
L'exemple suivant utilise ns1.redhat.com comme serveur DNS pour obtenir la réponse (au lieu d'utiliser les serveurs DNS du fichier /etc/resolv.conf).
$ dig @ns1.redhat.com redhat.com ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> @ns1.redhat.com redhat.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20963 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;redhat.com. IN A ;; ANSWER SECTION: redhat.com. 60 IN A 209.132.183.81 ;; AUTHORITY SECTION: redhat.com. 600 IN NS ns1.redhat.com. redhat.com. 600 IN NS ns4.redhat.com. redhat.com. 600 IN NS ns3.redhat.com. redhat.com. 600 IN NS ns2.redhat.com. ;; ADDITIONAL SECTION: ns1.redhat.com. 600 IN A 209.132.186.218 ns2.redhat.com. 600 IN A 209.132.183.2 ns3.redhat.com. 600 IN A 209.132.176.100 ns4.redhat.com. 600 IN A 209.132.188.218 ;; Query time: 160 msec ;; SERVER: 209.132.186.218#53(209.132.186.218) ;; WHEN: Thu Jan 12 10:22:11 2012 ;; MSG SIZE rcvd: 180
9. Requête DNS en masse à l'aide de dig -f (et de la ligne de commande)
Interrogez plusieurs sites Web à l'aide d'un fichier de données :
Vous pouvez effectuer une requête DNS groupée basée sur les données d'un fichier.
Tout d'abord, créez un exemple de fichier names.txt contenant le site Web que vous souhaitez interroger.
$ vi names.txt redhat.com centos.org
Ensuite, exécutez dig -f comme indiqué ci-dessous, qui effectuera une requête DNS pour les sites Web répertoriés dans le fichier names.txt et affichera la sortie.
$ dig -f names.txt +noall +answer redhat.com. 60 IN A 209.132.183.81 centos.org. 60 IN A 72.232.194.162
Vous pouvez également combiner le type d'enregistrement avec l'option -f. L'exemple suivant affiche les enregistrements MX de plusieurs sites Web qui se trouvent dans le fichier names.txt.
$ dig -f names.txt MX +noall +answer redhat.com. 600 IN MX 10 mx2.redhat.com. redhat.com. 600 IN MX 5 mx1.redhat.com. centos.org. 3600 IN MX 10 mail.centos.org.
Interrogez plusieurs sites Web à partir de la ligne de commande dig :
Vous pouvez également interroger plusieurs sites Web à partir de la ligne de commande dig, comme indiqué ci-dessous. L'exemple suivant interroge l'enregistrement MX pour redhat.com et l'enregistrement NS pour centos.org à partir de la ligne de commande
$ dig redhat.com mx +noall +answer centos.org ns +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com mx +noall +answer centos.org ns +noall +answer ;; global options: +cmd redhat.com. 332 IN MX 10 mx2.redhat.com. redhat.com. 332 IN MX 5 mx1.redhat.com. centos.org. 3778 IN NS ns3.centos.org. centos.org. 3778 IN NS ns4.centos.org. centos.org. 3778 IN NS ns1.centos.org.
10. Utilisez le fichier $HOME/.digrc pour stocker les options de fouille par défaut
Si vous essayez toujours d'afficher uniquement la section ANSWER de la sortie dig, vous n'avez pas besoin de continuer à taper "+noall +answer" sur chaque commande dig. Au lieu de cela, ajoutez vos options de creusement au fichier .digrc comme indiqué ci-dessous.
$ cat $HOME/.digrc +noall +answer
Désormais, chaque fois que vous exécuterez la commande dig, elle utilisera toujours les options +noall et +answer par défaut. Maintenant, la ligne de commande dig est devenue très simple et facile à lire sans que vous ayez à taper ces options à chaque fois.
$ dig redhat.com redhat.com. 60 IN A 209.132.183.81 $ dig redhat.com MX redhat.com. 52 IN MX 5 mx1.redhat.com. redhat.com. 52 IN MX 10 mx2.redhat.com.