Timeout DNS, NXDOMAIN e SERVFAIL in PCAP: come riconoscere un DNS lento da un server lento

Come diagnosticare timeout DNS, NXDOMAIN, SERVFAIL, query ripetute e avvio lento dell'applicazione utilizzando prove di acquisizione dei pacchetti.

PCAP, DNS, timeout, NXDOMAIN, SERVFAIL

Molti casi di "applicazione lenta" sono in realtà casi DNS. Un utente fa clic su un pulsante, l'app attende diversi secondi e la prima colpa va al server. L'acquisizione di un pacchetto potrebbe mostrare che non è stata tentata alcuna connessione TCP finché la risoluzione DNS non è stata completata o non è riuscita.

Le prove DNS sono compatte, ma è facile fraintenderle. "NXDOMAIN", "SERVFAIL" e timeout sono risultati diversi. Trattarli come un generico "errore DNS" porta al proprietario sbagliato.

Timeout significa che non è arrivata alcuna risposta utilizzabile

Un timeout DNS viene solitamente visualizzato come query ripetute senza risposta utile. Il client può riprovare con lo stesso nome, interrogare più risolutori o tornare da IPv6 a IPv4. Il segno chiave è il tempo che passa prima che l'applicazione possa andare avanti.

Ispezionare:

  • nome della query
  • tipo di query: A, AAAA, CNAME, SRV, ecc.
  • IP del risolutore
  • intervallo tra tentativi
  • se è arrivata qualche risposta
  • tempo fino all'inizio della connessione TCP o TLS
  • se più risolutori si comportano diversamente

Se sono necessari diversi secondi di tentativi DNS prima di un tentativo di connessione, il server non è ancora lento. Il cliente non l'ha raggiunto.

NXDOMAIN è una risposta negativa valida

"NXDOMAIN" significa che il nome non esiste. Potrebbe trattarsi di un problema di configurazione dell'applicazione, di un errore di battitura, di un dominio non aggiornato, di un problema DNS split-horizon o di una ricerca prevista per un comportamento facoltativo. Non è la stessa cosa di nessuna risposta.

Domande utili:

  • quale nome ha restituito NXDOMAIN?
  • l'applicazione ha provato un altro nome?
  • era questo DNS interno o DNS pubblico?
  • l'espansione del suffisso di ricerca ha creato nomi inaspettati?
  • la risposta negativa è arrivata velocemente?

Un NXDOMAIN veloce spesso non è un problema di prestazioni. È un problema di correttezza.

SERVFAIL Punti verso il Resolver o un problema con l'autorità

"SERVFAIL" significa che il risolutore non è riuscito a completare la risposta. Le cause possono includere un errore di convalida DNSSEC, server autorevoli non raggiungibili, un'errata configurazione del risolutore o un'interruzione parziale.

Un PCAP vicino al client può mostrare solo il "SERVFAIL" finale del risolutore. Una cattura vicino al risolutore può mostrare le query upstream e dove falliscono. Il punto di cattura è importante.

Perché la chirurgia PCAP è importante

PCAP Surgery non è un server DNS. Il suo ruolo è aiutare gli ingegneri a isolare le prove all'interno delle acquisizioni di pacchetti, tagliare le finestre rilevanti, preservare i tempi e preparare file di trasferimento difendibili. I casi DNS spesso necessitano di estratti piccoli e mirati:

  • query prima della connessione dell'applicazione
  • risposte del risolutore
  • riprovare il cronometraggio
  • connessione TCP/TLS correlata dopo la risoluzione
  • contesto sufficiente per dimostrare che il ritardo è stato causato dal DNS

Se un PCAP di grandi dimensioni contiene un ritardo visibile all'utente di 10 secondi, l'estrazione della finestra di query DNS più il primo tentativo di connessione può rendere molto più semplice la revisione del caso di supporto.

Cosa conservare in un'acquisizione per la risoluzione dei problemi DNS

Conserva:

  • timestamps
  • ID delle transazioni DNS
  • coppie di query e risposte
  • codici di risposta
  • IP del risolutore
  • IP del cliente
  • tempi di connessione successiva

Fai attenzione quando anonimizzati. Se i nomi delle query vengono rimossi completamente, il destinatario potrebbe non sapere se l'errore è stato un errore di battitura, un dominio interno, un dominio pubblico o un comportamento del suffisso di ricerca.

Per query di ricerca come "DNS timeout pcap", "NXDOMAIN vs SERVFAIL" o "acquisizione lenta dei pacchetti DNS", la chiave è dimostrare se l'applicazione ha atteso la risoluzione prima di raggiungere il server.