Odpowiedzi DPD dowodzą, że partner IKE żyje, a nie że Twoje dane płyną
Odpowiedzi żywotności, powiadomienie o dopełnianiu i zwężone selektory opisują trzy różne rzeczy. Czytaj je osobno, zanim obwinisz jedno z nich o zatrzymanie.
Dzienniki IPsec mogą pokazywać odpowiedzi żywotności, gdy aplikacja przed nimi stoi, i oba fakty mogą być prawdziwe jednocześnie. Odpowiedź DPD ustala, że przetwarzanie IKE partnera odpowiedziało w tej chwili; nie mówi nic o tym, czy SA potomna przenosi pakiet, na którym Ci zależy. Traktowanie każdego ostrzeżenia w pobliżu awarii jako jej przyczyny to sposób, w jaki problem selektora jest diagnozowany jako błąd protokołu. Trzy obserwacje są mylone najczęściej i odpowiadają na trzy różne pytania. Czytaj je według powiązania i celu, zanim przeczytasz je według znacznika czasu.
Co dowodzi każda obserwacja
Tabela oddziela to, co ustala każda obserwacja, od tego, czemu tylko towarzyszy.
| Observation | What it establishes | What it leaves open |
|---|---|---|
| DPD replies arrive | The peer's IKE process answered | The child SA, forwarding path and application reply |
| TFC padding notification | The peer will not accept padding for that child SA | Whether ordinary ESP protection still works, which it does |
| Selectors reported as narrowed | The accepted traffic set is a subset of the offer | Whether the subset includes the flow the user needs |
Żadna z trzech nie jest sama w sobie błędem. Każda staje się interesująca dopiero obok przepływu, który debugujesz, a wiersz, którego nie można powiązać z konkretnym przepływem, jest kontekstem, a nie dowodem.
Żywotność to nie zdrowie danych
DPD działa jako wymiana INFORMATIONAL, rozmowa warstwy sterowania między demonami IKE. Odpowiedź dowodzi, że proces IKE partnera jest osiągalny i gotowy odpowiedzieć, a przekroczenie limitu czasu dowodzi, że nie jest. Żaden wynik nie sprawdza SA potomnej, selektorów, ścieżki przekazywania ani odpowiedzi aplikacji, więc zdrowy DPD obok zatrzymanego transferu to spójny obraz, a nie sprzeczność.
Dlatego wiersze żywotności są najmniej użyteczną częścią zgłoszenia warstwy danych, choćby wyglądały krzepiąco na górze dziennika.
Powiadomienie o dopełnianiu to stwierdzenie o dopełnianiu
Dopełnianie TFC to najczęściej nadinterpretowany wiersz w tych dziennikach. Mówi ono, że dopełnianie poufności przepływu ruchu nie zostanie zaakceptowane dla tej SA potomnej, co jest stwierdzeniem o opcjonalnej funkcji dopełniania, a nie odrzuceniem ochrony ESP. Znajdowanie go w pobliżu awarii to zwykle zbieg okoliczności związany z gadatliwością, a włączanie lub wyłączanie dopełniania niczego nie zmienia w pokryciu selektorów.
Specyfikacja IKEv2 definiuje zarówno powiadomienie, jak i negocjację selektorów, a etykieta ostrzeżenia implementacji w żadnym z tych przypadków nie zastępuje znaczenia protokołu.
Zwężanie jest cichsze i częściej ma znaczenie
Odpowiadający może zaakceptować podzbiór oferowanych selektorów, a zaakceptowany zbiór można wypisać w kilku wpisach, jednym kwalifikowanym przez port i drugim obejmującym wszystkie porty. Czytanie tylko pierwszego wiersza kwalifikowanego przez port zaniża to, co zaakceptowano; czytanie tylko szerokiego wiersza zawyża to. Porównaj wypisaną propozycję z zainstalowaną polityką, ponieważ propozycja to to, co powiedziały strony, a polityka to to, do czego dopasuje się jądro. Gdy się nie zgadzają, tunel istnieje, a ruch nie, co jest klasycznym sporadycznym zarzutem. Odwróć perspektywę lokalną i zdalną, porównując strony, bo lokalne każdej strony jest zdalnym drugiej.
Wpisy specyficzne dla hosta z ograniczeniem portu są warte dwukrotnego przeczytania, bo to one wykluczają ICMP lub drugi port, pozostawiając działający ping do bramy.
Zbuduj jeden zapis dla przepływu, który zawodzi
Zapisz źródło, miejsce docelowe, rodzinę adresów, protokół i port tak, jak są widoczne w decyzji o ochronie, wraz z wszelkim zamierzonym tłumaczeniem. To są wartości, które muszą pasować do selektora, i to są także wartości, które ludzie przepisują z pamięci, gdy zgłoszenie trafia do trzeciej pary rąk.
Następnie zidentyfikuj SA potomną i jej liczniki kierunkowe: swanctl --list-sas daje podsumowanie asocjacji na hoście strongSwan, a ip -s xfrm state daje liczniki. Czytaj je po świeżym dozwolonym żądaniu, a nie gdy system jest bezczynny. Brak wzrostu ruchu wychodzącego wskazuje na wybór lub ścieżkę lokalną; ruch wychodzący bez odpowiadającego mu przychodzącego wskazuje na partnera, jego przekazywanie lub jego odpowiedzi.
Zakończona wymiana aplikacji przewyższa każdy z liczników, dlatego test powinien kończyć się na aplikacji, a nie na wskaźniku tunelu.
Wybierz poprawkę potem
Dopiero gdy ten zapis istnieje, jest poprawka do wyboru: zaakceptowane selektory, trasa, filtrowanie, implementacja partnera lub granica, którą teraz wykazałeś. Resetowanie partnera zmienia kilka stanów naraz i często przywraca ruch bez wyjaśnienia, który był błędny, więc awaria wraca. Trzymaj zrzuty stanu jądra poza zgłoszeniami, bo mogą zawierać klucze, a wąskie podsumowanie wystarczy każdemu, kto musi pomóc.
Gdy zapis przeczy Twojej pierwszej teorii, wierz zapisowi i przepisz teorię; ten nawyk jest wart więcej niż jakikolwiek pojedynczy wiersz dziennika omawiany tutaj.