LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 790|回复: 8

用RH9配置netfilter作网络地址转换,为何CPU占用很大?

[复制链接]
发表于 2003-8-26 16:05:36 | 显示全部楼层 |阅读模式
机器配置PIII450,内存192M,Rehat Linux9
用iptalbes配置了netfilter作网络地址转换,使局域网内全部的PC以此机器为网关上网,局域网内共有将近50台PC。
top的结果:
16:47:08  up  3:42,  2 users,  load average: 0.93, 0.83, 0.66
36 processes: 34 sleeping, 2 running, 0 zombie, 0 stopped
CPU states:   0.3% user  68.1% system   0.0% nice   0.0% iowait  31.4% idle
Mem:   190692k av,  146440k used,   44252k free,       0k shrd,    7452k buff
                    101152k actv,       4k in_d,    2692k in_c
Swap: 1052248k av,    1164k used, 1051084k free                  113652k cached

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME CPU COMMAND
    4 root      35  19     0    0     0 SWN  61.4  0.0  51:38   0 ksoftirqd_CPU

该结果以CPU时间排序,红色部分是最高的进程。占用60%以上的CPU!
这种情况是否正常?
netfilter的NAT表配置如下:

/sbin/iptables -t nat -A POSTROUTING -s 192.1.1.0/24 -o eth1 -j SNAT --to-source 219.238.183.92

219.238.183.92是Linux所在机器的静态IP,192.1.1.0/24为局域网段
发表于 2003-8-26 16:11:00 | 显示全部楼层
16:08:41  up  2:16,  3 users,  load average: 0.41, 0.29, 0.28
79 processes: 78 sleeping, 1 running, 0 zombie, 0 stopped
CPU states:   3.9% user   5.3% system   0.0% nice   0.0% iowait  90
16:09:18  up  2:17,  3 users,  load average: 0.29, 0.27, 0.27
79 processes: 75 sleeping, 4 running, 0 zombie, 0 stopped
CPU states:   4.8% user  12.6% system   0.0% nice   0.0% iowait  82.6% idle
Mem:   513804k av,  498348k used,   15456k free,       0k shrd,   17576k buff
                    366204k actv,       0k in_d,   10748k in_c
Swap: 1044184k av,   21088k used, 1023096k free                  308716k cached

我也是!!
 楼主| 发表于 2003-8-26 16:57:56 | 显示全部楼层
你也是是什么意思?
是没关系?
还是你也不知道为什么?
发表于 2003-8-27 09:29:03 | 显示全部楼层
这种情况绝对不正常,这种配置可以轻松搞定2、3百台机器的上网
 楼主| 发表于 2003-8-27 09:48:51 | 显示全部楼层
那可能是什么原因?
 楼主| 发表于 2003-8-27 13:35:49 | 显示全部楼层
收邮件浏览网页都很正常,但是外发邮件,特别是添加了附件的,超过100K的,就非常慢,在OE中经常就超时失败了,请问这是什么原因?
跟使用NAT有关系吗?
以前同样的配置,使用NT+Winroute,速度很快的
 楼主| 发表于 2003-8-27 13:53:28 | 显示全部楼层
以下是在局域网内ping这台linux服务器的结果,可以看到响应时间及其不稳定,感觉就是负载过大造成的。

[zhangleyi@Seraphim zhangleyi]$ ping 192.1.1.254
PING 192.1.1.254 (192.1.1.254) 56(84) bytes of data.
64 bytes from 192.1.1.254: icmp_seq=1 ttl=64 time=145 ms
64 bytes from 192.1.1.254: icmp_seq=3 ttl=64 time=1.68 ms
64 bytes from 192.1.1.254: icmp_seq=4 ttl=64 time=350 ms
64 bytes from 192.1.1.254: icmp_seq=5 ttl=64 time=390 ms
64 bytes from 192.1.1.254: icmp_seq=6 ttl=64 time=100 ms
64 bytes from 192.1.1.254: icmp_seq=7 ttl=64 time=610 ms
64 bytes from 192.1.1.254: icmp_seq=8 ttl=64 time=300 ms
64 bytes from 192.1.1.254: icmp_seq=9 ttl=64 time=470 ms
64 bytes from 192.1.1.254: icmp_seq=10 ttl=64 time=520 ms
64 bytes from 192.1.1.254: icmp_seq=11 ttl=64 time=210 ms
64 bytes from 192.1.1.254: icmp_seq=13 ttl=64 time=16.9 ms
发表于 2003-8-27 16:25:32 | 显示全部楼层
服务器接受到了大量的超短包,那个进程是对保重组的,
你看一下监视一下,看是什么包,把它drop掉,
可能是icmp包。
 楼主| 发表于 2003-8-27 16:47:23 | 显示全部楼层
谢谢各位的建议。
已经解决了,应该是现期猖獗的nachi蠕虫病毒。
用tcpdump icmp
发现大量的ping在不间断的产生,而且目的地址是顺序往下的,很明显是病毒在发icmp包。
开始是在netfilter的FORWARD链中把icmp包DROP掉,后来又加了INPUT链,但是负载仍然在70%左右。
于是就把所有在tcpdump中出现的源IP地址记下来,满公司的一个一个问(有些用tracert可以得到机器名,有些就没有),这个IP谁在用,最后将这些机器的网线全部拔掉,总共5台,哗,世界清静了,CPU的IDLE99.2%,而且还是加了squid的,呵呵。
搞定。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表