DNS: cos'è e come funziona
Pubblicato: 2014-08-14Il Domain Name System, o DNS, è una delle basi più importanti di Internet. È responsabile della nostra capacità di connetterci ai server senza dover ricordare lunghe e ingombranti stringhe di numeri. Come designer o sviluppatore, è importante capire cos'è il DNS, come funziona e come usarlo.
Cos'è il DNS?
Negli anni '70 c'erano così pochi computer collegati in rete che tutti potevano facilmente tenere un elenco manuale di ogni altro computer. Ai tempi di ARPANET (un predecessore di Internet), se un nuovo computer veniva acquistato e aggiunto alla rete, il proprietario avrebbe semplicemente detto a tutti gli altri su ARPANET, che avrebbero semplicemente aggiunto quel nuovo computer alla loro lista. Questo sistema funzionava bene quando c'erano solo poche dozzine di computer collegati tra loro, ma si degradava rapidamente man mano che l'informatica diventava più economica e più accessibile al pubblico. In termini odierni, questo sarebbe come dover informare il mondo intero ogni volta che viene lanciato un nuovo sito Web o servizio.
All'inizio degli anni '80, il DNS è stato creato per risolvere questo problema mantenendo un elenco autorevole di domini e a quali computer sono puntati. Ma come funziona esattamente? In termini tecnici, il DNS è un sistema utilizzato da quasi tutti i dispositivi abilitati alla rete per risolvere i nomi di dominio con gli indirizzi IP associati. Pensala come l'elenco telefonico di Internet.
Quando digiti un indirizzo web come http://www.getflywheel.com nel tuo browser web, il tuo computer non sa automaticamente dove andare. Richiede un indirizzo IP a cui connettersi, ma gli hai fornito un nome di dominio, che è solo una stringa di lettere. I domini rendono molto più facile per gli esseri umani ricordare dove si trovano i siti Web, ma non sono ciò di cui un computer ha bisogno per stabilire una connessione. Invece, il tuo computer contatta un server DNS e gli chiede l'indirizzo IP di quel sito web. Il server DNS risponde e dice al tuo computer "http://www.getflywheel.com si trova a 192.241.128.208". Il tuo computer prende quell'indirizzo IP dal server DNS e lo usa per connettersi all'indirizzo IP, che a sua volta fa apparire il sito web di Flywheel.
Come vengono gestiti e impostati i record DNS?
Il DNS viene impostato tramite record DNS, che contengono informazioni come l'indirizzo IP a cui deve puntare un dominio, i sottodomini, le impostazioni e-mail e persino il testo arbitrario. Una volta acquistato un dominio, il proprietario specifica i server dei nomi autorevoli per il dominio. Questi server dei nomi controllano i record DNS per il dominio, che vengono acquisiti da altri server DNS e propagati in tutta Internet. In genere, se stai impostando i tuoi record DNS, conoscerai l'indirizzo IP del tuo sito web. Ad esempio, Flywheel ti fornirà un indirizzo IP a cui puoi puntare un record di nome A.
Esistono molte migliaia di server DNS in tutto il mondo e si sincronizzano tutti insieme per mantenere un registro di dove si trova tutto. Tuttavia, non tutti i server DNS sono creati uguali.
La struttura dei server DNS sembra un albero capovolto. Ci sono 13 server root o master che formano il tronco di questo albero. Sono la copia master definitiva di DNS. Tutti i dati DNS devono provenire da un server principale o da un server che ha precedentemente contattato un server principale e recuperato i dati. I server root costituiscono quella che viene chiamata la zona principale o la zona DNS più autorevole.
Oltre la zona principale, ci sono sottozone contenenti domini. Ogni dominio di primo livello ha il proprio record di zona, ulteriormente suddiviso in singoli domini, come http://www.getflywheel.com, a cui si fa riferimento come domini di secondo livello.
Questo sta diventando un po' tecnico, quindi diamo un'occhiata alla prospettiva della nostra analogia con l'albero. Con la zona principale che forma il tronco, ogni dominio di primo livello, come .com o .org, è un ramo di quel tronco. Ogni sito Web, come getflywheel.com, è una foglia che sporge da quel ramo. Quella piccola foglia è l'area in cui un proprietario di dominio ha il controllo DNS. Ogni ramo sarebbe un server dei nomi individuale, che tiene traccia dei rami e delle foglie che ne derivano.
Quindi, quando un computer richiede getflywheel.com, prima contatta un server root, che dice: “Stai cercando un sito web .com. Vai a parlare con il server dei nomi .com, che si trova qui. Quindi, il tuo computer ritorna lungo la catena fino al server dei nomi responsabile di .com e gli chiede maggiori dettagli. Il tuo computer contatta i server finché non trova finalmente il server dei nomi specificato dal proprietario del dominio. Quindi calcola l'indirizzo IP associato al sito Web e vi accede. Il tuo computer attraversa l'albero dei server lungo i rami fino a raggiungere finalmente la foglia che contiene la destinazione finale.
Nota: sebbene ci siano ufficialmente 13 server DNS root, tutti tranne due sono collegati e distribuiti separatamente a dozzine di server identici attraverso una tecnologia di routing chiamata anycast . Anycast consente a più nodi di esistere come la stessa entità. Quando un dispositivo si connette a quell'entità, si connetterà al nodo disponibile più vicino sulla rete (questo è diverso da geocast , che viene utilizzato nelle CDN, ad esempio, dove un dispositivo si connette al server geografico più vicino). Anycast consente di moltiplicare e distribuire i root server in tutto il mondo, bilanciando il carico, accelerando i tempi di risposta e prevenendo singoli punti di errore.
L'intera catena di contatti con i server sembra piuttosto macchinosa e faticosa da dover fare ogni volta che vorresti visitare un sito web. Fortunatamente, il DNS è pesantemente memorizzato nella cache, il che significa che le copie vengono spesso salvate sui computer più vicini, alleggerendo il carico dei server root e velocizzando il caricamento delle query. Molti ISP, aziende, università e persino il tuo computer manterranno le cache delle recenti query DNS. Se stai cercando, ad esempio, google.com, è probabile che il tuo computer abbia già l'indirizzo IP memorizzato. Ma se stai cercando un sito Web in cui non sei mai stato, è possibile che qualcun altro nel tuo quartiere o azienda sia già stato lì e la query e le informazioni sono appena archiviate nel server DNS del tuo ISP.
Senza DNS, ciascuno di noi dovrebbe ricordare o annotare l'indirizzo IP di ogni singolo sito Web e computer che vorremmo visitare. Fortunatamente, il DNS è un pezzo di ingegneria incredibilmente resiliente, affidabile e impressionante, che tiene traccia di tutti i nostri siti Web e delle nostre comunicazioni, quindi non è necessario.