l comando Linux dig (Domain Information Groper) è un potente strumento che può essere usato per interrogare un server DNS e ottenere diverse informazioni su un dominio. Si capisce subito quindi che è un comando che può essere estremamente utile sia per gli amministratori di rete che per gli sviluppatori web.
Usando dig si può risalire a informazioni come:
- Risolvere i nomi di dominio in indirizzi IP e viceversa
- Eseguire ricerche DNS su un determinato tipo di record come MX, NS, TXT, etc.
- Ottenere informazioni sui server DNS di un determinato dominio
- Verificare la risoluzione dei nomi di dominio da parte dei server DNS.
Se vuoi gestire un server dedicato linux, controlla ne nostre offerte qui.
Sintassi ed esempi
Un esempio sintassi del comando dig è la seguente:
dig [@server] [dominio] [opzioni]
se volessimo immaginare un caso concreto in cui completiamo il comando con istruzioni reali possiamo scrivere:
dig @1.1.1.1 sitoesempio.i t+short
in questo modo stiamo dicendo al comando dig di darci informazioni sul server 1.1.1.1 per il sitoesempio.it
Questo esempio contiene già delle opzioni, e mostra un esempio di uso completo che usando l’opzione short si ottiene un output in formato corto ottenendo subito gli indirizzi IP. Vedremo di seguito le opzioni più comuni per il comando dig e ne spiegheremo le funzionalità principali.
Opzioni del comando dig
opzione – -r: interroga ricorsivamente ogni server per ottenere l’indirizzo IP.
dig -r directory/
opzione – -c: Specifica la classe di interrogazione dei server DNS
dig -c IN www.sitoesempio.it
opzione – -t: Può essere usata per specificare il tipo di record che deve essere recuperato dal server DNS.
dig -t A www.sitoesempio.it
opzione – -x: Esegue una ricerca DNS inversa, cioè cercare di risalire al nome di un host a partire dal suo indirizzo IP
dig -x 192.0.2.1
opzione – -b: Specifica l’indirizzo IP di origine della query,
dig -b 10.0.0.1 www.sitoesempio.it
opzione – -p: Specifica la porta di origine della query,
dig -p 53 www.sitoesempio.it
opzione – -k: Specifica il nome della chiave TSIG,
dig -k example.com www.sitoesempio.it
opzione – -y: Specifica il valore della chiave TSIG,
dig -y keyvalue www.sitoesempio.it
opzione – -f: Leggere le query da un file
dig -f /path/to/file
Opzioni della Query del comando Dig
Oltre alle opzioni legate al comando ci sono le opzioni della query, cioè opzioni che si aggiungono alla richiesta (ed altre opzioni) per controllare l’output che riceviamo dall’esecuzione del comando. Abbiamo menzionato prima l’opzione “short” in un esempio, questa che permette di ottenere una risposta con una sintassi minima.
Le opzioni della query devono essere precedute dal segno +, ad esempio aggiungendo:
+[no]cmd si evita che appaiano le righe di comando
+[no]questions evita le domande
+trace è un’opzione di debug che mostra tutte le query effettuate per risolvere il nome del dominio
+time=N è un’opzione di tempo, dove N specifica un tempo massimo entro il quale la query deve essere eseguita
+retry=N dove N è il numero di tentativi da eseguire in seguito a query senza esito
Infine esiste anche un’opzione per server: aggiungendo il segno @ si può specificare l’indirizzo del server in cui cercare.
Problemi comuni con il comando dig
Non è semplicissimo applicare i comandi di Linux e le loro opzioni, molti fattori esterni ed interni possono concorrere alla mancata esecuzione di questi. Ecco alcuni esempi:
- Errore di connessione: se si verifica un errore di connessione, potrebbe essere causato da un firewall o da una configurazione errata della rete. Assicurati che il server DNS sia raggiungibile e che non ci siano blocchi sulla porta UDP 53.
- Risposta errata: se il risultato della query è errato, potrebbe essere causato da un errore nella configurazione DNS o da una cache DNS obsoleta. Prova ad effettuare la query su un altro server DNS per verificare se il problema persiste.
- Risposta vuota: se la query non restituisce alcuna risposta, potrebbe essere causata da un nome di dominio non valido o da un problema con il server DNS. Verifica che il nome di dominio sia scritto correttamente e che il server DNS sia attivo e funzionante.
- Tempo di risposta elevato: se la query richiede molto tempo per restituire una risposta, potrebbe essere causato da un server DNS lento o da una rete congestionata. Prova ad effettuare la query su un altro server DNS o in un momento diverso per verificare se il problema persiste.
- Permessi insufficienti: se si riceve un messaggio di errore “permission denied”, potrebbe essere necessario eseguire il comando dig con i privilegi di amministratore. Esegui il comando con il prefisso “sudo” per ottenere i permessi necessari.