Ограничение исходящих соединений портом для контроля использования nf_conntrack

Я хотел бы сделать мою систему более устойчивой к определенным сбоям. Когда система прерывает быстрые исходящие соединения TCP, nf_conntrack стол заполняется TIME_WAIT записей. Это приводит к сбою других операций в системе, так как больше нет nf_conntrack Записи доступны.

Я знаю, что можно изменить некоторые параметры, такие как tcp_tw_reuse & tcp_fin_timeout, но я не хочу делать там радикальные изменения (основываясь на подобных предупреждениях)

То, что я надеялся сделать до любых указанных выше изменений и изменений в приложениях, - это защитить мою систему от полного истощения nf_conntrack записи путем ограничения исходящих соединений каждой подсистемой (с использованием номеров портов, IP-адресов и т. д.). Я думал, что смогу добавить правила следующим образом:

-A OUTPUT -p tcp --syn --dport 9702 -m connlimit --connlimit-above 3 -j REJECT --reject-with tcp-reset

Но это, кажется, влияет только на активные соединения (что понятно, поскольку они фактически исчезли). Есть ли способ, чтобы иметь возможность ограничить исходящее соединение для порта / приложения таким образом, что это займет TIME_WAIT сокеты во внимание?

Спасибо

1 ответ

Если вам на самом деле не нужно отслеживание соединений NetFilter, я бы посоветовал вам либо вообще отключить nf_conntrack (выгрузив его), либо добавить правило NOTRACK в начало вашего набора правил iptables.

Другие вопросы по тегам