Dårlig kontrolsum i en VPN-optagelse er ikke filkorruption
En optagelse kan se en pakke, før adapteren gør den færdig. Adskil analysatorens dom fra den fil, du modtog, og bevis integriteten med en hash.
Analysatoren markerer en pakke som havende en dårlig kontrolsum, og en downloadet fil ser forkert ud, så de to observationer smeltes sammen til én historie om korruption på VPN’en. Det er forskellige målinger taget på forskellige punkter. Den ene beskriver, hvad optagemekanismen så, før netværksadapteren gjorde sit arbejde færdigt; den anden beskriver de bytes, programmet gemte. At fastslå, hvilken af dem der faktisk ændrede sig, er hele diagnosen.
Hvor optagelsen ligger i forhold til adapteren
En pakkeoptagelse er et øjebliksbillede på ét punkt i en vej, der indeholder flere transformationer. Mellem værtsstakken og ledningen ligger segmentering, beregning af kontrolsum og, ved modtagelse, sammensmeltning. Et optagepunkt viser tilstanden i det øjeblik, og den er sjældent identisk med den endelige ramme på ledningen. At læse optagelsen, som om den var ledningen, er netop, hvordan et pladsholderfelt bliver til en anklage.
Det nyttige spørgsmål om ethvert mistænkeligt felt er derfor ikke, om det ser forkert ud, men hvor det blev observeret. Skriv optagegrænsefladen, analysatorens version og pakkelaget ved siden af fundet; uden de tre kan en kontrolsummærkat slet ikke fortolkes.
Hvad transmit offload gør ved et spor
Med transmit checksum offload aktiveret beregner adapteren kontrolsummen og udfylder feltet, efter at værten har sat pakken i kø. En optagelse på værtsiden registrerer derfor en pladsholder, og analysatoren rapporterer en kontrolsum, som ledningen aldrig har båret. Segmentation offload skaber et lignende artefakt, fordi værten kan give adapteren én stor buffer, som senere bliver til flere rammer.
Wiresharks reference om offload beskriver begge effekter og bemærker, at genkendelse af delvise kontrolsummer afhænger af analysatorens version og pakketypen. Derfor kan et ældre optageværktøj og et nyere være uenige om samme spor, mens begge læser det korrekt.
Indkapsling tilføjer et andet objekt
En VPN indsætter en anden pakke i billedet. Tunnelgrænsefladen viser den indre pakke, som programmet faktisk sendte, mens den fysiske grænseflade viser den ydre indkapslede forbindelse, der bærer den. En kontrolsum eller længde taget fra den indre pakke hører ikke til den ydre ramme, og at sammenligne de to, som om de beskrev samme objekt, giver vrøvl.
Når du skal sammenligne, så sammenlign ens med ens: indre med indre, ydre med ydre, på samme punkt i vejen. Et par felter, der ikke passer sammen, beviser kun, at der blev målt to forskellige objekter. Notér, hvilken grænseflade hvert spor kom fra, for en tunneloptagelse, der ser ren ud, siger intet om, hvad adapteren sendte ud.
Bevis filintegritet med hashes
For selve filen beregnes en indholdshash af en reproducerbar kilde og af det gemte resultat, og derefter sammenlignes digestene. Det besvarer et andet spørgsmål end nogen etiket pr. pakke, og det besvarer det om det objekt, brugeren faktisk bekymrer sig om.
sha256sum payload.bin
sha256sum /srv/transfer/payload.bin
cmp -l payload.bin /srv/transfer/payload.bin | head
Ens digest lukker korruptionsspørgsmålet for den overførsel. Forskellige digest åbner et snævrere et: find det tidligste trin, hvor bytesene divergerer, og undersøg, om noget har omdannet filen med vilje. En delvis gemning, en genkodet vedhæftning og en fejlside gemt under det forventede filnavn ændrer alle bytes uden nogen netværksfejl.
Lokaliser en adaptervej uden at gøre den permanent
For et reproducerbart problem, der følger én dock eller adapter, holdes VPN-profil, program, testobjekt og destination fast, og derefter gentages overførslen gennem en understøttet alternativ grænseflade. Et resultat, der ændrer sig med adapteren, lokaliserer fejlen til den vej; det identificerer endnu ikke en driverindstilling eller beviser en defekt for hele modellen.
At deaktivere offload globalt er en fristende test og en dårlig standard. En indstilling for hele værten påvirker trafik langt ud over eksperimentet og kan have en reel ydelsesomkostning, så behandl enhver sådan ændring som midlertidig, notér den, og rul den tilbage. Brug leverandørens understøttede diagnostik, før du beholder en arbejdsomvej, der er lånt fra en anden maskine.
Rapporten bør angive, hvilket af de tre resultater der ændrede sig: analysatorens fortolkning af en pakke, de færdige programbytes eller reproducerbarheden af én adaptervej. De fører til tre forskellige næste handlinger, og kun én af dem handler om kryptering.