Методы / L4 / SYN
L4 · NetworkVolumetricTCPSpoofableState Exhaustion
SYN стресс-тест
Обрушивает на цель пакеты TCP SYN, открывающие полусоединения, которые так и не завершаются, подтверждая, как ваш стек и защита выживают при исчерпании таблицы соединений.
Как это работает
Каждый пакет SYN просит сервер выделить полуоткрытое соединение и ждать рукопожатия, которое так и не приходит, поэтому достаточно высокая скорость SYN заполняет очередь и лишает легитимных клиентов слотов. Классический объёмный примитив уровня L4, он нагружает таблицу состояний соединений, а не только полосу. Он проверяет, держат ли SYN-cookie, SYN-проксирование на периметре и настройка очереди сервис отвечающим под флудом полуоткрытых запросов.
Параметры
pps600k ppsСкорость пакетов SYN, направляемых на целевой порт
sourceswide source spreadРаспределяет SYN по множеству адресов-источников по регионам
dst portany listening portНацеливается на один открытый TCP-сервис
duration10-600 sДлительность окна теста
Запустите из CLI
retro-cli
$ retro run syn --target 203.0.113.45 --port 443 --duration 120
FAQ по SYN
Что именно исчерпывает SYN-флуд?+
Он нацелен на таблицу состояний соединений, а не только на полосу. Каждый SYN резервирует полуоткрытый слот, пока не истечёт таймаут так и не пришедшего рукопожатия, поэтому непрерывная скорость заполняет очередь и блокирует новые легитимные соединения.
Полностью ли SYN-cookie останавливают SYN-флуд?+
SYN-cookie снимают проблему выделения состояния, откладывая использование очереди до завершения рукопожатия, но достаточно крупный флуд всё же может насытить канал или CPU. Этот метод показывает вам, где находится этот потолок на вашем собственном стеке.
Чем это отличается от SYN-OPT?+
Обычный SYN использует минимальные пакеты, которые наивные фильтры могут помечать по одной лишь форме. SYN-OPT добавляет реалистичные опции TCP вроде MSS и SACK, так что пакеты выглядят как настоящие клиенты, проверяя митигацию с учётом опций.