DNS Flush in macOS, Linux e Windows

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

Dependency Inversion, Inversion of Control e Dependency Injection

Dependency Inversion, Inversion of Control e Dependency Injection

Nella programmazione a oggetti, si sente spesso parlare di Dependency Inversion e Inversion of Control (Principio di inversione delle Dipendenze,  Inversione del Controllo in italiano). Forse, i termini vi sono noti perché avete utilizzato Spring, ma sapete distinguerne le caratteristiche o comprenderne l’importanza?

In questo articolo cercherò di chiarire e introdurre i concetti che riguardano il Dependency Inversion, Inversion of Control e Dependency Injection. Continua a leggere Dependency Inversion, Inversion of Control e Dependency Injection

SCP Resume

Non so voi, ma a me capita spesso di trasferire file con scp da e verso un server remoto. La cosa più frustrante succede quando stai trasferendo un file abbastanza grande e la connessione scp cade. Spesso mi son chiesto perché scp non supporti il resume.

La soluzione, comunque, è abbastanza semplice: usare rsync! ;)

Esempio:

Se per trasferire il file abbiamo utilizzato scp:

scp big.file [email protected]:~

per ripristinare la connessione:

rsync -r --partial --progress --rsh=ssh big.file [email protected]:~

Ancora più semplice se creiamo un alias all’ultimo comando come scpresume