ip_conntrack_tcp_timeout_established не применяется ко всей подсети

У меня есть нат, к которому подключены тысячи устройств. Шлюз имеет Интернет, обеспечиваемый 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. Все устройства с IP-адресами в диапазоне от 192.168.1.x до 192.168.255.x по-прежнему используют 5-дневный тайм-аут по умолчанию.

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

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

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

Спасибо

7
задан Adam Liss 17 February 2012 в 03:21
поделиться