简介
本文档介绍如何使用扩展的 ping
和扩展的 traceroute
命令。
先决条件
要求
本文档需要事先了解 ping
和 traceroute
命令。
使用的组件
本文档中的信息基于以下软件和硬件版本:
- Cisco IOS®软件
- 所有 Cisco 系列路由器
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
规则
有关文档规则的详细信息,请参阅Cisco技术提示规则。
此 ping
命令
此 ping
(Packet InterNet Groper)命令是排除设备可访问性故障的常用方法。它使用两个互联网控制消息息协议(ICMP)查询消息、ICMP echo请求和ICMP echo应答来确定远端主机是否处于使用状态。此 ping
命令还测量接收回应应答所需的时间。
此 ping
命令首先向某个地址发送回应请求数据包,然后等待应答。此 ping
只有当ECHO REQUEST到达目标,并且目标能够获取回送到 ping
在预定义的时间间隔内。
扩展 ping
命令
当一个正常的 ping
命令是从路由器发出的,ping的源地址是数据包用于退出路由器的接口的IP地址。如果扩展 ping
命令,可将路由器上的源IP地址更改为任何IP地址。扩展 ping
用于执行更高级的主机可达性和网络连接检查。扩展 ping
命令仅在特权EXEC命令行中运行。普通 ping
可在用户EXEC模式和特权EXEC模式下工作。要使用此功能,请输入 ping
并按Return。系统将提示您输入本文 ping 命令字段说明部分中提供的字段。
此 ping
命令字段说明
下表列出了 ping
命令字段说明。这些字段可使用扩展来修改 ping
命令。
字段 |
描述 |
Protocol [ip]: |
系统将提示输入受支持的协议。请输入 appletalk、clns、ip、novell、apollo、vines、decnet 或 xns。默认值为 ip。 |
目标 IP 地址 |
系统将提示输入要 ping 的目的节点的 IP 地址或主机名。如果您指定了所支持的协议,而不是 IP,请在此处输入该协议的相应地址。默认值为无。 |
Repeat count [5]: |
发送到目标地址的 ping 数据包的数目。默认值为 5。 |
数据报大小 [100]: |
ping 数据包的大小(单位:字节)。默认值:100字节。 |
Timeout in seconds [2]: |
超时间隔。默认值:2(秒)。只有在此时间间隔内接收到 ECHO 回复数据包时,ping 才能宣称成功。 |
Extended commands [n]: |
指定是否显示一系列其他命令。默认为否。 |
入口ping [n]: |
入口ping会模拟在指定入口接口上收到的到目标的数据包。默认为否。 (此选项的可用性与使用的软件版本不同) |
源地址或接口 |
路由器的接口或 IP 地址用作为探针的源地址。路由器通常选择要使用的出站接口的 IP 地址。也可以包含接口,但必须使用正确的语法,如下所示: Source address or interface: ethernet 0 注:这是扩展的 ping 命令。接口不可写作 e0。 |
DSCP值[0]: |
指定差分服务代码点(DSCP)。引入的DSCP值会置于每个探测中。默认值为0。(此选项的可用性与使用的软件版本不同) |
Type of service [0]: |
指定服务类型(ToS)。每次探测中都会放置请求的 ToS,但无法保证所有的路由器都将处理该 ToS。它是Internet服务质量选择。默认值为 0。 |
在 IP 头中设置 DF 位?[no] : |
指定 Don't Fragment (DF) 将在ping数据包上设置位。如果指定为yes,DF选项将不允许对此数据包进行分段,因为此数据包必须经过具有较小最大传输单位(MTU)的数据段,并且您会收到来自要对此数据包进行分段的设备的错误消息。这对于确定通往目的地的路径中的最小MTU非常有用。默认为否。 |
Validate reply data?[no] : |
指定是否验证应答数据。默认为否。 |
Data pattern [0xABCD] |
指定数据模式。使用不同的数据模式进行故障排除 framing 错误和 clocking 串行线路问题。默认值为 [0xABCD]。 |
Loose, Strict, Record, Timestamp, Verbose[none]: |
IP 报头选项。此处提示将提供多个选项以供选择。它们是:
- Verbose 将与其他任何选项一起自动选择。
- 记录是一个非常有用的选项,因为它显示数据包经过的跳数(最多9个)的地址。
- 松散允许您在指定希望数据包通过的跳的地址时影响路径。
- 严格用于指定您希望数据包通过的跃点,但不允许访问其他跃点。
- Timestamp 用于测量到特定主机的往返时间。
此命令的Record选项与traceroute命令之间的区别在于Record选项不仅通知您回应请求(ping)经过的跳数到达目的地,还通知您在返回路径上访问的跳数。使用 traceroute 命令时,无法获取 Echo 应答所选取的路径信息。traceroute 命令将提示输入必填字段。 traceroute命令将请求的选项置于每个探测中。但无法保证所有的路由器(或终端节点)都将处理这些选项。默认值为无。 |
Sweep range of sizes [n]: |
可以改变发送的 Echo 数据包的大小。这被用来确定沿目的地地址路径节点所配置 MTU 的最小尺寸。这样可减少数据包分段导致的性能问题。默认为否。 |
!!!!! |
每个感叹号(!)表示收到回复。句点(.)表示网络服务器在等待应答时超时。有关其他字符的说明,请参阅ping字符。 |
Success rate is 100 percent |
成功返回路由器的数据包百分比。低于80的百分比通常被认为有问题。 |
round-trip min/avg/max = 1/2/4 ms |
具有最小/平均/最大值的协议回应数据包的往返行程时间间隔(以毫秒为单位)。 |
在此图中,主机 1 和主机 2 彼此无法执行 ping 操作。您可以在路由器上解决此问题,以确定是否存在路由问题,或两台主机之一是否未正确设置其默认网关。
Host 1和Host 2无法ping通
对于 ping
从Host 1到Host 2要成功,每台主机需要将其默认网关指向相应LAN网段中的路由器,或者主机需要与使用路由协议的路由器交换网络信息。如果其中一台主机的默认网关设置不正确,或者其路由表中没有正确的路由,则它无法将数据包发送到其地址解析协议(ARP)缓存中没有的目的地。也有可能主机无法相互ping通,因为其中一台路由器没有通往主机从中获取ping数据包的子网的路由。
示例
下面是一个扩展 ping 命令的示例,该 Ping 从路由器 A 以太网 0 接口发往路由器 B 以太网接口。如果 Ping 成功,则表明路由没有问题。路由器 A 了解如何到达路由器 B 的以太网,且路由器 B 了解如何到达路由器 A 的以太网。此外,两台主机都正确设置了默认网关。
如果扩展 ping
路由器A发出的命令失败,这意味着存在路由问题。三台路由器中均可能存在路由问题。路由器A可能丢失到路由器B以太网子网的路由,或者到路由器C和路由器B之间的子网的路由。路由器B可能丢失到路由器A的子网或到路由器C和路由器A之间的子网的路由;路由器C可能丢失到路由器A或路由器B以太网段子网的路由。您必须纠正所有路由问题,然后Host 1必须尝试ping Host 2。如果Host 1仍无法ping通Host 2,则需要检查两个默认网关。可以用扩展 ping 命令检查路由器 A 和路由器 B 之间的以太网连接。
如果从路由器A到路由器B的以太网接口执行正常ping操作,ping数据包的源地址将是传出接口的地址,即serial 0接口(172.31.20.1)的地址。当路由器 B 回复 ping 数据包时,它回复源地址(即 172.31.20.1)。这种方法只测试了路由器 A(172.31.20.1) 的 serial 0 接口和路由器 B (192.168.40.1) 以太网接口之间的连通性。
要测试Router A Ethernet 0(172.16.23.2)和Router B Ethernet 0(192.168.40.1)之间的连通性,请使用扩展 ping
命令。使用扩展 ping
,您将获得用于指定源地址的选项 ping
数据包,如下所示:
RouterA>enable
RouterA#ping
Protocol [ip]:
Target IP address: 192.168.40.1
!--- The address to ping.
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: 172.16.23.2
!---Ping packets are sourced from this address.
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.40.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 36/97/132 ms
!--- Ping is successful.
RouterA#
This is an example with extended commands and sweep details:
RouterA>enable
RouterA#ping
Protocol [ip]:
!--- The protocol name.
Target IP address: 192.168.40.1
!--- The address to ping.
Repeat count [5]: 10
!--- The number of ping packets that are sent to the destination address.
Datagram size [100]:
!--- The size of the ping packet in size. The default is 100 bytes.
Timeout in seconds [2]:
!--- The timeout interval. The ping is declared successful only if the
!--- ECHO REPLY packet is received before this interval.
Extended commands [n]: y
!--- You choose yes if you want extended command options
!--- (Loose Source Routing, Strict Source Routing, Record route and Timestamp).
Source address or interface: 172.16.23.2
!--- Ping packets are sourced from this address and must be the IP address
!--- or full interface name (for example, Serial0/1 or 172.16.23.2).
Type of service [0]:
!--- Specifies Type of Service (ToS).
Set DF bit in IP header? [no]:
!--- Specifies whether or not the Don’t Fragment (DF) bit is to be
!--- set on the ping packet.
Validate reply data? [no]:
!--- Specifies whether or not to validate reply data.
Data pattern [0xABCD]:
!--- Specifies the data pattern in the ping payload. Some physical links
!--- might exhibit data pattern dependent problems. For example, serial links
!--- with misconfigured line coding. Some useful data patterns to test
!--- include all 1s (0Xffff), all 0s (0x0000) and alternating
!--- ones and zeros (0Xaaaa).
Loose, Strict, Record, Timestamp, Verbose[none]:
!--- IP header options.
Sweep range of sizes [n]: y
!--- Choose yes if you want to vary the sizes on echo packets that are sent.
Sweep min size [36]:
Sweep max size [18024]:
Sweep interval [1]:
Sending 179890, [36..18024]-byte ICMP Echos to 192.168.40.1, timeout is 2 seconds:
!--- The count 179890 depends on the values of min sweep,
!--- max sweep, sweep interval and repeat count. Calculations are based on:
!--- 18024(high end of range) - 36(low end of range) = 17988(bytes in range)
!--- 17988(bytes in range) / 1(sweep interval) = 17988 (steps in range)
!--- 17988(bytes in range) + 1 (first value) = 17989(values to be tested)
!--- 17989(values to be tested) * 10(repeat count) = 179890 (pings to be sent)
!--- In order to decrease the value, increase the sweep interval or decrease
!--- the repeat count, or you can even decrease the difference between
!--- Minimum and Maximum sweep size. Based on the previous example, the
!--- number 17890 is an expected value and tries to ping 17890 times.
Packet sent with a source address of 172.16.23.2
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent, round-trip min/avg/max = 1/2/4 ms
!--- Ping is successful.
RouterA#
此 traceroute
命令
其中ping可用于检验设备之间的连接, traceroute
命令可用于发现数据包通往远程目的地的路径以及路由中断的位置。
Cisco UCS Director traceroute
命令用于记录每条ICMP超时消息的来源,以便跟踪数据包到达目的地所采用的路径。
执行 traceroute
命令将一系列用户数据报协议(UDP)数据报发送到远程主机上的无效端口地址(默认33434),每个数据报的生存时间(TTL)值都会增加。
首先,发送三个数据报,每个数据报的 TTL 字段值均设为 1。TTL 值为 1 会导致数据报到达路径中的第一个路由器后就立即超时。然后,此路由器以ICMP超时消息做出响应,表示数据报已过期。
其次,还有另外三个 UDP 消息被发送出去,它们的 TTL 值设置为 2。这会导致通往目标的路径中的第二台路由器返回ICMP超时消息。
此过程会一直持续到数据包到达目的地以及发出该数据包的系统 traceroute
从通往目的地的路径中的每台路由器接收ICMP超时消息。由于这些数据报尝试访问目标主机上的无效端口(默认33434),因此主机会以ICMP端口不可达消息做出响应,这些消息指示端口不可达。此事件将通知 traceroute 程序完成操作。
注:确保您未使用任何VLAN下的no ip unreachables禁用ip unreachable命令。此命令使数据包丢弃消息不包含任何ICMP错误消息。在这种情况下,traceroute不起作用。
扩展 traceroute 命令
扩展 traceroute
命令是 traceroute
命令。扩展traceroute命令可用于查看数据包采用什么路径到达目的地。同时该命令还可用于检查路由。这有助于您排除路由环路故障,或确定数据包在何处丢失(如果路由已丢失或数据包被访问控制列表(ACL)或防火墙阻止)。您可以使用扩展 ping 命令确定连接类的问题,然后使用扩展 traceroute 命令缩小产生问题的范围。
超时错误消息表示中间通信服务器已经看到并丢弃了该数据包。“目标无法到达”错误消息表示目标节点已收到探测功能并将其丢弃,因为它无法传送数据包。如果计时器在回应进入前关闭,跟踪会打印上星号 (*)。发生以下任一情况时,该命令将终止:
- 目的地做出响应
- 超出最大 TTL
- 用户中断对转义序列的跟踪
注:同时按Ctrl、Shift和6可以调用此转义序列。
traceroute命令字段说明
下表列出了 traceroute 命令字段的说明:
字段 |
描述 |
Protocol [ip]: |
系统将提示输入受支持的协议。请输入 appletalk、clns、ip、novell、apollo、vines、decnet 或 xns。默认值为 ip。 |
目标 IP 地址 |
必须输入主机名或 IP 地址。没有默认值。 |
源地址: |
路由器的接口或 IP 地址用作为探针的源地址。路由器通常选择要使用的出站接口的 IP 地址。 |
Numeric display [n]: |
缺省设置是同时显示符号和数字;但是,可以隐藏符号显示。 |
Timeout in seconds [3]: |
等待对探测数据包做出响应的秒数。默认时间为 3 秒钟。 |
Probe count [3]: |
每个 TTL 级别要发送的探测次数。默认计数为 3。 |
Minimum Time to Live [1]: |
第一批探测的 TTL 值。默认值是 1,但可以设置更高的值,以抑制已知跳跃显示。 |
Maximum Time to Live [30]: |
可以使用的最大 TTL 值。默认值为 30。此 traceroute 命令在到达目标或达到此值时终止。 |
Port Number [33434]: |
UDP 探测消息使用的目标端口。默认值为 33434。 |
Loose, Strict, Record, Timestamp, Verbose[none]: |
IP 报头选项。您可以指定任意组合。此 traceroute 命令会针对所需字段发出提示。请注意, traceroute 命令将请求的选项置于每个探测中;但是,无法保证所有路由器(或终端节点)都会处理这些选项。 |
示例
RouterA>enable
RouterA#traceroute
Protocol [ip]:
Target IP address: 192.168.40.2
!--- The address to which the path is traced.
Source address: 172.16.23.2
Numeric display [n]:
Timeout in seconds [3]:
Probe count [3]:
Minimum Time to Live [1]:
Maximum Time to Live [30]:
Port Number [33434]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Type escape sequence to abort.
Tracing the route to 192.168.40.2
1 172.31.20.2 16 msec 16 msec 16 msec
2 172.20.10.2 28 msec 28 msec 32 msec
3 192.168.40.2 32 msec 28 msec *
!--- The traceroute is successful.
RouterA#
注:扩展 traceroute
命令只能在特权EXEC模式下执行,而 traceroute
命令可在用户和特权EXEC模式下运行。
相关信息