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":
- Controlla la sua cache interna. Se trova e non scaduto -> usa.
- Altrimenti chiede al sistema operativo.
- L'OS controlla la sua cache. Se trova -> restituisce al browser.
- Altrimenti l'OS chiede al resolver configurato (router o ISP).
- Il resolver controlla la sua cache. Se trova -> risponde.
- Altrimenti il resolver fa una query ricorsiva ai NS autoritativi.
- 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/#dnse 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.