Ограничение исходящих соединений портом для контроля использования 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.