Twoje SA IKEv2 działa, ale nie ma SA podrzędnej: przeczytaj wymianę
Uwierzytelnianie może się zakończyć, gdy negocjacja SA podrzędnej zawodzi. Przeczytaj wymianę tworzenia SA podrzędnej, potem propozycję i selektory, zanim sprawdzisz trasy lub liczniki.
IKE mówi, że tunel działa, SA podrzędnej brakuje, a oba stwierdzenia mogą być prawdziwe jednocześnie. Ustanowiona relacja sterowania nie jest asocjacją danych, a oba obiekty mają odrębne czasy życia, negocjacje i tryby awarii. Zgłoszenie pierwszego jako łączności to droga, na której zgłoszenie w końcu twierdzi, że tunel działa, podczas gdy nic nie działa. Czytaj listę asocjacji, a nie etykietę podsumowania połączenia, bo ta lista jest jedynym miejscem, w którym brakujący obiekt jest widoczny. Poniżej przedstawiono kolejność, w której lista nabiera sensu.
Dwie asocjacje, dwa zadania
SA IKE niesie kanał sterowania: tożsamości, klucze i propozycje dla samej wymiany sterowania. SA podrzędna niesie ochronę ESP, z własnymi algorytmami i własnymi selektorami ruchu. Uwierzytelnianie i tworzenie SA podrzędnej zwykle idą razem, bo pierwsza SA podrzędna jest negocjowana wewnątrz IKE_AUTH, i właśnie to połączenie zaskakuje ludzi tym podziałem.
Wyjaśnia to także dwa rodzaje awarii, na które trafisz. SA podrzędna odrzucona podczas wymiany początkowej zwykle pociąga za sobą SA IKE, więc nie widać w ogóle ustanowionego kanału sterowania. Samotna SA IKE częściej oznacza, że pierwsza SA podrzędna się powiodła, a późniejsza próba utworzenia SA podrzędnej nie, na przykład podczas odświeżania kluczy. Znaczniki czasu rozdzielają te przypadki szybciej niż jakikolwiek przegląd konfiguracji.
Która warstwa odmówiła
Gdy SA podrzędna zostaje odrzucona, powiadomienie nazywa warstwę. Odrzucenie propozycji oznacza, że strony nie mogły uzgodnić algorytmów, często dlatego, że jedna wymaga innej grupy doskonałej tajności w przód albo szyfru, którego druga nie zaakceptuje. Odrzucenie selektora oznacza, że zbiór ruchu został odrzucony wprost, a to argument zasięgu, nie kryptograficzny.
Czasami brak SA podrzędnej jest zamierzony. SA IKE bez SA podrzędnej to zdefiniowane rozszerzenie używane tam, gdzie asocjacja danych ma być tworzona na żądanie, więc brak jest poprawny, a SA podrzędna pojawia się, gdy przyjdzie pasujący ruch. Notatki strongSwan o IKEv2 obejmują zarówno styl na żądanie, jak i ustawienia propozycji, które rozstrzygają pierwszy przypadek.
Przed diagnozą usterki sprawdź, czy nie ma konfiguracji na żądanie lub pułapki. Jeśli SA podrzędne są tworzone leniwie, brak SA podrzędnej w spoczynku jest stanem oczekiwanym, a prawdziwym testem jest to, czy ruch podniesie jedną. Ten test oddziela też leniwy projekt od cichej awarii, bo nieudane utworzenie zostawia wyzwalacz bez odpowiedzi, a nie tylko w spoczynku.
Potem pytaj o ścieżkę danych
Gdy SA podrzędna istnieje, na kolejne pytanie odpowiadają liczniki. ip -s xfrm state raportuje liczby pakietów i bajtów na asocjację, a SA podrzędna, która nic nie niesie, gdy generujesz ruch, wskazuje na dopasowanie lub trasowanie, a nie na brakującą asocjację. swanctl --list-sas wypisuje selektory SA podrzędnej obok tych liczników, i to potwierdza, że pakiet znajduje się w przyjętym zbiorze.
W raporcie trzymaj osobno udane uwierzytelnianie i nieudaną wymianę SA podrzędnej. Raport mówiący, że uwierzytelnianie nie powiodło się, wysyła następnego inżyniera do magazynu certyfikatów, a dokładne zdanie jest znacznie krótsze: SA IKE wstała, a SA podrzędna dla tego przepływu nigdy nie została przyjęta.
Skojarz oba końce
Dla serwera, który samodzielnie prowadzisz, weź logi klienta i bramy dla tej samej wymiany, zamiast porównywać dwie próby ponownego połączenia w odstępie godziny. Powiadomienia powinny się zgadzać po obu stronach, a tam, gdzie się nie zgadzają, znalazłeś stronę źle skonfigurowaną.
Popraw negocjację SA podrzędnej, a potem przetestuj ponownie z ruchem wewnątrz zamierzonego selektora. To jedyny test, który dowodzi, że brakujący obiekt jest teraz obecny, bo lista asocjacji odświeżona w spoczynku może wyglądać identycznie przed poprawką i po niej.