Dig (Domain Information Groper) è un potente strumento da riga di comando per interrogare i server dei nomi DNS.
Lo dig
comando, consente di interrogare informazioni su vari record DNS, inclusi indirizzi host, scambi di posta e server dei nomi. È lo strumento più comunemente utilizzato dagli amministratori di sistema per la risoluzione dei problemi DNS grazie alla sua flessibilità e facilità d'uso.
Questo tutorial spiega come usare dig
utilità attraverso esempi pratici e spiegazioni dettagliate dei più comuni dig
opzioni.
Installazione di dig
#
Per verificare se il dig
comando è disponibile sul tuo tipo di sistema:
dig -v
L'output dovrebbe essere simile a questo:
DiG 9.11.3-1ubuntu1.1-Ubuntu
Se dig
non è presente sul tuo sistema, il comando sopra stamperà "dig:comando non trovato". Lo dig
lo strumento può essere installato utilizzando il gestore di pacchetti della distribuzione.
Installa dig
su Ubuntu e Debian #
sudo apt update && sudo apt install dnsutils
Installa dig
su CentOS e Fedora #
sudo yum install bind-utils
Installa dig
su Arch Linux #
sudo pacman -S bind-tools
Capire lo dig
Uscita #
Nella sua forma più semplice, quando viene utilizzato per interrogare un singolo host (dominio) senza opzioni aggiuntive, il dig
il comando è piuttosto dettagliato.
Nell'esempio seguente, stiamo eseguendo su linux.org
dominio:
dig linux.org
L'output dovrebbe essere simile a questo:
Andiamo sezione per sezione e spieghiamo l'output di dig
comando:
-
La prima riga dell'output stampa il
dig
installato versione e il nome di dominio richiesto. La seconda riga mostra le opzioni globali (per impostazione predefinita, solo cmd).; <<>> DiG 9.13.3 <<>> linux.org ;; global options: +cmd
Se non vuoi che quelle righe siano incluse nell'output, usa
+nocmd
opzione. Questa opzione deve essere la prima dopodig
comando. -
La sezione successiva include dettagli tecnici sulla risposta ricevuta dall'autorità interpellata (server DNS). L'intestazione mostra l'opcode (l'azione eseguita da
dig
) e lo stato dell'azione. In questo esempio, lo stato èNOERROR
, il che significa che l'autorità interpellata ha risposto alla domanda senza alcun problema.;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37159 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 5
Questa sezione può essere rimossa usando
+nocomments
opzione, che disabilita anche le intestazioni di altre sezioni. -
La pseudo sezione "OPT" viene mostrata solo nelle versioni più recenti di
dig
utilità. Puoi leggere ulteriori informazioni sui meccanismi di estensione per DNS (EDNS) qui.;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096
Per escludere questa sezione dall'output, usa
+noedns
opzione. -
Nella sezione "DOMANDA"
dig
mostra la query (domanda). Per impostazione predefinita,dig
richiede il record A.;; QUESTION SECTION: ;linux.org. IN A
Puoi disabilitare questa sezione usando il
+noquestion
opzione. -
La sezione “RISPOSTA” ci fornisce una risposta alla nostra domanda. Come abbiamo già detto, per impostazione predefinita
dig
richiederà il record A. Qui possiamo vedere che il dominiolinux.org
punta al104.18.59.123
Indirizzo IP.;; ANSWER SECTION: linux.org. 300 IN A 104.18.59.123 linux.org. 300 IN A 104.18.58.123
Di solito, non vuoi disattivare la risposta, ma puoi rimuovere questa sezione dall'output usando il
+noanswer
opzione. -
La sezione "AUTHORITY" ci dice quali server sono l'autorità per rispondere alle query DNS sul dominio richiesto.
;; AUTHORITY SECTION: linux.org. 86379 IN NS lia.ns.cloudflare.com. linux.org. 86379 IN NS mark.ns.cloudflare.com.
Puoi disabilitare questa sezione dell'output usando
+noauthority
opzione. -
La sezione “ADDITIONAL” ci fornisce informazioni sugli indirizzi IP dei server DNS autorevoli mostrati nella sezione 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
Il
+noadditional
opzione disabilita la sezione aggiuntiva di una risposta. -
L'ultima sezione dello
dig
l'output include le statistiche sulla query.;; 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
Puoi disabilitare questa parte con
+nostats
opzione.
Stampa solo la risposta #
In genere, vorresti ottenere solo una breve risposta al tuo dig
interrogazione.
1. Ottieni una risposta breve #
Per ottenere una breve risposta alla tua domanda, usa il +short
opzione:
dig linux.org +short
104.18.59.123
104.18.58.123
L'output includerà solo gli indirizzi IP del record A.
2. Ottieni una risposta dettagliata #
Per una risposta più dettagliata, disattiva tutti i risultati utilizzando +noall
opzioni e quindi attivare solo la sezione delle risposte con il +answer
opzione.
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
Query server dei nomi specifico #
Per impostazione predefinita, se non viene specificato alcun server dei nomi, dig
utilizza i server elencati in /etc/resolv.conf
file.
Per specificare un server dei nomi su cui verrà eseguita la query, utilizzare @
(at) simbolo seguito dall'indirizzo IP del name server o dal nome host.
Ad esempio, per interrogare il server dei nomi di Google (8.8.8.8) per informazioni su linux.org
dominio che useresti:
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
Interroga un tipo di record #
Dig consente di eseguire qualsiasi query DNS valida aggiungendo il tipo di record alla fine della query. Nella sezione seguente, ti mostreremo esempi di come cercare i record più comuni, come A (l'indirizzo IP), CNAME (nome canonico), TXT (record di testo), MX (scambiatore di posta) e NS ( server dei nomi).
1. Interrogazione dei record A #
Per ottenere un elenco di tutti gli indirizzi per un nome di dominio, utilizzare il a
opzione:
dig +nocmd google.com a +noall +answer
google.com. 128 IN A 216.58.206.206
Come già sai, se non viene specificato alcun tipo di record DNS, dig
richiederà il record A. Puoi anche interrogare il record A senza specificare il a
opzione.
2. Interrogazione dei record CNAME #
Per trovare l'alias nome di dominio usa il cname
opzione:
dig +nocmd mail.google.com cname +noall +answer
mail.google.com. 553482 IN CNAME googlemail.l.google.com.
3. Interrogazione dei record TXT #
Usa il txt
opzione per recuperare tutti i record TXT per un dominio specifico:
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. Interrogazione dei record MX #
Per ottenere un elenco di tutti i server di posta per un dominio specifico usa il mx
opzione:
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. Interrogazione dei record NS #
Per trovare i name server autorevoli per il nostro dominio specifico usa il ns
opzione:
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. Interrogazione di tutti i record #
Usa any
opzione per ottenere un elenco di tutti i record DNS per un dominio specifico:
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
Ricerca DNS inversa #
Per interrogare l'hostnameassociato ad uno specifico indirizzo IP usa il -x
opzione.
Ad esempio, per eseguire una ricerca inversa su 208.118.235.148
dovresti digitare:
dig -x 208.118.235.148 +noall +answer
Come puoi vedere dall'output sotto l'indirizzo IP 208.118.235.148
è associato al nome host 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.
Query in blocco #
Se desideri interrogare un numero elevato di domini, puoi aggiungerli in un file (un dominio per riga) e utilizzare il -f
opzione seguita dal nome del file.
Nell'esempio seguente, stiamo interrogando i domini elencati in domains.txt
file.
lxer.com
linuxtoday.com
tuxmachines.org
dig -f domains.txt +short
108.166.170.171
70.42.23.121
204.68.122.43
Il file .digrc #
Lo dig
il comportamento del comando può essere controllato impostando le opzioni per utente in ${HOME}/.digrc
file.
Se il .digrc
file è presente nella home directory dell'utente, le opzioni in esso specificate vengono applicate prima degli argomenti della riga di comando.
Ad esempio, se vuoi visualizzare solo la sezione delle risposte, apri il tuo editor di testo e crea il seguente ~/.digrc
file:
+nocmd +noall +answer
Conclusione #
dig
è uno strumento da riga di comando per eseguire query sulle informazioni DNS e risolvere i problemi relativi al DNS.
Se hai domande o feedback, sentiti libero di lasciare un commento.