Come amministratore di rete Linux, è probabile che ti imbatti in vari problemi che possono essere risolti con Linux dig
(Domain Information Groper). Non sono sicuro di come il dig
il comando funziona? Nessun problema! Ti aspetta una sorpresa!
In questo tutorial imparerai alcuni utili esempi di come utilizzare dig per risolvere i problemi del mondo reale.
Entra e fai amicizia con questo potente strumento!
Prerequisiti
Questo tutorial sarà una dimostrazione pratica. Se desideri seguire, assicurati di avere un sistema Linux. Questo tutorial utilizza Ubuntu 20.04, ma qualsiasi distribuzione Linux moderna funzionerà.
Installazione di Linux dig
Comando
Il dig
di Linux Il comando consente di raccogliere informazioni DNS che possono essere utili per la risoluzione dei problemi DNS. Ma prima di scavare nei server dei nomi, devi prima installare dig
sulla tua macchina.
1. Esegui il comando apt update di seguito per aggiornare l'indice del pacchetto del tuo sistema.
apt update -y
2. Quindi, esegui il seguente comando apt install per installare dnsutils sul tuo computer. DiG fa parte di un pacchetto di utilità DNS (dnsutils) installato con i server dei nomi BIND.
dnsutils è un insieme di strumenti forniti dal team di Ubuntu che contiene varie utilità DNS lato client, come dig.
apt install dnsutils -y
3. Infine, esegui il comando dig di seguito per verificare l'installazione di DiG.
dig -v
Di seguito, la versione di DiG mostra la 9.16.1, ma la tua potrebbe essere diversa.
Prova a Linux Dig per una query DNS di base
Ora che hai installato dig, puoi provare dig
comando per una query DNS di base. Il comando dig ti consente di interrogare i server DNS per raccogliere una manciata di informazioni che puoi utilizzare per risolvere e risolvere i problemi DNS.
La sintassi per una query DNS di base è la seguente dove:
server
– Il server DNS per interrogare un indirizzo IP o un nome di dominio. DiG utilizzerà il DNS preconfigurato del tuo computer se non specifichi un server.name
– Il nome di dominio o l'indirizzo IP da cercare.type
– Il tipo di record DNS che stai cercando.
dig [server] [name] [type]
Ora, esegui il comando seguente per interrogare i record DNS per google.com
.
Quando esegui dig
comando senza flag o argomenti, dig
esegue una query DNS come argomento e restituisce il record A per il nome host specificato.
dig [google.com]( )
Una query DNS di base che utilizza dig
è utile per alcune attività diverse, come:
- Controllo dei record DNS per un dominio.
- Scopri quale server DNS viene utilizzato per un dominio.
- Verifica se il tuo computer utilizza il server DNS corretto.
Interrogazione su google.com
Comprendere l'output di una query DNS di base
Considerando che DiG ha restituito molte informazioni sul nome di dominio che hai richiesto, puoi già vedere cosa sta succedendo con quel dominio. O no? Probabilmente no. Ma non preoccuparti. Esaminerai un'analisi dettagliata di ciascuna sezione che vedrai su un output di query DNS di base.
Di seguito, la prima riga mostra la versione di DiG e il nome di dominio richiesto (google.com ). Allo stesso tempo, la seconda riga mostra le opzioni globali utilizzate per eseguire la query.
In questo caso, l'unica opzione utilizzata è stata +cmd , che dice a DiG di stampare i comandi che sono stati eseguiti mentre DiG li esegue.
La seguente sezione (HEADER ) mostra i dettagli tecnici della richiesta:
- La prima riga specifica il opcode utilizzato per la query (in questo caso, QUERY ), seguito dallo stato:NOERROR della query e l'id numero(47244 ). Il NESSUNERRORE status indica che il server DNS ha elaborato la query e restituito correttamente una risposta. Se ricevi un SERVFAIL stato, si è verificato un errore del server DNS, che ha provocato una query non riuscita.
- Le bandiere la sezione mostra quali flag sono stati impostati per la query. In questo caso, qr (risposta alla query), rd (la ricorsione non era desiderata) e ra (la ricorsione è disponibile).
- L'ultima riga indica quante query (QUERY ) sono stati realizzati (1 ). Vedrai anche quante RISPOSTA s (1 ), AUTORITÀ record (0 ), e AGGIUNTIVI record(1 ) DiG restituito.
La OPZ PSEUDOSECTION sotto indica che il messaggio DNS è stato esteso utilizzando il protocollo EDNS0. Le bandiere il campo è vuoto perché non sono state impostate opzioni, mentre il udp campo specifica la dimensione massima del messaggio DNS, che è 65.494 byte.
Ora, la RISPOSTA la sezione seguente mostra la risposta restituita per la query. In questo caso, hai richiesto il record A di google.com e il server DNS ha restituito un indirizzo IP di 142.250.80.110 . Puoi vedere google.com Un record punta a quell'indirizzo IP.
Infine, l'ultima sezione contiene informazioni sull'ora della query e sul server utilizzato per elaborare la query. Di seguito, puoi vedere che la query ha impiegato quattro millisecondi (4 msec ) da completare e il SERVER utilizzato aveva un indirizzo IP di 127.0.0.53 .
Meno tempo impiega il server DNS per elaborare una query e restituire una risposta, meglio è. Non vuoi che i tuoi utenti aspettino a lungo prima che le query DNS vengano risolte. La lunga attesa può portare a un'esperienza utente negativa.
Recupero di risposte brevi e dettagliate
Hai appena interrogato un DNS che ha restituito una manciata di informazioni. Ma puoi controllare quale output ottieni? Sì, aggiungendo i flag (+short
, +noall
e +answer
) al dig
comando.
Supponiamo che stai cercando un record A. Il server DNS restituisce sia un record A che un record AAAA. Ma con il +short
flag, il DNS restituisce solo il record A. Il +short
flag può essere utile per ottenere una risposta rapida dai server DNS senza passare al setaccio tutte le informazioni extra.
Esegui il comando seguente per interrogare google.com
ancora. Ma questa volta, aggiungi il +short
flag per ottenere solo una risposta breve.
dig +short google.com
Di seguito, vedrai che DiG ha restituito solo una breve risposta, che è l'indirizzo del server di Google.
Ora, esegui il comando seguente per interrogare google.com
, restituendo una risposta dettagliata. Il +noall
flag omette tutte le informazioni predefinite visualizzate durante l'esecuzione di dig
comando, fatta eccezione per la sezione delle risposte (+answer
).
dig google.com +noall +answer
Specifica dei server dei nomi per la risoluzione dei nomi di dominio
Finora, hai visto come utilizzare il dig
comando con le sue impostazioni predefinite. Ma supponiamo di voler testare se un server dei nomi specifico può risolvere un nome di dominio o meno. In questi casi, specificando quale server DNS DiG utilizza durante l'esecuzione di dig
il comando può aiutare.
Per impostazione predefinita, il dig
Il comando utilizza i server DNS specificati in /etc/resolv.conf file, come mostrato di seguito.
Per ignorare quale server DNS DiG utilizza durante la risoluzione di un nome di dominio, aggiungerai il @
simbolo seguito dal server DNS o IP.
Esegui il comando seguente per interrogare un nome di dominio (server
) utilizzando il tuo server DNS preferito(dns-or-ip
). Assicurati di sostituire dns-or-ip
con il tuo server DNS, ma questo tutorial utilizza 8.8.8.8 .
dig server +noall +answer @dns-or-ip
Di seguito puoi vedere che il server DNS ha risolto correttamente il nome di dominio e ha restituito risposte in dettaglio.
Interrogazione di tipi di record specifici
Per impostazione predefinita, il dig
comando query per un record A se non si specifica alcun tipo di record. Ma DiG ti consente anche di interrogare altri tipi di record DNS, come MX, NS, TXT e così via.
Per specificare un tipo di record, aggiungi il tipo di record subito dopo il nome di dominio che stai cercando, come nell'esempio seguente.
Esegui il comando seguente per interrogare google.com
per i record MX.
dig +noall +answer google.com mx
Di seguito puoi vedere il record MX per google.com è smtp.google.com .
Ora, esegui il comando seguente per interrogare google.com
per i record TXT
dig +noall +answer google.com txt
L'output seguente mostra tutti i record TXT per google.com , come mostrato di seguito.
Esecuzione di query in modalità batch
Supponiamo di voler cercare le informazioni DNS per più nomi di dominio. Interrogare le informazioni una per una per ciascun nome di dominio può essere noioso e richiedere molto tempo.
Fortunatamente, il dig
comando supporta una modalità batch, in cui è possibile specificare un file contenente un elenco di nomi di dominio. DiG eseguirà query DNS per tutti i nomi di dominio elencati in quel file in modalità batch.
Apri un nuovo file di testo denominato dns-batch-file.txt nel tuo editor di testo preferito e aggiungi i nomi di dominio (uno per riga), come mostrato di seguito. Quando sei soddisfatto dell'elenco, salva il file e chiudi l'editor.
Ora, esegui il comando seguente per interrogare tutti i domini elencati nella specifica (-f
) dns-batch-file.txt
file in modalità batch.
dig -f dns-batch-file.txt +noall +answer
Come puoi vedere di seguito, le informazioni DNS per tutti i domini sono state interrogate e visualizzate in formato tabellare.
Controllare il comportamento di DiG usando .digrc File
DiG legge varie impostazioni dal file ~/.digrc quando esegui il comando dig. Questo file contiene varie impostazioni che ti consentono di controllare il modo in cui dig
comando si comporta. Con il file ~/.digrc , puoi impostare il server DNS predefinito che è il dig
comando dovrebbe interrogare o impostare il tipo di record predefinito da interrogare se non ne specifichi nessuno.
Forse miri a ottenere una risposta dettagliata e ignorare tutte le altre sezioni il più delle volte quando esegui il dig
comando. In questi casi, puoi usare ~./digrc per impostare lo stile di output predefinito per dig
comando, come nell'esempio seguente.
Esegui il echo
comando seguente, che non fornisce output, ma aggiunge il +noall +answer
riga a ~/.digrc file.
echo "+noall +answer" > ~/.digrc
Ora esegui il dig
comando per interrogare un nome di dominio senza argomenti. Sostituisci domain
con il tuo nome di dominio preferito.
dig domain
Puoi vedere che l'output ora contiene solo la sezione delle risposte, come mostrato di seguito. DiG userebbe il +noall +answer
flag da ~/.digrc file anche se non hai aggiunto alcun flag quando hai eseguito il comando dig.
Conclusione
In questo articolo, hai appreso varie funzionalità di Linux dig
comando per interrogare i server DNS in modo efficace. Hai anche accennato alla personalizzazione del dig
desiderato output del comando utilizzando più flag.
A questo punto, sai già come sfruttare il dig
di Linux comando nel tuo lavoro quotidiano, soprattutto durante la risoluzione dei problemi di rete.
Non fermarti qui, però. C'è di più in ciò che puoi ottenere con Linux dig
comando. Perché non utilizzare il dig
comando per eseguire una ricerca DNS inversa per trovare un nome di dominio associato a un indirizzo IP?