解决cisco路由器cpu占用率100%问题
适用于由于路由器遭受攻击造成处理端口上的输入数据包时耗尽资源的情况。
1、检查路由器的利用率
router#show process cpu
看到cpu利用率99%,检查是那一项占用率最高,一般IP Input比较高,说明是输入数据包过多。
2、判断出故障端口所在
router#show interface fastethernet x/y
看一下端口的数据量,输入输出的包数,输入输出的错误数,输入队列中被drop掉的包数等,分析一下是否有异常。
例如:
当然,最快的方法,是排除法,把端口逐个断开,观察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欺骗的方式进行攻击,例如下面看到的抓包信息
上面这个例子可以看出,攻击行为用虚拟源地址180.x.x.x想目的地址192.151.73.76发包,这些包都被发到了网关,也就是路由器的FastEthernet0/0。
4、解决方法
首先,当然应该先找到罪魁祸首,如果在路由器上debug不是很清晰能找出故障源,就用sniffer或者ethereal这样的抓包工具找出那台机器。
另外,在路由器上,也可以针对攻击的特性,做访问列表,关闭相关的端口。
下面是在路由器上一个典型的acl
|



7layer
博客统计信息
热门文章
最新评论
友情链接