DNS Flush in macOS, Linux e Windows

Sunday, Jun 14, 2020| Tags: cache, dns, name server, sistemi, trucchi

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

SO WHAT DO YOU THINK?

Fancy a successful project? Result oriented, deep technical knowledge and business attitude. I can be the perfect man for you.

Contact me