Analisi PCAP del buco nero MTU e della frammentazione: individuazione di errori PMTUD, problemi MSS e TCP in stallo
Come diagnosticare i buchi neri MTU, errore di rilevamento MTU del percorso, mancata corrispondenza TCP MSS, frammentazione, messaggi bloccati ICMP, tunnel VPN e connessioni bloccate nell'acquisizione di pacchetti.
I problemi MTU creano alcuni dei guasti di rete più confusi. Le piccole richieste funzionano. I ping potrebbero funzionare. Il DNS potrebbe funzionare. TCP si connette. TLS potrebbe iniziare. Quindi le risposte di grandi dimensioni si bloccano, i caricamenti si bloccano, i siti Web vengono caricati parzialmente, il traffico VPN si interrompe o i flussi RTSP/HTTP falliscono a bitrate più elevato. Gli utenti cercano "MTU blackhole pcap", "errore di rilevamento MTU del percorso", "problema TCP MSS", "acquisizione di pacchetti di frammentazione" e "blocco VPN per pacchetti di grandi dimensioni" perché la connessione non è semplicemente attiva o disattivata.
Un'acquisizione di pacchetti può mostrare se pacchetti di grandi dimensioni vengono inviati, frammentati, eliminati, ritrasmessi o bloccati a causa della mancanza del feedback ICMP. Ma la traccia deve essere interpretata con attenzione perché il punto di cattura, l'offload e il sovraccarico del tunnel possono distorcere le dimensioni visibili dei pacchetti.
La chirurgia PCAP è utile in questo caso perché le indagini MTU spesso necessitano di tracce mirate: una conversazione TCP, tempi originali, messaggi ICMP, ritrasmissioni, negoziazione MSS e un numero sufficiente di pacchetti prima e dopo lo stallo.
Cosa significa MTU
MTU è l'unità di trasmissione massima su un collegamento. Ethernet utilizza comunemente 1500 byte. VPN, PPPoE, tunnel, overlay e reti cloud possono ridurre l'MTU del percorso effettivo poiché aggiungono intestazioni.
Se un mittente trasmette pacchetti più grandi di quanto un percorso possa trasportare, deve accadere una delle due cose:
- I pacchetti sono frammentati dove consentito.
- I pacchetti vengono scartati e il mittente deve apprendere un percorso MTU più piccolo.
Il rilevamento MTU del percorso si basa sui messaggi ICMP per segnalare che un pacchetto era troppo grande. Se questi messaggi ICMP vengono bloccati, il mittente potrebbe continuare a inviare pacchetti che scompaiono. Questo è il classico buco nero MTU.
Sintomi del buco nero MTU
I sintomi comuni includono:
- La connessione TCP si apre ma i trasferimenti di grandi dimensioni si bloccano.
- L'handshake HTTPS si blocca dopo ClientHello o ServerHello.
- La pagina di accesso viene caricata ma il caricamento del file non riesce.
- La VPN si connette ma alcuni siti non si caricano.
- SSH funziona finché non viene visualizzato un output di grandi dimensioni.
- Le chiamate API con payload piccoli funzionano, i payload grandi falliscono.
- Il controllo RTSP funziona ma i media o i pacchetti interleaved di grandi dimensioni si comportano male.
- Le ritrasmissioni si ripetono con dimensioni di pacchetto simili.
Il modello chiave è la sensibilità alle dimensioni. Passano piccoli pacchetti. I pacchetti più grandi falliscono.
Negoziazione MSS
La dimensione massima del segmento TCP viene negoziata durante lo scambio SYN:
Client -> Server: SYN, MSS 1460
Server -> Client: SYN-ACK, MSS 1460
ICMP fragmentation needed
If the capture shows:
then Path MTU Discovery is working.
If the capture shows:
then an MTU black hole is plausible.
Fragmentation evidence
In a pcap, look for:
TLS handshake stalls and MTU
VPN and tunnel overhead
Capture point and offload
To avoid mistakes:
Checklist for MTU black hole PCAP analysis
Use this process:
Final diagnosis
<!-- pcap-localized-evidence-foundation-v1:start -->Risposta basata sui pacchetti per «Analisi PCAP del buco nero MTU e della frammentazione: individuazione di errori PMTUD, problemi MSS e TCP in stallo»
La risposta diretta è che un label dell’analizzatore o un messaggio applicativo non determina la causa. Parti da punto di cattura e direzione, poi dimostra l’ultimo confine riuscito e il primo fallito. In «Analisi PCAP del buco nero MTU e della frammentazione: individuazione di errori PMTUD, problemi MSS e TCP in stallo» un altro revisore deve trovare il packet, il gap o l’intervallo che sostiene ogni frase e sapere quale prova potrebbe smentirla.
Posizionare la cattura sul percorso
Registra client, server e ogni proxy, load balancer, NAT o firewall. Indica interface, luogo, clock, sistema e direzioni visibili. Una cattura presso il client prova ciò che arriva lì, non che il server non abbia inviato. Presso il server prova l’uscita in quel punto, non l’intero percorso. Prima di confrontare due punti correggi clock offset e allinea flow tuple, TCP sequence o transaction ID.
Controlla snap length, dropped packets, offload, capture filter, ring buffer e orario iniziale. Un checksum errato sul host può essere offload artifact. Un segmento grande può derivare da GRO/TSO e non esistere così sul cavo. Un packet assente da un file limitato non è network loss finché non dimostri che il punto doveva vederlo.
Leggere i confini in ordine
| Confine | Prova di riuscita | Prova di guasto utile |
|---|---|---|
| Link e IP | direzione, address e route coerenti | ARP/NDP assente, ICMP, MTU, asimmetria |
| TCP | SYN, SYN-ACK, ACK e sequence | retransmission, RST, zero window, timeout |
| TLS | ClientHello, ServerHello e progresso | alert o confine SNI/ALPN/certificate |
| Applicazione | request completo e response associata | status, gap o chiusura precoce |
| Utente | response time o failure window | stall legato a un confine |
Fermati al primo confine senza successo. Se TCP non si completa, non iniziare da HTTP. Se request arriva al proxy ma non all’upstream, il limite è nel proxy o nel percorso. Se arriva all’upstream senza response entro timeout, ACK e avanzamento dei bytes separano application delay da network loss.
Separare osservazione e ipotesi
Un’osservazione è localizzabile: “Client ha inviato fino a una sequence, sender ha ripetuto un segmento tre volte e qui non compare ACK avanzato”. L’ipotesi è “il percorso ha perso il segmento”. Un’altra cattura o dropped records possono smentirla. Per ogni ipotesi scrivi prova favorevole e prova contraria.
Retransmission e duplicate ACK non assegnano colpa. Reordering, loss, capture artifact e receiver delay generano label simili. Collega direzione, sequence, ACK, SACK, RTT, window e tempo applicativo. Per DNS/DHCP collega transaction ID, address e tentativi; per HTTP request e response; per TLS la direzione del handshake.
Preservare l’originale
Calcola checksum e conserva l’originale immutato. Filtra, taglia e oscura una working copy. Registra input, trasformazione, ora, packet count prima/dopo, checksum risultante e motivo. Dopo timestamp rewrite o rimozione di packets la copia non sostiene più alcune conclusioni temporali o di sequenza.
Sostituisci address e identificatori in modo stabile per seguire lo stesso endpoint. Non eliminare port, directions o lengths necessari. Separa la mappa segreta. Consulta limiti di cattura ed export e il flusso PCAP Surgery.
QA prima della pubblicazione
Titolo e risposta riguardano lo stesso flow? Ogni durata nomina clock e punti? Il primo confine fallito è chiaro? Esiste un’alternativa? Si cambia una variabile? L’originale è conservato? Limita la conclusione: “Questa cattura prova il comportamento presso il client nell’intervallo, non l’esecuzione interna del server”.
Il termine Semrush validato PCAP analyzer appartiene solo alla pagina prodotto. Questo articolo resta sulla domanda tecnica e non inventa volume o KD.
<!-- pcap-localized-evidence-foundation-v1:end --><!-- pcap-localized-flow-verdicts-v1:start -->Registro del flow e test di esclusione
Per «Analisi PCAP del buco nero MTU e della frammentazione: individuazione di errori PMTUD, problemi MSS e TCP in stallo» crea una riga per direzione: endpoints con alias, primo/ultimo packet, bytes inviati e confermati, reset, retransmissions, requests e responses. Non unire connessioni per lo stesso hostname; source port, inizio e initial sequence separano sessions. Con NAT o proxy documenta la relazione senza aspettare sequence o ports uguali.
Calcolare TCP invece di contare label
Segui next expected sequence del receiver. Il payload avanza sequence della sua lunghezza; SYN e FIN consumano un numero. Duplicate ACK stabile dopo segmenti superiori sostiene loss o reordering. SACK blocks mostrano ranges arrivati, non il punto di perdita. Retransmission visibile al sender ma non al receiver richiede test del tratto; originale assente al sender capture richiede controllo di capture loss o offload.
Separa fast retransmit dopo duplicate ACKs da RTO dopo silenzio. Confronta RTT precedente, advertised window, zero-window probes, burst e dimensione. Non ogni label è perdita: overlap, spurious retransmission o cattura iniziata a metà cambiano la classificazione.
Misurare il tempo con confini
Usa request first byte, request complete, response first byte e response complete. TTFB non equivale a tempo server senza punto e trasporto. Retransmission prima di response può aggiungere network delay; request confermata e lungo silenzio sostiene application wait. Scrivi valore, unità, clock e punto.
Con due punti allinea un packet distintivo nelle due direzioni, stima offset e usa intervals interni. Se clock è incerto, fornisci un range. Confronta finestre buone e guaste di durata e carico simili.
Domande di protocollo
DNS: ID, nome e tipo coincidono, retry cambia resolver o source port? DHCP: Discover, Offer, Request e ACK sono dello stesso client identifier? TLS: ultimo handshake message per direzione e alert visibile o cifrato? HTTP: chi genera 4xx/5xx e c’è upstream flow? TCP close: chi invia FIN/RST e quali bytes restano senza ACK?
Test decisivo e consegna
Scegli due ipotesi e un test che le separa. Cattura all’altro estremo separa network loss e measurement loss; disattivare offload in test verifica artifact; request identico su path fisso verifica intermittency; log upstream contro packet boundary verifica application delay. Scrivi prima gli esiti attesi.
Accetta quando un reviewer ripete il calcolo dai metadata, trova lo stesso confine e capisce i limiti. Consegna checksum original/derived, filter, packet ranges e passi trim/redaction. Chiudi con owner, azione e condizione misurabile.
Revisione della riproducibilità
Apri una nuova connection e ripeti tre volte con input e filtri uguali. Ports e initial sequence possono cambiare, ma confine, direzione e pattern devono ripetersi. Riporta successi e guasti. Una correzione cambia una variabile e deve produrre il cambiamento previsto nei packets, non solo nascondere il messaggio.
Apri la copia derivata su un altro sistema. Il reviewer trova alias, clock, capture point, ultimo successo, primo guasto e alternativa. Cerca hostname, query, header e payload sensibile dopo redaction, conservando length e direction necessarie. Elenca ciò che non è testato: verso opposto, IPv6, reconnect o altro carico.
Chiudi come provato nel perimetro, ancora riproducibile o aperto per una cattura precisa. “Rete risolta” è troppo ampio dopo un solo flow.
<!-- pcap-localized-flow-verdicts-v1:end -->