Имам 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
На клиентите се присвояват ip 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-дневното изчакване по подразбиране.
Това изглежда работи добре и тествахме настройката с над 10 000 клиентски устройства.
Проблемът, който виждам обаче, е, че установеното 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 дни.
Очевидно ми липсва някъде настройка или имам нещо неправилно конфигурирано.
Някакви предположения?
Благодаря