Cisco设备Show Interface命令详解

结合Cisco路由器性能测试一书,最近想根据实际操作经验,对Show Interface命令作一个完整的详细解读。Show Interface命令的输出信息量大,包含了该接口方方面面的统计信息,如下所示:

 

Router#show interfaces fastethernet 3/0

FastEthernet3/0 is up, line protocol is up

  Hardware is TSWITCH, address is 00e0.f7a4.5130 (bia 00e0.f7a4.5130)

  MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec, rely 255/255, load 1/255

  Encapsulation ARPA, loopback not set, keepalive set (10 sec)

  Half-duplex, 100BaseTX

  ARP type: ARPA, ARP Timeout 04:00:00

  Last input 00:05:30, output 00:00:00, output hang never

  Last clearing of "show interface" counters never

  Queueing strategy: fifo

  Output queue 0/40, 0 drops; input queue 0/75, 0 drops

  5 minute input rate 0 bits/sec, 0 packets/sec

  5 minute output rate 0 bits/sec, 0 packets/sec

     312 packets input, 18370 bytes, 0 no buffer

     Received 216 broadcasts, 0 runts, 0 giants, 0 throttles

     3 input errors, 0 CRC, 0 frame, 0 overrun, 3 ignored, 0 abort

     0 input packets with dribble condition detected

     15490 packets output, 1555780 bytes, 0 underruns

     2 output errors, 0 collisions, 2 interface resets

     0 babbles, 0 late collision, 0 deferred

     0 lost carrier, 0 no carrier

     2 output buffer failures, 0 output buffers swapped out

 

 

为了便于叙述,逐条命令注释如下:

 

Router# show interfaces fastethernet 3/0

 

  FastEthernet3/0 is up

表示硬件接口是up

如果主动把接口关闭显示的状态是administratively down

如果路由器在活动间隔内收到5000个以上的错误单词Disabled将出现在此字段中

 

  Line protocol is up

这说明软件判断下来此接口是可用的下面谈到的Keepalive字段可用于该检测

 

  Hardware is TSWITCH, address is 00e0.f7a4.5130 (bia 00e0.f7a4.5130)

此接口所用硬件叫做TSWITCH接口MAC00e0.f7a4.5130bia全称为burned-in address

 

  MTU 1500 bytes

数据链路层(二层)规定的最小传输单元的长度, 该值可用接口命令mtu xxx调节,关于二三层MTU的配置,在文章《ospf路由器形成邻接关系的必要条件》有所涉及,请看这里

 

  BW 100000 Kbit,DLY 100 usec

这两个是参考值,默认值是检测硬件得出的,所以通常情况下是定值(串口可能由DSU/CSU的时钟速率决定),如下表:

当然这两个值也可以用命令调节,目的是为了高层协议的策略考虑。譬如OSPF的cost计算要用到BW;而EIGRP会用到BW和DLY,下图为不同接口类型的默认带宽和延迟:

 

 Cisco设备Show Interface命令详解_address

  Rely 255/255

Rely输出衡量了该接口在最近5分钟之内的可靠性,如过该接口是以太网介质,则Rely代表以太网封装的CRC的正确率,255/255表示100%正确。如果这个值过低,可能物理层链路干扰太大。

 

  Load 1/255

Load衡量了该接口的流量负载(很有用!)。该实验接口的输出只显示一个load值,而在目前观察到的大多数设备上都有发送(Txload)接收(rxload)两个方向上的参数,各位有兴趣可以拿手边的路由器看一下。

 

  Encapsulation ARPA

表示此接口的数据链路层封装为目前最常用的Ethernet II(最初在RFC 894中定义,具体封装格式请参见TCP/IP详解卷一第16页)

 

Loopback not set

表示该接口不是loopback

 

  Keepalive set (10 sec)

Keepalive是一种保活机制,该机制会每隔一段时间在接口上发送类似于“Hello”的信令,以检测对端接口时候仍然有效。如本例中的"keepalive 10 sec"表示

110s检测一次

210s之内如果没有收到对方的信令则认为对方的line protocol down

Keepalive时间段可用接口命令更改,命令“no keepalive”可禁用该保活机制。

 

Half-duplex, 100BaseTX

表示接口工作在半双工,并遵循100BaseTX物理层规范,基带速度为100Mbit/s。关于接口双工模式更改的配置,会牵涉到speedduplex的命令组合,我曾在真机上测试过不同组合类型,会在以后文章中详细说明。

 

  ARP type: ARPA, ARP Timeout 4:00:00

ARP协议类型为ARPA,ARP缓存寿命为4小时

 

Last input 00:05:30, output 00:00:00

表示接口在多少时间以前输入或输出最后一个帧,该输出可用于判断接口何时出现故障

 

  output hang never

cisco文档宣称此参数是接口由于上次的某个传输时间太长而重启后所经过的时间,一般会是“never

 

  Last clearing of "show interface" counters 0:56:40

表示离上次执行clear counters命令之后经历了多少时间,“clear counters命令可以把除last input/output“show interfaces”计数器全部清零这可以方便排错

 

  Queueing strategy: fifo

说明该接口采用默认传统的先入先出队列机制

 

  Output queue 0/40, 0 drops; input queue 0/75, 0 drops

该输出显示了入站队列和出站队列的排队情况,从这两个参数可看出可能发生的拥塞情况:

如果出站队列丢失过多,这通常是与设备相连的物理层链路负载太大有关

如果入站队列丢失过多,这通常和路由器的性能有关, 这种情况不太会发生

还要注意的是:如果这个接口启用了包交换,则入站队列的数据包都是CPU直接处理的数据包,关于包交换和包路由的区别,详见这里

 

5 minute input rate 0 bits/sec, 0 packets/sec

  5 minute output rate 0 bits/sec, 0 packets/sec

该接口5分钟内入出站混乱模式)的比特流和数据包的传输速率请注意以下几点

1)要算多个5分钟内这些数值的平均值,数据才会准确。

2)该输出可用于计算数据包的平均长度。

 

  312 packets input, 18370 bytes

自系统加电以来,设备接口收到的无错误总数据包数和总字节数;注意这里的“byte”也包括3层和2层报头。

 

  0 no buffer

这里的参数意为数据包由于路由器内部缓存不够而不得不丢弃的次数,可以和throttle输出结合起来看。注意:

1)如果该错误发生次数不多,可能和暂时的广播风暴有关。

2)如果经常发生,则可能因为路由器需要增加更多的内存

在本例中,该值为0表示路由器工作正常。

 

  Received 216 broadcasts

接受到的广播和多播分组总数,和packets input参数结合起来可算出自加电以来广播和多播占所有数据包的比例,此例中为69%

 

  0 runts

在英文里意为“矮子”,此参数说明接口丢弃的数据长度比协议规定最小长度还小的数据包数量,譬如以太网规定在物理链路上所接受的最小数据长度为72字节。(注意:72这一数值为:46+18+8。46:以太网所允许最小数据包的长度;18:ARPA以太网的报头长度;8:表示前导符(7字节)+SFD(1字节))

如果此错误过多,则问题可能出在物理层链路(譬如冲突)设备物理接口上。

 

0 giants

在英文里意为“巨人”,此参数说明接口丢弃的数据长度比协议规定最大长度还大的数据包数量,譬如以太网规定在物理链路上流动的最大数据长度为1526字节。(同上,1526=1500+18+8)

如果此错误过多,则问题可能出在物理层链路(譬如滞后冲突)设备物理接口上。

 

  0 throttles

这个参数过多不是说路由器的通信问题,而和路由器的内存和CPU有关。意为:路由器由于性能吃紧的原因,向接口数据流“关闭大门”而被丢弃的数据包数。可以和no buffer结合起来看

 

  3 input errors

这里显示了所有入站数据包发生错误的总和;由于一个数据包可能会遇到多个错误,所以该值不一定等于分类统计值的总和。

 

  0 CRC

该参数表示由于遇到CRC重算后不匹配的情况,而被丢弃的数据包数。这通常由于物理层的干扰所致

 

  0 frame

该参数表示因为遇到了CRC错误,而被丢弃的数据包数。这通常由于物理层的干扰所致

  0 overrun

该参数表示接受设备由于对端传得太快,而无法接受数据量的次数我想这可能是由于物理层接口设备的缓存不足或设备故障所致。

 

  3 ignored

该参数表示由于接口缓存不足而丢弃数据包的个数。可以后overrun结合起来看。广播风暴和物理层线路干扰可能导致这个计数器增加。

 

  0 abort

该参数表示该接口接受到一半但突然中断的数据包个数。

 

  0 input packets with dribble condition detected

该参数表示数据包稍微有点长,但还是被设备接受的个数。

 

 

 

 

 

  15490 packets output, 1555780 bytes

自系统加电以来,设备接口发出的无错误总数据包数和总字节数;注意这里的“byte”也包括3层和2层报头。

 

   0 underruns

该参数表示路由器的传输器运行太快以至于路由器本身无法跟上的次数。

 

   2 output errors

这里显示了所有出站数据包发生错误的总和;由于一个数据包可能会遇到多个错误,所以该值不一定等于分类统计值的总和。

 

   0 collisions

该参数表示由于遭遇以太网冲突而重传的数据包个数。这通常因为物理层链路太忙了,譬如遇到广播风暴了。

 

   2 interface resets

该参数表示接口完全重启的次数。导致的原因可能是:出站的数据包不发出去长达数秒之久,物理层设备问题,重启等等。

 

   0 babbles

该参数表示传输计数器超时的次数。

 

   0 late collision

该参数表示在接口在传了前导符之后而又发生冲突的次数。这通常由于物理层链路过长,检测冲突的时间也滞后了。

 

   0 deferred

该参数表示路由器由于某种原因延迟传输数据桢的次数。

 

   0 lost carrier

一般和物理层链路故障有关。

 

   0 no carrier

一般和物理层链路故障有关。

 

   2 output buffer failuresoutput buffers swapped out

该参数表示由于“发送缓存”已满的原因,而丢弃数据包的次数。这可能由于数据包发得太快,或物理层链路速度有问题。

 

结论:通过show interface,我们不仅可以了解接口的硬件和配置信息,通常在路由器发生软件内部错误,物理层故障或和缓存相关问题的情况下,show interface可以的一些参数非常有助于排错。Show interface还可用于监控接口进出的负载情况,帮助我们管理网络流量等等作用。