网工5年,至今搞不懂这些错误提示
晚上好,我是老杨。
要顺利地诊断并排除网络故障,网工必须掌握两种基本的技能。
首先,是对网络技术和协议要有清楚的理解,它是诊断与排除网络故障的基础。
网工必须掌握的第二种技能,是将所掌握的知识,以有条理的方式,应用于诊断和排除网络故障的过程中。
在故障排除过程中,一个偶然的行为可能使故障得以顺利解决,但是它不能替代结构化的故障诊断与排除方法。
网络故障的排除是一项系统工程,这一过程就如同项目管理中常用到的瀑布模型一样,要精确,才能高效拿到结果。
所以,我觉得精准排错最重要的点在于,你发现网络故障后,得对这个现网的网络环境有个基本的判断。
你要判断它的组网是什么样的,它的配置是什么样的,这些基本的信息你要收集到,你才能对故障进行分析。
这些东西,都可以总结成结构化的思维,在技术的加持之下,迭代成你自己的方法论。
但这一切的前提,都是技术加持到位。
下周二,新的一期网络工程师训练营开启。还是原来的配方,0基础,手把手教学,实用技术。
我特地和训练营的主讲申请了20个入营名额,私信老杨,发送暗号“训练营”,提供对应报名信息,即可成功获得这次技术提升的机会。
01 错误消息的格式,都长啥样?
系统错误消息格式如下:
%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报告错误时,应在错误描述中加入这些信息。
看到这里,想起来这一份《企业网快速构建与排错手册》的资料,可能很适合网工配合文章一起食用。
私信老杨,发送暗号“网络构建”,即可免费领取最新高清资源。
02 错误消息和事件信息的日志
根据错误消息的重要性和有效性,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 2000YH-Router#sh clock11:37:03.596 PST Fri Dec 11 2000
日志消息的时间戳和调试信息可以使用以下全局配置命令:
YH-Router (config)#service timestamps log datetimeYH-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服务器时开销更小。系统开销最小的日志写入方式是写入内部缓冲区。
03 核心转储(Core Dump)
为了查找路由器崩溃的原因,我们可以使用许多命令来获取有效的信息。其中我们已经讲解了show stacks命令的用法。
核心转储是系统内存映象的拷贝,它可以被写入到TFTP服务器中。
从这个二进制文件中,我们可以获得与路由器崩溃或者严重误操作相关的信息,通过这些信息可以排除可能的故障。
下面的配置命令将核心转储写入到命令中IP地址对应的TFTP服务器上:
exception dump ip-address
write core命令通常用于路由器发生严重的误操作但是没有完全崩溃时,保存核心映像。
只有运行IOS v 9.0或更高版本的服务器才可以使用核心转储。但是,需要注意的是,在使用核心转储时,最好获取有经验的工程师或者Cisco TAC的支持。
整理:老杨丨10年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部