Errore DNS: cosa significa e come trovare la causa reale
"Errore DNS" non è un problema specifico; è l’etichetta che un browser, un router o un collega frustrato usa per qualsiasi guasto nel passaggio di risoluzione del nome, e la soluzione dipende interamente da quale hai. Questa pagina è un punto di partenza, non una diagnosi: leggi i passaggi di triage qui sotto, esegui i due o tre controlli che si applicano, e ti porteranno alla guida che copre esattamente il tuo sintomo.
Cosa copre "errore DNS"
Sotto quell’unica espressione ci sono diversi guasti distinti che non hanno nulla in comune se non dove accadono. Un browser può dire che il nome non esiste affatto. Può dire che il resolver non ha mai risposto. Può caricare la pagina alla fine, solo lentamente, dopo una pausa visibile. Un intero ufficio può perdere la capacità di risolvere qualsiasi nome mentre la connessione internet stessa resta attiva. Oppure i record del tuo stesso sito possono smettere di funzionare per i visitatori di una regione mentre sembrano perfettamente normali a te. Ognuno di questi ha una causa e una soluzione diverse, e nessuno si risolve con il consiglio generico di "riavvia il router e riprova", che risolve esattamente uno dei cinque.
Il resto di questa pagina è un breve insieme di domande. Rispondi in ordine e arriverai alla guida specifica che corrisponde a ciò che sta succedendo, invece di percorrere cinque liste di soluzioni non correlate sperando che una di esse aiuti.
È solo questo dispositivo, o sono tutti?
Prova la stessa ricerca da un telefono con i dati cellulari, non con il tuo Wi-Fi. Se il nome si risolve lì e fallisce sul tuo portatile, il problema è locale: un’impostazione DNS sbagliata solo su quella macchina, una cache bloccata, una VPN aggrappata a resolver non più raggiungibili, oppure un software di sicurezza che intercetta il DNS per conto suo. Se fallisce anche sul telefono, su una rete completamente diversa, passa alla domanda successiva, perché il guasto non è sul tuo dispositivo né sulla tua rete locale.
È solo un sito, o è tutto rotto?
Prova a risolvere un nome noto di cui sei sicuro che funzioni, come un grande motore di ricerca. Se anche questo fallisce, il tuo stesso resolver è irraggiungibile o non risponde, il che è un problema di router o di rete, non qualcosa di sbagliato nell’unico sito che stavi cercando di raggiungere. Se il nome noto si risolve bene e solo il sito che volevi fallisce, il problema sta in quel dominio specifico: i suoi record, i suoi nameserver, oppure una modifica ancora in fase di diffusione verso alcuni resolver e non altri.
Una ricerca contro un resolver pubblico funziona?
Questo singolo test fa più lavoro di triage di qualsiasi altra cosa qui, perché separa "la mia rete" da "il dominio stesso" in un solo comando:
nslookup example.com 8.8.8.8
dig example.com @1.1.1.1
Sostituisci example.com con il nome reale che sta fallendo. Sono possibili tre esiti, e ciascuno indica qualcosa di diverso:
- Ottieni una risposta normale. Il dominio si risolve bene dall’esterno. Il tuo resolver predefinito, qualunque esso sia configurato dal tuo dispositivo o router, è la parte rotta. Questo è server DNS non risponde se fallisce in silenzio, oppure un problema di cache se una ricerca che prima funzionava ha smesso di funzionare.
- Ottieni una risposta esplicita di "nome inesistente" (NXDOMAIN). Un resolver pubblico, senza motivo di avere nulla in cache, ti sta dicendo che il record genuinamente non esiste in questo momento, oppure che una risposta negativa obsoleta è in cache da qualche parte nella catena. Quel messaggio esatto e cosa controllare dopo è DNS_PROBE_FINISHED_NXDOMAIN.
- Ottieni una risposta, ma impiega un tempo notevolmente lungo o la tempistica è incoerente tra un’esecuzione e l’altra. Il resolver funziona, solo lentamente. Aggiungi
+statsa una query dig oppure osserva il ritardo a occhio. Questo è come risolvere una ricerca DNS lenta, una causa e una soluzione diverse dalle due precedenti.
Cosa ti dice resolvectl status su Linux
Su una macchina Linux che usa systemd-resolved, un comando mostra cosa il tuo sistema è effettivamente configurato per chiedere, e questo è dove un numero sorprendente di segnalazioni "il DNS è rotto" si rivela sbagliato fin dall’inizio:
resolvectl status
Leggi la riga "Current DNS Server" per l’interfaccia che stai usando. Se elenca un indirizzo che non è il resolver che ti aspetti, per esempio il server interno di una VPN non più raggiungibile, oppure un vecchio indirizzo di router di una rete che hai lasciato, quella discrepanza è l’intero problema, e nessuna quantità di svuotamenti di cache risolve un indirizzo sbagliato. Se il server elencato corrisponde a quello atteso e le ricerche continuano a fallire, la configurazione del resolver non è il problema e il guasto è più avanti nella catena, di nuovo alle domande sopra.
Hai modificato un record DNS di recente?
Se tu o qualcuno del tuo team avete modificato un record, cambiato hosting, o cambiato provider DNS nell’ultimo giorno o due, e l’errore è incoerente, funzionando per alcune persone e non per altre, quello non è un record rotto. È il comportamento atteso mentre le vecchie risposte in cache scadono ciascuna al proprio ritmo su resolver diversi. Questa situazione specifica, incluso come capire se la modifica si sia effettivamente salvata correttamente, è trattata in come verificare la propagazione DNS. Non inseguire un "errore DNS" come un bug se la tempistica coincide con una modifica recente; concedigli prima la finestra del TTL.
Domande frequenti
Di quale guida ho bisogno se il browser mostra un codice di errore specifico?
Cerca quel codice esatto. DNS_PROBE_FINISHED_NXDOMAIN significa che il nome non esiste ed è trattato nella propria pagina collegata sopra. Un messaggio generico "server DNS non risponde" o "impossibile trovare il server" senza un codice specifico corrisponde alla seconda domanda di questa pagina: testa un resolver pubblico direttamente e vedi quale dei tre esiti ottieni.
Ho eseguito i controlli e ora tutto si risolve normalmente. Cosa è successo?
La maggior parte dei guasti DNS è transitoria: un resolver è stato brevemente sovraccarico, una voce di cache è scaduta a metà della risoluzione dei problemi, oppure un intoppo di rete si è risolto da solo. Se ora si risolve in modo pulito e resta così, non c’è altro da correggere. Se torna in modo intermittente, quello schema in sé è un indizio, e vale la pena controllare se coincide con un’ora specifica del giorno, una rete o un’app.
Un errore DNS è la stessa cosa del sito che è giù?
No, e la distinzione conta. Un errore DNS significa che il nome non si è mai risolto in un indirizzo, quindi non è mai stata tentata alcuna connessione. Un sito giù di solito significa che il nome si è risolto correttamente ma il server non ha risposto, ha rifiutato la connessione, o ha restituito una pagina di errore. Il test con resolver pubblico sopra ti dice in quale delle due situazioni ti trovi: un indirizzo torna, oppure no.
Perché lo stesso dominio funziona per me ma non per un collega?
Questo è quasi sempre cache, non un record rotto. Reti diverse usano resolver diversi, ciascuno con la propria copia in cache di una risposta e il proprio tempo di scadenza. Uno di voi potrebbe star vedendo un risultato obsoleto in cache mentre il resolver dell’altro si è già aggiornato. Conferma il record attuale e corretto direttamente contro i nameserver del dominio prima di supporre che qualcosa sia davvero sbagliato.
Dovrei semplicemente passare a un resolver DNS pubblico e smettere di risolvere problemi?
Passare a 1.1.1.1 o 8.8.8.8 è una scelta permanente ragionevole ed esclude rapidamente un resolver del provider o del router rotto. È una soluzione reale quando il tuo resolver predefinito si rivela essere il problema, non solo un ripiego, ma non aiuterà se il guasto si rivela essere nei nameserver stessi del dominio invece che nel resolver che ti risponde.
Dove controllo se un nome si risolve in modo diverso in paesi diversi?
Un resolver sulla tua stessa rete ti mostra un solo punto di vista, e le risposte DNS variano davvero per regione durante una migrazione o un’interruzione parziale. Esegui la stessa ricerca da più postazioni contemporaneamente con lo strumento di query DNS, che controlla da più paesi in un solo passaggio e mostra dove una risposta diverge o va in timeout.