思科路由器全局、接口、协议调试 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

全局调试
  
  在配置 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 00a0.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.5f06.ca3d Ethernet0
   ......
   *Jun 1 21:57:36 PDT: IP ARP: rcvd req src 171.136.10.10 0080.5f06.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.5f06.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

Ping 命令
  
   Ping 是最常使用的故障诊断与排除命令。它由一组 ICMP 回应请求报文组成,如果网络正常运行将返回一组回应应答报文。 ICMP 消息以 IP 数据包传输,因此接收到 ICMP 回应应答消息能够表明第三层以下的连接都工作正常。
  
   Cisco ping 命令不但支持 IP 协议,而且支持大多数其他的桌面协议,如 IPX AppleTalk 协议的 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 Strict Record Timestamp 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 类似。与 IP IPX 扩展 ping 一样,用户也可以选择 Verbose 等属性。
  
trace
命令
  
   trace 命令提供路由器到目的地址的每一跳的信息。它通过控制 IP 报文的生存期 (TTL) 字段来实现。 TTL 等于 1 ICMP 回应请求报文将被首先发 送。路径上的第一个路由器将会丢弃该报文并且发送回标识错误消息的报文。错误消息通常是 ICMP 超时消息,表明报文顺利到达路径的下一跳,或者端口不可达消息,表明报文已经被目的地址接收但是不能向上传送到 IP 协议栈。
  
  为了获得往返延迟时间的信息, trace 发送三个报文并显示平均延迟时间。然后将报文的 TTL 字段加 1 并发送 3 个报文。这些报文将到达路径的第二个路由器上,并返回超时错误或者端口不可达消息。反复使用这一方法,不断增加报文的 TTL 字段的值,直到接收到目的地址的响应消息。
  
  在有些情况下,使用 trace 命令可能会导致故障。因为 IOS 中存在与 trace 命令相关的 bug 。这些 bug 的相关信息可以从 CCO 得到。另外一个问题是,某些目标站点不响应 ICMP 端口不可达消息。当命令的输出显示一系列星号 (*) 时,就可能碰到了此类站点。用户可以使用 Ctrl-Shift-6 中断命令的执行。
  
  用户执行模式 下面展示了一个简单的在用户执行模式下执行的 trace 命令的输出。到达目的地的距离是 3 跳。 TTL 值为 1 3 个报文的响应消息是 ICMP 超时错误,并且返回报文的 IP 地址有两个。因为路由器 1 和路由器 2 在同一个网段中,并且它们到路由器 3 的距离都是一跳,因此这些路由器都响应该报文。
  
   Router3#trace 171.144.1.39
   Type escape sequence to abort.
   Tracing the route to Router9 (171.144.1.39)
   1 Router2 (165.48.48.2) 0 msec
   Router2 (165.48.48.2) 0 msec
   Router1 (165.48.48.1) 0 msec
   2 165.48.48.129 12 msec
   Router6 (165.48.49.129) 12 msec 12 msec
   3 Router4 (171.133.1.2) 12 msec 12 msec
   Router9 (171.144.1.39) 12 msec 12 msec
   Router3
  
  下面列出了 IP trace 命令的输出中出现的不同字符及其含义:
   XY msec 在接收到响应消息之前的往返延迟 ( 以毫秒为单位 )
   * 报文超时
  ? 报文类型不能识别
   U 端口不可达
   P 协议不可达
   N 网络不可达
   H 主机不可达
   Q ICMP 源抑制
  
  特权模式扩展 Trace 用于扩展 ping 命令的许多属性都可以用来扩展 trace 命令的功能。扩展 trace 命令的特殊属性有:
  
   Numeric display 在缺省情况下, trace 命令的输出中既包括 IP 地址也包括其对应的 DNS 域名。如果用户不需要显示 DNS 域名,则可以使用该属性。
  
   Probe count 其缺省值为 3 ,用户可以根据需要进行调整。
  
   TTL 该值可以在最大和最小 TTL 值之间变化。
  
   Port number 这是一个非常有用的属性,它可以使工程技术人员跟踪特定的传输层端口。因此,不但可以确认源端与目的端之间的 IP 连通性, 而且可以确认高层服务是否可被访问。
  
  与 trace 命令相关的另外一个问题是,如果存在到达目的地的多条路径,返回报文的源地址可能不相同。在这种情况下,用户需要仔细比较不同返回报文的延迟时间。如果仍不能得到明确的结果,可以远程访问路径上的一个或多个路由器,使用 trace 命令访问源地址和目的地址。