ip_conntrack_tcp_timeout_established не применяется ко всей подсети - PullRequest
7 голосов
/ 17 февраля 2012

У меня есть настройка nat с тысячами подключенных к нему устройств.У шлюза есть свой интернет, предоставленный eth0, и устройства на стороне LAN соединяются с eth1 на шлюзе.

У меня есть следующая настройка с iptables:

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

eth1 настроен следующим образом:

    ip: 192.168.0.1
subnet: 255.255.0.0

Клиентам назначаются ips с 192.168.0.2 по 192.168.255.254.

В /etc/sysctl.conf У меня есть следующие настройки для ip_conntrack_tcp_timeout_established

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=1200

Из-за количества клиентских устройств, которые подключаются к этому шлюзу, я не могу использовать 5-дневный тайм-аут по умолчанию.

Кажется, это работает хорошо и протестировал установку с более чем 10000 клиентскими устройствами.

Однако проблема, с которой я сталкиваюсь, заключается в том, что установленный tcp таймаут 1200 применяется только к устройствам в диапазоне ip от 192.168.0.2 до 192.168.0.255.Все устройства с ips в диапазоне от 192.168.1.x до 192.168.255.x по-прежнему используют 5-дневный тайм-аут по умолчанию.

Это оставляет слишком много «УСТАНОВЛЕННЫХ» соединений в / proc / net /Таблица ip_conntrack, и она в конечном итоге заполняется, даже если они должны быть отключены в течение 20 минут, они показывают, что у них истечет время ожидания через 5 дней.

Очевидно, что я где-то пропустил настройку или что-то неправильно настроено.

Есть предложения?

Спасибо

1 Ответ

4 голосов
/ 20 февраля 2012

Как упоминает @StephenHankinson, существующие соединения (ср. conntrack -L) во время изменения переменной sysctl не сбрасываются по времени.Обычно это не должно быть проблемой, так как эти соединения в конечном итоге прекратятся, но NFCT можно заставить забыть все ТТ, использующие conntrack -F.Однако обратите внимание, что это может привести к разрыву существующих соединений, если ваш набор правил не разрешает «НОВЫЕ» соединения, не начинающиеся с TCP SYN. ​​

...