admin管理员组

文章数量:1534386

2024年4月23日发(作者:)

解决cisco路由器cpu占用率100%问题

适用于由于路由器遭受攻击造成处理端口上的输入数据包时耗尽资源的情况。

1、检查路由器的利用率

router#show process cpu

看到cpu利用率99%,检查是那一项占用率最高,一般IP Input比较高,说明是输

入数据包过多。

2、判断出故障端口所在

router#show interface fastethernet x/y

看一下端口的数据量,输入输出的包数,输入输出的错误数,输入队列中被drop掉

的包数等,分析一下是否有异常。

例如:

Input queue: 0/75/223681684/0 (size/max/drops/flushes); Total output

drops: 0

Queueing strategy: fifo

Output queue :0/40 (size/max)

5 minute input rate 444000 bits/sec, 183 packets/sec

5 minute output rate 708000 bits/sec, 139 packets/sec

43289439 packets input, 4150615869 bytes

Received 9225 broadcasts, 0 runts, 0 giants, 0 throttles

3645805 input errors, 0 CRC, 0 frame, 3645805 overrun, 0 ignored

当然,最快的方法,是排除法,把端口逐个断开,观察cpu利用率,很快就能找出故

障的端口。或者进一步用排除发找出网络分支上的故障点。

3、判断故障原因

原理上,是在路由器上创建一个permit ip any any的access-list(访问列表),然

后,把这个acl应用到故障端口上,打开ip包的debug,分析故障原因。例子如下:

3.1创建一个access-list ,允许ip包通过

route(config)# access-list 120 permit ip any any

3.2把此acl应用的故障端口上

route((config-if)#ip access-group 120 in

这样做的目的是因为,下面要打开debug,就是要根据这个acl,来抓通过这个端口

的包。

3.3打开debug进行抓包

route#debug ip packet 120

debug应该在console上进行

3.4停止debug

route#no debug all

注意debug可能会把路由器冲死,所以应该尽快停止。

3.5分析抓到的包

抓到的包,可以分析出原地址,目的地址,源端口,目的端口,用于判断故障的根源。

当然,有时遇到攻击软件,会用IP欺骗的方式进行攻击,例如下面看到的抓包信息

2:54:56: IP: s=180.93.127.229 (FastEthernet0/0), d=193.151.73.76 (FastEth

ernet0

1), g=211.138.74.97, len 40, forward

2:54:56: TCP src=1232, dst=80, seq=1632305152, ack=0, win=16384 SY

N

2:54:56: IP: s=180.93.128.205 (FastEthernet0/0), d=193.151.73.76 (FastEth

ernet0

1), g=211.138.74.97, len 40, forward

2:54:56: TCP src=1839, dst=80, seq=1144193024, ack=0, win=16384 SY

N

2:54:56: IP: s=180.93.129.212 (FastEthernet0/0), d=193.151.73.76 (FastEth

ernet0

1), g=211.138.74.97, len 40, forward

2:54:56: TCP src=1116, dst=80, seq=1918435328, ack=0, win=16384 SY

N

2:54:56: IP: s=180.93.130.223 (FastEthernet0/0), d=193.151.73.76 (FastEth

ernet0

1), g=211.138.74.97, len 40, forward

2:54:56: TCP src=1302, dst=80, seq=1559429120, ack=0, win=16384 SY

N

上面这个例子可以看出,攻击行为用虚拟源地址想目的地址192.151.73.76

发包,这些包都被发到了网关,也就是路由器的FastEthernet0/0。

4、解决方法

首先,当然应该先找到罪魁祸首,如果在路由器上debug不是很清晰能找出故障源,

就用sniffer或者ethereal这样的抓包工具找出那台机器。

另外,在路由器上,也可以针对攻击的特性,做访问列表,关闭相关的端口。

下面是在路由器上一个典型的acl

! --- 禁止ICMP协议

access-list 115 deny icmp any any echo

access-list 115 deny icmp any any echo-reply

! --- 禁止冲击波135端口的数据包.

access-list 115 deny tcp any any eq 135

access-list 115 deny udp any any eq 135

access-list 115 deny udp any any eq 4444

! --- 禁止TFTP应用的端口的数据包

access-list 115 deny udp any any eq 69

! --- 禁止其他微软的有漏洞的协议端口.

access-list 115 deny udp any any eq 137

access-list115denyudpanyanyeq138

access-list115denytcpanyanyeq139

access-list115denyudpanyanyeq139

access-list115denytcpanyanyeq445

access-list115denytcpanyanyeq593

! --- 允许其他的IP包通过路由器端口.

access-list 115 permit ip any any

! --- 把以上的访问列表应用的端口上.

interface

ip access-group 115 in

ip access-group 115 out

本文标签: 端口路由器故障攻击