Analyse PCAP de la retransmission DNS et du délai d'attente : recherche de résolveurs lents, de requêtes perdues et de réponses interrompues

Comment diagnostiquer le délai d'attente DNS, la retransmission, l'absence de réponse, SERVFAIL, la perte UDP, le repli TCP, la latence du résolveur et le retard d'application avec les captures de paquets.

délai d'attente DNS, retransmission DNS, analyse pcap, latence du résolveur, capture de paquets, dépannage DNS

Les échecs DNS se font souvent passer pour des échecs d’application. Un navigateur indique qu'un site n'est pas accessible. Un client API affiche un délai d'attente. Un service prend cinq secondes avant d’ouvrir une connexion. Les utilisateurs recherchent « DNS timeout pcap », « DNS retransmission Wireshark », « DNS query no response », « slow DNS solver packet capture » et « SERVFAIL vs timeout », car l'erreur visible explique rarement si la résolution de nom a échoué, si le résolveur était lent ou si le réseau a perdu des paquets.

Une capture de paquets peut répondre à cette question précisément si vous conservez intacts le comportement de requête DNS, de réponse, de synchronisation, de retransmission et de secours.

La chirurgie PCAP est utile car les preuves DNS sont souvent enfouies dans une grande trace. Vous devrez peut-être isoler un client, un résolveur, un domaine et une fenêtre horaire tout en préservant les horodatages et les ID de demande.

À quoi ressemble un échange DNS sain

Un échange DNS UDP de base est court :

Client -> Resolver: Query A example.com
Resolver -> Client: Response A example.com 93.184.216.34

The important fields are:

  • Query name
  • Query type
  • Transaction ID
  • Source and destination port
  • Resolver address
  • Response code
  • Answer records
  • Timing between query and response

If the response comes back quickly with NOERROR, DNS probably is not the delay source. If there is no response, delayed response, repeated query, or error response, DNS becomes part of the diagnosis.

DNS timeout vs DNS error

A timeout means the client did not receive a usable response before its resolver logic gave up or retried. A DNS error means the resolver returned a response with an error code such as:

  • NXDOMAIN: domain does not exist.
  • SERVFAIL: resolver failed to complete resolution.
  • REFUSED: resolver refused the query.
  • FORMERR: format error.

These are different failures. A timeout points to packet loss, resolver unavailability, firewall, routing, or delayed response. SERVFAIL points to resolver recursion, DNSSEC, upstream server, or authoritative lookup problems. NXDOMAIN may be a real name problem or a search-domain/configuration issue.

Retransmission and retry behavior

DNS over UDP does not have transport-level retransmission like TCP. If a client does not receive a response, it sends another query. The retry may go to the same resolver or a different resolver.

A trace may show:

0.000 Client -> 8.8.8.8 Query example.com
1.000 Client -> 8.8.8.8 Query example.com
2.000 Client -> 1.1.1.1 Query example.com
2.030 1.1.1.1 -> Client Response example.com

Cela suggère que le premier résolveur n’a pas répondu à temps, alors que le second l’a fait. Le délai d'application inclut le temps passé à attendre le premier résolveur.

Requête perdue vs réponse perdue

Avec un seul point de capture, vous ne saurez peut-être pas si la requête ou la réponse a été perdue. L’emplacement de capture est important.

Si vous effectuez une capture sur le client et voyez la requête partir mais qu'aucune réponse n'arrive, la réponse peut avoir été perdue, bloquée, retardée ou jamais générée. Si vous capturez sur le résolveur et ne voyez jamais la requête, la requête a été perdue avant d'atteindre le résolveur ou bloquée sur le chemin. Si le résolveur voit et répond à la requête mais que le client ne voit jamais la réponse, la perte se situe sur le chemin de retour.

Deux captures sont plus fortes :

  • Capture côté client
  • Capture côté résolveur

Ensemble, ils peuvent prouver si le paquet a disparu avant le résolveur, après le résolveur ou à l'intérieur de l'hôte client.

Fragmentation UDP et réponses DNS volumineuses

Les réponses DNS peuvent devenir volumineuses en raison du DNSSEC, du grand nombre d'enregistrements, des enregistrements TXT ou de la taille des tampons EDNS0. Les réponses UDP volumineuses peuvent se fragmenter. La fragmentation peut échouer à travers les pare-feu ou les périphériques NAT.

Les symptômes incluent :

  • Les petites requêtes DNS fonctionnent.
  • Les réponses volumineuses expirent.
  • Les domaines DNSSEC échouent plus souvent.
  • Le repli TCP réussit.
  • Les réponses avec un bit de troncature conduisent à une nouvelle tentative via TCP.

Si un résolveur définit le bit tronqué, le client peut réessayer via TCP. C'est normal. Si le repli TCP est bloqué, l'utilisateur peut voir des délais d'attente DNS ou des échecs intermittents.

DNS sur TCP, DoT et DoH

Le DNS classique utilise le port UDP et TCP 53. Les environnements modernes peuvent utiliser DNS sur TLS ou DNS sur HTTPS. Une capture de paquets normale peut ne pas exposer les noms de domaine pour le DNS chiffré, mais elle peut toujours afficher la synchronisation, les connexions, les tentatives et l'accessibilité du serveur.

Lors de l’analyse du retard d’application, déterminez d’abord quel chemin de résolution est utilisé. Un navigateur peut utiliser DoH tandis que les outils système utilisent le résolveur du système d'exploitation. Cela peut expliquer pourquoi « nslookup » fonctionne mais le navigateur échoue, ou pourquoi une application est lente alors qu'une autre ne l'est pas.

Domaines de recherche et requêtes répétées

Les environnements d'entreprise et VPN ajoutent souvent des domaines de recherche. Une simple recherche de « service » peut produire des requêtes telles que :

service.corp.example.com
service.office.example.com
service

If several of those time out before the final name works, the user experiences delay. The final response may be correct, but the lookup path was slow.

A good DNS trace preserves the full query sequence, not only the final successful answer.

Checklist for DNS PCAP analysis

Use this process:

  1. Identify the client, resolver, and queried name.
  2. Filter by DNS transaction ID and query name.
  3. Measure query-to-response latency.
  4. Check response code: NOERROR, NXDOMAIN, SERVFAIL, REFUSED, or no response.
  5. Look for repeated queries and resolver failover.
  6. Check whether UDP responses are large or fragmented.
  7. Look for TCP fallback after truncation.
  8. Compare system resolver behavior with application-specific DoH or DoT.
  9. Preserve timestamps before trimming the capture.
  10. Correlate DNS delay with application connection timing.

Final diagnosis

DNS timeout analysis is not just "the domain failed." The packet evidence can show whether the resolver was slow, the query was lost, the response was lost, the response was an error, fallback happened, search domains added delay, or encrypted DNS used a different path.

PCAP Surgery supports the investigation by letting you isolate the DNS evidence while preserving the timing and packet sequence that explain the real user-visible delay.

<!-- pcap-localized-evidence-foundation-v1:start -->

Réponse fondée sur les paquets pour « Analyse PCAP de la retransmission DNS et du délai d'attente : recherche de résolveurs lents, de requêtes perdues et de réponses interrompues »

La réponse directe est qu’un label d’analyse ou un message applicatif ne suffit pas à désigner la cause. Commencez par le point de capture et la direction, puis prouvez la dernière frontière réussie et la première en échec. Pour « Analyse PCAP de la retransmission DNS et du délai d'attente : recherche de résolveurs lents, de requêtes perdues et de réponses interrompues », un autre lecteur doit retrouver le packet, le trou ou l’intervalle soutenant chaque phrase et savoir quel élément pourrait la réfuter.

Placer la capture sur le chemin

Consignez client, serveur et tout proxy, load balancer, NAT ou firewall. Indiquez interface, lieu, horloge, système et directions visibles. Une capture côté client prouve ce qui y arrive, pas que le serveur n’a rien envoyé. Côté serveur, elle prouve la sortie à cet endroit, pas le trajet. Avant de comparer deux points, corrigez clock offset et alignez flow tuple, TCP sequence ou transaction ID.

Vérifiez snap length, dropped packets, offload, capture filter, ring buffer et heure de départ. Un mauvais checksum sur l’hôte peut être un offload artifact. Un grand segment peut venir de GRO/TSO sans exister ainsi sur le fil. Un packet absent d’un fichier limité n’est pas une network loss tant que le point devait réellement le voir.

Lire les frontières dans l’ordre

Frontière Preuve de réussite Preuve d’échec utile
Link et IP direction, adresses et route cohérentes ARP/NDP absent, ICMP, MTU, asymétrie
TCP SYN, SYN-ACK, ACK et sequence retransmission, RST, zero window, timeout
TLS ClientHello, ServerHello et progression alert ou frontière SNI/ALPN/certificate
Application request complet et réponse associée status, trou ou fermeture précoce
Usage response time ou failure window blocage lié à une frontière

Arrêtez-vous à la première frontière sans réussite. Si TCP n’est pas établi, ne commencez pas par HTTP. Si le request atteint le proxy mais pas l’upstream, la limite se situe dans le proxy ou son chemin. S’il atteint l’upstream sans response avant timeout, ACK et progression des bytes séparent application delay et network loss.

Séparer observation et hypothèse

Une observation est pointable : « Le client a envoyé jusqu’à une sequence, l’émetteur a répété un segment trois fois et aucun ACK progressif n’apparaît ici. » L’hypothèse est : « le chemin a perdu le segment ». Une autre capture ou des dropped records peuvent la réfuter. Pour chaque hypothèse, écrivez une preuve favorable et une preuve contraire.

Retransmission ou duplicate ACK ne désigne pas le responsable. Reordering, loss, capture artifact et receiver delay peuvent produire des labels proches. Reliez direction, sequence, ACK, SACK, RTT, window et temps applicatif. Pour DNS/DHCP, associez transaction ID, adresses et essais ; pour HTTP, request et response ; pour TLS, direction du handshake.

Préserver l’original

Calculez le checksum et gardez l’original inchangé. Filtrez, coupez et masquez une working copy. Journalisez input, transformation, heure, packet count avant/après, checksum résultat et motif. Après timestamp rewrite ou suppression de packets, cette copie ne convient plus à certaines mesures de temps ou de séquence.

Remplacez adresses et identifiants de façon stable pour suivre le même endpoint. Ne retirez pas ports, directions ou longueurs nécessaires. Gardez la table secrète séparée. Consultez les limites de capture et d’export et le parcours PCAP Surgery.

QA avant publication

Titre et réponse traitent-ils le même flow ? Chaque durée cite-t-elle horloge et points ? La première frontière défaillante est-elle claire ? Une alternative est-elle testée ? Une seule variable change-t-elle ? L’original subsiste-t-il ? Limitez la conclusion : « Cette capture prouve le comportement côté client pendant cet intervalle, pas l’exécution interne du serveur. »

Le terme Semrush validé PCAP analyzer reste la propriété exclusive du produit. Cet article ne revendique ni volume ni KD non mesurés.

<!-- pcap-localized-evidence-foundation-v1:end -->