思科路由器:⽹络故障诊断与排除命令
在出现⽹络故障时,作为⽹络⼯程师能够及时定位故障并解决⽹络故障是⼗分重要的。CiscoISO操作系统软件提供了⼀组功能丰富的命令,可以⽤来进⾏⽹络故障查与排除、问题诊断以及性能检测。命令⼤致可以分为两类:show命令和debug命令。同时,还包含⼀组⽤于连接这两类命令的clear命令。下⾯我们分别讲解各命令
⽹络故障诊断与排除——show命令
在这⼀节中,我们将讲述最常⽤的show命令,阐述这些命令的输出以及这些命令适⽤于解决的故障类型。为了叙述清楚,这些命令被分为全局系统命令、与接⼝相关的命令和与协议相关的命令。我们仅讨论最常使⽤的命令。
⽹络故障诊断与排除——全局系统命令
本节将列出与路由器软件和硬件相关的输出命令,其中包括存储区和电源。showversion命令是最基本的命令之⼀,它显⽰路由器本⾝以及其所使⽤的软、硬件的基本信息。showhardware命令的功能与showversion命令类似。
命令的输出信息包括:IOS的版本、路由器持续运⾏的时间约23周、最近⼀次重启动的原因、路由器主
存的⼤⼩、共享存储器的⼤⼩、闪存的⼤⼩、IOS映像的⽂件名,以及路由器从何处启动等信息。showversion命令显⽰了路由器的许多⾮常有⽤的信息。在解决问题时,通常应该从这个命令开始收集数据。
如果路由器的多个接⼝同时丢失报⽂,则可能由于路由器内存不⾜或者CPU过载。⽤户可以使⽤showmemory命令检查内存利⽤率(如下所⽰)。CPU利⽤率可以使⽤showprocess命令检查。
1. YH-
Router#showmemoryHeadTotal(b)Used(b)Free(b)Lowest(b)Largest(b)Pro
cessor60DB19C0191954566162924130325321161516411250780Fast6
0DB19C0131072128344272827282684
showmemory的前两⾏显⽰了存储器的⼀般信息,它表明系统有⾜够可⽤的内存。同时它还显⽰内存中没有碎⽚,因为在13.03兆字节可⽤内存中最⼤的可⽤块接近11.25兆字节。内存碎⽚表明内存被划分为了许多不连续的块。它将导致内存的利⽤率降低,严重时可能产⽣内存错误从⽽也严重影响路由器的性能。
现在看⼀看路由器中有许多内存碎⽚的情形(如下所⽰)。此时我们有⾜够多的可⽤内存(8.4兆字节),但是其中最⼤的块仅为0.5兆字节。连续内存中没有⾜够⼤的可⽤块,这有可能导致严重的内存分配问题。这些问题有时表现为⼀个或多个接⼝间歇性的丢失报⽂。此时路由器产⽣内存碎⽚错误消息。
1. HX-
Router#shmemHeadTotal(b)Used(b)Free(b)Lowest(b)Largest(b)Processo
r60DB19C019195456107137128481744192680586748Fast60DB19C01
3107290936401364013640092
使⽤命令showmemoryfree,⽤户可以看到可⽤内存被划分为许多很⼩的碎⽚。需要注意的是,路由器中存在⼀定数量的内存碎⽚是正常的。虽然并没有⼀个很严格的界限来划分内存碎⽚的可接受程度,但是可⽤块的⼤⼩⾄少应该不⼩于可⽤内存的⼀半。⽤户可以通过重新启动路由器来解决这个问题。在重新启动时,系统重新分配内存和缓存空间。此时,⽤户应该监视内存分配的过程。如果再次发⽣类似的情况,则应该咨询CiscoTAC。
⽤户可以使⽤showprocesscpu命令检查路由器的CPU是否过载。该命令将给出路由器CPU的利⽤率,
同时显⽰路由器中不同进程的CPU占⽤率。在下述⽰例中,路由器的CPU⼯作正常。在通常情况下,在5分钟内CPU的平均利⽤率⼩于60%是可以接受的。如果怀疑CPU利⽤率出现了问题,则需要不断地监视这⼀参数,因为它可能在短时间内发⽣变化。最好每10秒钟使⽤⼀次该命令。通过这种⽅法,可以清楚地了解CPU利⽤率的波动情况。
1. YH-
Router#shprocesscpuCPUutilizationforfiveseconds:15%/4%;oneminute:1
75;fiveminutes:19%PIDRuntime(ms)InvokeduSecs5Sec1Min5MinTTYPro
cess14601845380085850.00%0.00%0.00%0NTP225274953623842051
060100.00%2.35%2.1326155236913595828620.3
2%0.25%0.22%0IPBackground1431772015015021160.00%0.00%0.00%
<23515983801350948513810.32%0.24%0.28%0IPXInp
ut24867921242366207136670.98%0.87%0.89%0IPXRIP254384809481
2338416135537.94%3.31%3.
如果CPU的平均利⽤率超过了80%,则表明路由器过载。下⼀步需要检测那⼀些进程导致了CPU利⽤率过⾼。在上⾯的显⽰中,我们可以看到进程IPXSAP占⽤了绝⼤部分的CPU处理能⼒,但是它还在可以接受的范围之内。有时候,如果SRBbackground参数持续过⾼,则表明发⽣了路由⽹桥风暴。
showprocessmemory命令可以⽤来给出路由器可⽤内存的⼀般信息,然后显⽰每⼀个进程所占⽤的内存空间的详细信息。
如果路由器由于临时重启动⽽完全崩溃,则相应的错误消息将包含在showversion命令的输出中。showstack命令⽤于跟踪路由器的堆栈,提供路由器临时重新启动的原因。如果由于错误⽽导致重新启动,堆栈记录将在输出的末尾显⽰。为了抽取与⽹络故障相关的信息,堆栈记录需要解码。这⼀⼯作通常由CiscoTAC⼯程师完成。此外,拥有相应CCO登录ID的⽤户可以通过将showstack命令的输出发送到CCO⽽获得解码信息。堆栈记录解码的结果有时与Cisco路由器的bug有关。
当⽤户向CiscoTAC报告⽹络故障时,⽀持技术⼈员通常要求⽤户发送showtech_support命令的输出结果。这个命令将导致下述命令的按序执⾏:Showversion、Showcontrollers、Showbuffers、Showinterface、Showstack、Showprocesscpu、Showprocessmemory和Showrunning-config。这些命令的组合将给出路由器配置以及⼤多数关键性能参数的详细信息。
showtech_support命令的输出对于CiscoTAC技术⼈员解决复杂⽹络问题是⼗分有⽤。
⽹络故障诊断与排除——与接⼝相关的命令
下⾯我们将阐述⼀些直接与路由器活跃接⼝相关的命令。showipinterfacebrief将显⽰每⼀个路由器接⼝的IP地址信息以及第⼆层的状态信息(如下所⽰)。其他与IP对应的协议的相关性信息可以通过相应命令属性获得,⽐如showipxinterfacebrief。
网络故障的六个命令
1. YH-Router#shipinbriefInterfaceIP-AddressOK?
MethodStatusProtocolTokenRing0/0172.26.12.3YESNVRAMupupToken
Ring0/1172.27.12.3YESNVRAMupupTokenRing0/2172.28.12.3YESNVR
AMupupTokenRing0/3unassignedYESNVRAMadministrativelydowndow
nEthernet1/0172.30.12.3YESNVRAMupupEthernet1/0172.31.12.3YESN
VRAMupupEthernet1/0172.32.12.3YESNVRAMupupEthernet1/0172.33.1
2.3YESNVRAMupup
showinterface命令可以获得更多的信息。我们以以太⽹为例来讨论这些通⽤接⼝参数。
1. YH-
Router#shinte1/0Ethernet1/0isup,lineprotcolisupHardwareiscxBusEthern
et,addressis00e0.f78a.6d40(bia00e0.f78a.6d40)Description:seg=E2LABS
RV1Internetaddressis172.30.12.3/16MTU1500bytes,BW10000Kbit,DLY1
000usec,rely255/255,load1/255EncapsulationARPA,loopbacknotset,keep
aliveset(10sec)ARPtype:ARPA,ARPTimeout04:00:00Lastinput00:00:00,o
utput00:00:00,outputhangneverQueueingstrategy:fifoOutputqueue0/40,44
drops;inputqueue0/75,66114drops5minuteinputrate181000bits/sec,23pac
kets/sec5minuteoutputrate43000bits/sec,26packets/sec525599659packet
sinput,2042735431bytes,0nobufferReceived4004547broadcasts,10runts,
0giants139inputerrors,0CRC,129frame,0overrun,0ignored,0abort0inputpa
cketswithdribbleconditiondetected481020335packetsoutput,1069273018
bytes,47underruns20outputerrors,95880485collisions,0interfaceresets0ba
bbles,0latecollision,0deferred0lostcarrier,0nocarrier0outputbufferfailures,0
outputbuf
2.
3. fersswappedout
其中:
Ethernet1/0isup表明OSI模型的第⼀层成功启动。
Lineprotocolup表明第⼆层成功启动。
Description⽤户⾃定义的描述。使⽤这⼀功能给出接⼝准确的描述是⼗分重要的。在⼀个⼤型组织中,⼀个局部⽹络的⼯程师很难定位发⽣故障的路由器。
MTU指定最⼤传输单元,⽤户可以配置。
BW、Dly、rely、load(带宽、延迟、可靠性和负载):这些参数与IGRP/EIGRP标准有关。带宽和延迟的配置可以影响到路由选择。在⼯作正常的接⼝中,可靠性的值为255。除⾮在⼗分繁忙的条件下,否则负载通常不应超过150/255。
Encapsulation它指在接⼝的第⼆层封装。在以太⽹中,对于IP,Cisco的缺省设置为ARPA,⽽IPX的缺省设置为Novell-Ether。
从输出中还能获取哪些其他的信息呢?读者可以看到,ARPcachetimeout的值为4⼩时(该值为缺省设置)。从路由器接⼝输⼊到输出的时间不到1秒钟。输出从未被挂起。接⼝计数器最后⼀次被清0是在5个星期以前。在评估接⼝的统计信息时,这些数据是⼗分有⽤的。在通常情况下,可以将计数器清0以便作进⼀步的监视。
接⼝所采⽤的是FIFO排队规则。输出队列和输⼊队列的缺省长度分别为40和75。队列中都不包含报⽂。在计数器最后⼀次被清0后,输⼊队列丢失了许多报⽂。但是,正如我们前⾯所说的,计数器5个星期未被清0;因此,该值不能说明⼀定发⽣了⽹络故障。在这种情况下,应该⾸先将计数器清0,然后再监视输出队列的丢失报⽂数。
同时,命令的输出中还显⽰每1秒钟通过路由器接⼝的平均信息量(以字节为单位)以及报⽂数。这些参数的总量信息、路由器接⼝观测到的所有⼴播报⽂的数量也在命令的输出中显⽰。如果⼴播报⽂的数量增长⾮常迅速,尤其是如果相对于输⼊报⽂的数量⾮常⾼,则表明在局域⽹段中有⼴播风暴。由于某些特定的应⽤程序需要频繁使⽤⼴播报⽂,因此确定⼴播报⽂的数量阀值是很困难的。但是,如果⼴播报⽂的数量超过了整个输⼊报⽂的30%,则需要使⽤局域⽹协议分析仪进⼀步检测⽹络。
我们还可以获取接⼝的下列错误检测信息:
Runts是指⼤⼩⼩于最⼩值的报⽂。在⽰例的以太⽹中,该值为64。以太⽹中指定最⼩报⽂⼤⼩⼤⼩是由于在这种传输模式下的⼯作站需要检测碰撞。如果以太⽹段中包含以太⽹中继器并且其距离符合规定的标准,最⼩报⽂⼤⼩⼤⼩可以使处在这种传输模式下的⼯作站检测线路中的任何碰撞。
Giants指⼤⼩超过线路可以承受的最⼤报⽂⼤⼩的报⽂。以太⽹的MTU通常为1500字节,或者最⼤的封装数据为1500字节。
Inputerrors指到达报⽂中检测到的错误,也可能表明⽹段本⾝发⽣了错误。
Outputerrors指输出报⽂中的错误,它可能表明路由器接⼝本⾝发⽣了⽹络故障。
CRCs由于报⽂不正确的以太⽹校验和⽽检测到的循环冗余校验错。它可能由于⽹段的噪声引起,或者
由于⽹卡故障、报⽂冲突引发。CRC的频率应是每100000个输⼊报⽂中发⽣⼀次。
Frameerrors指接收到的帧的类型与路由器以太⽹帧类型(IP协议帧类型为ARPA)不匹配。
Aborts在碰撞检测中过度的重传⽽导致的问题。在以太⽹中,重传的最⼤次数不超过15次。
Dribblecondition指接收到的帧⽐MTU⼤,但不属于Giants。
Babble是指持续接收到可疑的帧。
⽹络故障的排除是很复杂的问题,随着⽹络的发展,这些故障还会相继出现的,所以希望⼤家多多学习这些⽹络故障的排除⽅法。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。