GNU/Linux >> Tutoriels Linux >  >> Linux

Commande Dig sous Linux (recherche DNS)

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 :

  1. 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 le dig commande.

  2. 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 est NOERROR , 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.

  3. 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.

  4. 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.

  5. 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 domaine linux.org pointe vers le 104.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.

  6. 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.

  7. 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.

  8. 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.

domaines.txt
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 :

~/.digrc
+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.


Linux
  1. Comment utiliser la commande Dig sous Linux

  2. Commande Linux mv

  3. Linux du command

  4. Commande IP Linux

  5. Commande cd Linux

À la commande sous Linux

Comment utiliser la commande Dig sous Linux (10 exemples)

Comment utiliser la commande Dig sous Linux

Explication de la commande Dig sous Linux

Commande dig sous Linux :une référence complète pour les débutants

10 exemples de commandes Linux DIG pour la recherche DNS