Файлы cookie TCP SYN всегда включены, если они включены?

Файлы cookie TCP SYN всегда включены, если они включены?

Если я установлю для ядра Linux 2.6.32, net.ipv4.tcp_syncookies = 1будет ли это использоваться всегда или только во время атаки SYN-флуда?

Я нашел два источника, которые говорят об обратном.

1:

«Однако есть два предостережения, которые вступают в силу при использовании файлов cookie SYN. ​​Во-первых, сервер ограничен только 8 уникальными значениями MSS, поскольку это все, что можно закодировать в 3 битах. Во-вторых, сервер должен отклонять все параметры TCP (такие как большие окна или временные метки), поскольку сервер отбрасывает запись очереди SYN, в которой в противном случае хранилась бы эта информация. [1]

Хотя эти ограничения неизбежно приводят к неоптимальному опыту, их эффект редко замечается клиентами, поскольку они применяются только при атаке. В такой ситуации потеря опций TCP для сохранения соединения обычно считается разумным компромиссом».

2:

«Недостатком является то, что не все данные TCP могут поместиться в 32-битное поле порядкового номера, поэтому некоторые параметры TCP, необходимые для высокой производительности, могут быть отключены». Это означает, что такие параметры, как выборочные ACK и масштабирование окна TCP, не будут работать, если вы включите SYN-куки, даже если ваш сервер в данный момент не подвергается атаке».

решение1

Второй источник

«это означает, что такие параметры, как выборочные ACK и масштабирование окна TCP, не будут работать, если вы включите SYN-куки, даже если ваш сервер в данный момент не подвергается атаке»

это просто чушь, пока

"TCP: request_sock_TCP: Возможная SYN-флуд-атака на порт 53. Отправка файлов cookie. Проверьте счетчики SNMP"

случается так, что ничего не отключено.

Это легко доказать, сравнив производительность с iperf3 и включив/отключив «net.ipv4.tcp_sack» и «net.ipv4.tcp_window_scaling», оставив при этом включенным «net.ipv4.tcp_syncookies = 1».

Почему вы читаете случайные источники вместо официальных? https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt

tcp_syncookies - BOOLEAN
    Only valid when the kernel was compiled with CONFIG_SYN_COOKIES
    Send out syncookies when the syn backlog queue of a socket
    overflows. This is to prevent against the common 'SYN flood attack'
    Default: 1

    Note, that syncookies is fallback facility.
    It MUST NOT be used to help highly loaded servers to stand
    against legal connection rate. If you see SYN flood warnings
    in your logs, but investigation shows that they occur
    because of overload with legal connections, you should tune
    another parameters until this warning disappear.
    See: tcp_max_syn_backlog, tcp_synack_retries, tcp_abort_on_overflow.

    syncookies seriously violate TCP protocol, do not allow
    to use TCP extensions, can result in serious degradation
    of some services (f.e. SMTP relaying), visible not by you,
    but your clients and relays, contacting you. While you see
    SYN flood warnings in logs not being really flooded, your server
    is seriously misconfigured.

Связанный контент