错误消息格式

  系统错误消息格式如下:
  %Facility - subfacility - Severity - Mnemonic : Message Text
  Facility 它指出错误消息涉及的设备名。该值可以是协议、硬件设备或者系统软件模块。
  Subfacility 它仅与通道接口处理器(CIP)卡有关。详细的信息可以参见Cisco文档的相关章节。
  Severity 它是一个范围在0到7之间的数字。数字的值越小,严重程度越高。
  Mnemonic 唯一标识错误消息的单值代码。该代码通常可以暗示错误的类型。
  Message Text 它是错误消息的简短描述,其中包括涉及的路由器硬件和软件信息。

  下面是一些错误消息的示例。用户可以查阅CCO ISO文档的系统错误消息一节,以查找这些错误消息的说明。
      %DUAL-3-SIA:Route 171.155.148.192/26 stuck-in-active state in IP-EIGP 211. Cleaning up
  %LANCE-3-OWNERR: Unit 0, buffer ownership error

  需要注意的是,并不是所有的消息都涉及到故障或者问题的状况。某些消息显示的是状态方面的信息。例如,以下消息仅表明ISDN BRI 0接口与特定的远端数据连接。
      %ISDN-6-CONNECT: Interface BRI0 is now connected to 95551212

  Traceback Report
      某些与路由器内部错误相关的错误消息包含了traceback信息。在向Cisco TAC报告错误时,应在错误描述中加入这些信息。

错误消息和事件信息的日志

  根据错误消息的重要性和有效性,Cisco错误消息可以被记录到以下位置:

  & #61550;  ;; 控制台
  & #61550;  ;; 虚拟终端
  & #61550;  ;; Syslog服务器
  & #61550;  ;; 内部缓冲区

  logging on命令使日志消息的输出到上述位置。对于Syslog服务器,必须使用下述全局配置命令指明服务器的IP地址:
    logging ip-address

  通过反复使用这一命令,可以建立一个服务器的列表。在管理大型网络时,通常需要设置冗余服务器。

  logging buffered命令用于将日志信息发送到内部缓冲区。缓冲区的大小必须在4096字节以上。缺省值根据系统平台的不同而不同。用户需要选择适合环境的缓冲区大小。如果缓冲区太小,新的消息将会覆盖旧的消息。这有可能会导致问题。但是,如果缓冲区大小过大将会浪费系统缓存。no logging buffered命令将禁止消息被写入内部缓存。

  用户可以使用show logging命令显示内部缓冲区的内容。如果用户需要某一时间段的信息,首先使用NTP或者手工设置时钟,具体操作为:
  YH-Router#clock set 11:37:00 December 2000
  YH-Router#sh clock
  11:37:03.596 PST Fri Dec 11 2000

  日志消息的时间戳和调试信息可以使用以下全局配置命令:
  YH-Router (config)#service timestamps log datetime
  YH-Router (config)#service timestamps debug datetime

  terminal monitor命令将在当前终端上显示调试时的日志信息。该命令不是一个配置命令。相反,它可以通过telnet到路由器时在命令行方式下使用。

  在大多数情况下,用户可能需要显示某一级别的日志信息。因此,日志信息被分为八个不同的级别,按照重要程度由高到低排列如下:
  & #61550;  ;; Emergencies
  & #61550;  ;; Alerts
  & #61550;  ;; Critical
  & #61550;  ;; Errors
  & #61550;  ;; Warnings
  & #61550;  ;; Notifications
  & #61550;  ;; Informational
  & #61550;  ;; Debugging   

  例如,需要在控制台上显示严重程度等于或者大于警告(Warning)的所有日志信息,可以使用下述全局配置命令:
  logging console warning

  类似的,将某种类型的日志信息发送到当前的终端时,使用
  logging monitor level

  或者将信息发送到Syslog服务器时使用
  logging trap level

  与terminal monitor命令不同,logging monitor命令是路由器配置的一部分。前一种命令不允许在不同的安全级别下执行。

  需要注意的是,将日志记录到不同的位置时,系统开销变化很大。将日志记录到控制台的开销比较大,然而将日志记录到虚拟终端时开销较小。使用Syslog服务器时开销更小。系统开销最小的日志写入方式是写入内部缓冲区。

核心转储(Core Dump)

  为了查找路由器崩溃的原因,我们可以使用许多命令来获取有效的信息。其中我们已经讲解了show stacks命令的用法。核心转储是系统内存映象的拷贝,它可以被写入到TFTP服务器中。从这个二进制文件中,我们可以获得与路由器崩溃或者严重误操作相关的信息,通过这些信息可以排除可能的故障。

  下面的配置命令将核心转储写入到命令中IP地址对应的TFTP服务器上:
  exception dump ip-address

  write core命令通常用于路由器发生严重的误操作但是没有完全崩溃时,保存核心映像。

  只有运行IOS v 9.0或更高版本的服务器才可以使用核心转储。但是,需要注意的是,在使用核心转储时,最好获取有经验的工程师或者Cisco TAC的支持。

结束语

  要顺利地诊断并排除网络故障,网络工程技术人员必须掌握两种基本的技能。首先是对网络技术和协议要有清楚的理解,它是诊断与排除网络故障的基础。没有适当的知识和经验,故障诊断与排除工具比如路由器诊断命令和网络分析仪都不能发挥其作用。

  网络工程技术人员必须掌握的第二种技能是将所掌握的知识以有条理的方式应用于诊断和排除网络故障的过程中。本文虽然只阐述了一些诊断的命令,但需要强调的是:故障诊断与排除是一种结构化的方法。许多工程技术人员认为故障诊断与排除计划不如研究和应用技术本身重要。事实上,正确的计划在故障诊断与排除过程中往往起决定性的作用。在故障排除过程中,一个偶然的行为可能使故障得以顺利解决,但是它不能替代结构化的故障诊断与排除方法。

  网络故障的排除是一项系统工程,应该经过定义问题、搜集事实、基于事实考虑可能性、建立行动计划、实施计划、观察结果和循环过程等步骤,这一过程就如同软件开发过程的瀑布模型,其重要性是不言而喻的。