首页 > 网管 > 路由交换 > 正文

路由器崩溃故障的分析与排除

2020-05-13 13:56:51
字体:
来源:转载
供稿:网友

   介绍通常所说的“系统崩溃”是指系统检测到无法恢复的错误并重新启动的情况。引起崩溃的错误通常是由处理器硬件检测的,处理器硬件在 ROM 监视器中自动派生出特殊的错误处理代码。ROM 监视器可以识别错误,打印消息,保存故障信息并重新启动系统。开始之前e=conv>规则有关文件规则的更多信息,请参阅 Cisco Technical Tips Conventions.前提条件本文没有任何特定的前提条件。所使用组件本文不限于任何特定的软硬件版本。获得有关崩溃的信息在路由器崩溃的情况下,最重要的工作是在对路由器进行人工重载或重新加电启动之前尽可能多地收集有关崩溃的信息。人工重载或重新加电启动之后,除 crashinfo 文件中成功保存的信息外,有关崩溃的所有其他信息都将丢失。下面的输出内容显示了有关崩溃的一些信息。若您可以通过Cisco设备获得show version、show stacks、show context或show tech support命令输出,则可通过这些输出来显示潜在的问题和修补方法。若要使用这些信息,登录并启用 ,但您必须是注册 用户。命令说明show version最早在Cisco IOS(r)软件版本10.0中出现的命令。Show version EXEC命令显示系统硬件配置、软件版本、配置文件与软件镜像的名称和来源、路由器运行时间和有关系统重启过程的信息。重要提示:若路由器在崩溃后重载(例如加电重启或使用reload命令),该信息将会丢失。因此,设法在重载前收集有关信息!!!show stacks最早在Cisco IOS软件版本10.0中出现的命令。show stacks EXEC命令用来监视程序和中断程序的堆栈使用情况。在路由器崩溃的情况下,show stacks命令输出是信息的最重要来源之一。重要提示: 若路由器在崩溃后重载(例如加电重启或使用reload命令),该信息将会丢失。因此,设法在重载前收集有关信息!show context最早在Cisco IOS软件版本10.3中出现的命令。show context EXEC命令用来在发生意外事件时显示非易失性RAM(NVRAM)中保存的信息。上下文信息是处理器和基础结构所特定的,而软件版本和运行时间信息则不是。不同路由器类型的上下文信息因此各不相同。show context命令的显示内容包括以下方面:系统重启原因堆栈记录软件版本信号编号、代码和路由运行时间信息崩溃时的所有注册内容show tech-support最早出现在Cisco IOS软件版本11.2中。在报告问题时,此命令非常有助于收集有关路由器的基本信息。此命令包括:show versionshow running-configshow stacksshow interfaceshow controllershow process cpushow process memoryshow buffersconsole log若在崩溃时与路由器控制面板相连,您会在崩溃期间看到类似以下信息的显示内容:*** System received a Software forced crash ***signal= 0x17, code= 0x24, context= 0x619978a0PC = 0x602e59dc, Cause = 0x4020, Status Reg = 0x34008002DCL Masked Interrupt Register = 0x000000f7DCL Interrupt Value Register = 0x00000010MEMD Int 6 Status Register = 0x00000000保存这些信息以及此前的日志。路由器恢复运行时一定要获得show stacks命令输出。syslog若路由器设置为向syslog服务器发送日志,则可在syslog服务器上显示崩溃前所发生的事件。但是,在路由器崩溃的情况下,可能不会将最有用的信息发送到syslog服务器上。因此,通常情况下,syslog输出对于排除崩溃故障不是很有用。crashinfocrashinfo文件包含有关当前崩溃的许多有用信息,这些信息保存在bootflash或flash存储器中。当数据或堆栈损坏引起路由器崩溃时,除了常用的show stacks命令输出外,还需要更多的重载信息来排除这类崩溃故障。在Cisco 12000千兆位路由器处理器(GRP)、Cisco 7000和7500路由交换处理器 (RSP)以及Cisco 7200系列路由器上,缺省情况下crashinfo被写入到bootflash:crashinfo中。对于Cisco 7500通用接口处理器2(VIP2),缺省情况下此文件被保存到bootflash:vip2_slot_no_crashinfo中,其中,slot_no为VIP2插槽号码。对于Cisco 7000路由处理器(RP),缺省情况下此文件被保存到flash:crashinfo中。有关更多信息,请参阅 从Crashinfo文件中获取信息。core dumpcore dump是路由器内存镜像的全面拷贝。这种信息对于解决大多数类型的崩溃问题是不必要的,但在记录新的故障时,最好使用这些信息。若要将 debug sanity、scheduler heapcheck process和memory check-interval 1等更多信息添加到core dump 中,则可能需要启用某些调试工具。有关详细信息请参阅 创建Core Dumps。rom monitor若路由器的config-register设置以0为结尾,则崩溃后,路由器可能在ROM监视器中终止。若路由器为68k,则提示符为">"。您可通过k命令来获取堆栈记录。 若处理器为精简指令集计算机构(RISC),则提示符将为"rommon 1>"。获取stack 50和show context的输出。[page]崩溃类型show version和show stacks命令输出可显示所发生崩溃的类型,如:总线错误或软件强制崩溃。您还可以通过crashinfo和show context命令来获取有关崩溃类型的信息。对于某些较新的Cisco IOS软件版本,没有明确显示崩溃原因(例如,显示内容为"Signal = x",其中x是一个数字)。若要了解这些数字所表示的意义,请参照通用接口处理器崩溃原因代码例如:"Signal = 23"是指软件强制崩溃。根据下面的链接来解决路由器上所发生的特定类型的崩溃:中断地址错误总线错误缓存器异常错误错误 - 级别格式错误非法指令非法Opcode异常跳到零错误线路仿真器陷阱加电处理器内存奇偶校验错误保留异常错误重新启动分段违例异常共享存储器奇偶校验错误SIGTRAP软件强制崩溃跟踪陷阱未定义陷阱意外硬件运行中断未知故障未知重新装载原因监视器超时写总线错误中断

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表