tcp_max_syn_backlog ограничивает очередь незавершённых TCP-handshake, somaxconn — верхнюю границу listen backlog. Увеличение очередей сглаживает всплески, но само по себе не останавливает SYN-flood.
Как настроить параметры ядра Linux tcp_max_syn_backlog и somaxconn для защиты бэкенда от SYN-flood-атак?
tcp_max_syn_backlog ограничивает очередь незавершённых TCP-handshake, somaxconn — верхнюю границу listen backlog. Увеличение очередей сглаживает всплески, но само по себе не останавливает SYN-flood.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
tcp_max_syn_backlog ограничивает очередь незавершённых TCP-handshake, somaxconn — верхнюю границу listen backlog. Увеличение очередей сглаживает всплески, но само по себе не останавливает SYN-flood.
Сначала измерьте SYN_RECV, переполнения очередей, доступную память и скорость обработки соединений. Значение backlog приложения согласуйте с somaxconn, а параметры применяйте под конкретную нагрузку, не копируя произвольные большие числа.
Дополнительная защита включает SYN cookies, фильтрацию и ограничение аномального трафика на сетевом периметре. При насыщении внешнего канала настройка ядра сервера уже не спасёт. Проверяйте влияние изменений на легитимных клиентов и не отключайте защитные механизмы ради красивого теста пропускной способности.
Источник: kernel.org.