DNS caching: come funziona

DNS caching: come funziona

Il DNS caching è il meccanismo che memorizza temporaneamente le risposte DNS per ridurre il carico sui nameserver autoritativi e accelerare le query degli utenti. Capire come funziona aiuta a interpretare comportamenti apparentemente strani durante modifiche DNS.

I livelli di cache DNS

La cache DNS opera a più livelli, dal più vicino al client al più lontano:

  • Browser: cache locale del browser (Chrome, Firefox cachano per circa 60 secondi).
  • Sistema operativo: cache OS (systemd-resolved su Linux, DNS Client su Windows).
  • Router domestico: molti router consumer cachano le risposte DNS.
  • Resolver ISP: il DNS dell'ISP cacha per ottimizzare traffico.
  • Resolver pubblici: Google 8.8.8.8, Cloudflare 1.1.1.1, Quad9 9.9.9.9 hanno cache distribuite.
  • Nameserver autoritativi: la fonte autoritativa, non cacha ma risponde sempre con dati aggiornati.

Come funziona una query con cache

Quando il browser cerca "esempio.it":

  1. Controlla la sua cache interna. Se trova e non scaduto -> usa.
  2. Altrimenti chiede al sistema operativo.
  3. L'OS controlla la sua cache. Se trova -> restituisce al browser.
  4. Altrimenti l'OS chiede al resolver configurato (router o ISP).
  5. Il resolver controlla la sua cache. Se trova -> risponde.
  6. Altrimenti il resolver fa una query ricorsiva ai NS autoritativi.
  7. Tutti i livelli memorizzano la risposta per TTL secondi.

Pulire la cache DNS

Per forzare un refresh:

  • Windows: ipconfig /flushdns
  • macOS: sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
  • Linux systemd: sudo systemd-resolve --flush-caches
  • Chrome: vai a chrome://net-internals/#dns e clicca "Clear host cache"
  • Firefox: about:networking#dns -> "Clear DNS Cache"

Cache DNS positive e negative

I resolver cachano sia risposte positive ("esempio.it -> 192.0.2.10") che negative ("questosito.com non esiste"). Le risposte negative sono cachate per il "minimum TTL" del SOA, di default 3600 secondi. Significa che se cerchi un dominio inesistente e poi lo registri, potrebbe non risolvere per fino a un'ora.

Cache poisoning e sicurezza

Il "DNS cache poisoning" è un'attacco in cui un malintenzionato inietta record falsi nella cache di un resolver, dirottando il traffico verso server malevoli. La difesa principale è DNSSEC, che firma crittograficamente le risposte per verificare l'autenticità. Attivare DNSSEC è uno dei modi più efficaci per proteggere i propri utenti.

Errori comuni e come risolverli

  • Sito ancora vecchio dopo cambio DNS: cache locale persistente. Pulisci browser e OS, riprova in incognito.
  • Cache permanente apparente: alcuni router cachano in modo aggressivo. Riavvia il router.
  • Diversi dispositivi vedono risposte diverse: ogni dispositivo ha la sua cache. Pazienta o forza il refresh.
  • Cache negativa fastidiosa: dopo aver registrato un dominio, attendi il "minimum TTL" del SOA per la risoluzione.
  • Resolver pubblico cacha oltre il TTL: comportamento di alcuni provider per ridurre il carico. Non puoi forzare diversamente.

Domande frequenti

D: Posso disabilitare la cache DNS?
R: Su singoli client sì (es. Linux con nscd disabilitato), ma è sconsigliato: rallenta drasticamente la navigazione.

D: La cache rallenta i cambi DNS?
R: Sì, è il motivo per cui i cambi non sono istantanei globalmente. Riduci il TTL prima di cambi pianificati.

D: Posso vedere cosa c'è nella mia cache DNS?
R: Su Windows con ipconfig /displaydns, su Linux systemd-resolve --statistics.

D: La cache DNS è sicura?
R: Senza DNSSEC, è vulnerabile a cache poisoning. Con DNSSEC, le risposte sono crittograficamente verificate.

Hai bisogno di aiuto?

Se hai dubbi sul Pannello Manager G Tech Group, contattaci tramite il modulo di contatto.

Hai trovato utile quest'articolo?