Cofanie odtwarzania OpenVPN w logu: czego nie dowodzi wiersz
Komunikat o cofaniu jest zapisywany przed decyzją o akceptacji lub odrzuceniu. Przejdź sześć przystanków: zidentyfikuj wiersz, znajdź wynik, a następnie sprawdź ścieżkę aplikacji.
Wiersz mówi PID_ERR replay-window backtrack occurred, a wszystkie wyniki wyszukiwania wyjaśniają go jako odrzucone pakiety i zepsuty tunel. W ścieżce UDP Community OpenVPN 2.6 ten komunikat jest zapisywany, gdy funkcja odbioru wciąż decyduje, co zrobić z pakietem. Zapisuje nowe maksimum cofania, a potem ta sama funkcja porównuje odległość z oknem i zapisanym stanem, zanim zaakceptuje lub odrzuci. Czytanie etykiety logu jako wyroku to błąd, któremu ma zapobiegać ta lista kontrolna.
Przystanek pierwszy: ustal, czym jest wiersz
To diagnostyka odległości w sekwencji, a nie decyzja o połączeniu. Pojawia się w implementacji ID pakietu w miejscu, w którym odnotowuje się nowo zaobserwowane maksimum cofania. To miejsce znajduje się przed gałęzią akceptacji lub odrzucenia, dlatego pakiet, który je wywołuje, nadal może zostać dostarczony.
Potwierdź, który host go zapisał i z jakim poziomem szczegółowości. Serwer i klient mogą oba wysyłać komunikaty ID pakietu, a komunikat z jednej strony nic nie mówi o stanie odbioru po drugiej.
Przystanek drugi: znajdź wynik dla tego pakietu
Czytaj wiersze po diagnostyce, a nie samą diagnostykę. Ta sama funkcja przechodzi do sprawdzeń okna i duplikatów, więc wynik dla tego konkretnego pakietu jest rozstrzygany kilka instrukcji później i może być akceptacją. Fragment logu kończący się na przerażającym wierszu nic nie mówi o wyniku. Szukaj okna wokół niego, nie samego wiersza:
journalctl -u openvpn-server@server --since "-10 min" | grep -n -A3 -B3 "backtrack occurred"Jeśli log nie pokazuje odrzucenia dla tego partnera w tym czasie, przestań traktować ten wiersz jako przyczynę awarii. Przejdź do ścieżki aplikacji, bo tam naprawdę kończy się większość raportów o połączono, ale bez ruchu.
Przystanek trzeci: zdecyduj, czy przestawianie jest rzeczywiste
Przestawianie jest właściwością ścieżki, a jedna diagnostyka to tylko jedna jej próbka. Szukaj powtarzających się komunikatów dla tego samego partnera w krótkim oknie i porównaj z zapisem na obu końcach, zanim uznasz, że sieć agresywnie przestawia.
Kilka komunikatów podczas ponownego łączenia nie jest niczym szczególnym. Ciągły strumień obok rzeczywistych przekroczeń czasu aplikacji wart jest zbadania, a ta kombinacja jest dowodem, nie etykietą.
Przystanek czwarty: parametry okna i czym one nie są
replay-window przyjmuje rozmiar sekwencji i opcjonalną wartość czasu, więc jego rozszerzenie zmienia dwie różne tolerancje naraz. Zwiększenie liczby dopuszcza pakiety bardziej poza kolejnością; wartość czasu ogranicza, jak długo pakiet może być jeszcze brany pod uwagę. Rozszerzanie to zmiana polityki z kosztem bezpieczeństwa i nie wzmacnia szyfru ani nie wyłącza wykrywania duplikatów. Obie tolerancje poruszają się razem, czy tego chciałeś, czy nie.
Stary uwierzytelniony pakiet nadal może być niechcianym powtórzeniem, dlatego odbiorca utrzymuje te kontrole. Akceptowanie większego przestawiania oznacza akceptowanie większej części tego ryzyka.
Wyciszenie ostrzeżenia za pomocą mute zmienia to, co widzisz, a nie to, co robi demon. Jeśli celem jest cichszy log podczas znanego zdarzenia, to uzasadniony wybór operacyjny; jeśli celem jest naprawa tunelu, wyciszenie ukrywa dowód.
mute 20
replay-window 64 15Przełączenie transportu zewnętrznego na TCP zmienia zachowanie dostarczania i odzyskiwania oraz dodaje własne koszty blokowania głowy kolejki. To decyzja projektowa, a nie pierwsza reakcja na jedną etykietę logu. Ponowna instalacja serwera jest gorsza, bo zaciera różnicę między statystyką a granicą, która naprawdę zawiodła.
Przystanek piąty: sprawdź ścieżkę, która liczy się dla użytkownika
Przy połączonym tunelu uruchom własny test aplikacji i odczytaj wybraną trasę, stan przekazywania i ścieżkę powrotną. Tunel, który przenosi pakiety tylko w jednym kierunku, w ogóle nie tworzy komunikatów o cofaniu, a to jest znacznie częstsze niż poważne przestawianie.
Zapisz, co zmierzyłeś na każdym przystanku. To właśnie zapis powstrzymuje następny raport przed ponownym rozpoczęciem od przerażającego wiersza i pracą od niego na zewnątrz.
Implementacja ID pakietu pokazuje kolejność statystyki i decyzji, a podręcznik opisuje zakres sekwencji i czasu okna. Czytanie obu razem jest tym, co zamienia przerażający wiersz logu w znaną wielkość. Żadne z nich nic nie mówi o twojej konkretnej ścieżce, dlatego powyższe pomiary nadal mają znaczenie.