Jak traversal NAT pakuje ESP w UDP
ESP nie ma portów, dlatego traversal NAT pakuje go w UDP na 4500. Sprawdź wymianę sterującą i enkapsulowaną ścieżkę danych jako dwa osobne etapy.
Dwa klienty za tym samym routerem rozmawiają z jedną bramą IPsec, a jeden ciągle się rozłącza, podczas gdy drugi pozostaje połączony. Rodzimy ESP to protokół IP 50 bez portów, więc translator nie ma do czego przypiąć mapowania, gdy kilka klientów dzieli jeden adres. Traversal NAT zamyka tę lukę, pakując ESP w UDP na 4500, i ten nagłówek wyjaśnia większość kolejnych objawów. Wskazuje też urządzenie, które trzeba zmienić.
Dlaczego płaszczyzna danych przechodzi na port 4500
Podczas konfiguracji IKEv2 porównuje adresy i porty, które każda strona uważa za używane, wymieniając skróty w swoich powiadomieniach o wykrywaniu NAT. Gdy skróty się nie zgadzają, gdzieś na ścieżce siedzi translator, a obie strony przełączają chroniony ruch na enkapsulację UDP. Dlatego sesja, która napotkała translator, wygląda inaczej niż ta, która go nie napotkała.
Opakowanie to koperta, a nie zmiana protokołu: ESP zachowuje swój nagłówek, kontrolę integralności i szyfrowanie, a UDP dostarcza tylko porty potrzebne translatorowi. Port 500 przenosi wymianę IKE; 4500 przenosi enkapsulowane dane po wykryciu, a często także późniejsze komunikaty IKE. Żaden z portów nie czyni przepływu połączeniem TCP, założenie, które zwodzi większość osób czytających zrzut.
Sprawdź oba etapy po kolei
Najpierw udowodnij wymianę sterującą, potem ścieżkę danych, i trzymaj oba osobno w notatkach. Zrzut, który pokazuje ruch na 500 i nigdy na 4500, zwykle oznacza, że ścieżka danych jest filtrowana, więc poprawka należy do reguły firewalla, a nie do klienta.
Obserwuj oba porty za pomocą tcpdump -ni any 'udp port 500 or udp port 4500' i czytaj tablicę translacji na routerze, dopóki sesja jest aktywna. Ta tablica pokazuje port źródłowy, który brama faktycznie zobaczy, a zrzut na laptopie celowo się nie zgadza: laptop wierzy w 500, podczas gdy brama widzi 4500 z przetłumaczonym portem źródłowym, i oba są poprawne. Ten sam przepływ przed tłumaczeniem i po nim:
client 192.0.2.10:500 -> router 203.0.113.7:62000 -> gateway 198.51.100.9:4500
Objawy, które opakowanie wyjaśnia, i dwa, których nie
Router, który zezwala na wymianę sterującą i blokuje enkapsulowane dane daje raport, że tunel stoi, ale nic nie przechodzi. Tablice mapowania wygasają, więc nieaktywna sesja potrzebuje ruchu utrzymującego, który strony wysyłają celowo, i te pakiety nie są kontrolami stanu. Gdy kilka klientów za jedną bramą zawodzi naraz, zbadaj translację tej bramy i wszelką starą funkcję przepuszczania. Opakowanie nie wyjaśnia aplikacji, która zawodzi u każdego klienta po postawieniu tunelu, ani ostrzeżenia o certyfikacie na stronie blokady; oba leżą ponad tą warstwą.
Czytaj tablicę mapowania dla dwóch klientów naraz: jeśli oba pokazują ten sam przetłumaczony port, urządzenie nie rozdziela ich tak, jak wymaga brama. Tryb przepuszczania, który oddaje rodzimy ESP tylko jednemu hostowi, nie jest równoważny obsłudze kilku przetłumaczonych klientów, choć producenci opisują oba jako przyjazne IPsec. Podwójny NAT dodaje warstwę mapowania i jeszcze jeden punkt wygaśnięcia, ale nie zrywa automatycznie połączeń wychodzących.
Ruch utrzymujący zasługuje na własną linię w instrukcji operacyjnej, bo to on trzyma ścieżkę odpowiedzi otwartą w okresach bezczynności. Włącz go tam, gdzie producent to dokumentuje, i sprawdź go najpierw, gdy sesja umiera po kilku minutach ciszy, a nie przy pierwszym użyciu.
Zmień właściciela mapowania, a potem przetestuj ponownie
Postępuj zgodnie z obsługiwanymi ustawieniami traversal NAT po obu stronach, zamiast zgadywać port. Edycja lokalnego portu źródłowego u jednego klienta nie może zmienić usługi nasłuchującej po drugiej stronie i zwykle psuje już zbudowane mapowanie. Jeśli klient siedzi za urządzeniem, którego nie kontrolujesz, zmiana należy do jego właściciela.
Po każdej zmianie powtórz oba sprawdzenia etapów i potwierdź, że pakiet danych przechodzi, a nie tylko że ekran stanu zrobił się zielony. Trzymaj krotki, wynik tablicy mapowania i zmianę reguły w jednej notatce, żeby następna osoba nie zaczynała od nowa od wymiany sterującej. Notatki strongSwan o traversal NAT obejmują ustawienia enkapsulacji i utrzymania za oboma etapami.