博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

Xiajc - 工作笔记


我站在靠近天的顶端 张开手全都释放 用月光取暖给自己力量 才发现关于梦的答案 一直在自己手上 只有自己能让自己发光
   xjc2694.cublog.cn
关于作者  

姓名:夏

位置:北京


我的分类  




linux nat : ip_conntrack: table full, dropping
错误:
Apr 8 16:15:42 GATEWAY kernel: ip_conntrack: table full, dropping

packet.
Apr 8 16:15:47 GATEWAY kernel: printk: 3 messages suppressed.
Apr 8 16:15:47 GATEWAY kernel: ip_conntrack: table full, dropping

packet.
Apr 8 16:15:54 GATEWAY kernel: printk: 3 messages suppressed.
Apr 8 16:15:54 GATEWAY kernel: ip_conntrack: table full, dropping

packet.


IP_conntrack表示连接跟踪数据库(conntrack database),代表NAT机器跟踪连接

的数目,连接跟踪表能容纳多少记录是被一个变量控制的,它可由内核中的ip-

sysctl函数设置。每一个跟踪连接表会占用350字节的内核存储空间,时间一长就

会把默认的空间填满,那么默认空间是多少?在内存为64MB的机器上是4096,内存

为128MB是 8192,内存为256MB是16384,那末就能


==================================
现在通过/proc文档系统我们能够在运行时读取CONNTRACK_MAX的值。
在Linux kernel 2.4.23版本前,使用:
# cat /proc/sys/net/ipv4/ip_conntrack_max

在Linux kernel 2.4.23版本后,使用:
# cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max
  (旧的 /proc/sys/net/ipv4/ip_conntrack_max是不建议使用的!)



/proc/sys/net/ipv4/netfilter/ip_conntrack_max 里查看、设置。
例如:增加到81920,可以用以下命令:
echo "81920"  >/proc/sys/net/ipv4/netfilter/ip_conntrack_max
那样设置是不会保存的,要重启后保存可以在/etc/sysctl.conf中加:
net.ipv4.netfilter.ip_conntrack_max = 81920
不过增大表可能造成性能下降。


echo 21600 >/proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established

那样设置是不会保存的,要重启后保存可以在/etc/sysctl.conf中加:
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established =21600
这个参数是连接超时,默认超时时间是5天,也就是432000秒,现在把它改成21600,就是6小时,在6小时后清除掉无效的连接

对已经建立的连接无效,已经建立的超时连接会在5天期满以后自动清除掉


查看ip_conntrack前几位IP

cat /proc/net/ip_conntrack | cut -d ' ' -f 10 | cut -d '=' -f 2 | sort | uniq -c | sort -nr | head -n 5
察看有多少个跟踪
cat /proc/net/ip_conntrack | cut -d ' ' -f 10 | cut -d '=' -f 2 | sort | uniq -c | sort -nr |awk '{x=x+$1}{print x}'





 发表于: 2008-04-10,修改于: 2009-05-19 13:27 已浏览619次,有评论0条 推荐 投诉

  网友评论

  发表评论



Copyright © 2001-2010 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们
页面生成时间:0.0277

京ICP证041476号