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
diginstallato 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: +cmdSe non vuoi che quelle righe siano incluse nell'output, usa
+nocmdopzione. Questa opzione deve essere la prima dopodigcomando. -
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: 5Questa sezione può essere rimossa usando
+nocommentsopzione, che disabilita anche le intestazioni di altre sezioni. -
La pseudo sezione "OPT" viene mostrata solo nelle versioni più recenti di
digutilità. Puoi leggere ulteriori informazioni sui meccanismi di estensione per DNS (EDNS) qui.;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096Per escludere questa sezione dall'output, usa
+noednsopzione. -
Nella sezione "DOMANDA"
digmostra la query (domanda). Per impostazione predefinita,digrichiede il record A.;; QUESTION SECTION: ;linux.org. IN APuoi disabilitare questa sezione usando il
+noquestionopzione. -
La sezione “RISPOSTA” ci fornisce una risposta alla nostra domanda. Come abbiamo già detto, per impostazione predefinita
digrichiederà il record A. Qui possiamo vedere che il dominiolinux.orgpunta al104.18.59.123Indirizzo IP.;; ANSWER SECTION: linux.org. 300 IN A 104.18.59.123 linux.org. 300 IN A 104.18.58.123Di solito, non vuoi disattivare la risposta, ma puoi rimuovere questa sezione dall'output usando il
+noansweropzione. -
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
+noauthorityopzione. -
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:3b82Il
+noadditionalopzione disabilita la sezione aggiuntiva di una risposta. -
L'ultima sezione dello
digl'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: 212Puoi disabilitare questa parte con
+nostatsopzione.
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.