Odróżnianie fragmentacji IKEv2 od problemu z łańcuchem certyfikatów
Gdy uzgadnianie zatrzymuje się zaraz po pierwszej wymianie, ustal, czy wiadomość nigdy nie dotarła, czy została odrzucona, zanim dotkniesz certyfikatów.
Tunel działał w sieci biurowej i zatrzymuje się w domu, a dziennik pokazuje, że pierwsza wymiana kończy się, zanim wydarzy się cokolwiek innego. Ten wzorzec wskazuje na wymianę uwierzytelniania, a nie na dane logowania: łańcuch certyfikatów czyni tę wiadomość znacznie większą od poprzedniej, a ścieżka, która nie lubi dużych datagramów, po cichu ją odrzuci. Zaangażowane są dwa różne mechanizmy fragmentacji, a wiedza, który z nich widzisz, decyduje o poprawce.
Dwa mechanizmy fragmentacji, jeden objaw
IKEv2 ma własne rozszerzenie fragmentacji, zdefiniowane w RFC 7383, które dzieli chronione wiadomości IKE na mniejsze wiadomości IKE. Strony negocjują tę możliwość, a wiadomość jest składana ponownie przez implementację IKE, a nie przez warstwę IP.
Zwykła fragmentacja IP to inny mechanizm z innym trybem awarii. Router między stronami fragmentuje duży datagram albo go odrzuca i zwraca komunikat ICMP, który może nigdy nie dotrzeć do nadawcy. Niektóre sieci po cichu wyrzucają fragmenty, a niektóre urządzenia pośrednie obsługują pierwszy fragment, ale nie resztę. Z punktu widzenia aplikacji wszystkie trzy przypadki wyglądają identycznie.
Przechodzenie przez NAT dodaje trzecią zmienną, ponieważ wtedy ESP jest pakowane w UDP, a zewnętrzny pakiet staje się większy, wyglądając przy tym jak zwykły ruch UDP na porcie 4500. Ścieżka, która dobrze przepuszcza UDP, wciąż może zawieść na datagramie, który już się nie mieści.
Przeczytaj wymianę, która zawiodła
Szukaj przejścia, a nie błędu. Dziennik, który pokazuje pierwszą wymianę wysłaną i odpowiedzianą, a potem nic, mówi ci, że następna wiadomość nigdy się nie zakończyła. Tymczasowo podnieś poziom dziennika i porównaj raportowane rozmiary po obu stronach.
To, co chcesz ustalić, to czy odpowiadający w ogóle widział żądanie. Jeśli inicjator coś wysłał, a odpowiadający nie ma żadnego zapisu na ten temat, problemem jest dostarczenie. Jeśli odpowiadający przeanalizował żądanie i je odrzucił, problemem jest sam certyfikat, a fragmentacja odwraca uwagę. To rozróżnienie jest warte więcej niż strona komunikatów o przekroczeniu czasu.
Zmień ścieżkę, nie certyfikat
Przetestuj tego samego klienta, ten sam certyfikat i tę samą konfigurację z innej sieci. Mobilny hotspot jest zwykle najtańszą drugą ścieżką i naprawdę różni się od łącza biurowego, a nie tylko nominalnie.
Jeśli uzgadnianie kończy się na drugiej ścieżce, łańcuch certyfikatów jest w porządku, a zmienną jest pierwsza ścieżka. Jeśli zawodzi identycznie na obu, przestań testować sieci i spójrz na same wiadomości. To jedno porównanie usuwa około połowy możliwych wyjaśnień.
Zmierz wymianę, zanim cokolwiek edytujesz
Uzyskaj rozmiar łańcucha i rozmiar ścieżki. Obie liczby ograniczają to, co może wysłać uzgadnianie, i obie są tanie w pomiarze:
openssl crl2pkcs7 -nocrl -certfile chain.pem | openssl pkcs7 -print_certs -noout | grep -c subject ls -l chain.pem ping -M do -s 1400 198.51.100.7 ip -s link show eth0 | sed -n '1,6p'
Pierwsze dwie dają liczbę certyfikatów i rozmiar pliku, co jest rozsądnym wskaźnikiem, jak duża będzie wiadomość uwierzytelniania. Sonda ping informuje, czy datagram tej wielkości przetrwa ścieżkę, a liczniki interfejsu pokazują, czy fragmenty zostały odrzucone po twojej stronie. W systemie Windows równoważną sondą jest ping z flagą do-not-fragment i jawnym rozmiarem ładunku.
Powtarzaj sondę w dół, aż się powiedzie. Największy rozmiar, który przechodzi, to budżet roboczy dla tej ścieżki i jest bardziej użyteczny niż jakakolwiek opublikowana wartość domyślna.
Napraw warstwę, która jest naprawdę zepsuta
Jeśli ścieżka odrzuca duże datagramy, włącz fragmentację IKE po obu stronach i potwierdź, że rozszerzenie zostało wynegocjowane, a nie tylko zaproponowane. Jeśli ścieżka źle obsługuje fragmenty na poziomie IP, poprawka należy tam albo do MTU zewnętrznego interfejsu, a nie do magazynu certyfikatów.
Jeśli łańcuch jest niepotrzebnie długi, skróć go do certyfikatów pośrednich, których strona naprawdę potrzebuje. Usunięcie korzenia, któremu klient już ufa, to rozsądna konserwacja; usunięcie pośredniego już nie, a wyłączenie weryfikacji, aby zmniejszyć wiadomość, zamienia problem dostarczania na problem bezpieczeństwa.
Zapisz, który mechanizm zmieniłeś i jak uzgadnianie wyglądało potem. Kolejne wystąpienie jest zwykle w innej sieci z tym samym objawem, a notatka jest tym, co zamienia dwie godziny w dziesięć minut.