IKE przez TCP 4500: sprawdź oba końce przed regułą portu
Enkapsulacja TCP jest negocjowana przez oba końce, a nie przydzielana przez regułę zapory. Wykonaj kontrolę nasłuchu, przechwycenie i cztery etapy akceptacji po kolei.
Zgłoszenia do pomocy technicznej często przychodzą, gdy zmiana w zaporze jest już zatwierdzona, a tunel nadal odmawia podniesienia się. To oczekiwany wynik, gdy funkcję ma tylko jeden koniec: enkapsulacja TCP zgodna z RFC 9329 musi być zaimplementowana i skonfigurowana po obu stronach, a uzgodnienie odbywa się wewnątrz połączenia, zanim ruszy jakikolwiek chroniony ruch. Otwarcie portu reklamuje nasłuch, który może nie istnieć, a nasłuch bez pasującej konfiguracji po drugiej stronie przyjmuje połączenie i potem milknie. Poniższa kolejność stawia tanie kontrole na początku.
Wiedz, co opcja naprawdę dodaje
Rodzimy IPsec przenosi zaszyfrowane ładunki jako protokół IP 50, bez numeru portu, który trzeba by zezwolić. NAT traversal pakuje te pakiety w UDP do portu 4500 i dlatego tak wiele reguł zapory wspomina ten port. RFC 9329 dodaje reprezentację strumienia: pakiety IKE i IPsec podróżują oba w jednym połączeniu TCP, zwykle do portu 4500.
Strumień nie jest usługą webową. Połączenie TCP do 4500 nic nie mówi o HTTP, TLS ani przyjazności dla proxy, a proxy HTTP na ścieżce zwykle złamie ramkowanie zamiast je przenieść.
Kontrola wstępna, zanim dotkniesz zapory
Standard stawia TCP jako rozwiązanie zapasowe dla sieci, które odrzucają ścieżkę UDP, a nie jako jej zamiennik. Uzyskaj dwa fakty od każdego dostawcy: dokładną nazwę funkcji i wersję, która implementuje RFC 9329, a nie własny wariant. Etykiety takie jak IPsec over TCP były używane do niepowiązanych projektów, więc poproś o odniesienie do dokumentu i klucz konfiguracji, który to włącza. Bez obu odpowiedzi nie zakładaj niczego o zgodności na drucie.
Udowodnij to w laboratorium, w którym oba końce są twoje. Brama, która odpowiada na TCP 4500, ale nigdy nie kończy IKE, jest sygnaturą nasłuchu bez pasującej enkapsulacji po drugiej stronie, a odkrycie tego tam jest znacznie tańsze niż w oknie zmian.
Po stronie odpowiadającej: czy coś nasłuchuje
Zacznij od gniazda. ss -ltnp | grep 4500 pokazuje, czy istnieje nasłuch TCP i który proces go posiada. Brak wiersza kończy dochodzenie na konfiguracji bramy, a nie na sieci.
Jeśli gniazdo jest, obserwuj uścisk dłoni zamiast zgadywać od strony klienta: tcpdump -ni any 'tcp port 4500'. Zakończony trójstopniowy uścisk dłoni, po którym następuje cisza, oznacza, że strumień został przyjęty, a wymiana IKE w nim nie powiodła się, podczas gdy SYN bez odpowiedzi wskazuje na filtrowanie lub na zły adres.
Porównaj ze ścieżką UDP w tym samym oknie przechwytywania, żeby się nie pomieszały: tcpdump -ni any 'udp port 4500 or proto 50'. Ruch na protokole 50 lub porcie UDP 4500, gdy uważasz, że używany jest TCP, oznacza, że strony nigdy nie uzgodniły wariantu zapasowego. Przechwyć także na bramie, jeśli możesz, bo przechwycenie po stronie klienta nie pokaże, co wysłał daleki koniec.
Akceptuj w czterech osobnych etapach
Traktuj podnoszenie jako cztery wyniki. Każdy może zawieść z innego powodu, a pojedyncze zaliczenie lub porażka ukrywa, który to był, więc zatrzymaj się na pierwszym etapie, który zawodzi, i zacznij od nowa od góry.
| Stage | What you check | What it proves |
|---|---|---|
| 1 | TCP connection established to 4500 | A listener exists and the path permits it |
| 2 | IKE_SA authenticated in the gateway log | Both peers agreed on the encapsulation |
| 3 | CHILD_SA installed, visible with ip xfrm state | Keys exist for the protected traffic |
| 4 | A new application exchange succeeds | The data path works, not just the control path |
Czwarty etap jest tym, który się pomija. Istniejąca sesja może dalej działać na buforowanym stanie, więc otwórz nowe połączenie do hosta za bramą, zanim zamkniesz zmianę. Jeśli drugi etap zawodzi, a pierwszy przechodzi, niezgodność leży w propozycji lub w ustawieniu enkapsulacji, a nie w zaporze.
Wycofanie i koszt pozostawienia tego włączonego
Zaplanuj cofnięcie przed zmianą: wyłącz opcję enkapsulacji po obu stronach i potwierdź, że tunel wraca przez UDP. Zatrzymaj regułę TCP na jeden cykl przeglądu, na wypadek gdyby wariant zapasowy znów był potrzebny, a potem ją usuń. Nieużywany nasłuch na 4500 to powierzchnia bez żadnej wartości operacyjnej.
Obserwuj sygnaturę wydajności, gdy zacznie przenosić prawdziwą pracę. TCP w TCP dodaje warstwy potwierdzeń, które zacinają się przy pojedynczej utracie, a strumienie dzielące jedno połączenie mogą się wzajemnie blokować, więc mierz aplikację, która będzie używać tunelu, zamiast pingować.
Lista akceptacji
Potwierdź nazwę i wersję funkcji po obu stronach, nasłuch po stronie odpowiadającej, przechwycenie pokazujące zakończony uścisk dłoni oraz cztery etapy zapisane ze znacznikami czasu. Dodaj powód wariantu zapasowego do rekordu zmiany, żeby następny inżynier wiedział, dlaczego jest tam TCP. Przećwicz wycofanie, zanim będzie potrzebne.
Jeśli którykolwiek etap zawiedzie, napraw tylko ten etap. Zmiana zestawu szyfrów lub ustawień tożsamości w pogoni za problemem transportowym zwykle dokłada drugą, niepowiązaną awarię na pierwszą.