Soluzioni tecniche

Come funziona il DNS e come utilizzare nslookup

13 Settembre 2016

Sapere come funzione il Domain Name Server (DNS) è fondamentale per qualsiasi servizio di posta, infatti tutto il meccanismo di ricezione e invio della posta si basa su:

  • Nome del mail server sorgente
  • Nome del mail server destinatario

In questo articolo vediamo come le informazioni necessarie vengano tradotte dai server di posta e come usare il tool nslookup per effettuare verifiche sul DNS nell’ambito della consegna delle mail. 
 

Come fa la mail inviata a finire nella casella di posta del destinatario?

I programmi di posta elettronica come Outlook sono configurabili per inviare email ai server destinatari, siano essi on premise come Mdaemon o Exchange, siano essi in cloud come Office 365 o Gmail.
Il processo per effettuare questo invio è il medesimo a prescindere dal server di destinazione e dal luogo in cui esso si trova.
 
Ma qual è esattamente questo processo di invio della mail da un Server Mittente a uno Destinatario?

  •  Il server mittente scopre qual è il server di destinazione effettuando una query DNS verso uno specifico server DNS; nel caso delle mail viene ricercato un record DNS di tipo MX (mail exchange).
  • Il record MX raccoglie l’informazione sul nome del server a cui inviare la posta per un particolare dominio (nota che non è un indirizzo IP, bensì un nome).
  • Una volta scoperto il record MX, il server mittente conosce il nome del server destinatario della posta, ma non il suo indirizzo IP, che scopre interrogando il suo server DNS di riferimento e coinvolgendo un secondo record presente all’interno dei server DNS: il record di tipo A che restituisce l’indirizzo IP corrispondente al dominio di posta.

 Adesso il server mittente è in grado di spedire la posta.

Come usare Nslookup

Nslookup è un utility presente sia su Windows che su Linux, molto utile per verificare il processo appena descritto.
In questo articolo mi riferisco a un ambiente Windows in cui il tool può essere eseguito aprendo un prompt di comandi DOS.

Esistono 2 modalità in cui usare nslookup: il primo è digitando il comando per intero (come farò io negli esempi di seguito), l’altro è la modalità interattiva.

 
Come Verificare il server DNS per uno specifico dominio con Nslookup?
 
Immaginiamo che il server mittente voglia scrivere una mail a supporto@achab.it
 
Il mittente, come spiegato nel paragrafo precedente, deve quindi scoprire qual è il record MX corrispondente al dominio achab.it.

Da dos digitare
 
nslookup -type=mx achab.it
 

Ecco un esempio di output del comando
 
C:WINDOWSsystem32>nslookup -type=mx achab.it
Server:  google-public-dns-a.google.com
Address:  8.8.8.8
 
Risposta da un server non autorevole:
achab.it        MX preference = 10, mail exchanger = mail.achab.it
achab.it        MX preference = 20, mail exchanger = mail2.achab.it
 

Come interpreto il risultato di Nslookup?
 
La prima parte dell’output :
Server:  google-public-dns-a.google.com
Address:  8.8.8.8
 
ci dice chi è il server DNS per questo PC, nell’esempio i server di Google.
 
Si può specificare quale server DNS utilizzare mediante il seguente comando:
 
nslookup -type=mx achab.it “ServerDNSascelta”
 
Specificare serverDNSascelta può essere utile per verificare come viene risolto il nome che stai cercando per quel particolare ServerDNS, esempio:
 
nslookup -type=mx achab.it 8.8.4.4
 

Priorità nel record MX

La seconda parte dell’output del comando nslookup -type=mx achab.it riportaRisposta da un server non autorevole:” mostrando il contenuto del record MX ricercato.
Il valore MX preference indica la priorità del record MX: il valore più basso è quello che viene considerato per primo nel meccanismo di risoluzione descritto (quindi nel nostro esempio il 10 sarà considerato prima del 20).

Se il primo non dovesse rispondere, la richiesta di risoluzione passerà al successivo server DNS.

Come trovare l’indirizzo IP del mail server usando Nslookup

L’esempio appena descritto mostra il nome del server ricevente, ma come ho detto all’inizio, attraverso il record A è possibile trovare l’indirizzo IP del server di posta di destinazione e questo IP, pubblico, sarà usato per consegnare le mail al mail server di destinazione.

Ecco il comando per trovare l’IP del server appena trovato:
 
nslookup -type=a mail.achab.it
 
Server:  google-public-dns-a.google.com
Address:  8.8.8.8
Risposta da un server non autorevole:
Nome:    mail.achab.it
Address:  95.110.166.69
 
Di nuovo nell’output compare un server non autoritativo e poi l’IP pubblico del record appena ricercato. Questo è l’indirizzo IP che tutto il mondo associa al nome mail.achab.it.
Quindi il server di posta che vuole mandare una mail ad achab.it aprirà una sessione SMTP sull’indirizzo IP  95.110.166.69

Come verificare il record A

Un problema che può capitare è che il record MX sia corretto, ma il record "A" corrisponda a un IP errato.
Questo può succedere perché il cliente ha cambiato ISP per cui gli è stato assegnato un nuovo indirizzo IP pubblico, ma ha ignorato la necessità di modificare il record A.
 
Se si desidera controllare se l'indirizzo IP che viene restituito corrisponda davvero al server che ci si aspetta, è possibile utilizzare il comando telnet in grado di simulare una sessione SMTP digitando il seguente comando.
 
C: > telnet 95.110.166.69 25
 
Questo aprirà una sessione telnet per l'indirizzo IP o il nome host (95.110.166.69) immesso sulla porta 25 (via SMTP).
 

La risposta alla sessione SMTP vi dirà non solo il dominio del server cui ci si connette, ma anche il prodotto che sta rispondendo alla sessione SMTP stessa.
Si può vedere nel nostro esempio che è il server MDaemon di Achab a rispondere.

Record Mx Di Backup

Un record MX di backup non è altro che una registrazione aggiuntiva MX con una priorità più bassa (numero più alto) rispetto al record MX principale per un dominio specifico.
 
Se configuri più di un record MX sul tuo DNS, accertati che tutti questi record funzionino recapitando la posta ai legittimi destinatari. 
 
Tratto dal blog di Zen Software
 

Autore
Alessio Urban
Nasco a Milano nel 1979, mi sono sempre appassionato nel sapere come funzionassero gli oggetti, quindi dopo il liceo scientifico non potevo che finire a studiare Ingegneria.
In particolare ho scelto le telecomunicazioni per illudermi di poter controllare i devices e il loro software, ma in effetti mi sono reso subito conto fosse solo un'illusione avere il controllo di qualcosa in cui ci sia del software che vi gira :-)
Amo lo sport e mi piace fare qualche corsetta durante il weekend e sono un appassionato di piante, in particolare coltivo bonsai.
Mi trovi anche su linkedin, e su facebook anche se il secondo lo uso decisamente meno
Commenti (0)

Lascia un commento

Il tuo indirizzo e-mail non verrà pubblicato, lo utilizzeremo solamente per inviarti la notifica della pubblicazione del tuo commento. Ti informiamo che tutti i commenti sono soggetti a moderazione da parte del nostro staff.