Andrea Beggi

La miglior difesa contro la logica è l'ignoranza.

Di domini, hosting e DNS

A T T E N Z I O N E ! Questo post ha piu' di sei mesi. Le informazioni contenute potrebbero non essere aggiornate.

Ci sono diversi casi in cui un dominio viene registrato presso un fornitore mentre l’hosting (o un altro servizio) è altrove; i casi più comuni che mi vengono in mente sono i blog su Blogger e i Tumblr che desiderano utilizzare un proprio nome a dominio mantenendo la comodità di una piattaforma pubblica, oppure quando il dominio di primo livello che avete scelto non è gestito dall’hoster: un caso molto comune sono i domini .it su un provider statunitense. In quest’ultimo caso, poiché non sono supportati i .it, è necessario registrare il dominio altrove e poi intervenire sul DNS in modo da “puntare” il dominio sui server corretti.

Tanto per fare chiarezza sui termini: il “registrar” è l’entità presso la quale avete registrato e pagato il nome a dominio, l'”hoster” è il fornitore di servizi che vi fornisce i server (o parti di essi) sui quali “girano” i servizi legati al dominio. Di solito coincidono, ma quando non è così è necessario intervenire sui DNS.

Gestire le funzioni di base di un DNS non è difficile, ma presuppone la conoscenza di alcuni concetti che vanno capiti prima di effettuare modifiche; normalmente è difficile fare danni irreparabili, ma se si fanno pasticci si rischia di rendere irraggiungibile il proprio sito per diverse ore. Il tutto è reso ancora più scomodo dal tempo di propagazione: prima che le modifiche vengano “recepite” da tutto internet è necessario attendere alcune ore, in certi casi anche 24/36.

Se desiderate una breve spiegazione a proposito del DNS, ne avevo scritto tempo fa; in questo post vorrei parlare delle poche cose da sapere nel caso si voglia gestire il proprio dominio.

Ciascun registrar, l’entità presso la quale avete “comprato” il nome a dominio, gestisce uno o più server DNS. Questi server usano un database nel quale ai nomi a dominio (detti anche “zone”) sono associati diversi record; quelli ai quali siamo interessati sono i record NS, A, CNAME e MX. (Ce ne sono molti altri, ma per i nostri scopi basta gestire questi). Una zona (dominio) comprende uno o più host che erogano i servizi. (In realtà quello che viene chiamato “database” è un semplice file di testo che contiene le diverse righe dei record).

La modifica dei record si fa generalmente tramite il pannello di controllo del registrar, con modalità che cambiano di volta in volta, ma in genere si tratta di interfacce abbastanza intuitive.

Uno dei record più importanti con il quale si ha a che fare è NS. Esso stabilisce chi sono i server DNS per la zona; viene indicato nella forma:

NS	nome.delserver.com.

Si possono specificare piu’ DNS per una singola zona, ma non è possibile sapere quale sarà usato dai resolver: dipende dall’implementazione del resolver stesso, quindi tutti vanno tenuti aggiornati.

In alcuni casi, la modifica di questo record è tutto quello che ci serve. Facciamo un esempio abbastanza comune: un dominio .it registrato in Italia e hostato presso un provider statunitense, per esempio Dreamhost. Una volta che il pannello di DH è pronto per “accogliere” il dominio, è sufficiente modificare i record NS sul registrar in modo che puntino ai DNS americani. In questo modo, la registrazione rimane in Italia, tutto il resto passa a Dreamhost, che diventa responsabile pubblicamente per tutti gli host di quel dominio. Modificando NS, la palla passa a DH che è già pronto per ospitare il nuovo dominio nei suoi DNS; tempo della propagazione e tutto funzionerà alla perfezione.

State attenti: il nome del server va scritto con il punto in fondo, per indicare che è proprio quello e non è un host di quel dominio. Se manca il punto il record verrà interpretato come nome.delserver.com.miodominio.it, e non funzionerà più nulla.

Nel caso non si dovesse e/o potesse modificare il nameserver è necessario intervenire su altri tipi di record. E’ il caso, per esempio, di Tumbr associato a un proprio dominio. Tumblr non fornisce server DNS, quindi dovrò modificare un record A.

Un record A traduce un nome host in un indirizzo IP:

nome IN A    12.34.56.78

dato che la zona è quella del dominio miodominio.it, la riga qui sopra dice che l’host nome.miodominio.it risponde all’indirizzo 12.34.56.78.

Se la riga fosse:

tumblr IN A    72.32.231.8

avremmo appena creato un dominio di terzo livello tumblr.miodominio.it che punta ai server di Tumblr, dove il nostro tlog, opportunamente configurato, è pronto per servire le pagine. Potete trovare maggiori informazioni in un altro mio post.

E’ possibile assegnare più indirizzi IP allo stesso host; essi verranno restituiti come risultato della query DNS e sta al resolver del client decidere quale usare. E’ un meccanismo che talvolta viene utilizzato per ottenere un rozzo bilanciamento di carico tra server distinti.

Spesso un singolo server ospita diversi servizi, accessibili con un nome diverso. Il caso più comune è il seguente:

www IN A    12.34.56.78
ftp IN A    12.34.56.78

In questo caso il singolo host risponderà sia su www.miodominio.it che su ftp.miodominio.it.

C’è un altro modo di ottenere questo risultato, e questo ci introduce all’uso di un altro tipo di record: CNAME. Questo tipo di record permette, usando le parole di Wikipedia, “di collegare un nome DNS ad un altro. La risoluzione continuerà con il nuovo nome indicato dal record CNAME. Questa funzione è molto utile quando, per esempio, sullo stesso server sono disponibili più servizi come FTP, HTTP ecc operanti su porte differenti. Ciascun servizio potrà avere il suo riferimento DNS (ad esempio ftp.example.com. e www.example.com.“.

L’esempio qui sopra potrà quindi essere configurato anche così:

www IN A      12.34.56.78
ftp IN CNAME  www.miodominio.it.

Attenzione, sempre, al punto finale quando si scrive un nome FQDN completo. In questo caso il server DNS restituirà al client che richiede ftp.miodominio.it non un indirizzo IP, ma un altro nome (www.miodominio.it); verrà quindi effettuata una seconda query, dalla quale otterremo finalmente l’indirizzo desiderato. Si dice che ftp.miodominio.it è un “alias” di www.miodominio.it.

Utilizzando i record descritti fin qui si possono gestire la quasi totalità delle configurazioni dove il registrar è separato dall’hosting. Per completezza vediamo l’ultimo record, MX.

Il record MX è molto importante per il recapito della posta perché contiene il nome del server deputato a ricevere messaggi quel particolare dominio. E’ fatto così:

MX	10	posta.miodominio.it.
MX	20	mail.provider.com.

In questo esempio il dominio ha due mail server. Il primo, più importante, è quello con il campo priorità più basso (10) ed è il primo che verrà contattato. Se esso non risponde si passa all’altro (se c’è) che fa da backup e si incaricherà di inoltrare i messaggi al server principale non appena esso tornerà online; impostando due priorità uguali si può ottenere una specie di bilanciamento di carico. Maggiori informazioni sul recapito della posta, il protocollo SMTP e una breve prova pratica li trovate in un mio vecchio post.

La modifica del record MX è necessaria, per esempio, nel caso si utilizzi Gmail per per proprio dominio; è un servizio fantastico ed è gratuito fino a 50 utenti. In pratica Google vi regala una Gmail personalizzata per il vostro dominio, insieme a calendario, contatti condivisi, Google Docs e Google Site.

Vi ricordo che le modifiche hanno bisogno di 24/36 ore per essere propagate a tutto il mondo: una volta cambiati i parametri sul pannello, il server DNS aggiorna (di solito automaticamente) il serial number del record SOA, che serve per sapere se i dati sono stati modificati e quindi aggiornati su tutto il sistema DNS mondiale.

(Alcuni aspetti sono stati volutamente semplificati: una trattazione rigorosa richiede tempo e sarebbe comunque inutile, vista la quantità di materiale reperibile in rete al riguardo.)

Tags: , , , , ,

20 Commenti

Bali | #

Pare che la riforma Gelmini preveda la lettura di questo articolo al posto della tradizionale Divina Commedia…

Scherzi a parte sei stato davvero preciso e hai colto i punti essenziali per avere una buona panoramica del DNS.

Complimenti!

lucapost | #

è un pò OT, ma cosa intendi per contatti condivisi nei servizi di Gmail? potrebbe interessarmi…

Andrea | #

Intendo che se crei diversi utenti dello stesso dominio, puoi avere la rubrica in comune.

Napolux | #

Ottimo post. Magari sarebbe utile aggiungere delle FAQ che spieghino le operazioni più comuni.

Come associo un dominio per tumblr?
Come associo un dominio al blog blogger?

Ecc…

Andrea | #

Di Tumblr e DNS ne avevo già parlato, ho aggiornato il post con il link, grazie per avermelo ricordato.

Paolo | #

Scusatemi se volessi crearmi uno spazio web in casa cosa dovrei fare ? Ovvero avendo noto l’IP a chi devo rivolgermi per ottenere il DNS ?

Grazie

Andrea | #

E’ esattamente il caso in oggetto: compri il dominio e poi modifichi il DNS mettendo il tuo IP pubblico statico.

Andrea Pilotti | #

Per diversi progetti ho preferito operare con la piattaforma blogger associando un dominio di secondo livello.

Penso che sia un buon sistema per realizzare, a bassissimo costo (sia in termini economici che di tempo), un progetto web pilota, in modo da sondare il terreno sulle possibilità di attecchire di alcune idee.

Ovviamente dopo averne verificato la validità, migro su una piattaforma proprietaria, o quantomeno maggiormente personalizzabile dai miei programmatori e sistemisti.

Francesco | #

“dato che la zona è quella del dominio miodominio.com, la riga qui sopra dice che l’host nome.miodominio.it risponde all’indirizzo 12.34.56.78″

dato che la zona è quella del dominio miodominio.it sarebbe corretto?

Andrea | #

scusa, ho corretto il refuso. è tutto .it

Maxx | #

Esattamente il post che mi sarebbe servito un po di tempo fa quando ti chiesi queste cose via mail :D
molto ben fatto, poi farò qualche prova extra :D

Giuseppe | #

modificando il TTL (time to live) la propagazione è più veloce .. quindi se trovate un campo TTL da qualche parte e potete modificarlo, fatelo :P 1800 può andare bene;

altro consiglio..se tenete al PageRank sappiate che i domini di secondo livello (o sottodomini) non lo ereditano dal primo livello. quindi per esempio miosito.it con pagerank 5 non mi assicura che tumblr.miosito.it abbia pr 5 (anzi sarà proprio 0 all’inizio)… http://miosito.it/tumblr/ invece manterrà il pr 5

Gregorio | #

Interessante post, me lo salvo, lo devo leggere con calma.Grazie

giuseppe | #

E’ l’analisi completa che cercavo e non ho trovato altrove. Non ci ho capito niente, ma credo che significhi che è interessante :-).
Scherzi a parte, ora devo puntare un dominio italiano su un hosting americano, cercherò di capirci qualcosa.

Solo un dubbio… configurando manualmente questi parametri non si corre alcun rischio di malfunzionamento o di penalizzazione da parte di Google? (intendo dire rispetto all’uso dei servizi già belli e settati degli hosting italiani?)
Grazie, bel blog :-)

Andrea | #

Per Google questo è perfetto, non se ne accorge neppure. I redirect spesso sono deleteri.

Umbe | #

Se avessi un dominio miosito.it registrato ad esempio su GoDaddy che mi permette di controllare tutti i record DNS e volessi acquistare spazio web su Webperte (ho fatto un nome a caso eh!?!) e volessi però ospitare su Webperte un blog che punta a blog.miosito.it e lasciare invariati invece tutti gli altri record (perchè ad esempio le mail sono gestite con le google apps) come posso fare? E’ fattibile questa cosa? Devo comunque cambiare i record NS?

Sante | #

Il mio hoster mi ha fatto inserire 4 record NS mentre ho rimosso i restanti (A, MX, ecc) del registrar.
Sinceramente ancora non capisco totalmente il funzionamento di tutti questi record.

max | #

ciao, volevo chiedere una cosa, io solitamente cambio sia i nameserver che i puntamenti A MX ecc. ecc. ci sono controindicazioni a fare cosi ? o è solo un lavoro in più ?
grazie