Dig esegue ricerche DNS e visualizza le risposte restituite dai server dei nomi che sono stati interrogati. Dig è la forma abbreviata di "Domain Information Groper".
Questo strumento è uno strumento di ricerca DNS alternativo, nslookup. A meno che non gli venga detto di interrogare un server dei nomi specifico, dig proverà ciascuno dei server elencati in '/etc/resolv.conf'.
Nel tutorial, spiegherò come usare il comando dig in Linux con esempi.
comando scava
Esegui dig senza alcuna opzione (per impostazione predefinita)
Senza alcuna opzione, dig eseguirà una query NS per "." (la radice).
Ecco un esempio di output.
$ dig
; <> DiG 9.9.2-P1 <> linux.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21655
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;linux.com. IN A
;; ANSWER SECTION:
linux.com. 1786 IN A 140.211.167.51
linux.com. 1786 IN A 140.211.167.50
;; AUTHORITY SECTION:
linux.com. 86386 IN NS ns1.linux-foundation.org.
linux.com. 86386 IN NS ns2.linux-foundation.org.
;; ADDITIONAL SECTION:
ns1.linux-foundation.org. 261 IN A 140.211.169.10
ns2.linux-foundation.org. 262 IN A 140.211.169.11
;; Query time: 258 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Sat Feb 8 21:35:35 2014
;; MSG SIZE rcvd: 158
Ora leggeremo l'output :
; <> DiG 9.9.2-P1 <> linux.com
;; global options: +cmd
Questa sezione ci parla di scavo stesso. Sappiamo che la versione dig che abbiamo usato è la 9.9.2 e l'opzione globale che abbiamo usato è +cmd.
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21655
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3
Questa sezione ci parlerà della risposta tecnica del DNS.
;; QUESTION SECTION:
;linux.com. IN A
Questa sezione ci dice quale query abbiamo chiesto di scavare
.;; ANSWER SECTION:
linux.com. 1786 IN A 140.211.167.51
linux.com. 1786 IN A 140.211.167.50
Questa sezione ci parla della risposta alla domanda che abbiamo fatto. 'Linux.com' ha due indirizzi. IP 140.211.167.51 e 140.211.167.50.
;; AUTHORITY SECTION:
linux.com. 86386 IN NS ns1.linux-foundation.org.
linux.com. 86386 IN NS ns2.linux-foundation.org.
Questa sezione ci dice quali DNS (o chi) hanno l'autorità per rispondere alla domanda "qual è l'indirizzo IP di Linux.com?"
;; ADDITIONAL SECTION:
ns1.linux-foundation.org. 261 IN A 140.211.169.10
ns2.linux-foundation.org. 262 IN A 140.211.169.11
Questa sezione ci parla dell'indirizzo IP dell'autorità DNS sopra. Possiamo disabilitare queste informazioni con +[nessuna]opzione aggiuntiva.
;; Query time: 258 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Sat Feb 8 21:35:35 2014
;; MSG SIZE rcvd: 158
Questa sezione ci fornisce alcune informazioni statistiche. Possiamo disabilitare queste informazioni utilizzando l'opzione +['no]stats.
Query del comando Scava (più comune)
Le pagine di manuale di Dig ti mostreranno molte domande valide. Ma in pratica, ci sono 5 domande comuni.
1) Interroga il NS
NS è l'abbreviazione di Name Server. Questo ti mostrerà il nome del server responsabile del dominio linux.com
$ dig linux.com NS
2) Interroga l'MX
MX è corto da Mail Exchanger. Interrogando MX ti mostrerà il nome dell'SMTP di linux.com
$ dig linux.com MX
3) Interroga l'indirizzo
Per mostrare l'indirizzo IP di linux.com, possiamo usare A parola chiave. A è l'abbreviazione di Indirizzo
$ dig linux.com A
4) Interroga TXT
TXT è un'annotazione di testo.
$ dig linux.com TXT
5) Interroga tutto
Se non sei sicuro di quello che stai cercando, puoi QUALSIASI parola chiave.
Opzioni della query del comando Scava
Quando si esegue una query, dig fornisce le opzioni per personalizzare l'output. Ecco alcuni casi popolari su base giornaliera.
6) Visualizza solo la risposta alla domanda
$ dig linux.com +noall +answer
7) Visualizza la risposta e la domanda
$ dig ubuntu.com MX +noall +answer +question
8) Visualizza in modalità breve
Questa opzione verrà utilizzata se desideri una risposta rapida
$ dig linux.com +short
9) Visualizza solo la risposta e l'autorità
Per fare ciò possiamo combinare queste opzioni :
$ dig ubuntu.com MX +noall +answer +authority
10) Visualizza query multilinea
Questo +multilinea l'opzione ti mostrerà record come i record SOA in un formato dettagliato su più righe con commenti leggibili dall'uomo. Eccone un esempio.
$ dig ibm.com +multiline +noall +answer
Esegui una ricerca inversa
Dig non serve solo per interrogare un nome in un indirizzo IP. Dig può eseguire una ricerca inversa che richiede l'indirizzo IP in un nome. Per farlo, usa -x opzione.
$ dig -x 140.211.167.51 +noall +answer
L'output ci mostra che l'IP '140.211.167.51' appartiene a 'load2d.linux-foundation.org'
Utilizza DNS specifici per eseguire la query
Per impostazione predefinita, dig utilizzerà i server DNS definiti nel tuo /etc/resolv.conf
Se desideri utilizzare un altro server DNS per eseguire la query, puoi utilizzare la parola chiave @name_of_DNS_server. Ecco un esempio.
$ dig @ns2.google.com gmail.com +nostat
Esegui ricerche in blocco
Per fare questo, possiamo farlo in 2 modi. Primo, sta usando la riga di comando.
$ dig linux.com +noall +answer ubuntu.com +noall +answer
Secondo , possiamo inserire i nomi host o i domini in un file di testo. Quindi usa -f opzione per includere il file.
$ dig -f hostnames.txt +noall +answer
Il file hostnames.txt contiene queste righe:
linux.com
ubuntu.com
Se esiste una riga vuota dopo ubuntu.com, dig interrogherà il NS per il "." (radice) anche.
Conclusione
Dig è uno degli strumenti disponibili nel sistema operativo Linux per interrogare i server DNS. Con la flessibilità di scavo, gli amministratori possono utilizzarlo per personalizzare l'output di scavo. Come al solito, possiamo sempre digitare man dig o dig -h per esplorare più dettagli sul comando dig.