ipfw防火墙,系统死机
脚本
#!/bin/sh -
fwcmd="ipfw -q add"
cmd="ipfw"
netif="bce0"
${cmd} -q -f flush
${fwcmd} allow all from any to any via lo0
${fwcmd} allow all from me to any out keep-state
${fwcmd} queue 1 tcp from any to me 2222 in setup limit src-addr 20
${fwcmd} queue 2 tcp from any to me 80 in via ${netif} setup limit src-addr 512
${fwcmd} queue 2 tcp from any to me 443 in via ${netif} setup limit src-addr 512
${fwcmd} queue 2 tcp from any to me 500 in via ${netif} setup limit src-addr 20
${fwcmd} queue 2 tcp from any to me 800 in via ${netif} setup limit src-addr 20
${fwcmd} queue 3 tcp from any to me 20 in via ${netif} setup keep-state
${fwcmd} queue 3 tcp from any to me 21 in via ${netif} setup keep-state
${fwcmd} queue 3 tcp from any to me 65000-65535 in via ${netif} setup keep-state
${fwcmd} queue 3 icmp from any to me icmptypes 8 in via ${netif}
${cmd} queue 1 config pipe 1 mask src-ip 0xffffffff
${cmd} pipe 1 config bw 10Mbit/s
${cmd} queue 2 config pipe 2 mask src-ip 0xffffffff
${cmd} pipe 2 config bw 32Mbit/s
${cmd} queue 3 config pipe 3 mask src-ip 0xffffffff
${cmd} pipe 3 config bw 10Mbit/s
运行时正常
/var/log/messages中有如下报错
Mar 23 10:33:07 test kernel: copy_obj_q ERROR type 5 queue -1 have 32 need 96
Mar 23 10:33:07 test kernel: copy_obj_q ERROR type 5 queue -1 have 0 need 96
系统运行几天会死一次机,没有规律,没有其它信息。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
防火墙关掉呢????
没试过
用src-ip 0xffffffff,我坚信你的机器抗不住!
你要把整个因特网的每台机器都限速,这可能吗?
另外你不仅限速,而且同时进行状态规则,这明显加快了你死机的进程!
楼主可以用以下命令试试:
ipfw queue show
ipfw pipe show
看完结果你就明白为什么会出错了。
本帖最后由 就不改 于 2011-03-23 20:57 编辑
不过偶的访问量不是很大啊,机器配置也不算低,四颗 E5410,16G内存
test# ipfw queue show |wc -l
554
test# ipfw pipe show | wc -l
9
经常看着点队列信息,提示就出在队列上。
另外
sysctl -a | grep fw.dyn呢?动态规则数也会满的。
我认为你的规则不合理,限速+动态规则有就疯狂。内存对ipfw影响不是很大,多核对防火墙来说应该是个累赘。
刚上架时,联通封80端口。封的方式很变态,只封服务器80端口出去的包,因为收不回应包,服务器的连接数飙到3万多,那时也没死机。
回复 8# 就不改
从哪儿看到3W连接数?
如果是sysctl 3W不多啊!据说一台pplive的连接数就能上万,我实际测的也要几千,windows都能正常用,BSD也死不了。
我的意思是,你必须经常观察服务器的状态,甚至写脚本记录下状态,看到底在什么情况下死机,是连接数,还是pipe数,还是queue,甚至是cpu利用率,只有找到原因才能找解决方法。