In breve, per poter convertire i nomi di dominio come “www.google.it” in indirizzi numerici, vengono interrogati i server DNS (name server). I sistemi operativi salvano in una cache interna i record man mano richiesti ai server DNS.
Puoi immaginare che ad un certo punto la calce DNS avrà una tabella con la corrispondenza dei domini degli ultimi siti visitati e il loro indirizzo IP. In questo modo si evitano interrogazioni inutili e si velocizza la navigazione su internet.
Informazioni presenti nella cache DNS
Le unità di informazione o record nella cache DNS si chiamano Resource Records (RR) e, solitamente, contengono i seguenti campi:
- Resource Data (rdata): i dati che descrivono il record, ad esempio l’indirizzo o il nome host.
- Record Type: il tipo del record creato, ad esempio “A”, cioè l’indirizzo IPv4 (valore decimale: 1) o “AAAA”, cioè l’indirizzo IPv6 (valore decimale: 28).
- Record Name: nome del dominio dell’oggetto per il quale è stato creato il record DNS.
- Time To Live (TTL): durata di validità del Resource Record espressa in secondi.
- Class: gruppo di protocollo a cui appartiene il RR (principalmente “IN” per Internet).
- Resource Data Length: valore che indica la lunghezza dei Resource Data
Il campo TTL indica al sistema operativo per quanti secondi considerare valido il record, prima di effettuare una nuova interrogazione. È un’indicazione, non un obbligo.
La cache DNS contiene quindi l’indirizzo IP del rispettivo dominio e alcuni campi aggiuntivi.
In alcuni casi può essere utile cancellare la cache DNS. Ad esempio, avete cambiato indirizzo IP ad un vostro hosting, ma dal browser continuate a raggiungere l’hosting ancora sul vecchio indirizzo.
Come cancellare la cache DNS
macOS
macOS 10.12+ (Sierra, Mojave, Catalina):
sudo killall -HUP mDNSResponder
OS X 10.10.4 (Yosemite) e 10.11.0 (El Capitan):
sudo dscacheutil -flushcache;
sudo killall -HUP mDNSResponder
OS X 10.10.1 fino a 10.10.3 (Yosemite):
sudo discoveryutil mdnsflushcache
sudo discoveryutil udnsflushcaches
OS X 10.9.0 (Mavericks):
sudo dscacheutil -flushcache;
sudo killall -HUP mDNSResponder
Linux
I sistemi Linux non dispongono di default di una cache DNS. Le diverse distribuzioni offrono una funzione per memorizzare in locale le informazioni DNS nella cache utilizzando apposite applicazioni come nscd
(Name Service Caching Daemon), pdnsd
, dns-clean
o dnsmasq
.
Per pdnsd
esiste il seguente comando specifico:
sudo pdnsd-ctl empty-cache
Per dnsmask
, dns-clean
o nscd
è necessario riavviare il servizio.
Windows 10
Dal prompt dei comandi (eseguire cmd dalla barra delle applicazioni) è sufficiente digitare il seguente comando:
ipconfig /flushdns