Il comando dig di Linux consente di interrogare i server DNS ed eseguire ricerche DNS. Puoi anche trovare il dominio a cui riporta un indirizzo IP. Ti mostreremo come in questa guida.

Come funziona il comando dig

Le persone usano il comando dig di Linux per interrogare i server DNS (Domain Name System). dig è l’acronimo di Domain Information Groper. Il tool serve per interrogare i server DNS per informazioni su vari record DNS, inclusi indirizzi host, server di posta MX, SPF e informazioni correlate. Doveva essere uno strumento per diagnosticare problemi DNS. Tuttavia, puoi usarlo per curiosare e saperne di più sul DNS, che è uno dei sistemi centrali che mantengono il traffico del routing Internet.

Internet utilizza gli indirizzi IP (Internet Protocol) per identificare le “pagine” sul Web, ma le persone usano i nomi di dominio per accedervi come miosito.com. Quando si digita un nome di dominio in un’applicazione, come un browser Web o un client SSH, qualcosa deve tradurre dal nome di dominio all’indirizzo IP effettivo. Qui entra in gioco il Domain Name System.

Quando usi un nome di dominio con qualsiasi programma connesso a Internet, il tuo router locale non può risolverlo (a meno che non sia memorizzato nella cache da una richiesta precedente). Pertanto, il router esegue una query sul server DNS del provider di servizi Internet (ISP) o su qualsiasi altro server configurato per l’uso.

Se il server DNS ha recentemente ricevuto la stessa richiesta da qualcun altro sullo stesso computer, la risposta potrebbe trovarsi nella sua cache. In tal caso, invia semplicemente le stesse informazioni al tuo programma.

Se il server DNS non è in grado di individuare il dominio nella sua cache, contatta un server dei nomi root DNS. Un server root non conterrà le informazioni richieste per risolvere i nomi di dominio in indirizzi IP, ma conterrà elenchi di server che possono aiutarti con la tua richiesta.

Il server principale esamina il dominio di primo livello a cui appartiene il tuo nome di dominio, ad esempio .COM, .ORG, .CO.UK e così via. Invia quindi un elenco dei server di dominio di livello superiore che gestiscono tali domini al server DNS. Il server DNS può quindi inoltrare nuovamente la richiesta a un server di dominio di livello superiore.

Come installare dig

dig era già installato sui nostri computer come probabilmente la tua macchina linux. Altrimenti cerca in google in base al tuo sistema operativo come installarlo.

Introduzione a dig

Nel nostro primo esempio, restituiremo gli indirizzi IP associati a un nome di dominio. Spesso, più indirizzi IP sono associati a un singolo nome di dominio. Ciò accade spesso se si utilizza il load balancer, ad esempio.

Usiamo l’opzione +short, come mostrato di seguito, che ci dà una risposta concisa:

Tutti gli indirizzi IP associati al dominio zeroesperto.com sono elencati per noi. All’altra estremità dello spettro, se non utilizziamo l’opzione + query breve, l’output è piuttosto dettagliato.

Quindi, digitiamo quanto segue: dig zeroesperto.com | less

Ora, ecco cosa significa tutto ciò:

  • First line: La versione di dig e il dominio nella query.
  • Global options: Puoi utilizzare dig per una query con multipli domini simultaneamente.
  • Opcode: Query: Il tipo di operazione che era stato richiesto, in questo caso query. Il valore potrebbe essere anche uniquery per una query inversa ostatus se stai testando lo stato del dns.
  • Status: Noerror: Non si sono verificati errori e la richiesta è stata risolta correttamente.
  • ID: 4171: Questo ID casuale unisce la richiesta e la risposta.
  • Flags: qr rd ra: Questo sta per query, recursion desired, erecursion available. La ricorsione è una forma di ricerca DNS (l’altra è iterativa). Potresti anche vedere AA, che sta per Risposta autorevole, il che significa che un Server dns autorevole ha fornito la risposta.
  • Query: 1: Il numero di query in questa sessione, che era uno.
  • Answer: 1: Il numero di risposte in questa risposta, che è uno.
  • Authority: 0: Il numero di risposte provenienti da un server dns autorevole, che era zero in questo caso. La risposta è stata restituita dalla cache di un server DNS. Non ci sarà una risposta autorevole nella risposta.
  • Additional: 1: C’è un pezzo di informazioni aggiuntive. (Stranamente, nulla è elencato a meno che questo valore non sia due o superiore.)

Opt Pseudosection

Successivamente, vediamo quanto segue nella Opt Pseudosection:

EDNS: versione 0: la versione di Extension System per DNS in uso. EDNS trasmette dati e flag estendendo la dimensione dei pacchetti UDP (User Datagram Protocol). Ciò è indicato da un flag di dimensioni variabili.
flag: non sono in uso flag.
udp: 4096: la dimensione del pacchetto UDP.

Question Section

zeroesperto.com: il nome di dominio che stiamo interrogando.
IN: Stiamo eseguendo una query di classe Internet.
A: Salvo diversamente specificato, dig richiederà un record A (indirizzo) dal server DNS.

Answer Section

La sezione Risposta contiene come mostrato in alto la unica risposta che abbiamo.

Statistics Section

Le statistiche sono la sezione finale e contengono le seguenti informazioni:

  • Query Time: 12 msec: Il tempo impiegato per ottenere la risposta.
  • SERVER: 192.168.226.2#53: L’indirizzo IP e il numero di porta del server DNS che ha risposto. In questo caso, indica il risolutore della cache locale. Ciò inoltra le richieste DNS a qualunque server DNS upstream sia configurato.
  • WHEN: Sat May 02 10:55:23: Quando è stata effettuata la richiesta.
  • MSG SIZE rcvd: 60: La dimensione del messaggio ricevuto dal server DNS.

Il comando dig ti consente di includere o escludere selettivamente sezioni dai risultati. Le seguenti opzioni di query rimuoveranno quella sezione dai risultati:

+ nocomments: non mostrare le righe dei commenti.
+ noauthority: non mostrare la sezione autorità.
+ noadditional: non mostrare la sezione aggiuntiva.
+ nostats: non mostrare la sezione delle statistiche.
+ noanswer: non mostrare la sezione delle risposte.
+ noall: non mostrare nulla

È quindi possibile utilizzare le seguenti opzioni di query inclusive per riattivare quelle che si desidera visualizzare:

+ commenti: mostra le righe dei commenti.
+ autorità: mostra la sezione autorità.
+ aggiuntivo: mostra la sezione aggiuntiva.
+ stats: mostra la sezione stats.
+ risposta: mostra la sezione di risposta.
+ tutto: mostra tutto.

Record DNS

Le informazioni restituite alle richieste di scavo vengono estratte da diversi tipi di record conservati sul server DNS. A meno che non chiediamo qualcosa di diverso, dig interroga il record A (indirizzo). Di seguito sono riportati i tipi di record comunemente utilizzati con dig:

  •     Record MX: lo scambio di posta registra le e-mail dirette inviate ai domini al server di posta corretto.
  •     Record NS: i record del server dei nomi del server di un dominio (o sottodominio). Nameservers
  •     Record TXT: i record di testo memorizzano informazioni basate su testo relative al dominio. In genere, potrebbero essere utilizzati per bloccare e-mail fake.
  •     Record SOA: l’inizio dei record di autorità può contenere molte informazioni sul dominio. Qui puoi trovare il server dei nomi principale, la parte responsabile, un timestamp per le modifiche, la frequenza degli aggiornamenti.
  •     TTL: Time to live è un’impostazione per ogni record DNS che specifica per quanto tempo un server DNS è autorizzato a memorizzare nella cache ogni query DNS. Allo scadere del tempo, i dati devono essere aggiornati per le richieste successive.
  •     ANY: Questo dice a dig di restituire ogni tipo di record DNS che può.

Specificando il tipo di record A non si modifica l’azione predefinita, ovvero eseguire una query sul record dell’indirizzo e ottenere l’indirizzo IP, come mostrato di seguito: