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