Шторм переподключений в филиале: лимиты приёма strongSwan
Целый офис за одним NAT может превысить лимиты полуоткрытых IKE в strongSwan. Считайте состояние приёма отдельно от установленных сессий, прежде чем поднимать значение.
Посмотрите, как филиал возвращается после сбоя канала, и шлюз видит то, что никогда не появляется в обычный день: десятки ноутбуков приходят одновременно с одного публичного адреса. Каждый из них — законное устройство, и каждый начинает обмен IKE, который ещё не завершён. Удастся ли этот всплеск, зависит от лимитов, не имеющих ничего общего с тем, сколько сотрудников сервер может выдержать. Всплеск короткий, и это ровно та нагрузка, для которой строился путь приёма.
Проследите один ноутбук, возвращающийся в сеть
Клиент отправляет начальный запрос и ждёт, и пока обмен не завершён, шлюз держит состояние приёма для этой попытки. Другие устройства за тем же адресом приходят, пока первое ещё ждёт, и встают в очередь за лимитом, который считает адреса, а не пользователей. Снаружи симптом выглядит так: несколько пользователей подключаются, а большая группа получает тайм-аут.
Ничто в этой последовательности не является сбоем. Путь приёма делает то, для чего он настроен.
Считайте полуоткрытую работу отдельным ресурсом
strongSwan разделяет две совокупности: полностью установленные ассоциации и попытки, которые ещё подключаются или ждут обработки. Порог блокировки применяется к полуоткрытым ассоциациям, отнесённым к одному адресу партнёра, а пороги cookie действуют глобально и на каждый адрес. Эти счётчики защищают демон от расхода на неаутентифицированную работу, и это в точности форма шторма переподключений. Ничто из этого состояния не отображается в списке установленных туннелей.
Читать их как потолок пользовательских сессий — ошибка, ведущая к поднятию всего сразу. Сервер, несущий четыреста установленных туннелей, не обязан автоматически поглощать четыреста одновременных первых пакетов, потому что две затраты приходятся в разных местах.
Задержка аутентификации определяет, как долго каждая попытка остаётся в числе полуоткрытых. Медленно отвечающий бэкенд превращает короткий всплеск в длинную очередь, даже когда интенсивность прихода скромная.
swanctl --stats
swanctl --list-sas | grep -c ESTABLISHED
Прочитайте настройки приёма, прежде чем их менять
Найдите значения, которые работающий демон действительно загрузил, прежде чем составлять о них мнение. Конфигурация часто разделена между главным файлом и каталогом фрагментов для каждого плагина, поэтому значение, заданное в одном месте, может быть перекрыто в другом. Поиск ниже показывает каждый файл, где упоминаются эти настройки.
Затем решите, какое число слишком мало. Если один адрес законно представляет целый офис, порог блокировки на адрес — это значение, которое должно вместить такую концентрацию. Глобальный порог cookie защищает демон от более широкого потока, и его не следует ослаблять из-за того, что один объект переподключается. Сравните это значение на адрес с крупнейшим объектом, который у вас действительно есть.
Оставьте механизм cookie включённым. Cookie заставляют клиента доказать, что он может принимать на заявленном адресе, прежде чем демон потратит реальную работу на обмен, и их отключение не является нейтральным расширением ёмкости. Поднимайте порог только с измеренной интенсивностью прихода и заявленным бюджетом аутентификации за ним.
grep -rn -E 'block_threshold|cookie_threshold' /etc/strongswan.conf /etc/strongswan.d/
swanctl --stats | grep -i half
Планируйте возвращение, а не только устойчивое состояние
Цель доступности, считающая только установленные сессии, описывает тихий послеобеденный час, а не восстановление. Спросите вместо этого, как целевая совокупность возвращается после общего сетевого события и может ли путь приёма поглотить такую форму.
Распределение переподключения по управляемому парку часто дешевле увеличения лимитов, потому что устраняет искусственный всплеск, а не платит за него постоянно. Следите за полуоткрытым состоянием и событиями приёма рядом с успешными установлениями и считайте растущее число полуоткрытых при ровных успехах ранним предупреждением, а не курьёзом.
Справочник производителя по этим настройкам — документация strongswan.conf, где названы счётчики и выпуск, в котором появился порог cookie на адрес. Читайте раздел для установленной версии, а не самую новую страницу, потому что значения по умолчанию меняются между выпусками.