Дрэнная кантрольная сума ў перахопе VPN — гэта не пашкоджанне файла
Перахоп можа ўбачыць пакет раней, чым адаптар скончыць з ім. Аддзяліце вердыкт аналізатара ад атрыманага файла і дакажыце цэласнасць хэшам.
Аналізатар пазначае пакет як такі, што мае дрэнную кантрольную суму, а спампаваны файл выглядае няправільна, таму два назіранні зліваюцца ў адну гісторыю пра пашкоджанне на VPN. Гэта розныя вымярэнні, зробленыя ў розных пунктах. Адно апісвае тое, што ўбачыў механізм перахопу да таго, як сеткавы адаптар скончыў сваю працу; другое апісвае байты, якія захавала праграма. Устанавіць, якое з іх насамрэч змянілася, — гэта і ёсць увесь дыягназ.
Дзе знаходзіцца перахоп адносна адаптара
Перахоп пакетаў — гэта здымак у адным пункце шляху, які змяшчае некалькі пераўтварэнняў. Паміж стэкам хаста і провадам знаходзяцца сегментацыя, вылічэнне кантрольнай сумы і, пры прыёме, аб’яднанне. Пункт перахопу паказвае стан у гэты момант, і ён рэдка супадае з канчатковым кадрам на провадзе. Чытанне яго так, нібыта гэта провад, — менавіта так поле-запаўняльнік ператвараецца ў абвінавачанне.
Таму карыснае пытанне пра любое падазронае поле — не ці выглядае яно няправільна, а дзе яно назіралася. Запішыце інтэрфейс перахопу, версію аналізатара і ўзровень пакета побач з высновай; без гэтых трох метка кантрольнай сумы наогул не інтэрпрэтуецца.
Што перадача з вынясеннем робіць са следам
Калі вынясенне кантрольнай сумы пры перадачы ўключана, адаптар вылічвае кантрольную суму і запаўняе поле пасля таго, як хаст паставіў пакет у чаргу. Таму перахоп на баку хаста фіксуе запаўняльнік, і аналізатар паведамляе пра кантрольную суму, якую провад ніколі не перадаваў. Вынясенне сегментацыі стварае падобны артэфакт, бо хаст можа перадаць адаптару адзін вялікі буфер, які пазней стане некалькімі кадрамі.
Дапаможнік Wireshark па вынясенні апісвае абодва эфекты і адзначае, што распазнаванне частковых кантрольных сум залежыць ад версіі аналізатара і тыпу пакета. Менавіта таму стары сродак перахопу і новы могуць разыходзіцца ў меркаванні пра адзін і той жа след, хоць абодва чытаюць яго правільна.
Інкапсуляцыя дадае другі аб’ект
VPN устаўляе ў карціну другі пакет. Інтэрфейс тунеля паказвае ўнутраны пакет, які праграма сапраўды адправіла, а фізічны інтэрфейс паказвае знешняе інкапсуляванае злучэнне, якое яго нясе. Кантрольная сума або даўжыня, узятыя з унутранага пакета, не належаць знешняму кадру, і параўнанне іх так, нібыта яны апісваюць адзін аб’ект, дае бессэнсоўнасць.
Калі трэба параўноўваць, параўноўвайце падобнае з падобным: унутранае з унутраным, знешняе са знешнім, у адным і тым жа пункце шляху. Няпарныя палі даказваюць толькі тое, што былі вымераны два розныя аб’екты. Адзначце, з якога інтэрфейса прыйшоў кожны след, бо чысты на выгляд перахоп тунеля нічога не кажа пра тое, што выпусціў адаптар.
Дакажыце цэласнасць файла хэшамі
Для самога файла вылічыце хэш змесціва з прайгравальнай крыніцы і з захаванага выніку, а затым параўнайце агрэгаты. Гэта адказвае на іншае пытанне, чым любая метка па пакетах, і адказвае на яго адносна аб’екта, які карыстальнік сапраўды мае на ўвазе.
sha256sum payload.bin
sha256sum /srv/transfer/payload.bin
cmp -l payload.bin /srv/transfer/payload.bin | head
Роўныя агрэгаты закрываюць пытанне пашкоджання для гэтай перадачы. Розныя агрэгаты адкрываюць больш вузкае пытанне: знайдзіце найранейшую стадыю, дзе байты разыходзяцца, і праверце, ці нешта наўмысна пераўтварыла файл. Частковае захаванне, перакадзіраваны далучаны файл і старонка памылкі, захаваная пад чаканай назвай файла, — усё гэта змяняе байты без якой-небудзь сеткавай няспраўнасці.
Лакалізуйце шлях адаптара, не робячы яго пастаянным
Для праблемы, якая паўтараецца і звязана з адным докам або адаптарам, зафіксуйце профіль VPN, праграму, тэставы аб’ект і прызначэнне, а затым паўтарыце перадачу праз падтрыманы альтэрнатыўны інтэрфейс. Вынік, які змяняецца разам з адаптарам, лакалізуе няспраўнасць на гэты шлях; ён яшчэ не вызначае наладу драйвера і не даказвае дэфект усёй мадэлі.
Поўнае адключэнне вынясення — спакуслівы тэст і дрэнная практыка па змаўчанні. Налада для ўсяго хаста ўплывае на трафік далёка за межамі эксперыменту і можа мець рэальны кошт прадукцыйнасці, таму лічыце любое такое змяненне часовым, запішыце яго і адкаціце. Выкарыстоўвайце падтрыманую вытворцам дыягностыку, перш чым пакінуць абыходны шлях, узяты з іншай машыны.
Справаздача павінна назваць, які з трох вынікаў змяніўся: інтэрпрэтацыя пакета аналізатарам, скончаныя байты праграмы або прайгравальнасць аднаго шляху адаптара. Яны вядуць да трох розных наступных дзеянняў, і толькі адно з іх пра шыфраванне.