一种应用于电信承载网的灰色故障诊断方法与流程

文档序号:18639201发布日期:2019-09-11 22:45阅读:406来源:国知局
一种应用于电信承载网的灰色故障诊断方法与流程

本发明涉及网络故障诊断,一种应用于电信承载网的灰色故障诊断方法。



背景技术:

在电信承载网中,包含成千上万台服务器,所有业务的数据都要通过电信承载网传输到用户,因此网络故障的发生不是意外而是一种常态。这些网络故障可由如路由配置故障、链路松动、网络设备硬件故障和网络设备软件缺陷等引起。其中灰色故障(grayfailures)是十分常见的,并且是导致服务可用性和性能异常的主要原因。灰色故障的表现形式十分微妙,例如随机数据包丢失(一定概率丢包)、性能下降、片状i/o、内存抖动和非致命异常。不同于故障停止失败(fail-stopfailure),网络中发生灰色故障时丢包是随机的,简单的连通性检测有时会显示连通,有时会显示未连通,所以无法通过简单的连通性来评估检测,必须进行持续性检测。当网络故障发生时,承载网中的业务会受到影响甚至中断。比如对于iptv业务,一个普通的丢包故障就会导致业务中断,中断时间的数量级为几秒甚至几分钟。因此,运营商希望能够快速发现和准确定位网络中的故障。

电信网络中传统的被动监测方式是当用户感知到网络性能问题后,通过snmp协议查询设备计数器或cli方式检索设备信息。这种方式可以监测到明显的故障(cleanfailures),比如链路损坏、线路卡故障。但是灰色故障(grayfailures)会被设备忽略或而无法发现,甚至由于设备软件的一些缺陷,无法正确的报警,因此需要从不同的角度去主动发现问题对网络故障进行发现和定位。针对传统的被动故障诊断方法的缺陷,许多文献提出了主动的故障发现和定位方法。如pingmesh利用tcp或http主动地测量端到端延迟,根据收集到的服务器间的延迟数据,分析出丢包率和99百分位数延迟。如果这两个值大于规定的门限,则pingmesh判断网络中出现了故障。但是该方法无法对故障精确的定位,只能确定故障出现在网络拓扑的哪一层,因此,运维人员需要使用其他网络工具进一步定位故障点。detector使用ip-in-ip技术,在指定路径上进行丢包探测。虽然该方法能精确定位网络故障,但是detector需要设备支持ip-in-ip技术。lossradar在网络设备上安装工具,采集设备信息进行故障定位,该方法需要修改中间网络设备。arjunroy等人提出通过网络设备在数据包中添加标记位,当数据包经过网络设备时,标记位会被修改,从而发现数据包经过的路径信息,但该方法需要修改设备和协议。

这些工作各有各的优势,达到了故障诊断的效果,但是也存在各自的不足。因此,新的网络故障诊断方法需要具有以下特点:(1)易部署,不需要修改设备和协议;(2)准确性,能够准确地对灰色故障进行有效的诊断;(3)快速性,能够快速地发现和定位网络中的故障问题。



技术实现要素:

针对现有技术的不足,本发明提供了一种应用于电信承载网的灰色故障诊断方法,能够发现和定位电信承载网中的灰色故障,且便于在电信承载网中部署。

本发明所提供的技术方案为:

一种应用于电信承载网的灰色故障诊断方法,包括以下步骤:

步骤1、路径探测;获取整个电信承载网络中所有路径的信息;

步骤2、丢包探测;在各条路径上发送udp探测包来测量这些路径的丢包情况;

步骤3、对于所有路径中的每一个接口、链路和设备,分别分析经过其的所有路径的丢包情况,根据丢包情况,诊断出电信承载网中的灰色故障发生位置。

上述灰色故障诊断方法由探测服务器和多个探测客户端共同完成。探测服务器对所有的探测客户端进行远程控制,控制参数包括:

每轮丢包探测中发送的udp探测包总数、每次发送udp探测包数量和发包间隔;发包间隔用来控制udp探测包的发送频率,防止udp探测包占用过多的网络资源;

故障探测定时器的周期,故障探测定时器用来控制每轮丢包探测的时间;

路径探测定时器周期,路径探测定时器用来控制两轮串行路径探测之间的时间间隔;

路径探测所使用的五元组,五元组用来控制丢包探测过程中udp探测包经过的路径,在电信承载网中采用的是ecmp(equal-costmulti-path)路由机制,即固定五元组后,数据包传输的路径就是唯一的;设定若干五元组,使之对应的路径覆盖整个电信承载网;

这些控制参数均保存在探测服务器上的配置文件中。诊断过程中,探测服务器读取该配置文件,获取这些控制参数,并通过tcp连接,将控制参数经控制命令传输给所有的探测客户端。

进一步地,所述步骤1包括以下步骤:

步骤1.1、探测服务器控制所有探测客户端根据给定的五元组,对所有路径同时进行探测(即对所有路径进行并发探测),然后收集探测客户端返回的路径信息,将这些路径进行重复路径消除后保存在数据库中。

进一步地,所述步骤1还包括步骤1.2:探测服务器判断保存的路径信息中,是否存在包含“noreply”地址的路径,若存在,则探测服务器首先控制对应的探测客户端对每一条包含“noreply”地址的路径进行一轮串行探测(即一条一条地探测);然后收集客户端返回的路径信息,并将新收集到的路径信息按五元组与数据库中保存的对应的路径信息进行逐跳对比,替换掉路径中的“noreply”地址,形成新的路径信息,并用该新的路径信息替代掉数据库中的路径信息进行保存;若不存在,则说明已经得到完整的路径,路径探测完成,无需进行串行探测。一轮串行探测可能无法消除路径中的所有“noreply”地址,为保证故障探测的快速性,此处设定在每轮故障诊断前,只进行一轮串行探测。

进一步地,所述步骤1.2中,探测服务器若判断出收集的路径信息中存在包含“noreply”地址的路径,则继续判断此时距离上一轮串行探测的时间是否大于或等于探测定时器周期,若是,则控制探测客户端对包含“noreply”地址的路径进行新一轮的串行探测,否则不控制探测客户端对包含“noreply”地址的路径进行新一轮的串行探测。此步骤用于保证两轮串行探测之间的时间间隔大于等于设定值,以免两轮串行探测的时间太近,探测结果相同,进行无效探测。

进一步地,一轮故障诊断完成之后(故障探测定时器到期之后),返回步骤1.2,连续进行故障探测,并且每一轮故障诊断前先判断保存的路径信息中是否仍存在包含“noreply”地址的路径,若存在,则对所有包含“noreply”地址的路径进行一轮串行探测,通过将不同时间点的路径探测结果进行逐跳对比,逐步消除路径中存在的“noreply”地址,直到路径探测完成;通过故障探测定时器控制每轮故障诊断的时间长度,以得到每轮故障诊断的时间段对应的灰色故障诊断结果。

进一步地,所述步骤2具体为:探测服务器控制探测客户端根据给定的五元组和发包间隔同时在所有的探测路径上发送udp探测包,发送完所有的udp探测包后,计算每条路径的丢包率,并将结果返回给探测服务器。

进一步地,对于每一条路径,其丢包率等于该路径丢失的udp探测包数量除以该路径发送的udp探测包数量;该路径丢失的udp探测包数量=该路径发送的udp探测包数量-该路径接收到的udp探测包数量;该路径发送的udp探测包数量即从该路径的源端口发送至目的端口的udp探测包数量,该路径接收到的udp探测包数量即该路径的目的端口接收到的从该路径的源端口发出的udp探测包数量。如果某条路径的丢包率为0,则该路径发送的udp探测包数量与接收到的udp探测包数量相等;否则,该路径发送的udp探测包数量大于接收到的udp探测包数量。

进一步地,对于每一个链路、接口和设备,定义其一致性等于经过其的丢包路径数量除以经过其的总路径数量,即经过该链路/接口的所有路径中丢包路径的占比;其中丢包路径是指丢包率大于丢包率阈值的路径;

所述步骤3具体为:探测服务器判断是否存在丢包路径,若存在,则认为网络中发生了灰色故障,采用以下方法定位故障位置:首先对所有丢包路径包含的链路进行一致性分析,得到各链路的一致性,筛选出一致性高于设定阈值的链路;然后,对筛选出的链路的接口进行一致性分析,筛选出一致性高于设定阈值的接口;最后基于接口与设备的从属关系进行故障定位,若某设备存在一个一致性高于阈值的接口,则判定该设备该一致性高于阈值的接口发生了故障,若某设备存在两个以上一致性高于阈值的接口,则判定该设备发生了故障;若不存在丢包率大于丢包率阈值的路径,则认为是正常丢包,不会进行一致性分析。

有益效果:

(1)易部署,无需修改设备和协议;

(2)从终端的角度去分析网络故障,能利用采集的数据准确分析出灰色故障;通过周期性采集数据,实现各个时段的故障检测。

(3)通过并发探测,能够快速地对网络故障进行定位;

(4)通过由路径探测定时器控制分时段进行路径探测,消除路径中存在的“noreply”地址,解决了电信承载网中ip级拓扑测量时路由器无响应的问题,并通过改变五元组的方式使探测路径覆盖整个探测电信承载网。

附图说明

图1为本发明实施例流程图。

图2为某省电信承载网故障诊断系统部署示意图

图3为某省电信承载网路径分时段探测方案示意图

图4为某省电信承载网链路和接口覆盖情况统计图。

图5为某省电信承载网测试环境下采用10条并发路径时经过每条链路的路径数量统计图。

图6(a)为本地小规模测试设备拓扑示意图;图6(b)为小规模测试中探测路径组成的设备转发逻辑拓扑图。

图7(a)为链路和接口故障诊断关系示意图;图7(b)为链路和故障一致性分析组成的逻辑拓扑示意图;图7(c)为设备一致性分析物理设备连接示意图。

具体实施方式

下面结合附图对本发明作进一步的说明。

本发明公开了一种应用于电信承载网的灰色故障诊断方法。该方法基于端到端的探测方式得到整个电信承载网络中的路径信息,通过周期性地在网络中各条路径上发送udp探测包来测量这些路径的丢包率,并结合丢包率、路径与链路、接口和设备的相互关系来诊断出网络中的灰色故障。本发明不需要任何硬件更新,能够快速部署在电信承载网环境中,并快速发现和定位网络中的灰色故障。

上述灰色故障诊断方法由探测服务器和多个探测客户端共同完成。探测服务器对所有的探测客户端通过命令的方式进行远程控制,控制命令中的参数包括:每对探测客户端之间探测路径的数量;每轮探测时发送探测包的数量、发包间隔;路径探测所使用的五元组(包括源ip地址、源端口、目的ip地址、目的端口和传输层协议);其中发送间隔用来控制探测包的发送频率,防止探测包占用过多的网络资源;五元组用来控制探测包经过的网络路径,通过改变探测包的五元组中的源端口,网络中采用ecmp机制的路由器会将探测包路由到不同的路径上。这些控制参数均存在探测服务器上的配置文件中,探测服务器读取该配置文件获取这些控制参数,并通过tcp连接,将控制命令传输给探测客户端。

图1为本发明实施例流程图,具体包括以下步骤:

步骤一:初始化,探测服务器获取控制参数;

步骤二:探测服务器判断是否已经采集路径信息,若是,则直接进入步骤三,否则控制探测客户端根据服务器给定的五元组,使用路由追踪程序tracepath(用来追踪并显示报文到达目的主机所经过的路由信息,即报文到达目的主机所经过的路径上各跳的设备接口地址)对整个电信承载网进行并发路径探测,然后将客户端返回的所有路径信息进行重复路径消除,最后按五元组中的源端口的大小顺序保存在数据库中;

步骤三:探测服务器判断路径中是否有包含“noreply”地址(即“noreply”的设备接口地址)的路径,如果有,则继续判断路径探测定时器是否到期或是否为第一次对路径进行串行探测,若是则按以下步骤处理:1)置路径探测定时器为0,开始计时;2)对每一条包含“noreply”的路径按其源目地址通告给相应的客户端,使其根据该路径的五元组用tracepath进行一对一的路径探测;3)收到客户端返回的本次采集到的路径后,按五元组与数据库中对应的路径进行逐跳对比,替换掉“noreply”地址,形成新的路径,并用该路径替代掉数据库中已经保存的路径信息;4)根据tracepath得到的路径集分析出每条路径经过的接口地址和链路,并根据电信网络中传统的被动监控方式得到的地址库信息(该地址库提供每台设备的接口地址信息),结合每条路径上各跳的接口地址,分析得到每条路径经过的设备;5)根据路径集中每条路径经过的接口、链路和设备,分别针对每一个接口、链路和设备,构建经过其的路径集合;6)进行步骤四;否则,说明所有“noreply”地址已经被消除,已经得到了完整的路径,路径探测计时器不会再生效进入步骤四;如果没有包含“noreply”地址的路径,则直接进入步骤四;

步骤四:置路径探测定时器为0,开始计时;探测服务器控制探测客户端根据每条探测路径对应的五元组发送探测包(在所有的探测路径上按给定的五元组同时发送udp探测包),计算每条路径的丢包率;探测服务端收集探测客户端计算的路径丢包率信息;丢包率的计算公式为:

步骤五:探测服务器收到所有的路径丢包率信息后,判断是否存在丢包路径,即丢包率大于丢包率阈值的路径,若存在,则认为网络中发生了灰色故障,则对所有丢包路径统一进行一致性分析以定位灰色故障的位置。首先对所有丢包路径包含的链路进行一致性分析,得到所有链路的一致性和丢包率,筛选出一致性高于设定阈值的链路;然后对筛选出的链路的接口进行一致性分析,筛选出一致性高于设定阈值的接口;最后基于接口与设备的从属关系进行故障定位:若某设备存在一个一致性高于阈值的接口,则判定该设备该一致性高于阈值的接口发生了故障,若某设备存在两个以上一致性高于阈值的接口,则判定该设备发生了故障。若不存在丢包率大于丢包率阈值的路径,则认为是正常丢包,不会进行一致性分析。

具体一致性分析公式如下:

本实施例中,一致性阈值设为0.9,丢包率阈值设为0.01%。若探测路径中,存在丢包率大于0.01%的路径,则认为网络中发生了灰色故障。接着,对所有丢包路径进行一致性分析。首先计算链路的一致性,如果一致性数值高于0.9时则筛选出这些链路;然后对筛选出的链路进行接口一致性分析,如果一致性数值高于0.9,则认为该接口发生了故障。对于设备的故障定位,由于设备包含多个接口,因此它的一致性通常小于0.9,因此对于同时包含多个故障接口的设备在进行设备一致性分析后会直接进行告警,告诉运维人员故障接口所属设备的情况。在系统实际运行时,可根据实际监控情况自行定义合理的阈值大小,进行分析和告警。

步骤六:探测服务器判断故障探测定时器是否到期,若果到期,则返回步骤二;否则等待故障探测定时器到期后,返回步骤二,开始下一轮的故障探测。

图2为某省电信承载网故障诊断系统部署示意图,图中城域网和骨干网组成了电信承载网。本实施例在某省电信的承载网中部署了54台测试客户端。探测客户端由电信运营商分配公网ip地址,接入城域网,探测服务器发送命令到每个探测客户端并收集客户端的路径探测和丢包探测结果进行存储和分析。

图3为路径分时段探测结果示意图。图中比较了四种方案:方案一为客户端对网络中的路径进行并发探测。方案二考虑路由器icmp速率限制,在方案一的基础上对含有“noreply”地址的路径进行多轮串行探测,该方案可以消除部分由路由器icmp速率限制导致的路径中的“noreply”地址。方案三在方案二的基础上,对剩余的含有“noreply”地址的路径在不同时间点进行多轮串行探测,并以最新的路径探测结果为准,该方案的尝试效果并不明显,发现即使长时间探测也无法直接探测得到完整的路径。方案四与方案三一样,在不同时间点进行多轮串行探测,它与方案三的区别在于,将最新的路径探测结果与先前保存的路径探测结果的每一跳地址进行对比并替换“noreply”地址。从图3可以看到使用方案四含有“noreply”地址的路径和链路数为零,说明方案四能够解决电信承载网中路径探测结果中含有“noreply”地址的问题。

图4为某省电信承载网链路和接口覆盖情况统计图。在图中,探测客户端之间使用tracepath探测不同数量的路径。图中给出探测客户端之间探测路径数量为10和100的路径探测结果。从图中可以看出,在探测路径数量变大时,路径探测分析得到链路有所增加,但是设备接口地址数量已保持不变。通过设备接口地址数量可以判断出,在探测客户端直接探测路径数量为10条时已经覆盖了电信承载网中所有设备的接口,且保证经过每条链路的路径数量大于1。

图5为某省电信承载网中客户端探测路径数量为10条的情况下经过每条链路的路径数量统计图,简称链路分布情况。从图中可以看出每条链路至少有两条路径经过,这样利用路径的重叠性有助于精确定位故障发生的位置。

图6(a)中给出了故障一致性分析例子的设备拓扑示意图,图中总共包含三台路由设备,四个探测客户端和一个探测服务器。利用tracepath进行路径探测可以得到的一条路径上各跳的地址addr1,addr2,…,addrn,因此可将这条路径为表示为(addr1,addr2,…,addrn);将这条路径可分解形成不同的链路(即该路径经过的链路),将链路用其两端的接口地址表示,可表示为(addr1-addr2),(addr2-addr3),…,(addrn-1-addrn)。

图6(b)中给出了当每对探测客户端之间根据三个不同的五元组进行路径探测时(探测三条路径)形成的逻辑拓扑图。图6(b)中a1和a2是发送tracepath的源主机,e1和e2是目的主机,b1、b2、b3为路由器b的不同接口,c1、c2和d1、d2对应路由器c、路由器d的不同接口。因此,对于a1到e1,探测的三条路径为(a1,b1,c1,d1,e1)、(a1,b1,c2,d1,e1)和(a1,b1,c3,d1,e1)。同样,对于其他源目地地址对,存在三条不同路径。由于图6(b)中一共有4个源目的地址对,那么从a1和a2开始可得到12条探测路径。在这些路径中,共有11个不同的接口地址:a1、a2、b1、b2、c1、c2、c3、d1、d2、e1、e2。同时,这些路径可分解形成16条不同的链路,分别为:a1-b1、a2-b2、b1-c1、b1-c2、b1-c3、b2-c1、b2-c2、b2-c3、c1-d1、c2-d1、c3-d1、c1-d2、c2-d2、c3-d2、d1-e1、d2-e2。进一步,探测服务器由链路分析得到经过链路a1-b1、a2-b2、d1-e1、d2-e2的路径数量为6条,经过链路b1-c1、b1-c2、b1-c3、b2-c1、b2-c2、b2-c3、c1-d1、c2-d1、c3-d1、c1-d2、c2-d2、c3-d2的路径数量为2条。在链路分析的基础上进行接口分析得到经过接口a1、a2、b1、b2、d1、d2、e1、e2的路径数是6条,经过接口c1、c2、c3的路径数为4。

图7(a)中给出了链路和接口故障诊断关系示意图。定义接口的丢包率等于经过其的所有丢包路径的丢包率之和除以经过其的丢包路径数量,即经过该接口的丢包路径的平均丢包率;假设d1接口发生了灰色故障,造成随机丢包,且丢包率大于0.01%。因为所有探测路径上同时发送的探测包,那么经过d1的所有路径上探测包都会发生一定的数目丢包。对所有丢包路径进行链路一致性分析。经过链路c1-d1、c2-d1、c3-d1的总路径数为2,经过链路d1-e1的总路径为6,这些路径均发生了丢包,可以计算得到c1-d1、c2-d1、c3-d1、d1-e1这四条链路一致性为1。同理,计算得到a1-b1、a2-b2、b1-c1、b1-c2、b1-c3、b2-c1、b2-c2、b2-c3链路一致性为0.5;而c1-d2、c2-d2、c3-d2、d2-e2这四条链路所在路径没有丢包,因此不需要分析。根据一致性分析的条件,可以筛选出c1-d1、c2-d1、c3-d1、d1-e1这四条链路,但此时并不能对故障进行精确的定位。因为分析的链路是由两台设备的入口地址表示的,如图7(b)所示,链路的右侧存在重叠的接口地址,因此接着对这四条链路的接口进行一致性分析。经过d1和e1的总路径数和丢包路径数均为6条,可以计算得到d1、e1的一致性均为1。而经过接口c1、c2、c3的总路径数为4,丢包路径数为2,可以计算得到计算的一致性都为0.5。因为在该方法中首先保证发送端和接收端不丢包,所以e1不考虑为故障节点,因此本次网络丢包可以判断d1发生了故障,其余一致性小于阈值0.9的接口则判定没有发生故障。从此可以看出当灰色故障表现为某个接口丢包时,可以对故障进行精确定位,给出具体的接口信息及分析结果。

图7(c)中给出设备故障分析时设备物理连接情况示意图。定义设备的丢包率等于经过其的所有丢包路径的丢包率之和除以经过其的丢包路径数量,即经过该设备的丢包路径的平均丢包率;假设设备c由于主板过热等原因发生了灰色故障,造成随机丢包,且丢包率大于0.01%。通过接口一致性分析可知道只有c1、c2满足阈值筛选条件,由于c1和c2为设备c的不同接口,因此可以判断设备c发生了故障。此时经过设备的丢包路径数为4,计算设备一致性为0.75。因此当灰色故障表现为一台设备的多个接口同时丢包时,可以对故障进行精确定位,给出具体的设备信息及分析结果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1