一、概念
-允许的最大跟踪连接条目:CONNTRACK_MAX(默认值是 2^16=65536 )
-存储跟踪连接条目列表的哈西表的大小:HASHSIZE
-每个哈西表的条目(叫一个bucket),包含了一个链接起来的跟踪连接条目
-哈希表大小HASHSIZE,表现为 条目bucket的多少,在iptables启动时在日志中会显示。
图表形象解释:
例如,系统默认配置下,启动 iptables 时的信息如下:
ip_conntrack version 2.4 (8192 buckets, 65536 max) - 304 bytes per conntrack
二、实战:调大 conntrack_max 参数(2.4内核)
1)增大 hashsize (在i386架构上,HASHSIZE = CONNTRACK_MAX / 8)
# vi /etc/modprobe.conf
options ip_conntrack hashsize=131072
然后重启 iptables 服务,在 sysctl -a | grep conntrack中可以看到参数已生效(自动调整为哈希表大小的8倍)
所以不要在/etc/sysctl.conf中设置以下两项的值:
net.ipv4.netfilter.ip_conntrack_max net.ipv4.ip_conntrack_max
如上均是参考网上资料的,如下是自己心得
三、卸载linux内核的 ip_conntrack 模块 ip_conntrack模块 是跟踪tcp 会话中establish new 这些状态的. 只有当iptables 的规则里没有写 -m state 状态的话,才可以卸载(否则卸载失败) 在 /etc/sysconfig/iptables-config 文件里删除或者注释掉 ip_conntrack_netbios_ns, 后重启iptable服务即可生效