http://blog.yorkgu.me/2012/02/09/kernel-nf_conntrack-table-full-dropping-packet/

综合:ip_conntrack就是linux NAT的一个跟踪连接条目的模块,ip_conntrack模块会使用一个哈希表记录 tcp 通讯协议的 established connection记录,当这个哈希表满了的时候,便会导致nf_conntrack: table full, dropping packet错误。

解决办法如其所述,对ip_conntrack的两个参数进行设置即可,不过在centos上,需要这样设置:

1
2
3
4
5
vi /etc/sysctl.conf
net.ipv4.netfilter.ip_conntrack_max = 655350
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 1200
#默认超时时间为5天,作为一个主要提供HTTP服务的服务器来讲,完全可以设置得比较短
sysctl -p # 让刚刚修改过的设置生效

至于为什么会有这样的设置,这个设置的作用是什么,就要从NAT说起了。NAT(Network Address Translation,网络地址转换)是将IP数据报报头的IP地址转化成另外一个IP地址的过程,主要用来实现局域网内的机器访问公共网络(俗称外网)的功能。公共IP地址是指在因特网上全球唯一的IP地址,RFC 1918协议还为局域网预留出了三个IP不会在公网上进行分配的地址块:

  • 10.0.0.0~10.255.255.255
  • 172.16.0.0~172.31.255.255
  • 192.168.0.0~192.168.255.255

这些IP地址就可以用来分配给局域网上的各种设备,这些设备在访问外网时,就需要通过一台NAT服务器进行路由转换,通常情况下,路由器就兼备了这样一个功能。除了路由器,也可以配置linux服务器实现NAT功能。ip_conntrack就是linux NAT的一个跟踪连接条目的模块,ip_conntrack模块会使用一个哈希表记录 tcp 通讯协议的 established connection记录,当这个哈希表满了的时候,便会导致nf_conntrack: table full, dropping packet错误。

关于如何优化conntrack模块,有一篇文章对此进行了解释,Netfilter conntrack performance tweaking, v0.8,为了访问方便,我这里也留一个备份地址 netfilter_conntrack_perf-0.8.txt

查看目前 ip_conntrack 配置的值

1
2
> cat /proc/sys/net/ipv4/ip_conntrack_max
> cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established

查看目前 ip_conntrack buffer 的使用状况

1
2
3
> cat /proc/sys/net/ipv4/netfilter/ip_conntrack_count
> grep ip_conntrack /proc/slabinfo
ip_conntrack       38358  64324    304   13    1 : tunables   54   27    8 : s

kernel nf_conntrack: table full, dropping packet[转载]的更多相关文章

  1. ECS实例中的应用偶尔出现丢包现象并且内核日志(dmesg)存在“kernel: nf_conntrack: table full, dropping packet”的报错信息

    问题描述 连接ECS实例中的应用时偶尔出现丢包现象.经排查,ECS实例的外围网络正常,但内核日志(dmesg)中存在"kernel: nf_conntrack: table full, dr ...

  2. linux messages日志出现kernel: nf_conntrack: table full, dropping packet

    上述结果会让业务访问很慢!各种网络服务耗时大幅上升,各种time out,各种丢包,完全无法正常提供服务,大并发业务场景下,开防火墙很容易出现这种问题. 解决方法1:关闭分防火墙服务 解决方法2:修改 ...

  3. ip_conntrack or nf_conntrack : table full, dropping packet

    nf_conntrack: table full, dropping packet ip_conntrack or nf_conntrack : table full, dropping packet ...

  4. ocalhost kernel: [244840.301449] nf_conntrack: nf_conntrack: table full, dropping packet

    nf_conntrack: table full, dropping packet. 终结篇   "连接跟踪表已满,开始丢包"!相信不少用iptables的同学都会见过这个错误信息 ...

  5. [转]nf_conntrack: table full, dropping packet 连接跟踪表已满,开始丢包 的解决办法

      nf_conntrack: table full, dropping packet  连接跟踪表已满,开始丢包 的解决办法 中午业务说机器不能登录,我通过USM管理界面登录单板的时候发现机器没有僵 ...

  6. linux云主机cpu一直很高降不下来,系统日志报nf_conntrack: table full, dropping packet.

    在启用了iptables web服务器上,流量高的时候经常会出现下面的错误: ip_conntrack: table full, dropping packet 这个问题的原因是由于web服务器收到了 ...

  7. 路由跟踪表满,日志报错nf_conntrack: table full, dropping packet.

    “连接跟踪表已满,开始丢包”!相信不少用iptables的同学都会见过这个错误信息吧,这个问题曾经也困扰过我好长一段时间.此问题的解决办法有四种(nf_conntrack 在CentOS 5 / ke ...

  8. nf_conntrack: table full, dropping packet. 问题

    查出目前 ip_conntrack 记录最多的前十名 IP: # cat /proc/net/nf_conntrack|awk '{print $8}'|cut -d'=' -f 2|sort |un ...

  9. 解决nf_conntrack: table full, dropping packet问题

    " > /proc/sys/net/nf_conntrack_max iptables -t raw -A PREROUTING -p tcp -m tcp --dport -j NO ...

随机推荐

  1. CentOS6.5下挂载NTFS格式的文件系统

    下载对应CentOS版本的rpmforge,下载地址:http://pkgs.repoforge.org/rpmforge-release/ 安装rpmforge,输入命令:# rpm -ivh rp ...

  2. svn服务器搭建与配置

    http://www.cnblogs.com/armyfai/p/3985660.html

  3. 简单linux网络驱动程序

    本文代码参考<LINUX设备驱动程序>第十七章 网络驱动程序 网络地址和虚拟主机地址为: snullnet0 192.168.0.0 snullnet1 192.168.1.0 local ...

  4. Linux shell实现Mysql异地备份数据库

    #--------------------------Mysqldump异地备份-----------------# #!/bin/bash #start mysqldump back /usr/bi ...

  5. jQuery控制TR的显示隐藏

    网上有很多,这里介绍三种: 第一种方法,就是使用id,这个方法可以在生成html的时候动态设置tr的id,也是用得最多最简单的一种,如下: <table> <tr><td ...

  6. Vue.js学习 Item9 – 表单控件绑定

    基础用法 可以用 v-model 指令在表单控件元素上创建双向数据绑定.根据控件类型它自动选取正确的方法更新元素.尽管有点神奇,v-model 不过是语法糖,在用户输入事件中更新数据,以及特别处理一些 ...

  7. LevelDB源码之五Current文件\Manifest文件\版本信息

    版本信息有什么用?先来简要说明三个类的具体用途: Version:代表了某一时刻的数据库版本信息,版本信息的主要内容是当前各个Level的SSTable数据文件列表. VersionSet:维护了一份 ...

  8. 正确使用stl map的erase方法

    先声明:下面的文章是针对windows的用法,因为std::map的erase函数的windows的实现版本是返回一个std::map的迭代器,但是STL标准里面的该函数的返回值确是: map.era ...

  9. 常用icon以及color颜色RGB值和对应颜色效果图

    Android谷歌官方扁平化设计常用icon集合   Android谷歌官方扁平化设计color颜色RGB值和对应颜色效果图.

  10. MapReduce数据流

    图4.5细节化的Hadoop MapReduce数据流 图4.5展示了流线水中的更多机制.虽然只有2个节点,但相同的流水线可以复制到跨越大量节点的系统上.下去的几个段落会详细讲述MapReduce程序 ...