Назад | Перейти на главную страницу

Деактивировать механизм лавинной рассылки SYN

Я использую сервер, на котором запущена служба на порту 59380. К этой службе подключается более 1000 машин. Как только мне нужно перезапустить службу, все эти машины подключаются одновременно.

Это вызвало некоторые проблемы, поскольку я видел эту запись в журнале kern.log

TCP: Possible SYN flooding on port 59380. *Sending cookies*.  Check SNMP counters.

Итак, я изменил sysctl net.ipv4.tcp_syncookies до 0, потому что конечные точки не могут правильно обрабатывать файлы cookie tcp syn. Наконец, я перезапустил свою сеть, чтобы изменения в производстве

В следующий раз, когда мне пришлось перезапустить службу, было зарегистрировано следующее сообщение

TCP: Possible SYN flooding on port 59380. *Dropping request*.  Check SNMP counters.

Как я могу предотвратить такие действия системы? Все необходимые контрмеры выполняются iptables ...

Не отключить файлы cookie SYN, что невероятно непродуктивно, как вы можете видеть, вместо того, чтобы хост возвращался к сокетам с cookie, он просто его отбрасывает.

Правильнее всего отрегулировать net.ipv4.tcp_max_syn_backlog до достаточно высокого значения, чтобы это предупреждение больше не срабатывало.

Вы, вероятно, также захотите настроить стек TCP в целом, чтобы иметь больше памяти - беглый поиск в Google для "Linux TCP Tuning" должен предоставить то, что вам нужно.

Также прочтите следующие страницы. Может стоит еще раз проверить.

http://lwn.net/Articles/277146/

https://lkml.org/lkml/2008/2/5/167