A机房业务访问异常问题排查

网络问题排查案例分析

网络设备静默丢包类问题

问题描述

1.业务报障A机房二期10.60段访问B机房非常慢。

ip: 10.60.12.228—>10.13.88.60(表现形式为wget下载数据异常)

2.A机房内部一期到二期好多机器互访都有超时的情况。

ip: 10.39.48.215 -> 10.60.11.147,10.60.12.171,10.60.11.164

3.A机房内部一期到二期有ping不通的情况。

ip: 10.39.48.217 —> 10.60.11.179

4.A机房二期到B机房有不通的情况。

ip: 10.60.12.230–> 10.13.88.60

拓扑环境

A机房 = yz

B机房 = bx

A机房一期server ip段 = 10.60.0.0/16

A机房二期server ip段 = 10.39.0.0/16

B机房server ip段 = 10.13.0.0/16

图1

排查分析过程

从业务方报障来看,所有异常的现象都与A机房相关,故障大概率出在A机房网内。

从A机房二期到B机房这个故障例来分析,登陆两边的服务器进行排查。

1.首先从10.13.88.60上ping 10.60.12.230,发现确实不通。

再用10.60.12.230 ping 10.13.88.60,发现10.13.88.60能够收到icmp request并且正常回复了icmp reply,但10.60.12.230并没有收到reply。

再使用traceroute发现udp包能够到达10.60.12.230并且能够正常收到回包。

并且telnet 10.60.12.230 443或80有概率不通情况。

2.使用数据流探测工具找到指定不通的流,在通过traceroute判断断点在哪里。

通过traceroute显示最后一跳回显在亦庄br5,证明报文丢在了br5.yz至10.60.12.230这条路径上。

再通过逐个隔离问题路径上的设备来缩小问题范围,当隔离core2时故障恢复。

问题定位

通过如上排查步骤可知出现问题的两个最大可能性:

1.报文在br5.yz向core.yz转发时丢包。

2.core2.yz向spine.yz转发时丢包。

问题根因

通过如上问题定位,将故障可能范围缩小到最小,提供给厂商排查。

通过厂商排查,问题根因为:

br5.yz vxlan tunnel与underlay ecmp关联表项下发失败,导致ecmp下一跳未及时更新导致丢包。隔离core2后会触发刷新ecmp和vxlan tunnel表项,因此故障恢复。

触发该问题的动作是:

core4.yz shutdown一个与br5互联的端口触发,此bug的出现概率很低。

解决方案

厂商建议升级新软件版本解决。

故障处理思路及建议

这是一个典型的静默丢包问题,定位思路为:

1.先找到不通业务流的特征。

2.再通过traceroute、流统等工具发送具备该特征的流量确定转发断点位置范围。

3.再通过隔离设备等操作尝试绕过故障路径来快速恢复业务。

4.将上述排查过程描述以及现象提供给厂商排查,定位根因并提供解决方案。