Cisco设备ShowInterface命令详解ShowInterface命令输出信息量大,包含了该接口方方面面的统计信息,如下所示:Router#showinterfacesfastethernet3/0FastEthernet3/0isup,lineprotocolisupHardwareisTSWITCH,addressis00e0.f7a4.5130(bia00e0.f7a4.5130)MTU1500bytes,BW100000Kbit,DLY100usec,rely255/255,load1/255EncapsulationARPA,loopbacknotset,keepaliveset(10sec)Half-duplex,100BaseTXARPtype:ARPA,ARPTimeout04:00:00Lastinput00:05:30,output00:00:00,outputhangneverLastclearingofshowinterfacecountersneverQueueingstrategy:fifoOutputqueue0/40,0drops;inputqueue0/75,0drops5minuteinputrate0bits/sec,0packets/sec5minuteoutputrate0bits/sec,0packets/sec312packetsinput,18370bytes,0nobufferReceived216broadcasts,0runts,0giants,0throttles3inputerrors,0CRC,0frame,0overrun,3ignored,0abort0inputpacketswithdribbleconditiondetected15490packetsoutput,1555780bytes,0underruns2outputerrors,0collisions,2interfaceresets0babbles,0latecollision,0deferred0lostcarrier,0nocarrier2outputbufferfailures,0outputbuffersswappedout为了便于叙述,逐条命令注释如下:Router#showinterfacesfastethernet3/0FastEthernet3/0isup表示硬件接口是up如果主动把接口关闭显示的状态是administrativelydown如果路由器在活动间隔内收到5000个以上的错误,单词Disabled将出现在此字段中Lineprotocolisup这说明软件判断下来此接口是可用的,下面谈到的Keepalive字段可用于该检测HardwareisTSWITCH,addressis00e0.f7a4.5130(bia00e0.f7a4.5130)此接口所用硬件叫做TSWITCH,接口MAC为00e0.f7a4.5130(bia全称为burned-inaddress)MTU1500bytes数据链路层(二层)规定的最小传输单元的长度,该值可用接口命令mtuxxx调节,关于二三层MTU的配置,在文章《ospf路由器形成邻接关系的必要条件》有所涉及,请看这里。BW100000Kbit,DLY100usec这两个是参考值,默认值是检测硬件得出的,所以通常情况下是定值(串口可能由DSU/CSU的时钟速率决定),如下表:当然这两个值也可以用命令调节,目的是为了高层协议的策略考虑。譬如OSPF的cost计算要用到BW;而EIGRP会用到BW和DLY,下图为不同接口类型的默认带宽和延迟:Rely255/255Rely输出衡量了该接口在最近5分钟之内的可靠性,如过该接口是以太网介质,则Rely代表以太网封装的CRC的正确率,255/255表示100%正确。如果这个值过低,可能物理层链路干扰太大。Load1/255Load衡量了该接口的流量负载(很有用!)。该实验接口的输出只显示一个load值,而在目前观察到的大多数设备上都有发送(Txload)和接收(rxload)两个方向上的参数,各位有兴趣可以拿手边的路由器看一下。EncapsulationARPA表示此接口的数据链路层封装为目前最常用的EthernetII(最初在RFC894中定义,具体封装格式请参见TCP/IP详解卷一第16页)Loopbacknotset表示该接口不是loopbackKeepaliveset(10sec)Keepalive是一种保活机制,该机制会每隔一段时间在接口上发送类似于“Hello”的信令,以检测对端接口时候仍然有效。如本例中的keepalive10sec表示:1)每10s检测一次2)10s之内如果没有收到对方的信令则认为对方的lineprotocoldown了Keepalive时间段可用接口命令更改,命令“nokeepalive”可禁用该保活机制。Half-duplex,100BaseTX表示接口工作在半双工,并遵循100BaseTX物理层规范,基带速度为100Mbit/s。关于接口双工模式更改的配置,会牵涉到speed和duplex的命令组合,我曾在真机上测试过不同组合类型,会在以后文章中详细说明。ARPtype:ARPA,ARPTimeout4:00:00ARP协议类型为ARPA,ARP缓存寿命为4小时Lastinput00:05:30,output00:00:00表示接口在多少时间以前输入或输出最后一个帧,该输出可用于判断接口何时出现故障outputhangnevercisco文档宣称此参数是接口由于上次的某个传输时间太长而重启后所经过的时间,一般会是“never”Lastclearingofshowinterfacecounters0:56:40表示离上次执行“clearcounters”命令之后经历了多少时间,“clearcounters”命令可以把除lastinput/output的“showinterfaces”计数器全部清零,这可以方便排错Queueingstrategy:fifo说明该接口采用默认传统的先入先出队列机制Outputqueue0/40,0drops;inputqueue0/75,0drops该输出显示了入站队列和出站队列的排队情况,从这两个参数可看出可能发生的拥塞情况:如果出站队列丢失过多,这通常是与设备相连的物理层链路负载太大有关如果入站队列丢失过多,这通常和路由器的性能有关,但这种情况不太会发生还要注意的是:如果这个接口启用了包交换,则入站队列的数据包都是CPU直接处理的数据包,关于包交换和包路由的区别,详见这里。5minuteinputrate0bits/sec,0packets/sec5minuteoutputrate0bits/sec,0packets/sec该接口5分钟内入出站(在混乱模式下)的比特流和数据包的传输速率,请注意以下几点:1)要算多个5分钟内这些数值的平均值,数据才会准确。2)该输出可用于计算数据包的平均长度。312packetsinput,18370bytes自系统加电以来,设备接口收到的无错误总数据包数和总字节数;注意这里的“byte”也包括3层和2层报头。0nobuffer这里的参数意为数据包由于路由器内部缓存不够而不得不丢弃的次数,可以和throttle输出结合起来看。注意:1)如果该错误发生次数不多,可能和暂时的广播风暴有关。2)如果经常发生,则可能因为路由器需要增加更多的内存。在本例中,该值为0表示路由器工作正常。Received216broadcasts接受到的广播和多播分组总数,和packetsinput参数结合起来可算出自加电以来广播和多播占所有数据包的比例,此例中为69%0runts在英文里意为“矮子”,此参数说明接口丢弃的数据长度比协议规定最小长度还小的数据包数量,譬如以太网规定在物理链路上所接受的最小数据长度为72字节。(注意:72这一数值为:46+18+8。46:以太网所允许最小数据包的长度;18:ARPA以太网的报头长度;8:表示前导符(7字节)+SFD(1字节))如果此错误过多,则问题可能出在物理层链路(譬如冲突)或设备物理接口上。0giants在英文里意为“巨人”,此参数说明接口丢弃的数据长度比协议规定最大长度还大的数据包数量,譬如以太网规定在物理链路上流动的最大数据长度为1526字节。(同上,1526=1500+18+8)如果此错误过多,则问题可能出在物理层链路(譬如滞后冲突)或设备物理接口上。0throttles这个参数过多不是说路由器的通信问题,而和路由器的内存和CPU有关。意为:路由器由于性能吃紧的原因,向接口数据流“关闭大门”而被丢弃的数据包数。可以和nobuffer结合起来看。3inputerrors这里显示了所有入站数据包发生错误的总和;由于一个数据包可能会遇到多个错误,所以该值不一定等于分类统计值的总和。0CRC该参数表示由于遇到CRC重算后不匹配的情况,而被丢弃的数据包数。这通常由于物理层的干扰所致。0frame该参数表示因为遇到了CRC错误,而被丢弃的数据包数。这通常由于物理层的干扰所致。0overrun该参数表示接受设备由于对端传得太快,而无法接受数据量的次数。我想这可能是由于物理层接口设备的缓存不足或设备故障所致。3ignored该参数表示由于接口缓存不足而丢弃数据包的个数。可以后overrun结合起来看。广播风暴和物理层线路干扰可能导致这个计数器增加。0abort该参数表示该接口接受到一半但突然中断的数据包个数。0inputpacketswithdribbleconditiondetected该参数表示数据包稍微有点长,但还是被设备接受的个数。15490packetsoutput,1555780bytes自系统加电以来,设备接口发出的无错误总数据包数和总字节数;注意这里的“byte”也包括3层和2层报头。0underruns该参数表示路由器的传输器运行太快以至于路由器本身无法跟上的次数。2outputerrors这里显示了所有出站数据包发生错误的总和;由于一个数据包可能会遇到多个错误,所以该值不一定等于分类统计值的总和。0collisions该参数表示由于遭遇以太网冲突而重传的数据包个数。这通常因为物理层链路太忙了,譬如遇到广播风暴了。2interfaceresets该参数表示接口完全重启的次数。导致的原因可能是:出站的数据包不发出去长达数秒之久,物理层设备问题,重启等等。0babbles该参数表示传输计数器超时的次数。0latecollision该参数表示在接口在传了前导符之后而又发生冲突的次数。这通常由于物理层链路过长,检测冲突的时间也滞后了。0deferred该参数表示路由器由于某种原因延迟传输数据桢的次数。0lostcarrier一般和物理层链路故障有关。0nocarrier一般和物理层链路故障有关。2outputbufferfailures,0outputbuffersswappedout该参数表示由于“发送缓存”已满的原因,而丢弃数据包的次数。这可能由于数据包发得太快,或物理层链路速度有问题。结论:通过showinterface,我们不仅可以了解接口的硬件和配置信息,通常在路由器发生软件内部错误,物理层故障或和缓存相关问题的情况下,showinterface可以的一些参数非常有助于排错。Showinterface还可用于监控接口进出的负载情况,帮助我们管理网络流量等等作用。