万字总结Ping不通高频解决方案,网工必看!

你们好,我的网工朋友。

Ping是我们网络工程师排除设备访问故障的常见方法,它使用Internet控制消息协议ICMP确定以下内容:

远程设备是否处于可访问状态。

访问远程设备时是否丢失报文。

本端与远程设备之间通信的往返延迟。

但是也常常听网工朋友在群里抱怨:咋又不通呢?

所以今天有空就总结了一下网络Ping不通的一些常见故障和处理方法,希望能帮到你。

今日文章阅读福利:《 H3C经典Ping命令详解 

连ping都没用好,更别说用别的命令了,你说是吧?

还不熟的朋友,看看这份命令详解,深入学习。私信我,发送暗号“ping”,领取这份详解资料。

01 Ping命令格式

Ping命令的参数非常的丰富,用户可以依据检测目的、网络类型、当前网络状况等因素选择不同的参数。

ping [ ip ] [ -a source-ip-address | -c count | -d | { -f | ignore-mtu } | -h ttl-value | -nexthop nexthop-ip-address | -i interface-type interface-number | -m time | -n | -name | -p pattern | -q | -r | { -s packetsize | -range [ min min-size | max max-size | step step-size ] * } | -system-time | -t timeout | -tos tos-value | -v | -vpn-instance vpn-instance-name ] * host [ ip-forwarding ]

02 Ping不通介绍

01 故障分析

Ping不通是指Ping报文在网络中传输,由于各种原因(如链路故障、ARP学习失败等)而接收不到所有Ping应答报文的现象。

如果您需要了解Ping的原理

图1 Ping不通故障组网图

如图1所示,以一个Ping不通的尝试示例,介绍Ping不通故障的定位思路。

02 现象描述

SwitchA Ping不通SwitchD。

表1 Ping命令输出信息描述

项目描述
项目查看所有接口的概要信息
PING 192.168.3.11对IP地址为192.168.3.11的目的主机进行Ping测试,检测目的主机是否可达。
56 data bytes发送的Echo Request报文的长度
press CTRL_C to break在执行命令的过程中,执行Ctrl+C可终止Ping操作
Request time out如果超时时间内没有收到响应报文,则显示“Request time out”。
192.168.3.11 ping statistics对目的主机进行Ping测试的统计结果,包括以下内容:1、packet(s) transmitted:2、发送的ICMP Echo Request报文数目。packet(s) received 3、接收到的ICMP Echo Reply报文数目。% packet loss:未响应报文数占发送报文总数的百分比。4、round-trip min/avg/max:响应时间的最小值、平均值、最大值,单位为毫秒(ms)。Ping失败的时候不会打印该信息。

03 故障定位

如图1所示,Ping操作涉及三个角色:

——源端:Ping报文发起端SwitchA

——中间设备:SwitchB和SwitchC

——目的端:Ping报文接收端SwitchD

当在源端SwitchA上直接Ping IP地址192.168.3.11不通时,直接判定故障出现的原因比较困难。

此时可以缩小故障范围,在SwitchA上分别Ping SwitchB、SwitchC、SwitchD,然后在SwitchB上分别Ping SwitchC、SwitchD,依此类推,最后可以判断出哪一段网络出现故障。

以下述两种情况为例,介绍Ping不通的故障定位方法。

04 情况一

假设故障发生在SwitchA和SwitchB之间,即SwitchA Ping SwitchB的IP地址192.168.1.11不通,定位流程如图2所示(其他直连网段Ping不通的故障处理方法类似),详细的定位方法请参见Ping不通故障定位指导。

05 情况二

假设SwitchA Ping SwitchB的IP地址192.168.1.11能通,SwitchB Ping SwitchC的IP地址192.168.2.21能通,但是SwitchA Ping SwitchC的IP地址192.168.2.21不通。@ 网 络 工 程 师 俱 乐 部

这种情况需要在SwitchA、SwitchB和SwicthC上做ICMP报文的流量统计,进而判断流量是在哪丢弃的,关于流量统计的方法,请参见ICMP报文流量统计。

图2 直连Ping不通流程图

03 Ping不通故障定位指导

01 检查Ping命令是否合理

在SwitchA上检查是否执行了 ping –f 192.168.1.11 命令

如果执行了此操作,则ICMP报文发送的过程中不支持分片,此时需要检查链路上出接口的MTU值。

如果MTU值小于ICMP报文长度,由于ICMP报文的发送过程中不支持分片,如果ICMP报文的大小超过链路的MTU值,ICMP报文将会被丢弃,所以会导致Ping不通。

此时可以通过不使用-f参数或者增大链路MTU值的方式使ICMP报文不被丢弃。

02 检查配置是否正确

若PC直连交换机,确保PC与所属VLAN配置的VLANIF IP地址为同一网段。

若交换机与其他网络设备直连,确保两端设备接口类型、VLAN配置一致,两端VLANIF IP地址为同一网段。以SwitchA为例,查看方法如下:

执行命令 display port vlan 查看GE1/0/1接口的接口类型和VLAN配置。

其中Link Type代表的是接口链路类型,Trunk VLAN List代表的是接口动态加入和静态配置允许通过的VLAN ID。

执行命令 display ip interface brief 查看VLANIF10接口下的IP地址配置。其中IP Address/Mask代表的是接口的IP地址和掩码。

03 检查物理链路状态是否正常

1、检查物理链路连接

查看设备接口指示灯状态,如果是常灭,说明无连接。此时需要更换接口或者网线再进行尝试。

查看光纤或网线连接的接口和网络要求的部署是否一致。

如果不一致,需要重新对接口进行部署。

光纤所带的光模块波长参数需要一致,光模块建议使用华为认证光模块。

如果是通过Eth-Trunk接口连接,执行命令 display eth-trunk trunk-id 检查两端设备上Eth-Trunk中加入的物理成员接口数量是否一致,如果不一致,需要进行Eth-Trunk的重新配置。

如果是手工模式Eth-Trunk,回显如下,其中PortName代表的是加入Eth-Trunk的接口。

如果是LACP模式Eth-Trunk,回显如下,其中ActorPortName代表的是加入Eth-Trunk的接口。

2、检查对应的VLANIF接口是否Up

VLANIF接口UP是能Ping通的前提。

执行命令display ip interface brief查看VLANIF接口的状态,如果VLANIF接口Down,说明该VLAN下没有成员接口Up。

执行命令display interface brief 查看接口状态,保证接口Up。如果接口为Down状态,请首先排除接口Down的故障。

3、如果VLANIF和物理接口均为UP状态检查设备上是否运行了STP、RRPP或Smart Link等二层协议,确认Ping业务经过的物理接口是否被阻塞。

如果接口被阻塞,需要修改相关的配置。

1)执行命令 display stp brief 命令,查看STP状态,回显信息中STP State为FORWARDING表示转发状态,为DISCARDING表示阻塞状态。

2)执行命令 display rrpp verbose [ domain domain-id [ ring ring-id ] ],查看RRPP配置的详细信息,回显信息中Port status为UP表示转发状态,为BLOCKED表示阻塞状态

3)执行命令 display smart-link group all ,查看Smart Link组的状态信息,回显信息中State为Active表示转发状态,为Inactive表示阻塞状态。

04 检查路由是否正常

1、 检查是否有直连路由

如果和交换机连接的是终端设备,检查终端设备上是否配置了正确的网关地址。

如果和交换机连接的是交换机或路由设备,检查设备上是否有正确的回程路由。

在源端执行命令display ip routing-table ip-address 检查有无到对端的路由。

如有路由则显示如下信息,回显字段中Proto为Direct表示为直连路由。

由于遵循最长匹配原则,同一路由前缀,当非直连路由掩码长度大于直连路由时,将导致报文无法从直连接口转发。

若检查目的IP匹配的路由为非直连路由,需排查路由故障。

如果没有路由,则输入上述命令后无任何信息显示,需要检查路由协议配置是否正确。

2、检查是否配置了策略路由

例如:SwitchB在GE1/0/2接口调用策略路由,将SwitchA上送的源IP地址为192.168.1.10的报文重定向到下一跳192.168.2.11。

可以通过下述步骤查看策略路由配置并做相应配置的修改。

a、执行display traffic-policy applied-record命令,查看流策略的应用记录。

b、执行display traffic behavior user-defined behavior-name命令,查看已配置的流行为信息。

c、执行display traffic classifier user-defined classifier-name命令,查看策略中流分类关联的ACL编号。

<SwitchB> display traffic classifier user-defined c1User Defined Classifier Information: Classifier: c1Precedence: 15Operator: ANDRule(s) : if-match acl 3000 //流分类c1关联的ACL为acl 3000

d、执行display acl acl-number命令,查看ACL具体内容。

<SwitchB> display acl 3000
Advanced ACL 3000, 1 rule
Acl's step is 5
rule 5 permit ip source 192.168.1.10 0 //acl 3000中匹配了源地址为192.168.1.10的所有IP

3、修改流策略,保证SwitchA与SwitchB之间的流量正常转发。

配置思路:新建ACL,匹配SwitchA到SwitchB的流量,这部分流量不做重定向。

配置顺序:配置流分类时,先创建不做重定向的流分类,再配置用于重定向的流分类。网 络 工 程 师 俱 乐 部

配置流策略时,先绑定不做重定向的流分类和流行为,再绑定用于重定向的流分类和流行为。

<SwitchB> system-view[SwitchB] acl 3001 //新建ACL[SwitchB-acl-adv-3001] rule permit ip source 192.168.1.10 0 destination 192.168.1.11 0.0.0.255 //匹配SwitchA到SwitchB的IP报文(不做重定向的流量)[SwitchB-acl-adv-3001] quit[SwitchB] traffic behavior b2 //新建流行为[SwitchB-behavior-b2] permit //动作为允许(正常转发,不做重定向动作)[SwitchB-behavior-b2] quit//由于之前的策略已经调用在接口,所以需要先在接口下取消策略调用,再到流策略中解除绑定的流分类,在全局删除流分类后再按顺序配置。[SwitchB] interface GigabitEthernet1/0/1[SwitchB-GigabitEthernet1/0/1] undo traffic-policy inbound //进入接口下取消策略调用[SwitchB-GigabitEthernet1/0/1] quit[SwitchB] traffic policy p1[SwitchB-trafficpolicy-p1] undo classifier c1 //解除策略下绑定的流分类[SwitchB-trafficpolicy-p1] quit[SwitchB] undo traffic classifier c1 //全局下取消之前创建的流分类[SwitchB] traffic classifier c2 //先创建不做重定向的流分类c2[SwitchB-classifier-c2] if-match acl 3001 //在c2中匹配acl 3001[SwitchB-classifier-c2] quit[SwitchB] traffic classifier c1 //再创建用于重定向的流分类c1[SwitchB-classifier-c1] if-match acl 3000 //在c1中匹配acl 3000[SwitchB-classifier-c1] quit[SwitchB] traffic policy p1 //进入流策略,先绑定不做重定向的流分类和流行为,再绑定需要重定向的流分类和流行为[SwitchB-trafficpolicy-p1] classifier c2 behavior b2[SwitchB-trafficpolicy-p1] classifier c1 behavior b1[SwitchB-trafficpolicy-p1] quit[SwitchB] interface GigabitEthernet1/0/1 //进入接口下调用流策略[SwitchB-GigabitEthernet1/0/1] traffic-policy p1 inbound[SwitchB-GigabitEthernet1/0/1] quit

05 检查ARP学习是否正确

执行display arp all命令,检查直连地址的ARP是否学习正常。

下述回显信息中,如果MAC ADDRESS显示的是MAC地址,则代表ARP学习正确

如果显示的是Incomplete,表示当前表项为临时ARP表项,尚未学习到ARP,出现MAC地址后,代表ARP学习完成。

如果ARP学习正确,通过display mac-address interface-type interface-number命令查看MAC表项,确认MAC地址的出接口和ARP的物理出接口是否一致。

若不一致,排查是否存在环路或MAC冲突。

如果ARP学习失败,有以下几种可能性,请参照表1进行排查ARP学习失败的原因(SwitchA向SwitchB发送ARP请求报文)。

表1 ARP学习失败可能的原因

06 检查是否配置黑名单

配置cpu-defend黑名单后,设备将直接丢弃黑名单用户上送的报文

通过display cpu-defend policy查看调用在全局或特定槽位的策略名,然后通过display cpu-defend policy policy-name查看策略中是否配置黑名单(Blacklist),再通过display acl acl-number查看黑名单调用的ACL具体内容

黑名单中应用的ACL,无论其rule配置为permit还是deny,命中该ACL的报文均会被丢弃。

如果策略中配置了黑名单,且黑名单中包含对端IP,请尝试删除黑名单或修改黑名单关联的ACL,保证报文可以被正常处理。

例如:取消防攻击策略test1下的黑名单配置。

如果策略中没有配置黑名单,或者黑名单中不包含对端IP,进行下一步排查。

07 检查报文收发是否正常

如果通过以上步骤排查配置、链路、ARP表项和路由表项均正常,但是仍然Ping不通,接下来检查ICMP报文收发是否正常

1.ICMP统计查询

进行Ping操作时,通过命令display icmp statistics查看ICMP报文的收发情况,ICMP Echo Request和ICMP Echo Reply报文收发是否一致,是否存在checksum错误统计计数

SwitchA Ping SwitchB,以SwitchA的回显为例,Output方向的echo字段代表的是请求报文数目,Input方向的echo reply代表的是应答报文数目,bad checksum代表的是校验错误的报文数目。

在SwitchA上执行Ping操作的前后查看bad checksum计数是否一直增长,如果一直增长,需要检查对端设备SwitchB的协议栈软件回应ICMP报文的格式是否正确。

如果echo和echo reply数目一致,但是仍然Ping不通,接下来需要进行ICMP报文流量统计进而判断报文的收发情况。

如果echo和echo reply数目不一致:

如果SwitchA发出的echo报文数目少于Ping发送的报文数目,说明报文在SwitchA上被丢弃。

如果SwitchA发出的echo报文数目多于SwitchB接收到的echo报文的数目,说明报文在传输链路上被丢弃。

如果SwitchA发出的echo报文数目等于SwitchB接收到的echo报文的数目,但是离开SwitchB的echo reply报文数目少于进入SwitchB的echo报文的数目,说明报文在SwitchB上被丢弃。

如果报文在链路上被丢弃,请更换链路再进行Ping测试;

如果报文在终端或其他厂商设备被丢弃,请排查终端或者其他厂商设备;

如果报文在华为交换机被丢弃,可进入下一步排查或者联系技术支持人员处理。

2.ICMP报文流量统计

以SwitchA为例,介绍如何对ICMP报文做流量统计。

(1)配置进入SwitchA报文的流量统计。

• 配置ACL规则。这里的ACL一定要是高级ACL,编号范围为3000~3999。

• 配置流分类。

• 配置流行为。

• 配置流策略。

在接口上应用流策略

(2)配置离开SwitchA报文的流量统计

配置ACL规则。这里的ACL一定要是高级ACL,编号范围为3000~3999。

• 配置流分类。

• 配置流行为。

• 配置流策略。

• 在接口上应用流策略

如果是交换机直连PC,在连接PC的接口出、入方向调用流统策略;

如果是交换机与其他网络设备直连,建议在两台设备两个接口的出、入方向都使用流量统计。

配置完成后,先执行reset命令清空计数信息,以保证接口流统计数归零,相关命令如下:

reset traffic policy statistics interface GigabitEthernet 1/0/1 inboundreset traffic policy statistics interface GigabitEthernet 1/0/1 outbound

在SwitchA上持续Ping SwitchB,通过display traffic policy statistics interface interface-type interface-number { inbound | outbound } verbose rule-base命令查看接口流量统计信息。

以SwitchA出方向为例,介绍上述display命令的回显,其中Packets和Bytes分别代表报文包个数和报文字节数。

如果离开SwitchA的报文数目少于Ping发送的报文数目,说明报文在SwitchA上被丢弃。

如果离开SwitchA的报文数目多于进入SwitchB的报文数目,说明报文在传输链路上被丢弃。

如果离开SwitchA的报文数目等于进入SwitchB的报文数目,但是离开SwitchB的报文数目少于进入SwitchB的报文数目,说明报文在SwitchB上被丢弃。

如果报文在链路上被丢弃,请更换链路再进行Ping测试;

如果报文在终端或其他厂商设备被丢弃,请排查终端或者其他厂商设备;如果报文在华为交换机被丢弃,可进入下一步排查或者联系技术支持人员处理。

08 检查CPCAR统计是否有过多ICMP报文被丢弃

查看CPCAR的统计情况,检查ICMP报文是否由于CPCAR超出限制被丢弃,相关命令行如下(不同形态、不同版本的命令行有所不同):

对于框式交换机V100R002版本、盒式交换机V100R005版本,执行display cpu-defend icmp statistics all命令查看Drop计数是否在增加。

对于框式交换机V100R003及之后版本、盒式交换机V100R005及之后版本,执行display cpu-defend statistics packet-type icmp all命令查看Drop计数是否在增加。

对于框式交换机V100R003及之后版本、盒式交换机V100R005及之后版本,执行display cpu-defend statistics packet-type icmp all命令查看Drop计数是否在增加。

如果Drop计数在增加,说明存在CAR丢包,可以适当增加CAR值再进行Ping测试,看问题是否解决,最后建议恢复CAR值。

调整CPCAR不当将会影响网络业务,如果需要调整CPCAR,建议联系技术支持人员处理。

修改CAR的命令如下:

配置cpu-defend policy,执行命令car packet-type icmp cir cir-value指定新的CAR值。

将该Policy策略在全局或者指定的接口板应用。全局应用:

[HUAWEI] cpu-defend-policy 1 global  

在指定的接口板应用:

09 检查报文格式是否正确

有时虽然交换机收到了报文,但是可能报文的格式不对,导致无法得到正确处理。例如目的MAC错误,VLAN的CFI被置为1等,此时则需要通过获取报文信息来确认。

在端口获取报文可以更加直接的看到设备上报文的收发情况,可以使用端口镜像或者流镜像获取端口下的所有报文,然后分析ICMP报文格式是否正确。

在镜像获取报文无法实施时,使用capture命令确认报文接收情况,然后分析ICMP报文格式是否正确。

配置镜像查看报文收发情况

如果端口上流量不大,可以配置端口镜像,确认报文的收发情况(以SwitchA为例)。

配置观察口。

配置镜像口,获取双向报文。

如果端口上流量比较大,可以配置流镜像(以SwitchA为例)。配置观察口。

配置ACL规则。

配置流分类。

配置流行为。

配置流策略。

在接口上应用流策略。

通过对镜像报文进行分析,不仅可以确认报文的收发情况,同时可以对报文进行校验,包括:报文的VLAN是否正确、报文的目的MAC地址是否是设备系统MAC地址、报文IP头的checksum是否正确、ICMP的checksum是否正确。

使用capture命令确认报文接收情况 在镜像获取报文无法实施时,也可以使用Capture命令来确认端口收到的报文情况,可以将报文打印到登录终端进行显示,也可以存入.cap文件中保存到设备上,然后对获取到的报文进行分析。

capture命令如下:

10 收集信息并寻求技术支持

1.收集信息

收集上述各个操作步骤的执行结果。

采集logbuffer信息、trapbuffer信息。

采集一键式诊断信息。

<HUAWEI> display diagnostic-information  

若输出诊断信息过长,可以按Ctrl+C停止。

此命令主要用于问题定位,搜集系统诊断信息,搜集时可能会影响系统的性能(例如CPU占用率升高等)。

因此,在系统正常运行时不建议执行此命令。

严禁在连接到设备的多个终端上同时执行display diagnostic-information命令,否则可能造成设备的CPU占用率明显增高,导致设备性能下降。

保存交换机的日志、诊断日志

将框式交换机CF卡中保存的日志、诊断日志文件导出到相关文件路径。

<HUAWEI> cd cfcard:/logfile 

将盒式交换机Flash中保存的日志、诊断日志文件导出到相文件路径。

<HUAWEI> cd logfile/  

2.寻求技术支持

请联系华为技术支持人员获取技术支持。

整理:老杨丨10年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

  • 14
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值