Jeden przepływ, cztery granice: odnaleźć ostatni pakiet
Raport o pakietach wymaga jednego kontrolowanego przepływu i porównywalnych punktów obserwacji. Brak zrzutu ruchu lub ustne potwierdzenie nie wskazują przeskoku, na którym pakiet ginie.
Jedna strona twierdzi, że wysłała ruch; druga, że nigdzie nie dotarł. Ta para zdań brzmi jak sprzeczność, a zwykle to po prostu dwa różne pomiary. Licznik pakietów, log zapory i zrzut ruchu opisują różne warstwy, a porównywanie ich bez etykiet daje podejrzanego, a nie lokalizację. Zbuduj raport wokół jednego przepływu i jego punktów obserwacji.
Licznik bez kontekstu niewiele dowodzi
To, że brama raportuje wysłane bajty, nie jest dowodem, że drugi koniec otrzymał konkretne żądanie. Licznik może obejmować inne przepływy, inne chwile albo inną warstwę enkapsulacji. Licznik, który rośnie, podczas gdy cel nic nie widzi, nadal może być poprawny, bo mierzył inne pytanie. Zanim cokolwiek porównasz, ustal przepływ, okno czasowe i warstwę.
Dwie liczby z różnych warstw mogą się uczciwie nie zgadzać. Ta niezgodność jest początkiem dochodzenia, a nie wnioskiem.
Oznacz każdy punkt obserwacji
Dla każdej obserwacji zapisz urządzenie, interfejs lub punkt zaczepienia, kierunek, odniesienie zegara oraz to, czy pokazuje ruch wewnętrzny, czy transport zewnętrzny. Log zapory na hoście i zrzut na łączu uplink to różne dowody, nawet gdy dzielą je sekundy. Etykieta pozwala innemu inżynierowi odtworzyć ten obraz.
Utrzymuj problem zegara w polu widzenia. Zegary dryfują, a znacznik czasu z jednego hosta nie zawsze da się wprost porównać z drugim. Jeśli hostów nie da się zsynchronizować, obejmij próbę znacznikami z obu stron i posłuż się kolejnością zamiast wartością bezwzględną. Zapisz zmierzone przesunięcie, zamiast po cichu korygować czasy.
Porównuj pola, które punkt faktycznie pokazuje
Porównuj adresy i pola protokołu w punktach, które naprawdę je pokazują. Uwzględnij celowe tłumaczenie adresów, bo przepisana krotka to wciąż ta sama rozmowa. W autoryzowanym teście IPv4 Echo definicja z RFC 792 podaje pola identyfikatora i sekwencji, które pomagają dopasować żądania do odpowiedzi. Zachowaj też adresy i okno, ponieważ sama wartość sekwencji nie jest unikalną tożsamością.
tcpdump -ni eth0 -c 20 'host 198.51.100.20 and icmp'
tcpdump -ni tun0 -c 20 'host 10.90.0.5 and tcp port 443'
Tam, gdzie odnoga zewnętrzna jest szyfrowana, prowadź rozmowę z peerem i jej kierunek w osobnym zapisie. Nie należy oczekiwać, że wewnętrzny identyfikator Echo przetrwa na zewnątrz w tej samej postaci. Liczników zewnętrznych i wewnętrznych nie wolno porównywać bez podania reprezentacji.
Zgłoś brakujący przedział, nie podejrzanego
Brakująca obserwacja to dowód ograniczony, a nie dowód, że pakiet zginął na tym urządzeniu. Filtry, umiejscowienie zrzutu, utracone dane zrzutu i okno, które ominęło próbę, dają niepełny zapis. Powiedz, czego brakuje i między jakimi granicami. Brak też wymaga terminu ważności, więc podaj, jak długo obserwowałeś i co musiałoby się pojawić.
Twierdzenie drugiej strony, że przekazała ruch, jest kontekstem, nigdy obserwacją. Przekaż przepływ, znaczniki czasu, oznaczone granice i jeden wąski przykład. Utrzymaj raport na tyle krótki, by proszona obserwacja się wyróżniała. To zamienia następną prośbę w precyzyjny pomiar, a nie oskarżenie.
Ujmij proszony pomiar w jednym zdaniu. Potem przestań pisać.