Przechwytujesz pakiety o rozmiarze 1400 bajtów na interfejsie tunelu, przechwytujesz ponownie na interfejsie fizycznym, a liczby nie chcą się zgadzać. Adresy są różne, rozmiary są różne, a drugi plik wygląda jak inna rozmowa. Nic nie jest zepsute. Dwa różne pakiety leżą na dwóch różnych warstwach, a różnica między nimi to właśnie to, co tunel robi z twoim ruchem. Przeczytaj oba widoki, zanim obwinisz MTU.

Dwa punkty widzenia i pakiet, który pokazuje każdy z nich

Zrzut wykonany na interfejsie tunelu pokazuje pakiet wewnętrzny: ładunek aplikacji z jej pierwotnym źródłem i celem, zanim zastosowano jakąkolwiek ochronę. Zrzut na interfejsie fizycznym pokazuje pakiet zewnętrzny: nagłówek IP, nagłówek transportowy, enkapsulację, a następnie zaszyfrowany pakiet wewnętrzny jako ładunek. Ta sama rozmowa, inne obiekty. Gdy nazwiesz, który z nich jest w pliku, niezgodność przestaje być zagadką.

Różnica rozmiarów to narzut, różnica adresów to zamysł. Odwróć to, a zamieszanie staje się przewidywalne: ludzie porównują wewnętrzny pakiet 1400 bajtów z zewnętrznym 1450 bajtów, uznają, że coś jest nie tak, i zaczynają zmieniać ustawienia MTU, które nigdy nie były winne. Oznacz plik interfejsem i warstwą, bo ta etykieta jest pierwszą rzeczą, której potrzebuje czytelnik, i pierwszą, którą ludzie pomijają.

Ustal warstwę, zanim zaczniesz zrzut

Ustal, która warstwa odpowiada na twoje pytanie, zanim zostanie zapisany pierwszy pakiet. Pytanie o MTU zwykle wymaga widoku zewnętrznego, bo tam gromadzą się nagłówki i tam ujawnia się limit ścieżki. Pytanie o aplikację zwykle wymaga widoku wewnętrznego, bo tam wciąż istnieje interesujący cię ładunek. Zrzut obu bez planu daje dwa pliki i żadnego wniosku.

Użyj nieszkodliwego, dozwolonego testu i filtruj według interesującego cię źródła, celu i czasu. Przeczytaj opcje interfejsu i filtrów narzędzia zrzutowego przed zbieraniem, bo metadane zwykle wystarczają i znacznie łatwiej je udostępnić niż ładunek. Domyślnie traktuj zrzut wewnętrzny jako wrażliwy, bo zawiera niezaszyfrowane dane aplikacji, które są chronione dopiero dalej na ścieżce.

Co tak naprawdę zawiera różnica rozmiarów

Pakiet zewnętrzny niesie dodatkowe nagłówki i materiał ochronny, a ile dokładnie, to zależy od protokołu i jego opcji. Fragmentacja, agregacja lub zmiana kolejności po drodze mogą zerwać pozorną relację jeden do jednego między pakietem wewnętrznym a pakietami zewnętrznymi, które go niosą, więc porównanie rozmiar po rozmiarze nie zawsze jest możliwe. Przy podejrzeniu usterki MTU szukaj informacji zwrotnej o rozmiarze i miejsca, w którym ruch się zatrzymuje, a potem porównaj to z tym, co zgłasza aplikacja. Wzorzec retransmisji bez odpowiedzi to inny sygnał niż błąd ICMP niosący rozmiar następnego skoku.

Pojedynczy pakiet, który opuścił host, niczego nie dowodzi w kwestii tego, czy dotarł do drugiego końca. Jeśli twój zrzut kończy się na twoim własnym interfejsie, pokazałeś, że jądro coś wysłało, a to najsłabszy dostępny dowód dotyczący ścieżki. Połącz zrzut z powtarzalnym objawem: ten sam cel, ta sama operacja, ten sam rozmiar, dwa uruchomienia z jedną zmienioną zmienną.

Jak czytać offload w tych liczbach

Segmentacja po stronie hosta i inne rodzaje offload dodają drugie zniekształcenie i to ono sprawia, że lokalne zrzuty nie zgadzają się z tym, co widać na łączu. Lokalny zrzut może pokazywać bufory, które karta dzieli później, więc ramki na łączu są mniejsze i liczniejsze, niż sugeruje plik. Dlatego duży bufor w pliku zrzutu nie dowodzi, że zbyt duża ramka przeszła przez każde ogniwo. Jeśli rozmiary mają znaczenie dla twojego wniosku, zapisz, gdzie wykonano zrzut i czy na tym interfejsie działał offload.

W przeciwnym razie mierzysz wygodę hosta, a nie zachowanie ścieżki. Dwa pliki oznaczone interfejsem i stanem offload rozstrzygają większość takich sporów w minutę.

Gdzie zrzut przestaje być dowodem

Widok zaszyfrowanych pakietów zewnętrznych pokazuje, że w tych warunkach testowych istnieje granica ochrony, i nie mówi nic o innych aplikacjach na urządzeniu, o postępowaniu operatora ani o stanie samego punktu końcowego. Widok tekstu jawnego wewnątrz tunelu też nie oznacza, że tunel jest zepsuty; oznacza, że zrzut wykonano powyżej punktu szyfrowania, a to uzasadnione miejsce obserwacji. Zrzut jest dowodem o miejscu, a nie wyrokiem o systemie, i zgłoszenie powinno tak go opisywać. Zostaw w raporcie zdanie o zakresie, bo właśnie ono nie pozwala jednej obserwacji stać się twierdzeniem audytowym.

Nazwij każdy plik jego interfejsem, filtrem i znacznikiem czasu, a po zakończeniu dochodzenia go usuń. Podręcznik tcpdump opisuje użyte tu flagi interfejsu i filtrów, w tym te, które pozwalają utrzymać zrzut w małym rozmiarze.

Jeśli musisz udostępnić dowody, udostępniaj rozmiary, znaczniki czasu i flagi, a nie ładunek. Pytanie dotyczyło rozmiaru pakietu, a odpowiedź rzadko potrzebuje czyichkolwiek danych.

Powiązane artykuły