天天看点

排除路由崩溃故障

介绍

通常所说的“系统崩溃”是指系统检测到无法恢复的错误并重新启动的情况。

引起崩溃的错误通常是由处理器硬件检测的,处理器硬件在 rom 监视器中自动派生出特殊的错误处理代码。rom 监视器可以识别错误,打印消息,保存故障信息并重新启动系统。

规则

<a>前提条件</a>

本文没有任何特定的前提条件。

<a>所使用组件</a>

本文不限于任何特定的软硬件版本。

<a>获得有关崩溃的信息</a>

在路由器崩溃的情况下,最重要的工作是在对路由器进行人工重载或重新加电启动之前尽可能多地收集有关崩溃的信息。人工重载或重新加电启动之后,除 crashinfo 文件中成功保存的信息外,有关崩溃的所有其他信息都将丢失。下面的输出内容显示了有关崩溃的一些信息。

<b>命令</b>

<b>说明</b>

<b>show version</b>

最早在cisco ios(r)软件版本10.0中出现的命令。<b>show version</b> exec命令显示系统硬件配置、软件版本、配置文件与软件镜像的名称和来源、路由器运行时间和有关系统重启过程的信息。

<b>重要提示:</b>若路由器在崩溃后重载(例如加电重启或使用reload命令),该信息将会丢失。因此,设法在重载前收集有关信息!!!

<b>show stacks</b>

最早在cisco ios软件版本10.0中出现的命令。<b>show stacks</b> exec命令用来监视程序和中断程序的堆栈使用情况。在路由器崩溃的情况下,show stacks命令输出是信息的最重要来源之一。

<b>重要提示:</b> 若路由器在崩溃后重载(例如加电重启或使用<b>reload命令</b>),该信息将会丢失。因此,设法在重载前收集有关信息!

<b>show context</b> 

最早在cisco ios软件版本10.3中出现的命令。<b>show context</b> exec命令用来在发生意外事件时显示非易失性ram(nvram)中保存的信息。上下文信息是处理器和基础结构所特定的,而软件版本和运行时间信息则不是。不同路由器类型的上下文信息因此各不相同。<b>show context</b>命令的显示内容包括以下方面:

·         系统重启原因

·         堆栈记录

·         软件版本

·         信号编号、代码和路由运行时间信息

崩溃时的所有注册内容

<b>show tech-support</b> 

最早出现在cisco ios软件版本11.2中。在报告问题时,此命令非常有助于收集有关路由器的基本信息。此命令包括:

·         <b>show version</b>

·         <b>show running-config</b>

·         <b>show stacks</b>

·         <b>show interface</b>

·         <b>show c</b>

·         <b>show process cpu</b>

·         <b>show process memory</b>

·         <b>show buffers</b>

<b>c log</b>

若在崩溃时与路由器控制面板相连,您会在崩溃期间看到类似以下信息的显示内容:

*** system received a software forced crash ***   signal= 0x17, code= 0x24, c 0x619978a0   pc = 0x602e59dc, cause = 0x4020, statusreg = 0x34008002   dcl masked interrupt register = 0x000000f7   dcl interrupt value register = 0x00000010   memd int 6 status register = 0x00000000   保存这些信息以及此前的日志。路由器恢复运行时一定要获得<b>show stacks</b>命令输出。

若路由器设置为向syslog服务器发送日志,则可在syslog服务器上显示崩溃前所发生的事件。但是,在路由器崩溃的情况下,可能不会将最有用的信息发送到syslog服务器上。因此,通常情况下,syslog输出对于排除崩溃故障不是很有用。

crashinfo文件包含有关当前崩溃的许多有用信息,这些信息保存在bootflash或flash存储器中。当数据或堆栈损坏引起路由器崩溃时,除了常用的<b>show stacks</b>命令输出外,还需要更多的重载信息来排除这类崩溃故障。

在cisco 12000千兆位路由器处理器(grp)、cisco 7000和7500路由交换处理器 (rsp)以及cisco 7200系列路由器上,缺省情况下crashinfo被写入到<b>bootflash:crashinfo</b>中。对于cisco 7500通用接口处理器2(vip2),缺省情况下此文件被保存到<b>bootflash:vip2_slot_no_crashinfo</b>中,其中,slot_no为vip2插槽号码。对于cisco 7000路由处理器(rp),缺省情况下此文件被保存到<b>flash:crashinfo</b>中。

<b>core dump</b>

core dump是路由器内存镜像的全面拷贝。这种信息对于解决大多数类型的崩溃问题是不必要的,但在记录新的故障时,最好使用这些信息。若要将 debug sanity、scheduler heapcheck process和memory check-interval 1等更多信息添加到core dump 中,则可能需要启用某些调试工具。

<b>rom</b><b>m</b>

若路由器的config-register设置以0为结尾,则崩溃后,路由器可能在rom监视器中终止。若路由器为68k,则提示符为"&gt;"。您可通过<b>k</b>命令来获取堆栈记录。 若处理器为精简指令集计算机构(risc),则提示符将为"rommon 1&gt;"。获取stack 50和show context的输出。

<a>崩溃类型</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">中断</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">地址错误</a>

<a href="http://www.cisco.com/mt/eval/zh/122/crashes_buserror_troubleshooting.html">总线错误</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">缓存器异常错误</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">错误 - 级别 &lt;x&gt;</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">格式错误</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">非法指令</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">非法opcode异常</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">跳到零错误</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">线路仿真器陷阱</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">加电</a>

<a href="http://www.cisco.com/mt/eval/zh/122/crashes_pmpe.html">处理器内存奇偶校验错误</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">保留异常</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">错误重新启动</a>

<a href="http://www.cisco.com/mt/eval/zh/122/crashes_segv.html">分段违例异常</a>

<a href="http://www.cisco.com/mt/eval/zh/122/crashes_pmpe.html">共享存储器奇偶校验错误</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">sigtrap</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">软件强制崩溃</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">跟踪陷阱</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">未定义陷阱</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">意外硬件运行中断</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">未知故障</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">未知重新装载原因</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">监视器超时</a>

<a href="http://www.cisco.com/mt/eval/zh/nopage.html">写总线错误中断</a>

路由器模块崩溃

在某些情况下,只是特定的路由器模块崩溃,而不是整个路由器崩溃。下列文件对如何解决某些路由器模块上的崩溃进行了说明:

排除vip崩溃

排除pa-a3上的sar崩溃

排除cisco gsr12000系列上的线路卡崩溃

显示崩溃情况的输出范例

router#show versi 

cisco internetwork operating system software  

ios (tm) rsp software (rsp-pv-m), version 12.0(10.6)st, early deployment 

maintenance interim software  

copyright (c) 1986-2000 by cisco systems, inc.  

compiled fri 23-jun-00 16:02 by richv  

image text-base: 0x60010908, data-base: 0x60d96000  

rom: system bootstrap, version 12.0(19990806:174725), development software  

bootflash: rsp software (rsp-boot-m), version 12.0(9)s, early deployment  

release software (fc1)  

router uptime is 20 hours, 56 minutes  

system returned to rom by error - a software forced crash, pc 0x60287ee8  

system image file is "slot0:rsp-pv-mz.120-10.6.st"  

cisco rsp8 (r7000) processor with 131072k/8216k bytes of memory.  

r7000 cpu at 250mhz, implementation 39, rev 1.0, 256kb l2, 2048kb l3 cache  

last reset from power- 

g.703/e1 software, version 1.0.  

g.703/jt2 software, version 1.0.  

x.25 software, version 3.0.0.  

chassis interface.  

1 eip c (6 ethernet).  

1 vip2 r5k c (1 fastethernet)(2 hssi).  

6 ethernet/ieee 802.3 interface(s)  

1 fastethernet/ieee 802.3 interface(s)  

2 hssi network interface(s)  

2043k bytes of n c memory.  

20480k bytes of flash pcmcia card at slot 0 (sector size 128k).  

16384k bytes of flash internal simm (sector size 256k).  

no slave installed in slot 7.  

c register is 0x2102  

router#show stacks  

minimum process stacks:  

free/size   name  

5188/6000   cef reloader  

9620/12000  init  

5296/6000   radius initc 

5724/6000   mdfs reload  

2460/3000   rsp memory size check  

8176/9000   dhcp client  

interrupt level stacks:  

level    called unused/size  name  

1         163   8504/9000  network interrupt  

2       14641   8172/9000  network status interrupt  

3           0   9000/9000  oir interrupt  

4           0   9000/9000  pcmcia interrupt  

5        5849   8600/9000  c uart  

6           0   9000/9000  error interrupt  

7      396230   8604/9000  nmi interrupt handler  

system was restarted by error - a software forced crash, pc 0x602de884 at 05:07:31  

utc thu sep 16 1999  

rsp software (rsp-jsv-m), version 12.0(7)t,  release software (fc2)  

compiled mon 06-dec-99 19:40 by phanguye  

image text-base: 0x60010908, database: 0x61356000  

stack trace from system failure:  

fp: 0x61f73c30, ra: 0x602de884  

fp: 0x61f73c30, ra: 0x6030d29c  

fp: 0x61f73d88, ra: 0x6025e96c  

fp: 0x61f73dd0, ra: 0x6026a954  

fp: 0x61f73e30, ra: 0x602b94bc  

fp: 0x61f73e48, ra: 0x602b94a8

若在 bootflash 中存在 crashinfo,则在 show stacks 命令执行结束时显示以下内容:      

***************************************************  

******* information of last system crash **********  

using bootflash:crashinfo_20000323-061850. 2000  

cmd: 'sh int fas' 03:23:41 utc thu mar 2 2000  

cmd: 'sh int fastethernet 6/0/0' 03:23:44 utc thu mar 2 2000  

cmd: 'c t' 03:23:56 utc thu mar 2 2000  

cmd: 'no ip cef di' 03:23:58 utc thu mar 2 2000  

cmd: 'no ip cef distributed ' 03:23:58 utc thu mar 2 2000  

...  

router#show c 

system was restarted by error - a software forced crash, pc 0x602de884 at  

05:07:31 utc thu sep 16 1999  

fp: 0x61f73e48, ra: 0x602b94a8  

fault history buffer:  

signal = 23, code = 0x24, uptime 3w0d  

$0 : 00000000, at : 619a0000, v0 : 61990000, v1 : 00000032  

a0 : 6026a114, a1 : 61a309a4, a2 : 00000000, a3 : 00000000  

t0 : 61f6cd80, t1 : 8000fd88, t2 : 34008700, t3 : ffff00ff  

t4 : 00000083, t5 : 3e840024, t6 : 00000000, t7 : 00000000  

s0 : 0000003c, s1 : 00000036, s2 : 00000000, s3 : 61f73c48  

s4 : 00000000, s5 : 61993a10, s6 : 61982d00, s7 : 61820000  

t8 : 0000327a, t9 : 00000000, k0 : 61e48c4c, k1 : 602e7748  

gp : 6186f3a0, sp : 61f73c30, s8 : 00000000, ra : 6030d29c  

epc : 602de884, sreg : 3400e703, cause : 00000024  

error epc : bfc00000, badvaddr : 40231ffe  

本文转自CC博客51CTO博客,原文链接http://blog.51cto.com/levelive/5929如需转载请自行联系原作者

刀博士