网络通信 频道

在做NAT的机器上处理ip_conntrack满的方法

conntrack 表满的处理方法 
前段时间配置的iptables+squid做的proxy server ,一直工作正常。今天我上控制台上发现 
Jun 18 12:43:36 red-hat kernel: ip_conntrack: table full, dropping&n bsp;packet. 
Jun 18 12:49:51 red-hat kernel: ip_conntrack: table full, dropping packet. 
Jun 18 12:50:57 red-hat kernel: ip_conntrack: table full, dropping packet. 
Jun 18 12:57:38 red-hat kernel: ip_conntrack: table full, dropping packet. 

IP_conntrack表示连接跟踪数据库(conntrack database),代表NAT机器跟踪连接的数目,连接跟踪表能容纳多少记录是被一个变量控制的,它可由内核中的ip- sysctl函数设置。每一个跟踪连接表会占用350字节的内核存储空间,时间一长就会把默认的空间填满,那么默认空间时多少?我以redhat为例在内存为64MB的机器上时4096,内存为128MB是 8192,内存为256MB是16376,那末就能在/proc/sys/net/ipv4/ip_conntrack_max里查看、设置。 
例如:增加到81920,可以用以下命令: 
echo "81920" > /proc/sys/net/ipv4/ip_conntrack_max 

那样设置是不会保存的,要重启后保存可以在/etc/sysctl.conf中加: 
net.ipv4.ip_conntract_max =81920 
按照此方法改变后一切正常,要是在满了可以加大其值。

 

转载地址:http://www.net130.com/CMS/Pub/network/network_manage/104119.htm

0
相关文章