La sigla DNS (Domain Name System) viene usata in senso lato per identificare una serie di tecnologie, protocolli e servizi. Per DNS si intende sia il sistema che permette la risoluzione di un URL in indirizzo IP, sia il protocollo che regola il servizio, sia i server che lo offrono. Questo può creare un po' di confusione, specialmente quando si tratta di mettere le mani nella configurazione DNS di un dominio in hosting o su una VPS. Vediamo di fare un po' di chiarezza sull'argomento.

Iniziamo col precisare i termini. Il sistema DNS permette di risolvere i nomi dei nodi di rete - che nel nostro caso sono anche nomi di dominio - in indirizzi IP. Consideriamo un URL, ad esempio

https://www.aziendeitalia.com

questo URL specifica sia il protocollo (http) che il nome del dominio (aziendeitalia.com) che vogliamo raggiungere. Il sistema DNS si occupa di convertire il nome del dominio in un indirizzo IP, per consentire alla tecnologia di rete di collegarsi (in questo caso) al server di AziendeItalia, collegamento che avverrà principalmente per mezzo del protocollo TCP/IP. L'operazione che associa il nome del dominio al corrispondente indirizzo IP si chiama risoluzione del dominio. Esiste anche l'operazione inversa, che permette di risalire al nome del dominio a partire da un indirizzo IP, detta risoluzione inversa. La definizione corretta di DNS fa riferimento all'associazione tra nodi di rete (host) e indirizzi IP, e non tra URL e indirizzi IP, come viene detto spesso per semplificare.

L'utilità del DNS è evidente, perché consente agli esseri umani di usare nomi e stringhe, più intuitivi e facili da ricordare, piuttosto che indirizzi IP: viene più facile ricordare il nome AziendeItalia piuttosto che l'indirizzo 212.239.26.187.

L'associazione tra host ed indirizzi IP non è unica. Possiamo avere diversi host mappati sullo stesso IP, col vantaggio di tenere logicamente separati i servizi associati ad ogni host: questo permette, ad esempio, di separare in un secondo tempo i diversi host su indirizzi IP diversi (scalabilità dei servizi) in modo trasparente all'utente finale. In alcuni casi può essere utile fare il contrario, ovvero avere diversi IP associati allo stesso host, ad esempio per bilanciare il carico delle richieste in ingresso su una rete di macchine di Front-End.

Record DNS

La situazione descritta sopra illustra i concetti principali del DNS, ed è sostanzialmente corretta. Su un server DNS sono però disponibili altre informazioni, oltre all'indirizzo IP. Queste informazioni sono gestite da un database DNS e salvate sotto forma di record, come in un normale database. La differenza è che i record DNS non sono tutti uguagli: esistono record DNS di tipo A, che si limitano ad associare il nome del dominio all'indirizzo IP, come detto sopra. Esistono però anche record di tipo AAAA, che svolgono la stessa funzione ma risolvono l'host come indirizzo IPv6 (che si appresta a sostituire l'IPv4, quello a 32 bit attualmente in uso).

Esistono decine di record DNS diversi, alcuni più usati, altri meno. Questo marasma di record DNS può disorientare chi deve configurare il DNS di un nuovo host. Per chiarirci le idee vediamo un esempio concreto, considerando come esempio i record DNS configurabili nel pannello Plesk di un dominio in hosting. I record DNS gestiti da Plesk sono: NS, A, MX, TXT, PTR, CNAME e SRV.

  • NS: permette di delegare ad un altro server DNS la risoluzione di un particolare sottodominio. Esempio: un record NS per l'host prova.aziendeitalia.com potrebbe occuparsi di delegare la gestione del sottodominio prova ad un altro server DNS
  • A: è il record più importante, quello che risolve il nome dell'host restituendo un indirizzo IP a 32 bit (IPv4)
  • MX: specifica qual'è il server di posta che si occupa di ricevere le email indirizzate sull'host tramite il protocollo di posta SMTP (Simple Mail Transfer Protocol)
  • TXT: contiene un generico testo, che può essere usato in modi diversi. Originariamente il record TXT forniva una descrizione dell'host, ad esempio “il mio primo host su AziendeItalia”, ma vista la possibilità di specificare un testo qualunque il record viene usato anche per gestire funzionalità avanzate di certificazione (SPF e DKIM) , che esulano dallo scopo di questo articolo
  • PTR: permette la risoluzione inversa, ovvero il processo di identificare il nome di un host a partire dal suo indirizzo IP
  • CNAME: record molto importante, usato per collegare tra loro diversi nomi DNS. Un'applicazione tipica è l'associazione di protocolli diversi sullo stesso IP, in modo da risolvere il protocollo direttamente dal nome dell'host. Esempio: tramite i record CNAME i nomi ftp.prova.aziendeitalia.com e www.prova.aziendeitalia.com possono essere risolti in modo diverso, ritornando lo stesso IP ma un numero di porta diverso. Un altro utilizzo è l'implementazione della funzionalità virtual hosting di alcuni web server (come ad esempio Apache), che permette di ospitare siti diversi (aventi host name diversi) sullo stesso IP. Per dettagli rimandiamo alla documentazione di Apache
  • SRV: consente di risolvere specifici servizi, solitamente diversi da una comune richiesta HTTP, in modo specifico. Il record dovrebbe servirci solamente se offriamo particolari servizi, e possiamo ignorarlo se stiamo configurando un normale sito web. Il record è comunque degno di nota perché, in modo simile al record TXT, permette una sintassi abbastanza generica, che permette di “estendere” il servizio DNS senza dover aggiungere altri record

Esistono molti altri tipi di record DNS, ma per il momento ci interessa avere solamente un infarinatura di quelli gestiti da Plesk. Non è necessario ricordarli tutti per configurare un dominio, ma avere una vaga idea del significato di queste sigle dovrebbe aiutarci a rendere meno ostico l'ambiente di lavoro. Nelle prossime puntate vedremo come queste informazioni ci aiuteranno a configurare un nuovo dominio tramite Plesk su una VPS Small Linux di AziendeItalia.