Un checksum errato in una cattura VPN non è corruzione del file
Una cattura può vedere un pacchetto prima che l’adattatore lo completi. Separa il verdetto dell’analizzatore dal file ricevuto e dimostra l’integrità con un hash.
L’analizzatore segnala un pacchetto come avente un checksum errato, e un file scaricato sembra sbagliato, così le due osservazioni si fondono in un’unica storia di corruzione sulla VPN. Sono misurazioni diverse prese in punti diversi. L’una descrive ciò che il meccanismo di cattura ha visto prima che l’adattatore di rete finisse il suo lavoro; l’altra descrive i byte che l’applicazione ha memorizzato. Stabilire quale delle due è cambiata davvero è tutta la diagnosi.
Dove si colloca la cattura rispetto all’adattatore
Una cattura di pacchetti è un’istantanea in un punto di un percorso che contiene diverse trasformazioni. Tra lo stack dell’host e il filo ci sono la segmentazione, il calcolo del checksum e, in ricezione, la coalescenza. Un punto di cattura mostra lo stato in quell’istante, che raramente è identico al frame finale sul filo. Leggerla come se fosse il filo è proprio il modo in cui un campo segnaposto diventa un’accusa.
Quindi la domanda utile su qualsiasi campo sospetto non è se sembri sbagliato, ma dove sia stato osservato. Annota l’interfaccia di cattura, la versione dell’analizzatore e il livello del pacchetto accanto al riscontro; senza questi tre elementi un’etichetta di checksum non è interpretabile affatto.
Che cosa fa l’offload di trasmissione a una traccia
Con l’offload del checksum di trasmissione attivo, l’adattatore calcola il checksum e riempie il campo dopo che l’host ha accodato il pacchetto. Una cattura sul lato host registra quindi un segnaposto, e l’analizzatore segnala un checksum che il filo non ha mai trasportato. L’offload di segmentazione crea un artefatto simile, perché l’host può consegnare all’adattatore un unico grande buffer che più tardi diventa diversi frame.
La referenza sull’offload di Wireshark descrive entrambi gli effetti e rileva che riconoscere i checksum parziali dipende dalla versione dell’analizzatore e dal tipo di pacchetto. Per questo uno strumento di cattura più vecchio e uno più recente possono discordare sulla stessa traccia pur leggendola entrambi correttamente.
L’incapsulamento aggiunge un secondo oggetto
Una VPN inserisce un secondo pacchetto nel quadro. L’interfaccia del tunnel mostra il pacchetto interno che l’applicazione ha realmente inviato, mentre l’interfaccia fisica mostra la connessione esterna incapsulata che lo trasporta. Un checksum o una lunghezza presi dal pacchetto interno non appartengono al frame esterno, e confrontare i due come se descrivessero lo stesso oggetto produce un nonsenso.
Quando occorre confrontare, confronta il confrontabile: interno con interno, esterno con esterno, nello stesso punto del percorso. Una coppia di campi che non combacia dimostra solo che sono stati misurati due oggetti diversi. Annota da quale interfaccia proviene ogni traccia, perché una cattura di tunnel che sembra pulita non dice nulla su ciò che l’adattatore ha emesso.
Dimostra l’integrità del file con gli hash
Per il file in sé, calcola un hash del contenuto da una fonte riproducibile e dal risultato memorizzato, poi confronta i digest. Questo risponde a una domanda diversa da qualsiasi etichetta per pacchetto, e lo fa riguardo all’oggetto che all’utente interessa davvero.
sha256sum payload.bin
sha256sum /srv/transfer/payload.bin
cmp -l payload.bin /srv/transfer/payload.bin | head
Digest uguali chiudono la questione della corruzione per quel trasferimento. Digest diversi ne aprono una più stretta: trova la fase più precoce in cui i byte divergono e verifica se qualcosa ha trasformato il file di proposito. Un salvataggio parziale, un allegato ricodificato e una pagina di errore salvata con il nome di file atteso cambiano i byte senza alcun difetto di rete.
Localizza un percorso dell’adattatore senza renderlo permanente
Per un problema riproducibile che segue un solo dock o adattatore, tieni fissi il profilo VPN, l’applicazione, l’oggetto di test e la destinazione, poi ripeti il trasferimento attraverso un’interfaccia alternativa supportata. Un risultato che cambia con l’adattatore localizza il guasto su quel percorso; non identifica ancora un’impostazione del driver né dimostra un difetto dell’intero modello.
Disattivare l’offload a livello globale è un test tentante e una cattiva impostazione predefinita. Un’impostazione valida per tutto l’host influisce su traffico ben oltre l’esperimento e può comportare un costo reale in prestazioni, quindi tratta ogni modifica del genere come temporanea, registrala e ripristinala. Usa la diagnostica supportata dal fornitore prima di mantenere una soluzione provvisoria presa da un’altra macchina.
Il rapporto dovrebbe indicare quale dei tre risultati è cambiato: l’interpretazione di un pacchetto da parte dell’analizzatore, i byte completati dell’applicazione o la riproducibilità di un percorso dell’adattatore. Portano a tre azioni successive diverse, e solo una riguarda la cifratura.