linux 报错 ip_conntrack version 2.4 (8192 buckets, 65536 max) - 304 bytes per conntrack 解决方法

linux的iptables防火墙使用了ip_conntrack 内核模块实现连接跟踪功能,所有的进出数据包都会记录在连接跟踪表中,包括tcp,udp,icmp等,一旦连接跟踪表被填满以后,就会发生丢包,导致网络不稳定。

在大多数系统中,缺省的连接跟踪表大小是65536,可以通过下面2条命令查看缺省大小,

sysctl  net.ipv4.netfilter.ip_conntrack_max

cat  /proc/sys/net/ipv4/netfilter/ip_conntrack_max

当需要扩大连接跟踪表时,首先需要先加载ip_conntrack 模块,再通过以下接口进行调整,例如:

modprobe  ip_conntrack

sysctl  -w net.ipv4.netfilter.ip_conntrack_max = 655360(放大10倍)。

其实,ip_conntrack 模块支持一个隐含的模块参数hashsize(隐含参数意味着通过modinfo ip_conntrack查看时没有给出的模块参数),

连接跟踪表其实是一张hash表,每个hash bucket(桶)有8条记录,因此65536条记录对应8192个hash bucket。

比如缺省配置下加载 ip_conntrack模块时,内核给出的提示信息如下:

ip_conntrack version 2.4 (8192 buckets, 65536 max) - 304 bytes per conntrack

如果需要支持655360条跟踪记录的话,只需要将hash bucket设置为81920即可:

modprobe  ip_conntrack  hashsize=81920

或者添加到 /etc/modprobe.conf 配置文件中:

options ip_conntrack  hashsize=81920

通过这种方式就可以做到在ip_conntrack模块被加载时就设置好连接跟踪表的大小。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值