Cisco 路由器故障诊断技术(2)

    show   controller
命令提供连接到路由器接口物理线路以及传输介质的详细信息。并且提供状态的历史信息。其中一些详细信息很少被使用,它们一般仅被TAC技术人员用于解决十分复杂的问题。
    
与协议相关的命令

    
本节将讨论如何使用与不同协议相关的显示命令。

    show protocol
命令给出了路由器运行的协议信息以及路由这些协议的每一个接口的地址信息(如下所示)。

    YH-Router#sh protocol
    Global values:
    Internet Protocol routing is enabled
    Novell routing is enabled
    Serial0 is up, line protocol is up
    Internet address is 171.137.8.130/25
    Novell address is AB890880.0000.30e8.b 7c 8
    Serial1 is administratively down, line protocol is down
    TokenRing0 is up, line protocol is up
    Internet address is 171.137.6.1/25
    Novell address is AB890600.0000.30e8.b 7c 8
    ......
    3.2 Debug
命令
    Cisco IOS
    
软件中包含大量的调试命令。这些命令可以在路由器正常工作或者发生网络故障时获得在路由器中交换的报文和帧的细节信息。调试命令在排除网络故障时的特殊功能,可以减少用户对协议分析仪的需求。在使用调试命令时,需要注意以下几点:
;;
在没有完全掌握调试命令的工作过程以及它所提供的信息时,不要使用调试命令。
n     
;;
n
    
    
调试命令仅能捕获通过过程交换的报文。调试命令会明显增加处理器的负载。某一些命令的负载很小,但是另一些处理器敏感的命令会极大地增加处理器的负担。建议读者在使用调试命令之前,使用命令show
    process
    cpu
检查CPU的负载。即使CPU的负载很小,在使用处理器敏感的命令时仍需要十分慎重。在不能确定的情况下,可以查询Cisco调试命令参考手册。对CPU十分敏感的命令将会产生警告信息。通常情况下,调试命令的大量输出将会增加处理器的负担。

;;
调试命令针对故障排除,监视时最好不要使用这些命令。在获得了足够的信息后,应立刻中止调试命令的执行。
n     
    
下面我们将阐述在Cisco  IOS中可以使用的各种调试命令。为了叙述清楚,我们将所有的调试命令分为三类:全局(系统)调试命令、接口调试命令以及协议调试命令。与show命令类似,这些命令之间并没有严格的界限。
    
首先,需要了解的是有哪些调试命令可以使用。使用与调试相关的帮助,输入
“debug
    ?”
,我们将获得了一个命令的列表,其中每一个命令都包含若干的属性,它们在排除故障时提供各种不同的作用。

    
全局调试

    
在配置Cisco路由器时,全局和接口命令的界限是十分明显的。在这种情况下,我们使用全局来标识那些不能用于接口调试或者特定的传输介质类型和协议调试的命令。例如,在2500系列路由器中,就可以使用调试命令分析Cisco发现协议(
Cisco
    Discovery
    Protocol
CDP)。我们通过telnet远程登录到路由器。在缺省方式下,调试命令的输出被发送到控制台,如果处于telnet会话中,我们可以使用
terminal
    monitor
命令查看输出。

    
接口调试

    debug serial
    interface
命令是直接与路由器接口和传输介质类型相关的调试命令。在下面的示例中,串行接口采用HDLC封装。端到端的HDLC保持活跃的报文每10秒钟交换一次。这表明链路操作正常并且第二层工作正常。show

    interface serial0
命令表明线路协议正常启动。使用undebug all命令关闭所有的调试。
    YH-Router#debug serial interface
    Serial network interface debugging is on
    YH-Router#
    Jun 1 21:54:55 PDT:Serial0: HDLC myseq 171093, mineseen 171093*, yourseen
    1256540,line up
    Jun 1 21:55:05 PDT:Serial0: HDLC myseq 171094, mineseen 171094*, yourseen
    1256541,line up
    Jun 1 21:54:15 PDT:Serial0: HDLC myseq 171095, mineseen 171095*, yourseen
    1256542,line up
    YH-Router#undebug all
    All possible debugging has been turned off
    
协议调试
    
下面我们举协议调试的两个示例。两个示例都与IP协议有关。当然,调试命令适用于所有的其他协议。
    
第一个示例(如下所示)显示ARP调试。ARP调试启动,然后清除ARP缓存,同时产生了ARP请求和响应。首先,我们使用命令清除了路由器上所有的 ARP缓存,因此路由器连接的每一个局域网段都将产生ARP报文。因为我们不需要产生过多的ARP报文,所以所选择的路由器仅与一个以太网段相连。

    YH-Router#debug arp
    ARP packet debugging is on
    YH-Router#clear arp
    YH-Router#
    *Jun 1 21:57:36 PDT: IP ARP: sent req src 171.136.10.1 00e0.1eb9.bbcd
    dst 171.136.10.34 00a 0.24d1.5823 Ethernet0
    *Jun 1 21:57:36 PDT: IP ARP: sent req src 171.136.10.1 00e0.1eb9.bbcd
    dst 171.136.10.10 0080.5f 06.ca3d Ethernet0
    ......
    *Jun 1 21:57:36 PDT: IP ARP: rcvd req src 171.136.10.10 0080.5f 06.ca3d,
    dst 171.136.10.1 Ethernet0
    *Jun 1 21:57:36 PDT: IP ARP: creating entry for IP
    address:171.136.10.10,hw: 0080.5f 06.ca3d
    ......
    
第二个示例(如下所示)显示IP
    RIP
调试。在调试开始时,并没有清空路由器表,因为路由器每隔30秒自动进行一次RIP更新,因此不需要强制更新。与第一个示例中类似,在获得了足够的信息后应该关闭所有的调试。

    YH-Router#debug ip rip events
    RIP event debugging is on
    YH-Router#
    NOV 27 13:55:45 PST: RIP: sending v1 update to 255.255.255.255 via
    TokenRing1/0 (165.48.65.136)
    NOV 27 13:55:45 PST: RIP: Update contains 25 routes
    NOV 27 13:55:45 PST: RIP: Update queued
    NOV 27 13:55:45 PST: RIP: Update contains 6 routes
    NOV 27 13:55:45 PST: RIP: Update queued
    NOV 27 13:55:45 PST: RIP: Update sent via TokenRing1/0
    ......
    YH-Router#undeb all
    All possible debugging has been turned off
    3.3 Ping
命令
    
Ping 是最常使用的故障诊断与排除命令。它由一组ICMP回应请求报文组成,如果网络正常运行将返回一组回应应答报文。ICMP消息以IP数据包传输,因此接收到ICMP回应应答消息能够表明第三层以下的连接都工作正常。
    Cisco
ping命令不但支持IP协议,而且支持大多数其他的桌面协议,如IPXAppleTalk协议的ping命令。我们首先看一下支持IP 协议的ping命令以用户EXEC方式执行的情况,然后再讨论在特权模式下,扩展的ping命令包含的许多强大功能。

    
用户执行模式

    IP PING
简单的
IP
    ping
既可以在用户模式下执行,也可以在特权模式下执行。正常情况下,命令会发送回5个回应请求,5个惊叹号表明所有的请求都成功地接收到了响应。输出中还包括最大、最小和平均往返时间等信息。

    
每一个表明一个echo响应被成功的接受,如果不是号,则表明echo响应未被接收到的原因:
       ! 响应成功接收
    ·
请求超时
    U
目的不可达
    P
协议不可达
    N
网络不可达
    Q
源抑制
    M
不能分段
    
? 不可知报文类型
    
IPX PING IPX ping 命令只能在运行IOS v 8.2及其以上版本的路由器上执行。用户模式下的IPX
    ping
通常仅用于测试Cisco路由器接口。在特权模式下,用户可以ping特定的NOVELL工作站,命令的格式为“ping ipx IPX地址

    APPLETALE PING
该命令使用
Apple Echo
    Protocol
AEP)以确认AppleTalk节点之间的连通性。需要注意的是,目前的Cisco路由器仅对以太网接口支持
Apple Echo
    Protocol
。命令的格式为“ping apple Appletalk地址

    
特权执行模式

    
在特权执行模式下,扩展的ping命令适用于任何一种桌面协议。它包含更多的功能属性,因此可以获得更为详细的信息。通过这些信息我们可以分析网络性能下降的原因而不单单是服务丢失的原因。扩展的ping命令的执行方式也是敲入ping。然后路由器提示各种不同的属性。

    EXTENDED IP PING
其使用方法如下所示:

    YH-Router#ping
    Protocol [ip]:
    Target IP address: 165.48.183.12
    Repeat count [5]: 10
    Datagram size [100]: 1600
    Timeout in seconds [2]:
    Extended commands [n]: y
    Source address or interface: 165.48.48.3
    Type of service [0]:
    Set DF bit in IP header? [no]:
    Data pattern [0xABCD]:
    Loose, Srict, Record, Timestamp, Verbose[none]:
    Sweep range of sizes [n]:
    Type escape sequence to abort.
    Sending 10, 1600-byte ICMP Echoes to 165.58.183.12, timeout is 2 seconds:
    !!!!!!!!!!
    Success rate is 100 percent (10/10), round-trip min/avg/max = 36/39/48 ms
    
首先我们讨论特权模式下的ping的各种可用属性。每种属性的缺省值在括号中显示。
    Protocol
需要测试的协议。

    Target address
测试的目标地址。

    Repeat count
如果出现间歇性的失败或者响应时间过慢,ping重复的次数。

    Datagram size
如果怀疑报文由于延迟过长或者分段失败而丢失,则可以提高报文的大小。例如,我们可以使用1600字节的报文来强制分段。

    Timeout
如果怀疑超时是由于响应过慢而不是报文丢失,则可以提高该值。

    Extended commands
回答确定以获得扩展属性。

    Source address
必须是路由器接口的地址。

    Type of service
根据RFC 791 TOS规定的属性,通常缺省值为0

    Set DF bit in IP header
? 通过设置DF位禁止分段,即使是报文超过了路由器定义的MTU也禁止分段。

    Data pattern [0xABCD]
通过改变数据模式可以测试线路的噪声。

    Loose
StrictRecordTimestamp
Verbose[none]
    
这些都是IP报文头的属性。一般只使用Record属性和Verbose,其他属性很少被使用。Record可以用来记录报文每一跳的地址,Verbose属性给出每一个回应应答的响应时间。。

    Sweep range of sizes [n]
该属性主要用于测试大报文被丢失、处理速度过慢或者分段失败等故障。

    EXTEND IPX PING
扩展的
IPX
    ping
也允许用户修改参数,比如报文大小和重复次数。对用户模式下ping的另一个增强属性是使用了
Novell Standard
    echo
属性。使用这一属性,用户可以ping装载IPX的工作站。如果禁用该属性,Novell IPX设备将不响应ping,因为它们不支持
Cisco
    proprietary IPX ping
协议。用户可以修改设备的属性使它们支持这一特性

    EXTENDED APPLETALK PING
扩展的AppleTalk ping命令是对用户模式下ping的增强,这一点与扩展的
IPX
    ping
类似。与IPIPX扩展ping一样,用户也可以选择Verbose等属性