Dig, il Domain Information Groper è una delle utili utilità per cercare Domain Name System (DNS). Il comando aiuta gli amministratori a interrogare un dominio per ottenere le sue informazioni DNS. Ad esempio, server dei nomi, indirizzo IP, record di risorse come A, CNAME, MX, NS ecc... Aiuta anche a convalidare un dominio recuperando il record RRSIG di un dominio che è firmato DNSSEC (Domain Name System Security Extension). Se desideri configurare un server DNS, potresti provare alcuni comandi dig per assicurarti che l'installazione funzioni correttamente. In questo articolo, mostrerò 13 comandi di esempio di dig con output di esempio come riferimento.
1. Formato comando di base
$dig kernel.org ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> kernel.org ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64302 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 5 ;; QUESTION SECTION: ;kernel.org. IN A ;; ANSWER SECTION: kernel.org. 339 IN A 149.20.4.69 kernel.org. 339 IN A 198.145.20.140 ;; AUTHORITY SECTION: kernel.org. 76838 IN NS ns1.kernel.org. kernel.org. 76838 IN NS ns0.kernel.org. kernel.org. 76838 IN NS ns2.kernel.org. ;; ADDITIONAL SECTION: ns1.kernel.org. 76838 IN A 149.20.20.144 ns1.kernel.org. 76838 IN AAAA 2001:4f8:8:10::1:1 ns2.kernel.org. 76838 IN A 149.20.4.80 ns2.kernel.org. 76838 IN AAAA 2001:4f8:1:10::1:1 ns0.kernel.org. 76838 IN A 198.145.19.196 ;; Query time: 70 msec ;; SERVER: 10.180.0.11#53(10.180.0.11) ;; WHEN: Thu Nov 14 18:15:32 2013 ;; MSG SIZE rcvd: 218
L'output di scavo è composto da:intestazioni, sezione domande, sezione risposte, sezione autorità, sezione aggiuntiva e statistiche.
Intestazioni: Le intestazioni sono costituite da informazioni sulla versione di dig in uso e sul dominio a cui viene effettuata la query. Se la query è stata richiesta a un DNS specifico, le informazioni sul server DNS vengono visualizzate anche nell'intestazione.
Sezione di domande: Questo mostra la domanda che è stata posta al DNS. Ad esempio, il comando precedente scava nel dominio "kernel.org" e il tipo predefinito utilizzato è il record "A". Significa che abbiamo cercato di recuperare un record di kernel.org.
Sezione delle risposte: Ecco la risposta alla domanda posta. Ottieni l'indirizzo IP del dominio kernel.org
Sezione Autorità :i server dei nomi che hanno risposto alla query. Elenca i nameserver del dominio kernel.org.
Sezione aggiuntiva :questa sezione contiene l'indirizzo IP dei server dei nomi.
Statistiche :questa sezione contiene la dimensione del messaggio ricevuto e il tempo impiegato per recuperare i record.
2. Disabilita sezioni specifiche nell'output di scavo
$dig kernel.org +nostats +noadditional +nocomments +noquestion +noauthority ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> kernel.org +nostats +noadditional +nocomments +noquestion +noauthority ;; global options: +cmd kernel.org. 377 IN A 149.20.4.69 kernel.org. 377 IN A 198.145.20.140
+noadditional:Disattiva la sezione aggiuntiva
+nocomments :Disattiva i commenti
+nostats:disattiva le statistiche delle query
+noquest:Disattiva la sezione Domande
+noauthority:disattiva la sezione Autorità
3. Visualizza solo una sezione specifica
$ dig kernel.org +noall +answer
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> kernel.org +noall +answer ;; global options: +cmd kernel.org. 275 IN A 198.145.20.140 kernel.org. 275 IN A 149.20.4.69
+noall :disabilita tutte le sezioni
+risposta:mostra solo la sezione delle risposte
4. Interroga il record MX di un dominio
$dig kernel.org MX +noall +answer ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> kernel.org MX +noall +answer ;; global options: +cmd kernel.org. 488 IN MX 10 mail.kernel.org. kernel.org. 488 IN MX 20 ns1.kernel.org. kernel.org. 488 IN MX 999 bl-ckh-le.kernel.org.
Lo stesso può essere ottenuto anche usando l'opzione -t MX.
$ dig -t MX kernel.org +noall +answer ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t MX kernel.org +noall +answer ;; global options: +cmd kernel.org. 399 IN MX 10 mail.kernel.org. kernel.org. 399 IN MX 20 ns1.kernel.org. kernel.org. 399 IN MX 999 bl-ckh-le.kernel.org.
5. Interroga i record NS di un dominio
$ dig -t NS kernel.org +noall +answer ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t NS kernel.org +noall +answer ;; global options: +cmd kernel.org. 21479 IN NS ns0.kernel.org. kernel.org. 21479 IN NS ns2.kernel.org. kernel.org. 21479 IN NS ns1.kernel.org.
or
$ dig kernel.org NS +noall +answer ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> kernel.org NS +noall +answer ;; global options: +cmd kernel.org. 21442 IN NS ns0.kernel.org. kernel.org. 21442 IN NS ns2.kernel.org. kernel.org. 21442 IN NS ns1.kernel.org.
6. Visualizza TUTTI i record DNS
Tutti i record DNS per un dominio possono essere recuperati utilizzando l'opzione "ANY".
$ dig kernel.org ANY +noall +answer ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> kernel.org ANY +noall +answer ;; global options: +cmd kernel.org. 600 IN SOA ns1.kernel.org. hostmaster.ns1.kernel.org. 2013081404 600 150 604800 600 kernel.org. 21600 IN NS ns1.kernel.org. kernel.org. 21600 IN NS ns2.kernel.org. kernel.org. 21600 IN NS ns0.kernel.org. kernel.org. 600 IN A 149.20.4.69 kernel.org. 600 IN A 198.145.20.140 kernel.org. 600 IN MX 10 mail.kernel.org. kernel.org. 600 IN MX 20 ns1.kernel.org. kernel.org. 600 IN MX 999 bl-ckh-le.kernel.org.
OR
$ dig -t ANY kernel.org +noall +answer ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t ANY kernel.org +noall +answer ;; global options: +cmd kernel.org. 568 IN SOA ns1.kernel.org. hostmaster.ns1.kernel.org. 2013081404 600 150 604800 600 kernel.org. 21568 IN NS ns1.kernel.org. kernel.org. 21568 IN NS ns2.kernel.org. kernel.org. 21568 IN NS ns0.kernel.org. kernel.org. 568 IN A 149.20.4.69 kernel.org. 568 IN A 198.145.20.140 kernel.org. 568 IN MX 10 mail.kernel.org. kernel.org. 568 IN MX 20 ns1.kernel.org. kernel.org. 568 IN MX 999 bl-ckh-le.kernel.org.
7. Usa +short per visualizzare output brevi
Se vuoi visualizzare solo l'indirizzo IP di un dominio, usa l'opzione +short. Lo scavo estrarrà solo il record "A" del dominio richiesto.
$ dig kernel.org +short 149.20.4.69 198.145.20.140
8. Ottieni record DNSSEC
Per ottenere i record DNSSEC di un dominio che è firmato DNSSEC, utilizza l'opzione '+dnssec' come di seguito,
$ dig dnssectest.sidn.nl +dnssec +short www.sidn.nl. CNAME 8 3 86400 20131214071501 20131114071501 42033 sidn.nl. oN/P1jg9Zcx4+2XK+dZXw4OhlsGJAEK14kcIv4VQsxM0CZoyvwGsd23C pfY3k1tPXBDOy/oE+gjO0FDq+5eXXERtlTA+5Mu9tjnM5TDW66IFgOgt RN5Hw79BjAHpIR06igjXO+hk9ZqKOWCMVjyJvDgRB3PbkRIe6PNmjmgA 5Y8= 213.136.31.220 A 8 3 86400 20131214071501 20131114071501 42033 sidn.nl. pM0FWWo+U7CKIG91LHq66ZIXvphBtFhuxguB+GELlOeHXkJYSon2DwB2 ayV+TdCp9YxqdnkzbPXIGs8xZCw+KuNGIxmWGRXNp9xCC4TVkgDLpHw7 VFzTgMjyoSOjQ01rBC3vXVsWZVjYkMnjARxg/eS97QKwUYeiRHfTemUQ 9qA=
Ulteriori informazioni su DNSSEC e su come convalidare la risposta DNS.
9. Esegui ricerca inversa (da IP a dominio)
Usa l'opzione '-x' per eseguire la ricerca inversa.
$ dig -x 198.145.20.140 +short tiz-korg-pub.kernel.org
10. Query DNS multiple utilizzando l'opzione -f
$ more domains.txt kernel.org centos.org
Interroga utilizzando l'opzione -f,
$ dig -f domains.txt +noall +answer kernel.org. 166 IN A 149.20.4.69 kernel.org. 166 IN A 198.145.20.140 centos.org. 46 IN A 85.12.30.227
11. Come utilizzare un server DNS specifico per rispondere alle query
Il formato va così,
$dig @<dns_server> <domainname>
$dig @8.8.8.8 kernel.org
Il comando invierà una query a Google DNS 8.8.8.8.
12. Crea .digrc per memorizzare le opzioni predefinite
Se stai utilizzando più frequentemente il set di opzioni, aggiungile al file $HOME/.digrc.
$ cat $HOME/.digrc +noall +answer
13. Usa l'opzione "+multi" per visualizzare l'output su più righe
L'opzione '+multi' è utile per visualizzare l'output su più righe. È utile visualizzare DNSKEY.
$ dig dnssectest.sidn.nl +dnssec +multi