Analizator oznacza pakiet jako mający złą sumę kontrolną, a pobrany plik wygląda źle, więc obie obserwacje łączą się w jedną historię o uszkodzeniu w VPN. To różne pomiary wykonane w różnych punktach. Jeden opisuje, co mechanizm przechwytywania zobaczył, zanim adapter sieciowy zakończył pracę; drugi opisuje bajty zapisane przez aplikację. Ustalenie, który z nich naprawdę się zmienił, to cała diagnoza.

Gdzie przechwycenie znajduje się względem adaptera

Przechwycenie pakietów to migawka w jednym punkcie ścieżki zawierającej kilka przekształceń. Między stosem hosta a przewodem znajdują się segmentacja, obliczanie sumy kontrolnej i, przy odbiorze, scalanie. Punkt przechwytywania pokazuje stan w danej chwili, który rzadko jest identyczny z końcową ramką na przewodzie. Czytanie go tak, jakby był przewodem, to właśnie sposób, w jaki pole zastępcze staje się oskarżeniem.

Dlatego użyteczne pytanie o każde podejrzane pole nie brzmi, czy wygląda źle, ale gdzie je zaobserwowano. Obok ustalenia zapisz interfejs przechwytywania, wersję analizatora i warstwę pakietu; bez tych trzech etykiety sumy kontrolnej nie da się w ogóle zinterpretować.

Co offload transmisji robi ze śladem

Gdy offload sumy kontrolnej transmisji jest włączony, adapter oblicza sumę i wypełnia pole po tym, jak host umieścił pakiet w kolejce. Przechwycenie po stronie hosta zapisuje więc wartość zastępczą, a analizator zgłasza sumę kontrolną, której przewód nigdy nie przeniósł. Offload segmentacji tworzy podobny artefakt, ponieważ host może przekazać adapterowi jeden duży bufor, który później staje się kilkoma ramkami.

Dokumentacja offloadu w Wiresharku opisuje oba efekty i zauważa, że rozpoznawanie częściowych sum kontrolnych zależy od wersji analizatora i typu pakietu. Dlatego starsze narzędzie przechwytywania i nowsze mogą nie zgadzać się co do tego samego śladu, choć oba czytają go poprawnie.

Enkapsulacja dodaje drugi obiekt

VPN wstawia w obraz drugi pakiet. Interfejs tunelu pokazuje pakiet wewnętrzny, który aplikacja naprawdę wysłała, a interfejs fizyczny pokazuje zewnętrzne połączenie enkapsulowane, które go niesie. Suma kontrolna lub długość wzięta z pakietu wewnętrznego nie należy do ramki zewnętrznej, a porównywanie obu tak, jakby opisywały ten sam obiekt, daje nonsens.

Gdy trzeba porównywać, porównuj podobne z podobnym: wewnętrzne z wewnętrznym, zewnętrzne z zewnętrznym, w tym samym punkcie ścieżki. Niepasująca para pól dowodzi tylko, że zmierzono dwa różne obiekty. Zanotuj, z którego interfejsu pochodzi każdy ślad, bo czysto wyglądające przechwycenie tunelu nic nie mówi o tym, co wysłał adapter.

Udowodnij integralność pliku hashami

Dla samego pliku oblicz hash zawartości z odtwarzalnego źródła i z zapisanego wyniku, a następnie porównaj skróty. To odpowiada na inne pytanie niż jakakolwiek etykieta na pakiet, i odpowiada na nie w odniesieniu do obiektu, na którym użytkownikowi naprawdę zależy.

sha256sum payload.bin
sha256sum /srv/transfer/payload.bin
cmp -l payload.bin /srv/transfer/payload.bin | head

Równe skróty zamykają kwestię uszkodzenia dla tego transferu. Różne skróty otwierają węższą: znajdź najwcześniejszy etap, w którym bajty się rozchodzą, i sprawdź, czy coś celowo przekształciło plik. Częściowy zapis, ponownie zakodowany załącznik i strona błędu zapisana pod oczekiwaną nazwą pliku zmieniają bajty bez żadnego defektu sieci.

Zlokalizuj ścieżkę adaptera, nie czyniąc jej trwałą

W przypadku powtarzalnego problemu związanego z jednym dokiem lub adapterem utrzymuj stałe profil VPN, aplikację, obiekt testowy i miejsce docelowe, a następnie powtórz transfer przez obsługiwany interfejs alternatywny. Wynik, który zmienia się wraz z adapterem, lokalizuje usterkę na tej ścieżce; nie wskazuje jeszcze ustawienia sterownika ani nie dowodzi wady całego modelu.

Wyłączenie offloadu globalnie to kuszący test i zły domyślny wybór. Ustawienie dla całego hosta wpływa na ruch daleko poza eksperymentem i może nieść realny koszt wydajności, więc każdą taką zmianę traktuj jako tymczasową, zapisz ją i cofnij. Zanim zachowasz obejście zapożyczone z innej maszyny, użyj obsługiwanej przez producenta diagnostyki.

Raport powinien wskazać, który z trzech wyników się zmienił: interpretacja pakietu przez analizator, ukończone bajty aplikacji czy powtarzalność jednej ścieżki adaptera. Prowadzą one do trzech różnych kolejnych działań, a tylko jedno z nich dotyczy szyfrowania.

Powiązane artykuły