Server DNS: come funziona e a cosa serve Nslookup

Come funzionano i server DNS in breve e come l'utilità Nslookup può essere utile per verificare come vengono risolti i nomi a dominio e quali informazioni sono contenute nei vari record.

Ogni server DNS (Domain Name System) si fa carico di tradurre gli indirizzi mnemonici (come google.it, www.google.it o www.ilsoftware.it) in indirizzi IP.
Questa particolare operazione si chiama risoluzione del nome a dominio ed è necessaria per stabilire qual è il sistema, collegato alla rete Internet, che eroga un servizio (per esempio il sistema sul quale è installato il server web utilizzato per pubblicare online uno specifico sito).

Ogni dispositivo collegato direttamente alla rete Internet, infatti, utilizza un indirizzo IP pubblico, raggiungibile da qualunque altro sistema a sua volta collegato a Internet.
I server DNS conservano, all’interno di appositi record, l’associazione tra indirizzi mnemonici e IP (nel formato IPv4 e/o IPv6).

Funzionamento dei server DNS in breve

Quando si scrive qualunque indirizzo nella barra del browser, si innescano una serie di eventi che permettono di raggiungere il server di destinazione corretto:

1) Viene in primis verificato il contenuto del file HOSTS memorizzato sul sistema locale (Modificare il file HOSTS di Windows e bloccare le app che “chiamano casa”). In questo modo si controlla se l’utente abbia impostato manualmente un’associazione tra indirizzi mnemonici specifici e IP.
Questo meccanismo è utile, per esempio, quando si fosse allestito un nuovo sito web ma non si fossero ancora aggiornati i record DNS pubblici.
Inserendo nel file HOSTS, ad esempio, INDIRIZZO_IP_SERVER terzolivello.nomedominio.it, il browser interpellerà il server web in ascolto su INDIRIZZO_IP_SERVER chiedendogli di erogare terzolivello.nomedominio.it (anche quando tale dominio non fosse presente nei record DNS pubblici).

2) Dopo la verifica del contenuto del file HOSTS si passa alla cache del resolver DNS del sistema operativo (può essere svuotata da prompt, in ambiente Windows, usando il comando ipconfig /flushdns; vedere Il server DNS non risponde: come risolvere).
Se la corrispondenza tra indirizzo IP fosse già nota a livello locale non si proseguirà oltre.

3) Viene quindi interrogato il server DNS definito dall’utente nelle impostazioni dell’interfaccia di rete sul sistema locale oppure quello impostato a livello di modem router.
Quando l’utente non avesse impostato l’utilizzo di alcun server DNS specifico, la macchina locale è generalmente configurata per ottenere (via DHCP) l’indirizzo IP del server DNS da interrogare. Il server DHCP è di solito automaticamente abilitato sul modem router e il modem router, per default, è configurato in maniera tale da ricevere dall’operatore di telecomunicazioni scelto dall’utente i DNS da usare (e da comunicare ai client).
Nell’articolo DNS Google, ecco come funzionano e perché sono utili abbiamo visto come sostituire i DNS predefiniti con quelli di Google (8.8.8.8 e 8.8.4.4), ad esempio. La procedura, comunque, è identica per qualunque altro fornitore del servizio DNS: vedere DNS, prima linea di difesa contro i malware e OpenDNS, come proteggersi durante la navigazione.

4) Se il server DNS non conoscesse l’IP corrispondente all’indirizzo mnemonico specificato, allora verrà attivato un meccanismo ricorsivo: si comincia interrogando uno dei server root nel dominio di primo livello, si ottiene il server che lo gestisce, si procede a un’interrogazione nel dominio di secondo livello fino a raggiungere il server autorevole (detto anche server autoritativo) per il nome a dominio d’interesse.

Server DNS, a cosa serve il comando Nslookup

Nslookup è uno strumento presente in tutti i sistemi operativi che utilizzano il protocollo TCP/IP (Windows, Linux, Unix, macOS,…).
Esso permette di effettuare delle interrogazioni su un server DNS così da ottenere da un nome a dominio il relativo indirizzo IP o nome host e viceversa.

In Windows si provi ad aprire il prompt dei comandi usando la combinazione di tasti Windows+R quindi si scriva cmd.

Digitando al prompt nslookup www.google.it si leggerà dapprima il server DNS che è stato interrogato quindi, in seconda battuta, la lista degli indirizzi IP pubblici associati all’indirizzo mnemonico www.google.it (il primo, in questo caso, è un indirizzo IPv6 mentre il secondo è il tradizionale IPv4):


L’indicazione Server: Unknown e l’IP privato (192.168.1.1, 192.168.0.1, o altri) sta ad indicare che ad essere stato interrogato è il server DNS impostato a livello di modem router.

Il messaggio Risposta da un server non autorevole è assolutamente normale e sta ad indicare che la risoluzione del dominio è stata operata da un server DNS “comune”, non da quello autoritativo.
I server DNS autoritativi sono infatti gli unici, per ciascun nome a dominio, a poter dare indicazioni – a tutti gli altri DNS utilizzati a livello mondiale – sulla corretta associazione tra indirizzi mnemonici e IP.

Diverse volte, in passato, è accaduto che – a fronte di diverse problematiche di sicurezza – gruppi di criminali informatici sono riusciti ad accedere al pannello di configurazione di vari domini presso i corrispondenti registrar e modificare i record contenuti nei DNS autoritativi: SEA attacca decine di siti web: com’è successo?.
Così facendo, non appena le nuove associazioni si sono propagate su “ordine” dei DNS autoritativi per i vari nomi a dominio, i visitatori sono stati indirizzati anziché sui server legittimi su macchine gestite dagli aggressori.

Se come Risposta da un server non autorevole si leggesse l’indirizzo di loopback 127.0.0.1, significa che il dominio è stato bloccato a livello di DNS dai provider italiani (generalmente su ordine dell’Autorità Giudiziaria).

Digitando quanto segue, ad esempio, si verificherà la risposta fornita dai DNS di Google alla stessa interrogazione:

nslookup www.google.it 8.8.8.8

In altre parole, indicando l’IP di un server DNS gestito da terze parti dopo il nome a dominio, si potrà verificare la risposta da questi fornita e, di conseguenza, controllare con quale IP pubblico è risolto qualunque indirizzo mnemonico.

Per conoscere i DNS autoritativi per uno specifico nome a dominio c’è un modo molto semplice per procedere. Basta infatti digitare quanto segue (si noti l’utilizzo del parametro -type=soa):

nslookup -type=soa www.google.it 8.8.8.8

L’indirizzo del DNS autoritativo si leggerà accanto alla voce Primary name server
Accanto a responsible mail address l’altro autoritativo usato per la gestione della posta elettronica.
I record MX specificano i server autorizzati ad accettare email per conto del dominio di destinazione: i valori di priorità chiariscono quali server MX vengono usati per primi.
Per verificare i record MX, basta digitare ad esempio quanto segue ricordandosi di specificare il nome a dominio senza www:

nslookup -q=mx google.com 8.8.8.8

Nel caso di Google, digitando nslookup www.google.it ns1.google.com (si interroga direttamente il DNS autoritativo per il dominio google.it), si noterà come il messaggio Risposta da un server non autorevole non apparirà.

Usando la sintassi nslookup -q=txt google.com 8.8.8.8, si potranno leggere gli eventuali record SPF e DKIM di cui abbiamo parlato nei seguenti articoli per il dominio specificato:

Perché le mie email vanno nella cartella spam?
Da dove arriva una mail e chi l’ha inviata?

Per autenticare il mittente di un’email e, quindi, assicurare che il messaggio di posta provenga effettivamente dalla persona indicata, Google stessa – nell’ambito di Gmail – usa essenzialmente SPF e DKIM: Punto interrogativo in Gmail, cosa significa.

Con il comando nslookup -debug seguito dal nome a dominio da risolvere, si può verificare quali server DNS vengono interrogati a seconda delle impostazioni del sistema locale e del modem router.

Ti consigliamo anche

Link copiato negli appunti