GNU/Linux >> Linux Esercitazione >  >> Linux

10 Esempi di comandi DIG Linux per la ricerca DNS

Dig sta per domain information groper.

Usando il comando dig puoi interrogare i server dei nomi DNS per le tue attività relative alla ricerca DNS. Questo articolo spiega 10 esempi su come utilizzare il comando dig.

1. Utilizzo del comando dig semplice (Capire l'output dig)

Quando si passa un nome di dominio al comando dig, per impostazione predefinita viene visualizzato il record A (l'indirizzo IP del sito richiesto) come mostrato di seguito.

In questo esempio, viene visualizzata la A record di redhat.com nella "SEZIONE RISPOSTA" dell'output del comando dig.

$ dig redhat.com

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62863
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 3

;; QUESTION SECTION:
;redhat.com.                    IN      A

;; ANSWER SECTION:
redhat.com.             37      IN      A       209.132.183.81

;; AUTHORITY SECTION:
redhat.com.             73      IN      NS      ns4.redhat.com.
redhat.com.             73      IN      NS      ns3.redhat.com.
redhat.com.             73      IN      NS      ns2.redhat.com.
redhat.com.             73      IN      NS      ns1.redhat.com.

;; ADDITIONAL SECTION:
ns1.redhat.com.         73      IN      A       209.132.186.218
ns2.redhat.com.         73      IN      A       209.132.183.2
ns3.redhat.com.         73      IN      A       209.132.176.100

;; Query time: 13 msec
;; SERVER: 209.144.50.138#53(209.144.50.138)
;; WHEN: Thu Jan 12 10:09:49 2012
;; MSG SIZE  rcvd: 164

L'output del comando dig ha le seguenti sezioni:

  • Intestazione:mostra il numero di versione del comando dig, le opzioni globali utilizzate dal comando dig e alcune informazioni di intestazione aggiuntive.
  • SEZIONE DOMANDA:Visualizza la domanda posta al DNS. cioè questo è il tuo input. Poiché abbiamo detto "dig redhat.com" e il tipo predefinito utilizzato dal comando dig è un record, in questa sezione indica che abbiamo richiesto il record A del sito Web redhat.com
  • SEZIONE RISPOSTA:mostra la risposta che riceve dal DNS. cioè questo è il tuo output. Viene visualizzato il record A di redhat.com
  • SEZIONE AUTORITÀ:Visualizza il server dei nomi DNS che ha l'autorità per rispondere a questa query. Fondamentalmente questo mostra i server dei nomi disponibili di redhat.com
  • SEZIONE AGGIUNTIVA:Visualizza l'indirizzo IP dei name server elencati nella SEZIONE AUTORITÀ.
  • La sezione delle statistiche in basso mostra alcune statistiche sui comandi dig, incluso il tempo impiegato per eseguire questa query

2. Visualizza solo la SEZIONE RISPOSTA del comando Dig Output

Per la maggior parte, tutto ciò che devi guardare è la "SEZIONE RISPOSTA" del comando dig. Quindi, possiamo disattivare tutte le altre sezioni come mostrato di seguito.

  • +nocomments – Disattiva le righe dei commenti
  • +noauthority – Disattiva la sezione autorità
  • +noadditional – Disattiva la sezione aggiuntiva
  • +nostats – Disattiva la sezione delle statistiche
  • +nessuna risposta – Disattiva la sezione delle risposte (ovviamente, non vorresti disattivare la sezione delle risposte)

Il seguente comando dig mostra solo la SEZIONE RISPOSTA.

$ dig redhat.com +nocomments +noquestion +noauthority +noadditional +nostats

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com +nocomments +noquestion +noauthority +noadditional +nostats
;; global options: +cmd
redhat.com.             9       IN      A       209.132.183.81

Invece di disabilitare tutte le sezioni che non vogliamo una per una, possiamo disabilitare tutte le sezioni usando +noall (questo disattiva anche la sezione delle risposte) e aggiungere la +risposta che mostrerà solo la sezione delle risposte.

Il comando precedente può anche essere scritto in forma breve come mostrato di seguito, che visualizza solo la SEZIONE RISPOSTA.

$ dig redhat.com +noall +answer

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com +noall +answer
;; global options: +cmd
redhat.com.             60      IN      A       209.132.183.81

3. Interroga i record MX utilizzando dig -t MX

Per interrogare i record MX, passa MX come argomento al comando dig come mostrato di seguito.

$ dig redhat.com  MX +noall +answer

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com MX +noall +answer
;; global options: +cmd
redhat.com.             513     IN      MX      5 mx1.redhat.com.
redhat.com.             513     IN      MX      10 mx2.redhat.com.

Puoi anche utilizzare l'opzione -t per passare il tipo di query (ad esempio:MX) come mostrato di seguito.

$ dig -t MX redhat.com +noall +answer

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -t MX redhat.com +noall +answer
;; global options: +cmd
redhat.com.             489     IN      MX      10 mx2.redhat.com.
redhat.com.             489     IN      MX      5 mx1.redhat.com.

4. Interroga i record NS utilizzando dig -t NS

Per interrogare il record NS utilizzare il tipo NS come mostrato di seguito.

$ dig redhat.com NS +noall +answer

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com NS +noall +answer
;; global options: +cmd
redhat.com.             558     IN      NS      ns2.redhat.com.
redhat.com.             558     IN      NS      ns1.redhat.com.
redhat.com.             558     IN      NS      ns3.redhat.com.
redhat.com.             558     IN      NS      ns4.redhat.com.

Puoi anche usare l'opzione -t per passare il tipo di query (ad esempio:NS) come mostrato di seguito.

$ dig -t NS redhat.com +noall +answer

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -t NS redhat.com +noall +answer
;; global options: +cmd
redhat.com.             543     IN      NS      ns4.redhat.com.
redhat.com.             543     IN      NS      ns1.redhat.com.
redhat.com.             543     IN      NS      ns3.redhat.com.
redhat.com.             543     IN      NS      ns2.redhat.com.

5. Visualizza TUTTI i tipi di record DNS utilizzando dig -t ANY

Per visualizzare tutti i tipi di record (A, MX, NS, ecc.), utilizza QUALSIASI come tipo di record come mostrato di seguito.

$ dig redhat.com ANY +noall +answer

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com ANY +noall +answer
;; global options: +cmd
redhat.com.             430     IN      MX      5 mx1.redhat.com.
redhat.com.             430     IN      MX      10 mx2.redhat.com.
redhat.com.             521     IN      NS      ns3.redhat.com.
redhat.com.             521     IN      NS      ns1.redhat.com.
redhat.com.             521     IN      NS      ns4.redhat.com.
redhat.com.             521     IN      NS      ns2.redhat.com.

(o) Utilizzare -t QUALSIASI

$ dig -t ANY redhat.com  +noall +answer

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -t ANY redhat.com +noall +answer
;; global options: +cmd
redhat.com.             367     IN      MX      10 mx2.redhat.com.
redhat.com.             367     IN      MX      5 mx1.redhat.com.
redhat.com.             458     IN      NS      ns4.redhat.com.
redhat.com.             458     IN      NS      ns1.redhat.com.
redhat.com.             458     IN      NS      ns2.redhat.com.
redhat.com.             458     IN      NS      ns3.redhat.com.

6. Visualizza output breve utilizzando dig +short

Per visualizzare solo l'indirizzo IP di un sito web (cioè il record A), usa l'opzione in forma abbreviata come mostrato di seguito.

$ dig redhat.com +short
209.132.183.81

Puoi anche specificare un tipo di record che desideri visualizzare con l'opzione +breve.

$ dig redhat.com ns +short
ns2.redhat.com.
ns3.redhat.com.
ns1.redhat.com.
ns4.redhat.com.

7. Ricerca inversa DNS utilizzando dig -x

Per eseguire una ricerca inversa DNS utilizzando l'indirizzo IP utilizzando dig -x come mostrato di seguito

Ad esempio, se hai solo un indirizzo IP esterno e desideri conoscere il sito Web a cui appartiene, procedi come segue.

$ dig -x 209.132.183.81 +short
www.redhat.com.

Per visualizzare tutti i dettagli della ricerca inversa DNS, rimuovi l'opzione +breve.

$ dig -x 209.132.183.81

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -x 209.132.183.81
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62435
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 3

;; QUESTION SECTION:
;81.183.132.209.in-addr.arpa.   IN      PTR

;; ANSWER SECTION:
81.183.132.209.in-addr.arpa. 600 IN     PTR     www.redhat.com.

;; AUTHORITY SECTION:
183.132.209.in-addr.arpa. 248   IN      NS      ns2.redhat.com.
183.132.209.in-addr.arpa. 248   IN      NS      ns1.redhat.com.
183.132.209.in-addr.arpa. 248   IN      NS      ns3.redhat.com.
183.132.209.in-addr.arpa. 248   IN      NS      ns4.redhat.com.

;; ADDITIONAL SECTION:
ns1.redhat.com.         363     IN      A       209.132.186.218
ns2.redhat.com.         363     IN      A       209.132.183.2
ns3.redhat.com.         363     IN      A       209.132.176.100

;; Query time: 35 msec
;; SERVER: 209.144.50.138#53(209.144.50.138)
;; WHEN: Thu Jan 12 10:15:00 2012
;; MSG SIZE  rcvd: 193

8. Usa un server DNS specifico usando dig @dnsserver

Per impostazione predefinita, dig usa i server DNS definiti nel tuo file /etc/resolv.conf.

Se desideri utilizzare un server DNS diverso per eseguire la query, specificalo nella riga di comando come @dnsserver.

L'esempio seguente utilizza ns1.redhat.com come server DNS per ottenere la risposta (invece di utilizzare i server DNS dal file /etc/resolv.conf).

$ dig @ns1.redhat.com redhat.com

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> @ns1.redhat.com redhat.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20963
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;redhat.com.                    IN      A

;; ANSWER SECTION:
redhat.com.             60      IN      A       209.132.183.81

;; AUTHORITY SECTION:
redhat.com.             600     IN      NS      ns1.redhat.com.
redhat.com.             600     IN      NS      ns4.redhat.com.
redhat.com.             600     IN      NS      ns3.redhat.com.
redhat.com.             600     IN      NS      ns2.redhat.com.

;; ADDITIONAL SECTION:
ns1.redhat.com.         600     IN      A       209.132.186.218
ns2.redhat.com.         600     IN      A       209.132.183.2
ns3.redhat.com.         600     IN      A       209.132.176.100
ns4.redhat.com.         600     IN      A       209.132.188.218

;; Query time: 160 msec
;; SERVER: 209.132.186.218#53(209.132.186.218)
;; WHEN: Thu Jan 12 10:22:11 2012
;; MSG SIZE  rcvd: 180

9. Query DNS in blocco utilizzando dig -f (e riga di comando)

Esegui query su più siti Web utilizzando un file di dati:

Puoi eseguire una query DNS in blocco basata sui dati di un file.

Innanzitutto, crea un file names.txt di esempio che contenga il sito Web su cui desideri eseguire la query.

$ vi names.txt
redhat.com
centos.org

Quindi, esegui dig -f come mostrato di seguito, che eseguirà una query DNS per i siti Web elencati nel file names.txt e visualizzerà l'output.

$ dig -f names.txt +noall +answer
redhat.com.             60      IN      A       209.132.183.81
centos.org.             60      IN      A       72.232.194.162

Puoi anche combinare il tipo di record con l'opzione -f. L'esempio seguente mostra i record MX di più siti Web che si trovano nel file names.txt.

$ dig -f names.txt MX +noall +answer
redhat.com.             600     IN      MX      10 mx2.redhat.com.
redhat.com.             600     IN      MX      5 mx1.redhat.com.
centos.org.             3600    IN      MX      10 mail.centos.org.

Esegui query su più siti Web dalla riga di comando dig:

Puoi anche eseguire query su più siti Web dalla riga di comando dig come mostrato di seguito. L'esempio seguente interroga il record MX per redhat.com e il record NS per centos.org dalla riga di comando

$ dig redhat.com mx +noall +answer centos.org ns +noall +answer

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com mx +noall +answer centos.org ns +noall +answer
;; global options: +cmd
redhat.com.             332     IN      MX      10 mx2.redhat.com.
redhat.com.             332     IN      MX      5 mx1.redhat.com.
centos.org.             3778    IN      NS      ns3.centos.org.
centos.org.             3778    IN      NS      ns4.centos.org.
centos.org.             3778    IN      NS      ns1.centos.org.

10. Usa il file $HOME/.digrc per memorizzare le opzioni di scavo predefinite

Se stai sempre cercando di visualizzare solo la sezione RISPOSTA dell'output dig, non devi continuare a digitare "+noall +answer" su ogni tuo comando dig. Invece, aggiungi le tue opzioni di scavo al file .digrc come mostrato di seguito.

$ cat $HOME/.digrc
+noall +answer

Ora ogni volta che esegui il comando dig, utilizzerà sempre le opzioni +noall e +answer per impostazione predefinita. Ora la riga di comando dig è diventata molto semplice e facile da leggere senza dover digitare quelle opzioni ogni volta.

$ dig redhat.com
redhat.com.             60      IN      A       209.132.183.81

$ dig redhat.com MX
redhat.com.             52      IN      MX      5 mx1.redhat.com.
redhat.com.             52      IN      MX      10 mx2.redhat.com.

Linux
  1. Comando killall Linux per principianti (8 esempi)

  2. Come utilizzare il comando Dig in Linux con esempi

  3. Utili esempi di scavi di Linux per l'amministratore di rete

  4. 10 Esempi di comandi Linux nslookup per la ricerca DNS

  5. dig Esempi di comandi in Linux

Esercitazione sui comandi OD Linux per principianti (6 esempi)

Linux w Command Tutorial per principianti (5 esempi)

Tutorial sui comandi Linux ss per principianti (8 esempi)

Comando di localizzazione Linux per principianti (8 esempi)

16 Esempi pratici di comando Linux LS per principianti

Come utilizzare il comando Dig in Linux (10 esempi)