nslookup: come funziona il pratico strumento per controllare il DNS

Svolgendo la funzione di servizio di database centrale per la consultazione di indirizzi di rete, il Domain Name System (DNS) contribuisce enormemente al successo di Internet e del World Wide Web. La rete composta da server DNS distribuiti in tutto il mondo (chiamati anche name server) si assicura che i nomi dei diversi partecipanti e delle applicazioni di rete come example.org vengano risolti negli indirizzi IP basati su numeri e leggibili dalle macchine (e viceversa), garantendo che in qualsiasi momento, anche senza saperlo, l'IP effettivo del giusto computer o del sito richiesto sia raggiungibile.

In determinate situazioni, ad esempio in caso di problemi durante la risoluzione del nome di dominio, può però essere utile dare uno sguardo dietro le quinte e ricercare l'indirizzo IP dietro un nome di dominio o il nome di dominio che si nasconde dietro l'indirizzo IP. Uno strumento utile a tale scopo è il programma nslookup, già installato di default su Windows, macOS e Linux.

Che cos'è nslookup?

nslookup è uno strumento della riga di comando facile e molto pratico che viene usato soprattutto per risalire all'indirizzo IP assegnato a un determinato host o al nome di dominio collegato a un determinato indirizzo IP (Reverse DNS Lookup). Il programma nslookup si può eseguire dalla riga di comando del rispettivo sistema operativo: gli utenti Windows avviano quindi il servizio dal prompt dei comandi, mentre quelli Unix dal terminale. Oggigiorno esistono inoltre numerosi servizi web che consentono di eseguire online il programma nslookup.

N.B.

Il nome nslookup sta per “name server look up”, che si può tradurre con “controllo dei name server”.

Con nslookup si ottengono le informazioni relative all'indirizzo direttamente dalla cache DNS dei name server, dove gli utenti hanno a disposizione due diverse modalità: nella modalità non interattiva il tool indaga di default i resource record (il nome dato ai record dell'indirizzo memorizzati nella cache DNS) memorizzati nei name server locali. Questa modalità è particolarmente adatta per query semplici, in cui deve essere controllato un singolo record di un dominio. Se per la ricerca si utilizza un altro server DNS e si vogliono portare a termine dei processi di ricerca più complessi, si deve ricorrere alla modalità interattiva, in cui il programma della riga di comando viene avviato separatamente.

N.B.

A differenza degli altri programmi della riga di comando di Windows/DOS, nslookup dispone di un parametro “case sensitive” con -q, vale a dire che i comandi variano a seconda dell'uso di maiuscole o minuscole.

A che cosa serve nslookup?

Ci sono diversi scenari in cui risulta utile utilizzare nslookup. Il programma della riga di comando è uno strumento importante soprattutto per la risoluzione di errori DNS. Un'interrogazione delle informazioni aiuta principalmente a trovare la causa del problema sorto. Ad esempio chi usa un server Windows e ha un problema con il servizio di directory Active Directory, può controllare velocemente e facilmente con nslookup se tutti i server coinvolti siano stati risolti come pianificato nel Domain Name System. Generalmente i punti di forza del programma emergono laddove esistono diversi sottodomini, sia che si tratti semplicemente di controllarli sia che sorgano effettivamente problemi di connessione.

Un altro tipico scenario di utilizzo è la ricerca dei mail server ottimali (SMTP, POP, IMAP) per il dominio desiderato. In questo caso nslookup individua i server presi in considerazione servendosi dei record MX (Mail Exchanger), che appartengono al dominio del provider di posta elettronica. Questi record comprendono gli indirizzi IP e i nomi dei server del provider, che devono essere inseriti durante la configurazione del client di posta elettronica per perfezionare il routing del traffico dello scambio di e-mail elettronico.

Come funziona nslookup su Linux, Windows e macOS

Per utilizzare nslookup sui computer Mac, Windows o Linux, si apre prima di tutto la riga di comando del relativo sistema operativo. Ci sono due modalità, introdotte prima brevemente, per utilizzare lo strumento DNS per i propri scopi:

  • modalità interattiva: avviare nslookup con il comando omonimo e aggiungere in seguito il parametro separatamente;
  • modalità non interattiva: inserire il comando nslookup e il parametro desiderato direttamente.

Il procedimento da applicare dipende dalle proprie competenze pregresse. Se si conoscono i parametri necessari, niente impedisce di eseguire una query del server DNS in un unico passaggio (a condizione che non debba essere cambiato il server DNS). I neofiti che devono prima di tutto prendere confidenza con il servizio possono facilitarsi il compito avviando nslookup e appropriandosi della sintassi e dei parametri passo per passo. In questa modalità è di aiuto visualizzare le possibili opzioni disponibili con il comando “help”.

Per interrompere la query su nslookup si deve solo eseguire il comando “exit” o chiudere la riga di comando. In alternativa basta ricorrere alla combinazione di tasti [CTRL] + [C].

nslookup: esempi per l'utilizzo del servizio di query

Una volta avviato in un unico passaggio il programma nslookup, la riga di comando attende che vengano inseriti altri comandi. Così gli utenti hanno la possibilità di eseguire le query con il setup standard o di stabilire opzioni personalizzate. Per il primo metodo si inserisce quindi solo il nome di dominio per cui deve essere ricercato l'indirizzo IP (o viceversa) nella riga di comando e si conferma la scelta con il tasto invio. Ad esempio la ricerca dell'indirizzo del dominio example.org si presenta così su nslookup:

In questo caso è stata restituita una “risposta da un server non autorevole”, visto che il server DNS locale non ha potuto rispondere autonomamente, ma ha dovuto contattare altri name server. Il contenuto della risposta di nslookup sono gli indirizzi IPv4 (a quattro cifre) e IPv6 (più lunghi, divisi da due punti) relativi al dominio di esempio.

Vi illustriamo di seguito due esempi per le query di nslookup nella modalità interattiva, configurate in modo personalizzato.

Richiamare determinati tipi di indirizzi dai resource record

Il programma nslookup si orienta principalmente alla query di indirizzi IPv4 e IPv6. Tuttavia, come accennato, lo strumento della riga di comando può richiamare informazioni di altri tipi di indirizzi di un dominio tramite la possibilità di accesso ai record DNS. Per questo motivo l'utente deve prima definire ("set") il tipo desiderato ("type"), prima di inserire il nome di dominio nella riga di comando. La sintassi del relativo comando di nslookup si presenta così:

set type=TIPODIINDIRIZZO

Come "TIPODIINDIRIZZO" viene inserito il tipo di query richiesta, che si può scegliere tra i seguenti tipi:

Parametro di nslookup Tipo di query
A Indirizzo IPv4
AAAA Indirizzo IPv6
MX Mail server del/i nome/i di dominio (Mail Exchanger)
NS Name server del nome di dominio
PTR Record “Pointer” (mostra il/i nome/i host di un indirizzo IP)
SOA Record “Start of Authority” (indicazioni sulla gestione della zona DNS)

Cambiare il server DNS per avere risultati accurati

Di default nslookup contatta il server DNS locale, che viene stabilito solitamente dal router o dal provider. Se lo si utilizza per la query può darsi che i risultati non siano sempre accurati, ad esempio perché il server ricercato non è registrato nella cache del name server locale. Il tool della riga di comando dà però la possibilità di scegliere autonomamente il server DNS su cui deve avvenire la query. Se si prende il server che è collegato al relativo dominio, si ottengono persino delle risposte autorevoli. Quindi nel primo passaggio è necessario scoprire i name server assegnati, definendo il tipo di query “NS” e facendosi mostrare questo record DNS tramite l'inserimento del nome di dominio:

  set type=NS
  example.org

Per questo esempio nslookup fornisce due possibili name server (“a.iana-servers.net” e “b.iana-servers.net”), come mostra il seguente screenshot:

Ora uno dei due name server presentati deve essere definito come server standard, di modo che in futuro le query passino tramite questo. Il comando corrispondente si basa sul parametro “server” e il rispettivo nome del server desiderato. Per l'esempio scelto di nslookup sono possibili entrambi questi comandi:

server a.iana-servers.net
server b.iana-servers.net

Nell'ultimo passaggio l'utente modifica il tipo di query, impostato ancora per la ricerca dei name server, nella richiesta di indirizzo desiderato come “A” per il dominio, in “MX” per il controllo dell'IP dei mail server o in “ANY” per un controllo completo (come utilizzato qui):

set type=ANY

La risposta, questa volta autorevole e accurata, mostra anche entrambi i name server conosciuti e il principale name server (primary name server) da cui vengono effettivamente rilevate le informazioni DNS.

The authoritative and accurate answer received this time around shows, among other things, the previously mentioned name servers and the primary name server, from which the DNS data was retrieved.

Query del server DNS dal browser con tool online di nslookup

Per la query dei server DNS con nslookup, il tool non deve essere per forza eseguito dal proprio sistema. Nel World Wide Web esistono diverse applicazioni che mettono a disposizione le risorse necessarie: il controllo degli indirizzi IP o dei nomi di dominio avviene quindi in questo caso su un altro computer e i risultati vengono visualizzati sul browser. Due esempi di applicazioni web nslookup sono ping.eu e centralops.net.

Il tool online ping.eu si limita alla funzione di base di nslookup. Dopo aver inserito un indirizzo IP o un nome host lo strumento fornisce il risultato appropriato:

Con il tool di centralops.net si può inoltre utilizzare nslookup online nella modalità interattiva. Così gli utenti possono inserire il name server che preferiscono al posto del server DNS standard, cambiare la porta e definire il tipo di query. In questo modo è ad esempio possibile ricevere risposte autorevoli nell'esempio di nslookup introdotto precedentemente.

N.B.

Sia ping.eu sia centralops.net offrono dei tool di rete aggiuntivi come Traceroute o WHOIS.