Catturi pacchetti da 1400 byte sull'interfaccia del tunnel, catturi di nuovo su quella fisica, e i numeri non vogliono coincidere. Gli indirizzi differiscono, le dimensioni differiscono, e il secondo file sembra un'altra conversazione. Niente è rotto. Due pacchetti diversi siedono su due livelli diversi, e lo scarto tra loro è ciò che il tunnel fa al tuo traffico. Leggi entrambe le viste prima di dare la colpa all'MTU.

Due punti di vista e il pacchetto che ciascuno mostra

Una cattura presa sull'interfaccia del tunnel mostra il pacchetto interno: il carico dell'applicazione con la sua origine e destinazione originali, prima che venga applicata qualsiasi protezione. Una cattura sull'interfaccia fisica mostra il pacchetto esterno: un'intestazione IP, un'intestazione di trasporto, l'incapsulamento, e poi il pacchetto interno cifrato come carico. Stessa conversazione, oggetti diversi. Non appena nomini quale dei due contiene il file, la discrepanza smette di essere un mistero.

La differenza di dimensione è un sovraccarico, e la differenza di indirizzo è progettazione. Rovescia il ragionamento e la confusione diventa prevedibile: le persone confrontano un pacchetto interno da 1400 byte con un pacchetto esterno da 1450 byte, decidono che qualcosa non va e iniziano a cambiare impostazioni MTU che non avevano mai colpa. Etichetta il file con l'interfaccia e il livello, perché quell'etichetta è la prima cosa che serve a un lettore e la prima che le persone omettono.

Decidi il livello prima di iniziare la cattura

Decidi quale livello risponde alla tua domanda prima che venga scritto il primo pacchetto. Una domanda sull'MTU di solito richiede la vista esterna, perché è lì che si accumulano le intestazioni e dove appare il limite del percorso. Una domanda applicativa di solito richiede la vista interna, perché è lì che esiste ancora il carico che ti interessa. Catturare entrambe senza un piano produce due file e nessuna conclusione.

Usa un test innocuo e autorizzato e filtra su origine, destinazione e momento che ti interessano. Leggi l'interfaccia e le opzioni di filtro dello strumento di cattura prima di raccogliere, perché i metadati di solito bastano e sono molto più facili da condividere del carico. Tratta la cattura interna come sensibile per impostazione predefinita, perché contiene dati applicativi non cifrati che diventano protetti solo più avanti lungo il percorso.

Cosa contiene davvero la differenza di dimensione

Il pacchetto esterno porta intestazioni aggiuntive e materiale di protezione, e quanto ne porta dipende dal protocollo e dalle sue opzioni. La frammentazione, l'aggregazione o il riordino lungo il percorso possono rompere l'apparente relazione uno a uno tra un pacchetto interno e i pacchetti esterni che lo trasportano, quindi un confronto dimensione per dimensione non è sempre disponibile. Per un sospetto guasto dell'MTU, cerca il riscontro sulla dimensione e il punto in cui il traffico si ferma, poi confrontalo con ciò che l'applicazione riporta. Un modello di ritrasmissione senza risposta è un segnale diverso da un errore ICMP che porta la dimensione del salto successivo.

Un singolo pacchetto che lascia l'host non prova nulla sul fatto che l'estremità remota lo abbia ricevuto. Se la tua cattura termina sulla tua interfaccia, hai dimostrato che il kernel ha emesso qualcosa, che è la prova più debole disponibile sul percorso. Combina la cattura con un sintomo ripetibile: stessa destinazione, stessa operazione, stessa dimensione, eseguito due volte con una variabile cambiata.

Leggere l'offload nei numeri

La segmentazione lato host e gli altri offload aggiungono una seconda distorsione, ed è quella che fa divergere le catture locali dal filo. Una cattura locale può mostrare buffer che l'adattatore divide in seguito, quindi i frame sul collegamento sono più piccoli e più numerosi di quanto il file suggerisca. Per questo un buffer grande nel file di cattura non prova che un frame sovradimensionato abbia attraversato ogni collegamento. Se le dimensioni contano per la tua conclusione, registra dove è stata presa la cattura e se l'offload era attivo su quell'interfaccia.

Altrimenti stai misurando la comodità dell'host invece del comportamento del percorso. Due file etichettati con la loro interfaccia e lo stato di offload risolvono la maggior parte di queste discussioni in un minuto.

Dove la cattura smette di essere prova

Vedere pacchetti esterni cifrati mostra che esiste un confine di protezione in queste condizioni di test, e non dice nulla sulle altre applicazioni del dispositivo, sulla gestione dell'operatore o sullo stato dell'estremità stessa. Vedere testo in chiaro dentro il tunnel non significa nemmeno che il tunnel sia rotto; significa che hai catturato sopra il punto di cifratura, che è un luogo legittimo dove guardare. Una cattura è una prova su un luogo, non un verdetto su un sistema, e il ticket dovrebbe descriverla così. Mantieni la frase di ambito nel rapporto, perché è ciò che impedisce a una singola osservazione di diventare un'affermazione di audit.

Assegna a ogni file un nome con interfaccia, filtro e marca temporale, ed eliminalo quando l'indagine termina. Il manuale di tcpdump documenta i flag di interfaccia e filtro usati qui, compresi quelli che mantengono piccola una cattura.

Se devi condividere prove, condividi dimensioni, marche temporali e flag invece del carico. La domanda riguardava la dimensione dei pacchetti, e la risposta raramente ha bisogno dei dati di qualcuno.

Articoli correlati