Domain name system (DNS) – Definizione
Indice
Cos’è il DNS?
Il Domain Name System (DNS) è un database di nomi in cui i nomi di dominio Internet vengono localizzati e tradotti in indirizzi IP (Internet Protocol). Il Domain Name System mappa il nome che le persone usano per localizzare un sito Web all’indirizzo IP che un computer usa per localizzare quel sito Web.
Ad esempio, se qualcuno digita “example.com” in un browser Web, un server dietro le quinte mappa quel nome all’indirizzo IP corrispondente. Un indirizzo IP ha una struttura simile a 109.0.123.51.
La navigazione Web e la maggior parte delle altre attività Internet si basano sul DNS per fornire rapidamente le informazioni necessarie per connettere gli utenti agli host remoti.
La mappatura DNS è distribuita attraverso tutto Internet in una gerarchia di autorità. I provider di accesso e le aziende, così come i governi, le università e altre organizzazioni, in genere hanno i propri intervalli assegnati di indirizzi IP e un nome di dominio assegnato. In genere gestiscono anche server DNS per gestire la mappatura di quei nomi a quegli indirizzi. La maggior parte degli Uniform Resource Locator (URL) sono costruiti attorno al nome di dominio del server Web che accetta le richieste dei client.
Come funziona il DNS
I server DNS convertono URL e nomi di dominio in indirizzi IP che i computer possono comprendere e utilizzare. Traducono ciò che un utente digita in un browser in qualcosa che la macchina può utilizzare per trovare una pagina web. Questo processo di traduzione e ricerca è chiamato risoluzione DNS.
Il processo di base di una risoluzione DNS segue questi passaggi:
- L’utente inserisce un indirizzo web o un nome di dominio in un browser.
- Il browser invia un messaggio, chiamato query DNS ricorsiva, alla rete per scoprire a quale indirizzo IP o di rete corrisponde il dominio.
- La query viene inviata a un server DNS ricorsivo, chiamato anche risolutore ricorsivo, e solitamente è gestito dal provider di servizi
- Internet (ISP). Se il risolutore ricorsivo ha l’indirizzo, restituirà l’indirizzo all’utente e la pagina web verrà caricata.
- Se il server DNS ricorsivo non ha una risposta, interrogherà una serie di altri server nel seguente ordine: server dei nomi root DNS, server dei nomi di dominio di primo livello (TLD) e server dei nomi autorevoli.
- I tre tipi di server lavorano insieme e continuano a reindirizzare finché non recuperano un record DNS che contiene l’indirizzo IP interrogato. Invia queste informazioni al server DNS ricorsivo e la pagina web che l’utente sta cercando si carica. I server DNS root name e i server TLD reindirizzano principalmente le query e raramente forniscono la risoluzione da soli.
- Il server ricorsivo memorizza o memorizza nella cache il record A per il nome di dominio, che contiene l’indirizzo IP. La volta successiva che riceve una richiesta per quel nome di dominio, può rispondere direttamente all’utente invece di interrogare altri server.
- Se la query raggiunge il server autorevole e non riesce a trovare le informazioni, restituisce un messaggio di errore.
L’intero processo di interrogazione dei vari server richiede una frazione di secondo ed è solitamente impercettibile per l’utente.
I server DNS rispondono a domande sia dall’interno che dall’esterno dei propri domini. Quando un server riceve una richiesta dall’esterno del dominio per informazioni su un nome o un indirizzo all’interno del dominio, fornisce la risposta autorevole.
Quando un server riceve una richiesta dall’interno del suo dominio per un nome o un indirizzo esterno a quel dominio, inoltra la richiesta a un altro server, solitamente gestito dal suo ISP.
Struttura DNS
Il nome di dominio è solitamente contenuto in un URL. Un nome di dominio è composto da più parti, chiamate etichette. La gerarchia del dominio viene letta da destra a sinistra con ogni sezione che denota una suddivisione.
Il TLD appare dopo il punto nel nome di dominio. Esempi di domini di primo livello includono .com, .org e .edu, ma ce ne sono molti altri. Alcuni possono denotare un codice paese o una posizione geografica, come .us per gli Stati Uniti o .ca per il Canada.
Ogni etichetta sul lato sinistro del TLD denota un altro sottodominio del dominio a destra. Ad esempio, nell’URL www.techtarget.com, “techtarget” è un sottodominio di .com e “www.” è un sottodominio di techtarget.com.
Possono esserci fino a 127 livelli di sottodomini e ogni etichetta può avere fino a 63 caratteri. La lunghezza totale dei caratteri del dominio può avere fino a 253 caratteri. Altre regole includono etichette non iniziali o finali con trattini e non avere un nome TLD completamente numerico.
L’Internet Engineering Task Force (IETF) ha specificato le regole sull’implementazione dei nomi di dominio nella Request for Comments (RFC) 1035.
Tipi di server DNS
Ci sono diversi tipi di server coinvolti nel completamento di una risoluzione DNS. L’elenco seguente descrive i quattro server dei nomi nell’ordine in cui una query li attraversa. Forniscono il nome di dominio ricercato o i riferimenti ad altri server dei nomi.
- Server ricorsivo. Il server ricorsivo accetta le query DNS da un’applicazione, come un browser Web. È la prima risorsa a cui l’utente accede e fornisce la risposta alla query se è memorizzata nella cache o accede al server di livello successivo se non è memorizzata. Questo server può passare attraverso diverse iterazioni di query prima di restituire una risposta al client
- Server dei nomi root. Questo server è il primo posto in cui il server ricorsivo invia una query se non ha la risposta memorizzata nella cache. Il server dei nomi root è un indice di tutti i server che avranno le informazioni interrogate. Questi server sono supervisionati dall’Internet Corporation for Assigned Names and Numbers, in particolare da una branca dell’ICANN chiamata Internet Assigned Numbers Authority.
- Server TLD. Il server root indirizza la query in base al dominio di primo livello, ovvero .com, .edu o .org nell’URL. Questa è una parte più specifica della ricerca.
- Authoritative name Server . L’Authoritative name Server è il punto di controllo finale per la query DNS. Questi server sanno tutto su un dato dominio e si occupano della parte del sottodominio del nome di dominio. Questi server contengono record di risorse DNS con informazioni specifiche su un dominio, come il record A. Restituiscono il record necessario al server ricorsivo per inviarlo al client e memorizzarlo nella cache più vicino al client per ricerche future. Un modo semplice di guardare al processo è che il server ricorsivo chiede principalmente per conto dell’utente e il server authoritative risponde principalmente alla query dell’utente. I server root e TLD gestiscono la query mentre viaggia dal server ricorsivo all’autorità appropriata.
Tipi di query DNS
I seguenti tipi di query DNS sono quelli principali che si verificano in diversi punti della risoluzione DNS:
- Le query DNS ricorsive sono quelle che si verificano tra il server ricorsivo e il client. La risposta fornita è la risoluzione completa del nome o un messaggio di errore che dice che il nome non può essere trovato. Le query ricorsive terminano con la risposta o un errore.
- Le query DNS iterative si verificano tra il risolutore ricorsivo, che è un server DNS locale, e i server dei nomi non locali, come i server dei nomi root, TLD e autorevoli. Le query iterative non richiedono una risoluzione del nome; i server dei nomi possono invece rispondere con un riferimento. Il server root indirizza il server ricorsivo al TLD, che lo indirizza a un server authoritative. Il server autorevole fornisce il nome di dominio al server ricorsivo se lo ha. Le query iterative si risolvono in una risposta o in un referral.
- Le query non ricorsive sono quelle per cui il risolutore ricorsivo sa già dove ottenere la risposta. La risposta viene memorizzata nella cache sul server ricorsivo oppure il server ricorsivo sa di dover saltare i server root e TLD e andare direttamente a un server autorevole specifico. È non ricorsivo perché non c’è bisogno, e quindi nessuna richiesta, di altre query. Le query non ricorsive si risolvono nella risposta. Se un risolutore ricorsivo ha memorizzato nella cache un indirizzo IP da una sessione precedente e serve quell’indirizzo alla richiesta successiva, questa è considerata una query non ricorsiva.
Nel processo DNS di base, un client esegue una query ricorsiva al risolutore ricorsivo, che quindi esegue una serie di query iterative che si traducono in referral alla successiva query iterativa. Infine, la query va al server autorevole, che, se il risolutore ricorsivo sa che troverà la risposta lì, esegue una query non ricorsiva per recuperarla. Le informazioni vengono quindi archiviate sul risolutore ricorsivo, vedere la sezione “Memorizzazione nella cache DNS”, in modo che una query non ricorsiva possa recuperarle in futuro.
Record DNS comuni
I record DNS sono le informazioni che una query cerca. A seconda della query, del client o dell’applicazione, sono richieste informazioni diverse. Alcuni record sono richiesti, come il record A.
Esistono molti tipi di record DNS, ognuno con il proprio scopo nel denotare come una query dovrebbe essere trattata. I record DNS comuni sono i seguenti:
- Record A. Questo sta per indirizzo e contiene l’indirizzo IP di un dominio. I record A si applicano solo agli indirizzi IPv4. Gli indirizzi IPv6 hanno invece record AAAA, che utilizzano il formato più lungo degli indirizzi IPv6. La maggior parte dei siti Web ha solo un record A, ma alcuni siti più grandi ne hanno diversi, il che aiuta con il bilanciamento del carico servendo diversi record A a diversi utenti in caso di traffico intenso.
- Record NS. Questi record del server dei nomi indicano quale server autorevole è responsabile di avere tutte le informazioni su un dato dominio. Spesso, i domini hanno sia server dei nomi primari che di backup per aumentare l’affidabilità e più record NS vengono utilizzati per indirizzare le query a loro.
- Record TXT. I record TXT consentono agli amministratori di immettere testo in DNS. Lo scopo originale era quello di inserire note leggibili dall’uomo in DNS, ma oggi, spesso vengono inserite note leggibili dalla macchina. I record TXT vengono utilizzati per confermare la proprietà del dominio, proteggere la posta elettronica e contrastare lo spam.
- Record CNAME. I record dei nomi canonici vengono utilizzati al posto di un record A quando è presente un alias. Vengono utilizzati per ritentare la query dello stesso indirizzo IP con due domini diversi. Un esempio sarebbe nell’URL sicurezza.wp-hosting.it, dove il CNAME interrogherebbe wp-hosting.it.
In che modo il DNS aumenta le prestazioni web?
I server possono memorizzare nella cache i record A, o indirizzi IP, che ricevono dalle query DNS per un determinato periodo di tempo. La memorizzazione nella cache promuove l’efficienza, consentendo ai server di rispondere rapidamente la volta successiva in cui arriva una richiesta per lo stesso indirizzo IP.
Ad esempio, se tutti in un ufficio hanno bisogno di accedere allo stesso video di formazione su un particolare sito Web lo stesso giorno, il server DNS locale dovrebbe risolvere il nome solo una volta, dopodiché può soddisfare tutte le altre richieste dalla sua cache. La durata di conservazione del record, nota anche come time to live (TTL), è impostata dagli amministratori e dipende da vari fattori. Periodi di tempo più lunghi riducono il carico sui server, mentre quelli più brevi garantiscono le risposte più accurate.
Memorizzazione nella cache DNS
L’obiettivo della memorizzazione nella cache DNS è ridurre il tempo necessario per ottenere una risposta a una query DNS. La memorizzazione nella cache consente al DNS di archiviare le risposte precedenti alle query più vicine ai client e di ottenere le stesse informazioni più rapidamente la volta successiva in cui vengono interrogate.
I dati DNS possono essere memorizzati nella cache in diversi punti. Tra quelli più comuni ci sono i seguenti:
- Browser. La maggior parte dei browser, come Apple Safari, Google Chrome e Mozilla Firefox, memorizzano nella cache i dati DNS per impostazione predefinita per un determinato periodo di tempo. Il browser è la prima cache che viene controllata quando viene effettuata una richiesta DNS, prima che la richiesta lasci la macchina per un server di risoluzione DNS locale.
- Sistema operativo (SO). Molti SO hanno risolutori DNS integrati chiamati stub resolver che memorizzano nella cache i dati DNS e gestiscono le query prima che vengano inviate a un server esterno. Il SO viene solitamente interrogato dopo il browser o un’altra applicazione di query.
- Resolver ricorsivo. La risposta a una query DNS può anche essere memorizzata nella cache sul risolutore ricorsivo DNS. I risolutori possono avere alcuni dei record necessari per restituire una risposta ed essere in grado di saltare alcuni passaggi nel processo di risoluzione DNS. Ad esempio, se il risolutore ha record A ma non record NS, il risolutore può saltare il server root e interrogare direttamente il server TLD.
Sicurezza DNS
Il DNS ha alcune vulnerabilità che sono state scoperte nel tempo. L’avvelenamento della cache DNS è una di queste vulnerabilità. Nell’avvelenamento della cache DNS, i dati vengono distribuiti ai risolutori di cache, spacciandosi per server di origine autorevole. I dati possono quindi presentare informazioni false e possono influenzare il TTL. Le richieste di applicazione effettive possono anche essere reindirizzate a una rete host dannosa.
Un individuo con intenti malevoli può creare un sito Web pericoloso con un titolo fuorviante e provare a convincere gli utenti che il sito Web è reale, dando all’hacker l’accesso alle informazioni dell’utente. Sostituendo un carattere in un nome di dominio con un carattere simile, ad esempio sostituendo il numero 1 con la lettera l, che potrebbe sembrare simile, un utente potrebbe essere ingannato e selezionare un collegamento falso. Questo viene comunemente sfruttato con attacchi di phishing.
Gli individui possono utilizzare le estensioni di sicurezza DNS per la sicurezza. Supportano risposte firmate crittograficamente.
Breve storia del DNS
Negli anni ’70, tutti i nomi host e i loro indirizzi numerici corrispondenti erano contenuti in un singolo file chiamato “HOSTS.TXT” ed erano gestiti da Elizabeth Feinler dello Stanford Research Institute. Questa era nota come directory Advanced Research Projects Agency Network, o ARPANET, e Feinler assegnava manualmente indirizzi numerici ai nomi di dominio. Aggiungere un nuovo nome alla directory richiedeva una telefonata a Feinler.
Negli anni ’80, questo sistema divenne troppo inefficiente da mantenere. Nel 1983, fu creato il sistema dei nomi di dominio per distribuire quello che inizialmente era un file centralizzato con ogni indirizzo in esso contenuto su più server e posizioni.
Nel 1986, l’IETF elencò DNS come uno degli standard Internet originali. Tale organizzazione pubblicò due documenti, RFC 1034 e RFC 1035, che descrivevano il protocollo DNS e delineavano i tipi di dati che era in grado di trasportare.
Da allora, DNS è stato costantemente aggiornato ed espanso per adattarsi a Internet sempre più complessa. Oggi, grandi aziende informatiche onnipresenti, come Microsoft e Google, offrono i propri servizi di hosting DNS.