过年过节也是网络管理员、工程师最忙的时候,偏偏在这种时候,网络设备不听话,动不动就故障。小编搜罗了一些Cisco路由器故障诊断 技术 ,包括常用命令的使用,以及 如何 根据错误消息查找故障,希望在您的网络环境出现故障时,及时定位故障并解决故障...
1 引言
本文以CISCO路由式网络为基础,介绍使用诊断工具对Cisco路由器进行故障诊断的方法。限于篇幅,我们所介绍的内容和示例主要是基于IP报文的,基于IPX和Appletalk等协议的诊断技术与此类似。
2 故障诊断与排除命令
Cisco ISO操作系统软件提供了一组功能丰富的命令,可以用来进行故障查找与排除、问题诊断以及性能检测。命令大致可以分为两类:show命令和debug命令。同时,还包含一组用于连接这两类命令的clear命令。下面我们分别讲解各命令
2.1 show命令
在这一节中,我们将讲述最常用的show命令,阐述这些命令的输出以及这些命令适用于解决的故障类型。为了叙述清楚,这些命令被分为全局系统命令、与接口相关的命令和与协议相关的命令。我们仅讨论最常使用的命令。
全局系统命令
本节将列出与路由器软件和硬件相关的输出命令,其中包括存储区和电源。show version命令是最基本的命令之一,它显示路由器本身以及其所使用的软、硬件的基本信息。show hardware命令的功能与show version命令类似。
命令的输出信息包括:IOS的版本、路由器持续运行的 时间 约23周、最近一次重启动的原因、路由器主存的大小、共享存储器的大小、闪存的大小、IOS映像的文件名,以及路由器从何处启动等信息。show version命令显示了路由器的许多非常有用的信息。在解决问题时,通常应该从这个命令开始收集数据。
如果路由器的多个接口同时丢失报文,则可能由于路由器内存不足或者CPU过载。用户可以使用show memory命令检查内存利用率(如下所示)。CPU利用率可以使用show process命令检查。
show memory的前两行显示了存储器的一般信息,它表明系统有足够可用的内存。同时它还显示内存中没有碎片,因为在13.03兆字节可用内存中 最大的 可用块接近11.25兆字节。内存碎片表明内存被划分为了许多不连续的块。它将导致内存的利用率降低,严重时可能产生内存错误从而也严重 影响 路由器的性能。
现在看一看路由器中有许多内存碎片的情形(如下所示)。此时我们有足够多的可用内存(8.4兆字节),但是其中最大的块仅为0.5兆字节。连续内存中没有足够大的可用块,这有可能导致严重的内存分配问题。这些问题有时表现为一个或多个接口间歇性的丢失报文。此时路由器产生内存碎片错误消息。
使用命令show memory free,用户可以看到可用内存被划分为许多很小的碎片。需要注意的是,路由器中存在一定数量的内存碎片是正常的。虽然并没有一个很严格的界限来划分内存碎片的可接受程度,但是可用块的大小至少应该不小于可用内存的一半。用户可以通过重新启动路由器来解决这个问题。在重新启动时,系统重新分配内存和缓存空间。此时,用户应该监视内存分配的过程。如果再次发生类似的情况,则应该咨询Cisco TAC。
用户可以使用show process cpu命令检查路由器的CPU是否过载。该命令将给出路由器CPU的利用率,同时显示路由器中不同进程的CPU占用率。在下述示例中,路由器的CPU工作正常。在通常情况下,在5分钟内CPU的平均利用率小于60%是可以接受的。如果怀疑CPU利用率出现了问题,则需要不断地监视这一参数,因为它可能在短时间内发生变化。 最好 每10秒钟使用一次该命令。通过这种方法,可以清楚地了解CPU利用率的波动情况。
如果CPU的平均利用率超过了80%,则表明路由器过载。下一步需要检测那一些进程导致了CPU利用率过高。在上面的显示中,我们可以看到进程IPX SAP占用了绝大部分的CPU处理 能力 ,但是它还在可以接受的范围之内。有时候,如果SRB background参数持续过高,则表明发生了路由网桥风暴。
show process memory命令可以用来给出路由器可用内存的一般信息,然后显示每一个进程所占用的内存空间的详细信息。
如果路由器由于临时重启动而完全崩溃,则相应的错误消息将包含在show version命令的输出中。show stack命令用于跟踪路由器的堆栈,提供路由器临时重新启动的原因。如果由于错误而导致重新启动,堆栈记录将在输出的末尾显示。为了抽取与故障相关的信息,堆栈记录需要解码。这一工作通常由Cisco TAC工程师完成。此外,拥有相应CCO登录ID的用户可以通过将show stack命令的输出发送到CCO而获得解码信息。堆栈记录解码的结果有时与Cisco路由器的bug有关。
当用户向Cisco TAC报告故障时,支持技术人员通常要求用户发送show tech_support命令的输出结果。这个命令将导致下述命令的按序执行:Show version、Show controllers、Show buffers、Show interface、Show stack、Show process cpu、Show process memory和Show running-config。这些命令的组合将给出路由器配置以及大多数关键性能参数的详细信息。show tech_support命令的输出对于Cisco TAC技术人员解决复杂网络问题是十分有用。
与接口相关的命令
下面我们将阐述一些直接与路由器活跃接口相关的命令。show ip interface brief将显示每一个路由器接口的IP地址信息以及第二层的状态信息(如下所示)。其他与IP对应的协议的相关性信息可以通过相应命令属性获得,比如show ipx interface brief。
show interface命令可以获得更多的信息。我们以以太网为例来讨论这些通用接口参数。
其中:
Ethernet 1/0 is up 表明OSI模型的第一层成功启动。
Line protocol up 表明第二层成功启动 。
Description 用户自定义的描述。使用这一功能给出接口准确的描述是十分重要的。在一个大型组织中,一个局部网络的工程师很难定位发生故障的路由器。
MTU 指定最大传输单元,用户可以配置。
BW、Dly、rely、load(带宽、延迟、可靠性和负载):这些参数与IGRP/EIGRP标准有关。带宽和延迟的配置可以影响到路由选择。在工作正常的接口中,可靠性的值为255。除非在十分繁忙的条件下,否则负载通常不应超过150/255。
Encapsulation 它指在接口的第二层封装。在以太网中,对于IP,Cisco的缺省设置为ARPA,而IPX的缺省设置为Novell-Ether。
从输出中还能获取哪些其他的信息呢?读者可以看到,ARP cache timeout的值为4小时(该值为缺省设置)。从路由器接口输入到输出的时间不到1秒钟。输出从未被挂起。接口计数器最后一次被清0是在5个星期以前。在评估接口的统计信息时,这些数据是十分有用的。在通常情况下,可以将计数器清0以便作进一步的监视。
接口所采用的是FIFO排队规则。输出队列和输入队列的缺省长度分别为40和75。队列中都不包含报文。在计数器最后一次被清0后,输入队列丢失了许多报文。但是,正如我们前面所说的,计数器5个星期未被清0;因此,该值不能说明一定发生了网络故障。在这种情况下,应该首先将计数器清0,然后再监视输出队列的丢失报文数。
同时,命令的输出中还显示每1秒钟通过路由器接口的平均信息量(以字节为单位)以及报文数。这些参数的总量信息、路由器接口观测到的所有广播报文的数量也在命令的输出中显示。如果广播报文的数量增长非常迅速,尤其是如果相对于输入报文的数量非常高,则表明在局域网段中有广播风暴。由于某些特定的应用程序需要频繁使用广播报文,因此确定广播报文的数量阀值是很困难的。但是,如果广播报文的数量超过了整个输入报文的30%,则需要使用局域网协议分析仪进一步检测网络。
我们还可以获取接口的下列错误检测信息:
Runts 是指大小小于最小值的报文。在示例的以太网中,该值为64。以太网中指定最小报文大小大小是由于在这种传输模式下的工作站需要检测碰撞。如果以太网段中包含以太网中继器并且其距离符合规定的标准,最小报文大小大小可以使处在这种传输模式下的工作站检测线路中的任何碰撞。
Giants 指大小超过线路可以承受的最大报文大小的报文。以太网的MTU通常为1500字节,或者最大的封装数据为1500字节。
Input errors 指到达报文中检测到的错误,也可能表明网段本身发生了错误。
Output errors 指输出报文中的错误,它可能表明路由器接口本身发生了故障。
CRCs 由于报文不正确的以太网校验和而检测到的循环冗余校验错。它可能由于网段的噪声引起,或者由于网卡故障、报文冲突引发。CRC的频率应是每100000个输入报文中发生一次。
Frame errors 指接收到的帧的类型与路由器以太网帧类型(IP协议帧类型为ARPA)不匹配。
Aborts 在碰撞检测中过度的重传而导致的问题。在以太网中,重传的最大次数不超过15次。
Dribble condition 指接收到的帧比MTU大,但不属于Giants。
Babble 是指持续接收到可疑的帧。
Deferred 如果线路繁忙,报文在传输时将被延缓发送。
Interface resets 在检测到过多的错误时,路由器将重置接口。这些错误可能存在于局域网段中,也可能是接口本身的错误。在此不能够判断具体是那儿发生故障,但是,如果伴随着大量的输出错误,则表明路由器接口本身发生故障。
Collisions 在以太网中,冲突被分为两大类:early和late。early collision 由发送方在帧的前64个字节进入线路之前检测到的冲突。early collision是以太网CSMA/CD访问方法中的组成部分。early collision通常导致小的被中断的帧或称为runt。Late collision发生在帧的多个字节(大于64)被发送到线路中时产生的冲突。在理论上,以太网不会产生此类冲突。产生late collision的原因包括:
1、电缆违反了距离规则。
2、发生故障的NIC卡不正确地监听线路。
Lost carrier 表明在计数器最后一次清0后,载波和线路协议发生的故障。此类故障通常与路由器无关。例如,载波丢失可能是因为路由器与集线器之间的电缆连接中断。
Buffer parameters show interface命令还提供与缓冲区分配有关的故障信息,它包括no buffer、overruns、ignored、underruns、buffer failures和swapped out buffers等。
上面,我们详细讨论了show interface命令的用法。这些命令的输出提供了与路由器接口相关以及与传输介质相关的参数等有价值的信息。
show controller命令提供连接到路由器接口物理线路以及传输介质的详细信息。并且提供状态的历史信息。其中一些详细信息很少被使用,它们一般仅被TAC技术人员用于解决十分复杂的问题。 |