Obserwuj oddział wracający po awarii łącza, a brama widzi coś, co nigdy nie pojawia się w zwykły dzień: dziesiątki laptopów przybywają naraz z jednego publicznego adresu. Każdy jest legalnym urządzeniem i każdy rozpoczyna wymianę IKE, która jeszcze się nie zakończyła. Czy ten wybuch się powiedzie, zależy od limitów, które nie mają nic wspólnego z tym, ilu pracowników serwer może udźwignąć. Wybuch jest krótki i jest dokładnie tym obciążeniem, dla którego zbudowano ścieżkę przyjęć.

Śledź jeden laptop wracający do sieci

Klient wysyła początkowe żądanie i czeka, a dopóki wymiana się nie zakończy, brama trzyma stan przyjęć dla tej próby. Inne urządzenia za tym samym adresem przychodzą, gdy pierwsze jeszcze czeka, i ustawiają się w kolejce za limitem, który liczy adresy, a nie użytkowników. Z zewnątrz objawem jest garść użytkowników, którzy się łączą, i większa grupa, której kończy się czas.

Nic w tej sekwencji nie jest usterką. Ścieżka przyjęć robi to, do czego została skonfigurowana.

Licz półotwartą pracę jako osobny zasób

strongSwan rozdziela dwie populacje: asocjacje w pełni ustanowione i próby, które wciąż się łączą lub czekają na przetworzenie. Próg blokowania dotyczy półotwartych asocjacji przypisanych jednemu adresowi peera, a progi cookie obowiązują globalnie i na adres. Te liczniki chronią demona przed zużyciem przez nieuwierzytelnioną pracę, co jest dokładnie kształtem burzy ponownych połączeń. Nic z tego stanu nie pojawia się w liście ustanowionych tuneli.

Czytanie ich jako pułapu sesji pracowników to błąd, który prowadzi do podniesienia wszystkiego naraz. Serwer obsługujący czterysta ustanowionych tuneli nie jest automatycznie w stanie wchłonąć czterystu równoczesnych pierwszych pakietów, ponieważ oba koszty lądują w różnych miejscach.

Opóźnienie uwierzytelniania decyduje, jak długo każda próba pozostaje w liczbie półotwartych. Wolno odpowiadający backend zamienia krótki wybuch w długą kolejkę, nawet gdy tempo napływu jest skromne.

swanctl --stats
swanctl --list-sas | grep -c ESTABLISHED

Przeczytaj ustawienia przyjęć, zanim je zmienisz

Znajdź wartości, które działający demon faktycznie załadował, zanim wyrobisz sobie o nich opinię. Konfiguracja jest często podzielona między plik główny a katalog fragmentów dla każdej wtyczki, więc wartość ustawiona w jednym miejscu może zostać nadpisana w innym. Poniższe wyszukiwanie pokazuje każdy plik, który wspomina te ustawienia.

Następnie zdecyduj, która liczba jest zbyt mała. Jeśli jeden adres legalnie reprezentuje całe biuro, progiem blokowania na adres jest wartość, która musi pomieścić tę koncentrację. Globalny próg cookie chroni demona przed szerszą powodzią i nie należy go łagodzić dlatego, że jedna lokalizacja łączy się ponownie. Porównaj tę wartość na adres z największą lokalizacją, którą naprawdę masz.

Zostaw mechanizm cookie włączony. Cookie zmuszają klienta do udowodnienia, że może odbierać na podanym adresie, zanim demon zużyje rzeczywistą pracę na wymianę, a ich wyłączenie nie jest neutralnym zwiększeniem wydajności. Podnoś próg tylko przy zmierzonym tempie napływu i zadeklarowanym budżecie uwierzytelniania za nim.

grep -rn -E 'block_threshold|cookie_threshold' /etc/strongswan.conf /etc/strongswan.d/
swanctl --stats | grep -i half

Planuj powrót, nie tylko stan ustalony

Cel dostępności, który liczy tylko ustanowione sesje, opisuje spokojne popołudnie, a nie odtworzenie. Zapytaj raczej, jak zamierzona populacja wraca po wspólnym zdarzeniu sieciowym i czy ścieżka przyjęć potrafi wchłonąć taki kształt.

Rozłożenie ponownych połączeń na zarządzaną flotę jest często tańsze niż powiększanie limitów, ponieważ usuwa sztuczny wybuch, zamiast płacić za niego na stałe. Monitoruj stan półotwarty i zdarzenia przyjęć obok udanych ustanowień, a rosnącą liczbę półotwartych przy płaskich sukcesach traktuj jako wczesne ostrzeżenie, a nie ciekawostkę.

Referencją dostawcy dla tych ustawień jest dokumentacja strongswan.conf, która nazywa liczniki i wydanie, które wprowadziło próg cookie na adres. Czytaj sekcję dla swojej zainstalowanej wersji, a nie najnowszą stronę, ponieważ wartości domyślne zmieniają się między wydaniami.

Powiązane artykuły