Ste*_*son 7 timeout iptables gateway nat subnet
我有一个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
Run Code Online (Sandbox Code Playgroud)
eth1配置如下:
ip: 192.168.0.1
subnet: 255.255.0.0
Run Code Online (Sandbox Code Playgroud)
为客户端分配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
Run Code Online (Sandbox Code Playgroud)
由于连接到此网关的客户端设备数量,我无法使用默认的5天超时.
这似乎运行良好,并已测试超过10000客户端设备的设置.
但是,我看到的问题是tcp建立的超时1200仅适用于ip范围192.168.0.2到192.168.0.255的设备.在192.168.1.x到192.168.255.x范围内具有ips的所有设备仍在使用5天默认超时.
这会在/ proc/net/ip_conntrack表中留下太多"ESTABLISHED"连接并最终填满,即使它们应该在20分钟内超时,它们显示它们将在5天内超时.
显然我错过了某个地方的设置或者错误地配置了某些东西.
有什么建议?
谢谢
正如 @StephenHankinson 提到的,conntrack -L更改 sysctl 变量时的现有连接(参见)不会重置超时。这通常应该不是问题,因为这些连接最终会结束,但可以强制NFCT忘记所有使用的CT conntrack -F。但请注意,如果您的规则集不允许 \xe2\x80\x9cNEW\xe2\x80\x9d 连接不以 TCP SYN 开头,则这可能会终止现有连接。
| 归档时间: |
|
| 查看次数: |
10739 次 |
| 最近记录: |