Ping丢包故障处理方法

1、Ping丢包故障定位思路故障分析

Ping丢包是指Ping报文在网络中传输,由于各种原因(如线路过长、网络拥塞等)而产生部分Ping报文丢弃的现象。在使用Ping命令,出现Ping丢包的现象时,第一步需要确定Ping丢包的网络位置,其次是确定Ping丢包的故障原因,然后依据定位的故障原因再进行解决。

确认Ping丢包的网络位置时一般采用逐段Ping的方法,可以将Ping丢包故障最终确定在直连网段之间。 确认Ping丢包的故障原因一般采用流量统计的方法,通过流量统计可以知道丢弃报文的具体位置、判断故障原因。

导致Ping丢包的原因非常多,也非常复杂,实际故障定位中需要综合考虑各种因素。本文档针对常见Ping丢包故障分析,总结出以下几种常见故障:

物理环境故障;网络环路;ARP问题;ICMP问题。

需要注意并不是Ping丢包就一定表示网络质量差,某些情况下虽然Ping丢包,但是业务是正常的。分析Ping丢包时注意以下两点:

当设备对报文进行硬件转发,速度非常快,就不会丢包。例如,Ping设备端口下挂的电脑。当报文需要CPU进行处理时,CPU繁忙就会丢包。例如:Ping设备上的IP地址。

为了防止网络攻击对设备造成影响,设备具有CPU保护功能,对于超过CPCAR(Control Plane Committed Access Rate)值的ARP、ICMP等报文进行丢弃,造成Ping丢包现象。此种现象不影响业务的正常运行。

2、Ping丢包故障定位

ping网络0.3%丢包率(ping丢包故障处理方法)(1)

图1 Ping测试组网图

如上图1所示,以一个Ping丢包实例,介绍Ping丢包故障定位。

3、Ping丢包故障现象

C:\Users> ping -n 100 192.168.4.41

正在 Ping 192.168.4.41 具有 32 字节的数据:

请求超时。

请求超时。

来自 192.168.4.41 的回复: 字节=32 时间<1ms TTL=128

...

来自 192.168.4.41 的回复: 字节=32 时间<1ms TTL=128

192.168.4.41 的 Ping 统计信息:

数据包: 已发送 = 100,已接收 = 80,丢失 = 20 (20% 丢失),

往返行程的估计时间(以毫秒为单位):

最短 = 0ms,最长 = 0ms,平均 = 0ms

4、Ping丢包故障定位

依据故障发生的可能原因进行故障定位,故障定位方法如下:

1、配置Ping多包。

为了持续复现丢包现象,以便于故障处理,需要持续发送Ping报文。可以配置Ping的-c count参数,发送多个Ping报文。

2、缩小故障范围。

当在PC上直接Ping IP地址192.168.4.41丢包时,直接判定故障出现的原因将非常的困难。此时可以先缩小故障范围,在PC上分别Ping SwitchA、SwitchB、SwitchC和SwitchD,通过Ping结果可以判断出哪一段网络出现故障。本例假设PC上Ping SwitchB时也出现丢包,则可以初步判断丢包发生在SwitchA和SwitchB直连网段之间。

3、配置流量统计。

通过缩小故障范围最终将故障定位在SwitchA和SwitchB之间,为了进一步确认故障点,需要在SwitchA和SwitchB上配置流量统计功能,观察丢包情况。具体理论统计配置方法请参考各设备的说明手册。

4、分析统计结果。

在SwitchA上持续Ping SwitchB。

如果离开SwitchA的报文数目多余进入SwitchB的报文数目,说明传输链路上存在丢包,请依照后面介绍的物理链路故障引起ping丢包进行处理。

如果离开SwitchA的报文数目等于进入SwitchB的报文数目,但是离开SwitchB的报文数目少于进入SwitchB报文数目,说明SwitchB上存在丢包。引起SwitchB设备丢包可能原因分为网络环路和ICMP问题。

登录设备,续查看CPU和接口利用率是否很高、查看是否出现MAC地址漂移。如果出现利用率高或MAC地址漂移现象,请依照后面的网络环路引起ping丢包进行处理。

登录设备,查看是否有ICMP报文被丢弃、查看ICMP报文限速的配置是否过小。如果出现报文被丢弃或ICMP报文限速配置得很小,请依照后面介绍的ICMP问题引起ping丢包进行处理。

如果离开SwitchA的报文数目少于Ping发送的报文数目,说明SwitchA上丢包。引起SwitchA丢包可能原因分为网络环路和ARP问题。

登录设备,查看CPU和接口利用率的情况,查看是否出现MAC地址漂移,如果出现利用率高或MAC地址漂移现象,请依照后面介绍的网络环路引起ping丢包进行处理。

登录设备,查看是否有ARP报文被丢弃。如果出现报文被丢弃现象,请依照后面介绍的ARP问题引起ping丢包进行处理。

5、物理链路故障引起ping丢包分析

通过Ping丢包故障定位思路可以判断出是否由于物理链路故障引起的丢包。物理链路故障常见以下原因:

计算机网卡有问题、设备接口不正常、线缆接头接触不良或松脱、网线过长或出现破损、光纤弯曲度过大、光模块收发的光功率过低、电口协商不一致,如一端自协商一端非自协商。

在实际环境中设备未接地导致静电不能释放、风扇损坏导致设备过热等物理环境问题也会引起Ping丢包。

物理链路故障可以通过观察发现,如光纤弯曲度过大、物理连接线过长、设备或者电脑网卡指示灯显示不正常等。针对物理链路故障,故障的解决的办法一般是更换物理器件,器件更换后故障即可恢复。

6、网络环路故障引起ping丢包分析

以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路。但是使用冗余链路会在交换网络上产生环路,引发广播风暴以及MAC地址表不稳定等故障现象,从而导致用户通信质量较差,甚至通信中断。网络环路会导致设备CPU和端口利用率高,Ping报文被丢弃。

当设备处于存在环路的网络中,设备的反应速度比较缓慢。环路问题判断方法如下:

1、通过display interface brief | include up命令,查看所有UP接口下的流量,存在环路的接口上InUti和OutUti两个计数会逐步增加,甚至到接近100%,远远超过业务流量。

第一次查询:

<SwitchA> display interface brief | include up

...

Interface PHY Protocol InUti OutUti inErrors outErrors

GigabitEthernet0/0/2 up up 0.56% 0.56% 0 0

...

第二次查询:

<SwitchA> display interface brief | include up

...

Interface PHY Protocol InUti OutUti inErrors outErrors

GigabitEthernet0/0/1 up up 76% 76% 0 0

...

2、判断交换机是否存在MAC地址漂移。

可以执行display trapbuffer命令,查看MAC地址漂移的日志来判断。

可以执行mac-address flapping detection命令配置MAC地址漂移检测功能,然后通过display mac-address flapping record命令来判断是否出现MAC地址漂移。

可以多次执行display mac-address来观察,若MAC地址在交换机不同的接口学习到,则存在mac地址漂移。

3、检查CPU的利用率。

通过命令display cpu-usage查看CPU的利用率。网络环路会导致CPU利用率一直很高,Ping报文未来得及处理就被丢弃。

解决此种Ping丢包问题的方法是破除网络环路,可以在设备上部署RRPP、SEP、Smart Link、STP/RSTP/MSTP等协议,对环路进行处理。

7、ARP问题故障引起ping丢包分析

通过前面介绍的Ping丢包故障定位思路断是否由于ARP问题导致Ping丢包。ARP问题常见故障现象:开始(由于ARP学习失败)出现Ping丢包,然后(学习到ARP)在一段时间内(ARP表项老化时间)无丢包现象,后续(再出现ARP学习失败)会继续出现丢包。

常见ARP问题有以下两种:

设备配置了ARP安全功能,如ARP Miss的源抑制、ARP速率抑制等,会导致ARP学习很慢,Ping丢包。 设备受到ARP报文攻击,上送CPU的ARP报文数超过CPCAR值,导致部分ARP报文被丢弃,Ping丢包。

常见问题判断及解决方法如下:

通过display arp packet statistics命令,查看是否有ARP报文被丢弃,分析设备上ARP安全的配置情况,从而判断问题的原因。对于该问题需要重新配置ARP安全,使设备能够正常的处理ARP报文。

通过display cpu-defend statistics命令,查看CPU对于ARP报文处理情况,是否存在报文丢弃。

对于该问题需要检查设备是否受到ARP攻击,正确配置ARP安全来防范攻击,同时增加ARP报文的CPCAR值。配置样例如下:

<SwitchA> system-view

[SwitchA] cpu-defend policy arp

[SwitchA-cpu-defend-policy-arp] car packet-type arp-reply cir 32

Warning: Improper parameter settings may affect stable operating of the system. Use this command under assistance of Huawei engineers. Continue? [Y/N]:y

[SwitchA-cpu-defend-policy-arp] car packet-type arp-request cir 32

Warning: Improper parameter settings may affect stable operating of the system. Use this command under assistance of Huawei engineers. Continue? [Y/N]:y

[SwitchA-cpu-defend-policy-arp] quit

[SwitchA] cpu-defend-policy arp global

8、ICMP问题故障引起ping丢包分析

ICMP问题常见故障现象:

Ping设备时,一旦Ping速度比较快就会丢包,速度慢下来就不会丢包。 Ping大包时出现规律性丢包。 Ping设备时,会出现Ping通几个报文后Ping不通,大约两分钟左右又可以Ping通,Ping通几个报文后又Ping不通。

常见ICMP问题有以下三种:

设备受到ICMP报文攻击,上送CPU的ICMP报文数超过CPCAR值,导致部分ICMP报文被丢弃,Ping丢包。 设备配置ICMP攻击防范,超过速度限制的ICMP报文被丢弃,Ping丢包。 设备配置ICMP限速功能,超过速度限制的ICMP报文被丢弃,Ping丢包。

常见问题判断及解决方法如下:

1、通过display icmp statisticsdisplay anti-attack statistics icmp-flood命令查看是否有ICMP报文被丢弃。

对于该问题需要重新配置ICMP安全,使设备能够正常的处理ICMP报文。

2、检查icmp rate-limit total threshold threshold-value命令的配置情况,了解ICMP流量限速的阈值。

如果阈值过小,则可通过icmp rate-limit total threshold threshold-value命令进行修改,使其允许更多的ICMP报文通过。配置样例如下:

<SwitchA> system-view

[SwitchA] icmp rate-limit enable

[SwitchA] icmp rate-limit total threshold 500

3、通过display cpu-defend statistics packet-type icmp all命令,查看CPU对于ICMP报文处理情况,是否存在报文丢弃。

对于该问题需要检查设备是否受到ICMP攻击,正确配置ICMP安全来防范攻击,同时增加ICMP报文的CPCAR值。ICMP报文的CPCAR值配置样例如下:

<SwitchA> system-view

[SwitchA] cpu-defend policy icmp

[SwitchA-cpu-defend-policy-icmp] car packet-type icmp cir 256

Warning: Improper parameter settings may affect stable operating of the system. Use this command under assistance of Huawei engineers. Continue? [Y/N]:y

[SwitchA-cpu-defend-policy-icmp] quit

[SwitchA] cpu-defend-policy icmp global

还可以通过icmp-reply fast命令使能Ping快回功能来解决CPU丢弃ICMP报文故障。

,