La cache DNS è una porzione di “memoria” in cui il sistema memorizza gli indirizzi IP dei siti web visitati di recente. La funzione della cache del DNS è quella di velocizzare i tempi di accesso alle pagine web evitando continue (ed inutili) chiamate ai server DNS remoti. In pratica, per la risoluzione di un hostname nel relativo indirizzo IP, il sistema verificherà prima nella cache se dispone già della risposta e solo in caso negativo andrà ad interrogare il server DNS remoto.
Indice
Premessa: cos’è il DNS?
Per chi non lo sapesse il DNS (acronimo di Domain Name System) è il sistema che consente di “tradurre” gli hostname (ad esempio il nome di dominio “mrwebmaster.it”) nel corrispondente indirizzo IP.
Quando navighiamo su Internet, infatti, per creare una comunicazione tra il nostro computer ed un server web, abbiamo bisogno di conoscerne l’indirizzo IP. Materialmente, tuttavia, è molto raro che l’utente contatti un server digitando nel browser il suo indirizzo IP, molto più di frequente ciò avverrà digitando nella barra degli indirizzi un nome di dominio (seguito, eventualmente, dal percorso fisico della risorsa voluta).
Attraverso il sistema dei DNS, appunto, questo nome (o, più correttamente, hostname) viene tradotto in un indirizzo IP: in pratica il nostro sistema, non conoscendo l’indirizzo IP della risorsa remota, dovrà preventivamente contattare il giusto server DNS (in base ad alcune regole gerarchiche predefinite il ns. sistema sa quale server DNS deve contattare) che gli fornirà, in risposta alla specifica richiesta, il giusto indirizzo IP col quale instaurare la comunicazione attraverso le regole del protocollo di rete in uso (HTTP, FTP, ecc.).
Come funziona la cache del DNS
Quando ciò avviene, nei sistemi dotati di una cache DNS, l’associazione tra hostname e IP viene salvata localmente per un certo periodo di tempo, per un uso futuro più veloce ed immediato. In questo modo, la prossima volta che si vorrà accedere a quel dato sito web, il nostro computer non avrà più bisogno di “sprecare” risorse per effettuare interrogazioni di server remoti avendo già memorizzato in locale l’indirizzo IP di destinazione.
In base a quanto detto possiamo così schematizzare:
La logica di questo sistema, basata su criteri di ottimizzazione, è ineccepibile, tuttavia, in talune situazioni, può capitare di voler svuotare la cache del DNS per avere risultati “freschi”: ad esempio, se siamo i gestori di un sito web e lo abbiamo recentemente spostato presso un nuovo hosting provider, può essere utile “forzare” il sistema a cercare il nuovo server.
Ma come possiamo fare a svuotare la cache del DNS del nostro sistema? La procedura è piuttosto semplice. Vediamo come procedere sulla base dei diversi sistemi operativi.
Visualizzare il contenuto della cache DNS su Windows
E’ possibile visualizzare i record memorizzati all’interno della cache DNS accedendo al Prompt dei comandi e digitando:
ipconfig/displaydns
In risposta otterremo una serie di informazioni relative a siti web visitati di recente e dei corrispondenti indirizzi IP.
Svuotare la cache DNS su Windows
Windows 10
Per svuotare la cache DNS di Windows 10 è sufficiente fare click sul pulsante Start e selezionare il Prompt dei Comandi. All’interno del prompt digitare:
ipconfig/flushdns
e premere invio. Il buon esito dell’operazione dovrebbe essere confermato dal seguente messaggio di risposta: Windows IP Configuration. Successfully flushed the DNS Resolver Cache.
Volendo è anche possibile disattivare del tutto la cache DNS su Windows: per farlo, sempre all’interno del Prompt è sufficiente digitare:
net stop dnscache
Se cambiate idea e volete riattivare la cache DNS sarà sufficiente lanciare il comando contrario, cioè:
net start dnscache
Vediamo di seguito come svuotare la cache DNS su sistemi Windows un po’ più datati…
Windows 8
- Sulla tua tastiera clicca Win + X per aprire il Menu
- Clicca con il destro su Prompt dei Comandi e sceglie “Esegui come Amministratore”
- All’interno del prompt digita: ipconfig/flushdns e premi invio
Windows Vista / Windows 7
- Clicca su Start e seleziona Tutti i Programmi, poi Accessori
- Clicca con il destro su Prompt dei Comandi e sceglie “Esegui come Amministratore”
- All’interno del prompt digita: ipconfig/flushdns e premi invio
Svuotare la cache DNS di Mac OS X
Tramite Spotlight cercare ed aprire il Terminale. All’interno della console digitare la seguente istruzione:
dscacheutil -flushcache
Svuotare la cache DNS di Linux
Diversamente da Windows e Mac, non tutti i sistemi Linux integrano nativamente un servizio per la gestione di una cache DNS. Su Ubuntu è possibile verificare se la cache DNS è presente digitando nel terminale (per aprirlo: ctrl + alt + T) il seguente comando:
ps ax | grep dnsmasq
Per verificare se la cache è attiva bisogna controllare, nell’output prodotto dal sistema, se il valore di cache-size è maggiore di zero. In caso affermativo la cache DNS è attiva.
In tal caso, quindi, è possibile procedere al flush della cache digitando il seguente comando:
sudo /etc/init.d/dns-clean restart
e premere invio. Successivamente digitare:
sudo /etc/init.d/networking force-reload
Conclusioni
La cache del DNS è uno strumento utilissimo per velocizzare la fruizione delle pagine web, tuttavia in certe circostanze può essere utile avervi accesso per rimediare a situazioni di obsolescenza dei risultati senza dover attendere la scadenza naturale dei risultati in essa memorizzati.