DNS: introduzione per sviluppatori

DNS: introduzione per sviluppatori

Sempre più sviluppatori si trovano a dover gestire i DNS per configurare correttamente i domini e i servizi utilizzati nei siti sviluppati.

L’esempio più semplice è quello di dover puntare il nome di dominio ad un nuovo server, all’aggiornamento del sito. Ma ci sono anche esempi più complessi con più servizi coinvolti, tipo la posta di Google Suite o Office 365, Mailgun, Cloudflare etc.

In questo articolo introduttivo ti darò le info necessarie per non scomodare sempre un sistemista per ogni piccola modifica.

Cosa sono i DNS?

Come forse saprai, i nodi (host) di una rete informatica sono identificati da indirizzi numerici che, nella versione v4, sono formati da 4 numeri (da 0 a 255) separati da un punto: i famosi indirizzi  IP (Internet Protocol). Essendo Internet a sua volta una rete informatica, ogni servizio presente, risponde ad un indirizzo. A complicare ulteriormente le cose, aggiungo il fatto che ad ogni indirizzo IP può corrispondere più di un servizio o sito.

Come puoi immaginare, se dovessimo richiamare un sito o un servizio tramite il suo indirizzo numerico, diventeremmo matti. Per far fronte a questo problema si è inventato il Domain Name System o DNS.

I DNS non sono altro che un sistema di database distribuito che “collega” un nome testuale ad un indirizzo numerico. Questa trasformazione, tecnicamente si chiama “risoluzione”. In parole povere ci fornisce l’indirizzo IP al quale fare le richieste per il nostro servizio. Nel caso di più siti sullo stesso IP, sarà poi la configurazione del web server, tramite i virtual hosts, a veicolare la richiesta ai file corrispondenti. Ma questa parte per il momento la tralasciamo.

Premessa

Se non avete accesso al dominio e dovete quindi prima migrarlo verso un nuovo provider è fondamentale che vi facciate prima una copia dei record DNS presenti. Altrimenti tutto quello che non verrà ricreato nel nuovo pannello DNS, smetterà di funzionare.

Da dove si gestiscono i record DNS?

Il pannello di gestione DNS si trova solitamente nel pannello di controllo del fornitore dal quale abbiamo acquistato il dominio. Ovviamente i vari pannelli differiscono fra loro per impostazione grafica, funzionalità ed usabilità ma i concetti alla base sono gli stessi. In questa breve guida vedrete quello che uso io, ovvero quello di Google Domains. Eccolo:

Pannello Google Domain

In ogni pannello troveremo questi 4 campi, magari con nomi diversi ma la sostanza è questa. Nel campo nome  (o host) va indicato il nodo a cui vogliamo far corrispondere il valore. Il campo TTL  (Time To Live) è la frequenza con la quale una copia del record memorizzata nella cache deve essere aggiornata. L'impostazione predefinita è 3600 secondi (1H sul pannello di Google). Nel campo tipo  invece va scelto la tipologia del record DNS. Vediamo le principali.

Record A (e AAAA)

Record A

Dove la A sta per Address, infatti indica la corrispondenza tra un nome host ed uno (o più) indirizzi IPv4, ovvero la stringa formata da quattro numeri di cui parlavo poco fa.

Solitamente nel record A si inserisce l’IP del web server, della VPS o del droplet dove avete pubblicato il sito. Se nel server avete già configurato il virtual host, dopo il necessario tempo di propagazione (visto che i DNS sono un database distribuito, il tempo di propagazione, è il tempo necessario affinché tutti i DNS si aggiornino. Di norma va da pochi minuti a massimo 48 ore), sarete in grado di vedere il sito nuovo.

Esempio:

nome tipo ttl valore
@ A 1h 123.123.123.123

Record AAAA

Record AAAA

Il record AAAA ha la stessa identica funzione ma viene usato per gli IP di nuova generazione, gli IPv6. Ovvero, invece di una notazione a 32 bits, ne usa una a 128. Questo si è reso necessario perchè gli IPv4 sono prossimi all’esaurimento.

Esempio:

nome tipo ttl valore
@ AAAA 1h 2002:db80:1:2:3:4:567:89ab

Record CNAME

Record CNAME

O Canonical Name, servono ad indicare degli alias per un nome host vero. L’esempio più classico è www, il sottodominio più diffuso e conosciuto che, solitamente, esiste e punta allo stesso record A dell’host principale.

Esempio:

nome tipo ttl valore
www CNAME 1h riccardoslanzi.com

Record TXT

Record TXT

O Text, servono per veicolare informazioni ad alcuni servizi. Sono, in pratica, delle variabili leggibili da servizi, usate di solito per verificare la proprietà del dominio.

Esempio:

nome tipo ttl valore
@ TXT 1h google-site-verification=6P08Ow5E-8Q0m6vQ7

Record MX

Record MX

I record Mail Exchange associano un nome di dominio a un server di posta (interno o esterno) che riceve le email per quel dominio. I record MX identificano quali server di posta vengono utilizzati per inviare email a un dominio.

È possibile impostare più record MX (di solito sono almeno 2) per un dominio, ciascuno con una priorità, dove i valori inferiori indicano una priorità superiore. Se l'host con priorità più bassa non risponde, si passa al successivo. Impostando la stessa priorità, si stabilirà di bilanciare il carico fra gli host.

Esempio:

nome tipo ttl valore
@ MX 1h 10 mail-1.esempio.it
20 mail-2.esempio.it

NB: sul pannello di Google non esiste un campo per la priorità (il 10 e il 20 nell’esempio) che va quindi anteposta al valore.

Record MX multipli (ad esempio con Mailgun)

Se dovete configurare un sistema aggiuntivo di invio mail transazionale per il vostro sito, occorrerà evitare di modificare i record MX principali ed aggiungere un record MX per un sottodominio. Mailgun ad esempio consiglia di creare un sottodominio mg.tuosito.com. Per maggiori informazioni, vi rimando all’ articolo dedicato a Mailgun.

Conclusione

Questi sono solo alcuni dei tipi di record DNS utilizzabili, quelli più comuni. Ce ne sono altri, più specifici, che servono per configurare servizi quali, ad esempio la telefonia voip, le app di Office 365 e di Google Suite etc ma per i quali vi consiglio di rivolgervi ad un sistemista o a guide specifiche, visto che una configurazione errata può bloccare i servizi. Spero ti sia tutto chiaro ma se hai dubbi o domande, scrivile nei commenti qui sotto!

Ultima modifica: venerdì 4 dicembre 2020

Cosa ne pensate:

Jacopo

Jacopo 9 mesi fa

Molto molto utile per una panoramica generale e capire cosa si sta andando a modificare! Grazie

Rispondi
Riccardo Slanzi

Riccardo Slanzi 9 mesi fa

Grazie a te! Se qualcosa non è chiaro, chiedi pure :-)

Rispondi

Aggiungi il tuo commento

Iscriviti alla mia newsletter

Resterai informato sugli ultimi post, appena verranno pubblicati