免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4167 | 回复: 11

ip_conntrack: table full, dropping packet [复制链接]

论坛徽章:
0
发表于 2010-03-30 15:21 |显示全部楼层
10可用积分
负载比较高的一个apache做的web服务器
一天的日志(PV)如下:
#wc -l /usr/local/apache/logs/access_log.2010-03-26
4196894 /usr/local/apache/logs/access_log.2010-03-26

内核参数配置如下:关于可能引起这个报错的内核修改如下:
net.ipv4.ip_conntrack_max = 462144
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 900
可现在内核依然偶尔会报这个ip_conntrack: table full, dropping packet

统计了下 web压力比较大的情况下
# wc -l /proc/net/ip_conntrack
66256 /proc/net/ip_conntrack

$ sudo /sbin/sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog = 52768
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_conntrack_max = 462144
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 900
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 600
目前可以基本判断出来,跟内核参数调整的关系不大了。因为关闭防火墙后,不会报错
现将防火墙内容贴在下面,各位可以给个参考意见,或者给个例子供参考。谢谢!
下面这个是根据setup中 默认创建的
$ sudo cat /etc/sysconfig/iptables
  1. # Firewall configuration written by system-config-securitylevel
  2. # Manual customization of this file is not recommended.
  3. *filter
  4. :INPUT ACCEPT [0:0]
  5. :FORWARD ACCEPT [0:0]
  6. :OUTPUT ACCEPT [0:0]
  7. :RH-Firewall-1-INPUT - [0:0]
  8. -A INPUT -j RH-Firewall-1-INPUT
  9. -A FORWARD -j RH-Firewall-1-INPUT
  10. -A RH-Firewall-1-INPUT -s 192.168.0.0/255.255.0.0 -i eth0 -j DROP
  11. -A RH-Firewall-1-INPUT -s 172.168.0.0/255.255.255.0 -i eth0 -j DROP
  12. -A RH-Firewall-1-INPUT -s 10.0.0.0/255.0.0.0 -i eth0 -j DROP
  13. -A RH-Firewall-1-INPUT -i lo -j ACCEPT
  14. -A RH-Firewall-1-INPUT -i eth1 -j ACCEPT
  15. -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
  16. -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  17. -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 8933 -j ACCEPT
  18. -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 9030 -j ACCEPT
  19. -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 9033 -j ACCEPT
  20. -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 9032 -j ACCEPT
  21. -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 8080 -j ACCEPT
  22. -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 8888 -j ACCEPT
  23. -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 9820 -j ACCEPT
  24. -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 22 -j ACCEPT
  25. -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 80 -j ACCEPT
  26. -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 443 -j ACCEPT
  27. -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
  28. COMMIT
复制代码
下面这个是自己写的
  1. #!/bin/bash
  2. /sbin/modprobe ip_conntrack
  3. /sbin/modprobe ip_conntrack_ftp
  4. /sbin/iptables -F
  5. /sbin/iptables -X
  6. /sbin/iptables -P INPUT DROP
  7. /sbin/iptables -P FORWARD ACCEPT
  8. /sbin/iptables -P OUTPUT ACCEPT
  9. /sbin/iptables -A INPUT -i lo -j ACCEPT
  10. /sbin/iptables -A INPUT -i eth1 -j ACCEPT
  11. /sbin/iptables -A INPUT -p tcp --sport 21 -j ACCEPT
  12. /sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  13. /sbin/iptables -A INPUT -p udp --dport 53 -j ACCEPT
  14. /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  15. /sbin/iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  16. /sbin/iptables -A INPUT -p tcp --dport 8933 -j ACCEPT
  17. /sbin/iptables -A INPUT -p tcp --dport 9030 -j ACCEPT
  18. /sbin/iptables -A INPUT -p tcp --dport 9032 -j ACCEPT
  19. /sbin/iptables -A INPUT -p tcp --dport 9033 -j ACCEPT
  20. /sbin/iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
  21. /sbin/iptables -A INPUT -p tcp --dport 8888 -j ACCEPT
  22. /sbin/iptables -A INPUT -p tcp --dport 9820 -j ACCEPT
  23. /sbin/iptables -A INPUT -p tcp --dport 9999 -j ACCEPT
  24. /sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
复制代码
可是问题依旧存在?有好的方案推荐否? 谢谢

论坛徽章:
0
发表于 2010-03-30 15:28 |显示全部楼层
# uname -a
Linux wanghan 2.6.18-164.6.1.el5PAE #1 SMP Tue Nov 3 16:55:59 EST 2009 i686 athlon i386 GNU/Linux

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
发表于 2010-03-30 15:36 |显示全部楼层
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
把这两行注释掉看看

论坛徽章:
0
发表于 2010-03-30 15:49 |显示全部楼层
本帖最后由 xuledw 于 2010-03-30 15:52 编辑

楼上的能给个为什么?
这样的话 不挂在这个模块的话 那么所有关于ip_conntrack在/etc/sysctl.conf中的配置也就不让起生效
这样的话 也就放开了对ip_conntrack的限制
是这样么?
是这个办法 尝试看看

论坛徽章:
0
发表于 2010-03-30 17:05 |显示全部楼层
可以不开启连接跟踪,就不要开启。
很多服务器甚至重新编译内核裁剪掉此功能。

论坛徽章:
0
发表于 2010-03-30 17:15 |显示全部楼层
本帖最后由 xuledw 于 2010-03-30 17:22 编辑

三楼的一语惊醒梦中人

论坛徽章:
0
发表于 2010-03-30 17:47 |显示全部楼层
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
把这两行注释掉看看
chenyx 发表于 2010-03-30 15:36

注释掉是没有问题,那么注释掉 能否代表就不调用了呢?
如下:
# modprobe -r ip_conntrack
FATAL: Module ip_conntrack is in use.
# lsmod|grep ip_conn
ip_conntrack_ftp       11569  0
ip_conntrack           53281  2 xt_state,ip_conntrack_ftp
nfnetlink              10713  1 ip_conntrack
我测试如下:无论那个脚本中是否有那两行 都会自动去调用ip_conntrack模块

论坛徽章:
0
发表于 2010-03-30 17:48 |显示全部楼层
可以不开启连接跟踪,就不要开启。
很多服务器甚至重新编译内核裁剪掉此功能。
blueswxs 发表于 2010-03-30 17:05


必须要重新编译内核去掉此功能么?

论坛徽章:
0
发表于 2010-03-30 18:05 |显示全部楼层
更改配置文件,禁止调用ip_conntrack模块?
有这么搞过的么?

论坛徽章:
0
发表于 2010-03-30 20:39 |显示全部楼层
必须要重新编译内核去掉此功能么?
xuledw 发表于 2010-03-30 17:48



是这样的,如果你在使用iptables NAT表添加一些规则后(具体规则记不清了),那个模块就会加载到内存了。

看这些,模块依存啊:
iptable_nat            11268  1
ip_nat                 20908  2 ipt_MASQUERADE,iptable_nat
ip_conntrack           53088  3 ipt_MASQUERADE,iptable_nat,ip_nat
nfnetlink              10776  2 ip_nat,ip_conntrack
iptable_filter          7168  0
ip_tables              17092  2 iptable_nat,iptable_filter
x_tables               17540  3 ipt_MASQUERADE,iptable_nat,ip_tables
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP