排障还能这么玩?教你5个好用命令(上)

您所在的位置:网站首页 运行ping命令时发送的报文属于什么协议 排障还能这么玩?教你5个好用命令(上)

排障还能这么玩?教你5个好用命令(上)

2023-06-20 17:23| 来源: 网络整理| 查看: 265

Repeat count [5]: 2 //执行次数

Datagram size [100]: 8100 //数据包大小

Timeout in milliseconds [2000]: 5000 //延迟时间

Extended commands [n]:

Sending 2, 8100-byte ICMP Echos to 10.15.50.1,

timeout is 5000 milliseconds.

!!

Success rate is 100 percent (2/2)

Minimum = 21ms Maximum = 22ms, Average = 21msRG

# ping 10.15.50.1 //ping不通的情况

Sending 5, 100-byte ICMP Echos to 10.15.50.1,

timeout is 2000 milliseconds.

Success rate is 0 percent (0/5)

03 Windows平台的Ping命令

在PC机上或Windwos为平台的服务器上,Ping命令的格式如下:

Ping [ -n number ] [ -t ] [ -l number ] ip-address

-n:Ping报文的个数,缺省值为5;

-t:持续地ping 直到人为地中断,Ctr+Breack暂时中止ping命令并查看当前的统计结果,而Ctr+C则中断命令的执行。

-l:设置Ping报文所携带的数据部分的字节数,设置范围从0至65500。例:向主机10.15.50.1 发出2个数据部分大小为 3000 Bytes的ping报文。

C:\>ping -l 3000 -n 2 10.15.50.1

Pinging 10.15.50.1 with 3000 bytes of data

Reply from 10.15.50.1: bytes=3000 time=321ms TTL=255

Reply from 10.15.50.1: bytes=3000 time=297ms TTL=255

Ping statistics for 10.15.50.1:

Packets: Sent = 2, Received = 2, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 297ms, Maximum = 321ms, Average = 309ms

04 巧用Ping进行故障排除

排障案例① 连通性问题还是性能问题?

案例描述:

工程师小C,在配置完一台路由器之后执行Ping命令检测链路是否通畅。

发现5个报文都没有Ping通,于是检查双方的配置命令并查看路由表,却一直没有找到错误所在。

最后又重复执行了一遍相同的Ping命令,发现这一次5个报文中有1个Ping 通了——原来是线路质量不好存在比较严重的丢包现象。

工程师小C又配置了一台路由器,然后执行Ping命令访问Internet上某站点的IP地址,但没有Ping通。

有了上次的教训小L,再一次Ping了20个报文,仍旧没有响应。于是小L断定是网络故障。

但是在费劲周折检查了配置链路之后仍没有发现任何可疑之处。

最后小L采取逐段检测的方法对链路中的网关进行逐级测试,发现都可以Ping 通,但是响应的时间越来越长,最后一个网关的响应时间在1800ms左右。

会不会是由于超时而导致显示为Ping 不同呢?

受此启发,小L将Ping 命令报文的超时时间改为4000ms,这次成功Ping通了,显示所有的报文响应时间都在2200ms 左右。

建议和总结:

真的是Ping不通吗?这个问题需要定位清楚。

因为连通性问题和性能问题排错的关注点是不一样的——问题定位错误必然会导致排错过程的周折。

使用一般的Ping命令,缺省是发送5个报文的,超时时长是2000ms。

如果Ping不通情况发生,最好能够再用带参数-c和-t的Ping命令再执行一遍。

如:Ping -c 20 -t 4000 ip-address,即连续发送20个报文,每个报文的超时时长为4000ms,这样一般可以判断出到底是连通性问题还是性能问题。

排障案例② 使用大包ping对端进行MTU不一致的故障排除

案例描述:

某次开局,使用RG路由器与其他厂商的某路由器互连,并运行OSPF协议。

数据配置完毕后,一切正常,并在今后相当长的时间内设备运转稳定。但两个月后,用户反馈网络中断。

相关信息显示:

1、登录到两台路由器上,发现双方连接正常,可以相互Ping通对端地址。但OSPF协议中断。

2、登录RG路由器查看邻居状态,发现邻居状态机处于Exstart状态。打开相应的debug开关查看相应的报文信息,发现双方都可以收到Hello报文,但RG路由器发送DD报文后,一直没有收到对方回应的DD报文。

3、登录其他厂商的那台路由器,打开相应的debug开关,发现对方收到RG路由器发送的DD报文后,一发送了相应的DD报文予以回应。

原因分析:

初步断定,RG路由器没有收到DD回应报文,但对方确实发出来了。

既然可以接收到HELLO 报文说明链路是通畅的,而且多播报文的收发也没有问题。

那么有可能是对方发送的DD 报文有错误导致RG路由器拒收,但查看相应的信息,并没有报告接收到错误的DD 报文。

仔细查看某厂商路由器的调试信息发现这个DD报文很大有2000 多字节。

会不会是由于报文太大导致的问题呢?

试着Ping了一个2000字节的报文,结果不通。那么故障原因很可能是——由于双方的MTU不一致导致大包不通。

处理过程:

检查配置,发现对方路由器的MTU设置为4000多而RG路由器的MTU设置为1500,于是修改对端路由器的MTU为1500。

故障排除。

那么为什么工程初期没有问题呢?

这是因为前期DD报文长度小于1500字节,而后来网络扩容导致路由信息过多使DD 报文的长度超过了1500 字节。

建议和总结:

由于Ping 缺省报文是56 个字节,所以显示的Ping 通信息只是表示56字节的报文可以通而并不一定表示其他大小的报文仍旧可以通。

所以,应当善于使用Ping的其他参数来进行故障排除。

排障案例③ A能Ping通B,B就一定能Ping通A吗?

案例描述:

先来看个组网图。

在RouterA上配置一条指向2.0.0.0/8的静态路由:

RouterA(config)# ip route 2.0.0.0 255.0.0.0 1.1.1.1

在RouterA 上Ping RouterB 的以太网地址2.2.2.2,显示可以正常Ping通。

但是在RouterB上Ping RouterA的以太网地址3.3.3.3,却无法Ping通。

原因分析:

由于在RouterB 上却没有相应的配置到3.0.0.0/8 路由,所以从RouterB 上Ping不通RouterA的以太网口3.3.3.3 。

但是为何在A上可以Ping 通2.2.2.2 呢?同样是没有回程路由啊?

打开路由器上的IP报文调试开关发现,原来从RouterA上发出的ICMP报文的源地址填写的是1.1.1.1而不是3.3.3.3

由于两台路由器的s0口处于同一网段,所以响应报文可以顺利到达RouterB。

建议和总结:

A能够Ping通B则B一定能够Ping通A(不考虑防火墙的因素),这句话的对错取决于A和B到底是指主机还是指路由器。

如果是指两台主机,那么这句话就是正确的。

如果是指两台路由器那就是错误的,因为路由器通常会有多个IP地址

现在就有如下问题:当从一台路由器上执行Ping命令它发出的ICMP Echo报文的源地址究竟选择哪一个呢?

实际情况是路由器选择发出报文的接口的IP地址。

今天这期内容就先到这儿。

还想看其他命令的排障案例,关注网络工程师俱乐部,等我更新。

整理:老杨丨10年资深网络工程师,



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3