INDICE
Cos'è il DNS?
Bella domanda alla quale cercherò di dare una risposta “in parole povere”, cioè con un linguaggio semplice cercherò di far comprendere ai non esperti del settore cos’è il DNS. Per chi volesse approfondire l'argomento il WEB è ricco di guide e articoli squisitamente tecnici che richiedono, però, delle conoscenze a priori.
DNS è la sigla di Domain Name System ed è anche un parametro che troviamo quando configuriamo il router, la scheda rete di un computer e altri dispositivi che si affacciano sulla rete Internet.
Solitamente quello che conosciamo di un sito WEB è il nome, per esempio www.facebook.com, mentre i browser accedono ai siti tramite un indirizzo numerico come 31.13.86.36, detto indirizzo IP, infatti se nel browser digiti 31.13.86.36 o www.facebook.com otterrai lo stesso effetto.
Come funziona il DNS?
Ricapitolando, un browser per accedere ad un sito, così come per qualsiasi altra applicazione che utilizza Internet, ha bisogno dell’indirizzo IP di quel sito, ma chi è che fornisce al browser l’indirizzo IP del sito se ne conosci solo il nome?
A “risolvere” questo problema ci pensa il DNS, un sistema nel quale vengono registrati milioni di nomi di dominio con i relativi indirizzi IP, praticamente il DNS traduce il nome di un sito nel corrispondente indirizzo IP.
Per esempio quando in Chrome scrivi www.facebook.com, Chrome contatta il sistema DNS chiedendo l’indirizzo IP di facebook.com, il server DNS cerca nel proprio database e se trova facebook.com ne restituisce l’indirizzo IP a Chrome altrimenti inoltra la richiesta ad altri server DNS collegati.
Solo quando Chrome riuscirà ad ottenere l’indirizzo IP di facebook.com potrà accedere al sito altrimenti apparirà il messaggio “sito inesistente”, “sito non trovato”, ecc.
Questo processo avviene in tempi brevissimi, nell’ordine di millisecondi.
Faccio un esempio di vita reale per comprendere meglio il DNS
Immagina un Cliente che entra in una libreria self service piena di corsie e scaffali per acquistare un libro. Non sapendo come districarsi si rivolge al commesso fornendogli il titolo, l’autore e l’editore del libro. Il commesso prontamente controlla a computer se il libro esiste e, in caso affermativo, comunica al Cliente corsia e scaffale dove trovare il libro, per esempio corsia 4 e scaffale 5. A questo punto il Cliente è in grado di andare a prendere il libro per acquistarlo.
In questo esempio il Cliente che ha fatto la richiesta del libro è il browser, i dati del libro (titolo, autore, editore) sono il sito (dominio) che stai cercando, il commesso è il "risolutore DNS" che tramite il computer, che rappresenta il server DNS, ha “tradotto” i dati del libro in un indirizzo “corsia 4 e scaffale 5”.
Nel gergo tecnico la richiesta del Cliente è una “query”, mentre l’operazione effettuata dal commesso viene detta “risoluzione del nome di dominio”.
La stessa cosa avviene quando cerchi un sito, per esempio www.facebook.com come schematizzato in figura.
Ritornando all’esempio precedente, mettiamo il caso che il libro non sia registrato nel database di quel negozio, il Cliente chiede al commesso di verificare se il libro esiste in un’altra libreria della stessa catena di negozi. Il commesso contatta uno ad uno i vari negozi finché non lo trova e comunica al Cliente dove può trovare il libro.
In questo caso il commesso "risolutore DNS" ha interrogato in maniera “iterativa” una ad una le altre librerie, che rappresentano ulteriori server DNS del sistema, per trovare il libro.
La stessa cosa avviene quando cerchi un sito che non è presente nel Server principale, per esempio www.facebook.com come schematizzato in figura.
Esiste anche un altro metodo di risoluzione detta "ricorsiva", ma è poco usata, perchè carica troppo l'intero sistema DNS e facilmente si può essere dirottati da qualche malintenzionato su "ignote destinazioni".
Spero che l’esempio della libreria ti abbia chiarito un po’ le idee sul funzionamento del DNS… spero.
Anche il DNS a sua volta è identificato da un indirizzo IP normalmente fornito dal fornitore dei servizi Internet detto anche ISP (Internet Service Provider).
Come scegliere un server DNS
Il server DNS può essere cambiato facilmente e non è un illecito, ma come si valuta la qualità di un sistema DNS?
Esistono diverse Aziende che mettono a disposizione il servizio DNS gratuitamente, ma ciò che contraddistingue un servizio DNS dall’altro è l’affidabilità in termini di resistenza, velocità, privacy e sicurezza.
Ti è mai capitato di ricevere un messaggio “Il DNS non risponde” oppure "DNS non trovato" quando provi ad accedere a un sito oppure di notare un’eccessiva lentezza nell’apertura di una pagina WEB?
Questo capita quando un DNS ha un’infrastruttura carente che non è in grado di supportare un carico eccessivo di richieste, quindi spesso vanno in crash oppure hanno tempi di risposta elevati, considera che un sistema DNS risolve mediamente circa 500 miliardi di richieste giornaliere.
Un aspetto fondamentale, quindi, sono i tempi di risposta del DNS, perché i siti WEB stanno diventando sempre più complessi, tanto vero che l’apertura di una singola pagina talvolta richiede numerose richieste al DNS, quindi ti renderai conto che una buona reattività del DNS determina una veloce apertura e navigazione di un sito.
Al momento in cui scrivo i servizi DNS gratuiti ritenuti maggiormente affidabili sono Cloudflare, DNS Google e OpenDNS, come evidenziato anche dai test di DNSPerf relativo agli ultimi trenta giorni.
Questi DNS riducono notevolmente il tempo impiegato per risolvere il nome di dominio, rendendo quindi più veloce la navigazione in Internet; ovviamente il DNS non aumenta la larghezza di banda della tua connessione, ma può velocizzare Internet offrendo tempi rapidi di risposta.
Proprio per questo molti utenti preferiscono cambiare i DNS predefiniti utilizzati dal proprio ISP con dei DNS personalizzati, perché spesso hanno tempi di inattività causati da interruzioni dell'alimentazione o da altri problemi hardware, inoltre i DNS personalizzati talvolta permettono di by-passare il blocco di alcuni siti impostato nei DNS standard.
Un altro aspetto importante è la privacy, perché gli ISP mantengono traccia di tutti gli accessi ai loro DNS conservando indirizzi IP del dispositivo, siti visitati, date, tempi di connessione, ecc., mentre i DNS personalizzati registrano temporaneamente solo i dati strettamente necessari per la risoluzione dei nomi di dominio e cancellano i log in breve tempo. Cloudflare per esempio mantiene i file log con i dati per 24 ore, mentre DNS Google elimina i file log entro 48 ore.
Un aspetto critico invice del protocollo DNS è la sicurezza. Il DNS è stato introdotto per la prima volta intorno al 1983, epoca antidiluviana rispetto ad oggi dal punto di vista informatico, quando le strutture di rete non erano così complesse come lo sono oggi. Il DNS è un protocollo di comunicazione che non prevede un’autenticazione del richiedente e le informazioni che si scambiano i vari server DNS sono in chiaro e senza protezione.
Vero che in fondo in fondo il DNS deve restituire semplicemente l’indirizzo IP di un dominio, ma è anche vero che un malintenzionato potrebbe intromettersi in questo flusso di dati per dirottare l’utente su altri siti, per conoscere l’IP dell’utente, per spiare il comportamento di un utente in Internet o per danneggiare il server DNS.
I fornitori di servizi DNS sono comunque preparati contro eventuali attacchi di malintenzionati riducendo al minimo i rischi di blocco, però per garantire una maggiore sicurezza del DNS sono stati introdotti nuovi protocolli di comunicazione detti DNS-over-Http (DoH) e ancora il più sicuro DNS-over-TLS (DoT).
Con il protocollo DoT le informazioni non viaggiano più come nei tradizionali DNS, ma utilizzano un protocollo più sicuro basato su TLS dove le informazioni viaggiano crittografate.
Già Cloudflare, Google e altri provider offrono un servizio pubblico basato su DNS-over-HTTP e DNS-over-TLS; Google Chrome avvierà la sperimentazione ufficiale del protocollo DNS-over-HTTP con il rilascio della versione 78 prevista per il 22 ottobre, mentre Mozilla Firefox già supporta DNS-over-HTTP; Android 9, che utilizza DoT per default, permette di indicare un server DNS-over-TLS. Tutto questo per garantire la sicurezza e la privacy degli utenti.
Sperando di averti chiarito un po’ le idee, per approfondimenti tecnici ti invito a ricercare nel WEB i numerosissimi siti che trattano l’argomento in maniera squisitamente tecnica con tanto di report grafici.
Note conclusive sul DNS in parole povere
Se vuoi conoscere quale DNS stai utilizzando puoi accedere al sito f-secure per effettuare un check gratuito della connessione e visualizzare un report dettagliato.
Di seguito ti elenco i servizi DNS tradizionali personalizzati più utilizzati con i relativi indirizzi IPv4 e IPv6:
Cloudflare
IPv4: 1.1.1.1 e 1.0.0.1
IPv6: 2606:4700:4700::1111 e 2606:4700:4700::1001
IPv4: 8.8.8.8 e 8.8.4.4
IPv6: 2001:4860:4860::8888 e 2001:4860:4860::8844
OpenDNS (Cisco)
IPv4: 208.67.222.222 e 208.67.220.220
IPv6: 2620:119:35::35 e 2620:119:53::53
Nota che gli indirizzi IPv6 sono composti da 8 gruppi di 4 cifre esadecimali cadauno, quindi i caratteri consecutivi :: sono una contrazione dell’ottetto che si usa quando ci sono due o più gruppi di zero consecutivi, pertanto 2620:119:53::53 equivale a dire 2620:119:53:0:0:0:0:53
I servizi DNS-over-TLS vengono indicati con un nome di dominio e i più diffusi sono:
Cloudflare: 1dot1dot1dot1.cloudflare-dns.com
Google: dns.google
Un’ultima cosa, avvia il browser e accedi al risolutore DNS di Google. Scrivendo il nome di un sito, il risolutore di Google ti restituirà il relativo indirizzo IP oppure, procedendo in maniera inversa, digitando un indirizzo IP il risolutore di Google ti restituirà il nome del relativo dominio.
Ci sono riuscito a spiegare il DNS in parole povere?
Autore: Pasquale Romano Linkedin