Quattro esiti, quattro passi successivi diversi
Timeout DNS o SERVFAIL: qual è la differenza?
Non tutti i lookup DNS falliscono allo stesso modo. Due tra gli errori più comuni diversi da NXDOMAIN, il timeout e il SERVFAIL, dall'esterno sembrano simili (non è tornata alcuna risposta utilizzabile) ma indicano cause di fondo molto diverse.
Timeout: nessuna risposta è arrivata in tempo
Un timeout significa esattamente ciò che dice: la query è stata inviata e non è tornata alcuna risposta entro il tempo di attesa configurato. Può succedere perché il server autorevole è sovraccarico, per perdita di pacchetti in qualche punto del percorso di rete o perché un firewall scarta in silenzio il traffico DNS invece di rifiutarlo apertamente. Dal punto di vista di chi interroga, un timeout e un server che semplicemente non esiste sono identici: in entrambi i casi c'è solo silenzio.
SERVFAIL: è arrivata una risposta, ed era «non ci riesco»
Il SERVFAIL è una risposta vera, non silenzio. Il server che ha risposto dice esplicitamente di aver incontrato un problema nell'elaborare la query: una zona configurata male, un errore di validazione DNSSEC, un errore interno sul lato del resolver. Ricevere un SERVFAIL ti dice che lato server è successo qualcosa di concreto, mentre un timeout ti dice relativamente poco su dove stia davvero il problema.
| Codice | Cosa è successo | Vale la pena riprovare? |
|---|---|---|
| Timeout | Nessuna risposta è arrivata entro la finestra di attesa | Sì: spesso è temporaneo |
| SERVFAIL | Il server ha risposto, ma non è riuscito a elaborare la query | A volte: vale 2-3 tentativi con backoff |
| REFUSED | Il server ha capito ma ha rifiutato di rispondere, di solito per policy | Raramente: spesso è una restrizione di accesso permanente |
| NXDOMAIN | Il nome non esiste, punto | No, mai: è una risposta definitiva |
Poiché entrambi possono essere temporanei, nella pratica la gestione giusta è la stessa: riprova poche volte con backoff esponenziale e segnala un vero errore solo quando i tentativi sono esauriti. È esattamente il modo in cui questo strumento tratta entrambi i codici in modo diverso da un NXDOMAIN definitivo.
REFUSED di solito indica una policy, non un guasto
REFUSED tende a essere messo nello stesso calderone del SERVFAIL perché in entrambi i casi il server «ha detto di no» invece di restare in silenzio, ma i motivi sono in genere molto diversi. Un nameserver restituisce comunemente REFUSED quando è configurato per rispondere solo per zone specifiche e gli viene chiesto qualcosa fuori dal suo ambito, quando una lista di controllo degli accessi blocca l'IP che interroga o quando un resolver è stato configurato esplicitamente per rifiutare le query provenienti dall'esterno della propria rete (per esempio un resolver ricorsivo che non serve risposte ricorsive a sconosciuti su Internet: un comportamento corretto e voluto, non un bug). Quando ricevi REFUSED da un server che non controlli, di rado un nuovo tentativo o una strategia di backoff risolvono la situazione: conviene verificare se stai interrogando il server giusto.
Una causa specifica e comune di SERVFAIL: DNSSEC non funzionante
Uno degli scenari SERVFAIL più frustranti si verifica sui domini con DNSSEC attivo ma configurato male: una firma scaduta, una chiave ruotata sul nameserver ma non aggiornata presso il registrar o una catena di fiducia interrotta da qualche parte tra il dominio e la root. Un resolver con validazione che rispetta il DNSSEC si rifiuta di restituire una risposta che non riesce a verificare in modo crittografico e restituisce SERVFAIL invece di ignorare in silenzio la firma non valida. La parte inquietante è che spesso il dominio funziona benissimo con un resolver che non valida affatto il DNSSEC, e questo rende facile diagnosticare questa causa come «a me funziona», mentre in realtà il problema c'è e riguarda una quota non trascurabile di visitatori reali.
Devi controllare gli indirizzi DNS pubblici di un dominio? Usa lo strumento Domain IP Lookup.
Per approfondire
Quattro esiti, quattro passi successivi diversi
NXDOMAIN spiegato: perché un dominio non si risolve
NXDOMAIN significa che per il DNS il dominio non esiste: non un timeout, non un problema del server. Ecco cosa lo causa davvero.
Tre motivi per cui lo stesso dominio risponde in modo diverso
Geo-routing
Un server edge diverso per regione
Caching
TTL indipendenti, cache indipendenti
Split-horizon
Una risposta diversa, di proposito
Perché le risposte DNS cambiano in base alla posizione
Scopri DNS geografico, routing CDN, cache dei resolver e split-horizon per capire perché un dominio può restituire risposte diverse.
Quattro livelli, da controllare in ordine
DNS
risolve il nome
Trasporto
TCP si connette
TLS
il certificato è valido
Applicazione
HTTP risponde
Come diagnosticare l'errore «Impossibile raggiungere il sito»
Quel generico errore del browser copre diverse cause non correlate: il DNS è spesso il modo più rapido per confermarne o escluderne una per prima.