一种基于P4的链路失效检测方法与流程

文档序号:33934428发布日期:2023-04-22 14:23阅读:79来源:国知局
一种基于P4的链路失效检测方法与流程

本发明属于交换机网络链路检测,尤其涉及一种基于p4的链路失效检测方法。


背景技术:

1、随着网络逐渐向超大规模、高密度方向发展,网络可靠性在网络中变得越来越重要,而链路故障是网络拓扑中的一个主要威胁,其包括直接或间接故障。在直接故障的情况下,交换机可以立即检测到故障并快速恢复;而对于间接故障,可能是链路的静默数据包丢失、网络设备配置错误、网络协议设计缺陷或是软件设计缺陷等,这种网络故障会悄无声息地发生,在对网络造成巨大破坏之前,数据包会被丢弃而不会产生任何显式的通知。因此,建立一种快速检测和定位链路的机制,以便快速地发现和定位这种链路失效以减少它们对网络造成的巨大的损害是十分必要的。

2、传统的网络链路失效检测方案有两种方式:基于网络设备的检测以及基于端主机的检测,其中基于网络设备又可以分为基于底层链路检测和基于上层协议检测的方式。

3、基于网络设备的底层链路检测主要是通过底层硬件信号来判断物理链路的状态,以确定是否产生链路故障。例如同步数字体系(synchronous digital hierarchy,sdh)根据光接口状态报警接收线路侧信号丢失(receive loss of singal,r_los)或接收线路侧帧丢失(receive loss of frame,r_lof)等信息。而对于以太网传输链路,物理层芯片可以根据物理介质链接状态指示“link down”或“link up”信息。这些方法都能快速、精确的发现具体的链路故障,然而其局限性也十分明显,即只能发现物理链路上的失效,对于交换机逻辑层面所导致的链路失效错误无法发现。

4、基于网络设备的上层协议检测本质就是交互hello消息以确定链路的正常收发状况。例如传统路由设备中常见的ospf路由协议会交互hello信息以检测邻居链路,并以此更新邻居集,进一步更新路由表,不过ospf发送hello消息的速度较慢,一般为秒级别,因此ospf可以配合使用双向转发检测(bidirectional forwarding detection,bfd),以在其底层实现更加频繁的链路信息交互,这种方式需要交换机硬件进行支持。但是bfd一般运用于传统路由器,对于sdn中的设备,路由协议由控制器运行,怎么在数据平面整合bfd逻辑并在bfd上报链路失效时进一步上报给控制器是一个难点。

5、在sdn中仍可以采用集中式的链路失效检测机制。onos控制器基于上层协议实现了链路探测机制,监控应用程序通过交换机发送探测消息,以发现数据平面链路并维护网络拓扑,这些探测消息的格式符合链路层发现协议(link layer discovery protocol,lldp)。虽然这种机制适用于在亚秒时间粒度内检测链路或节点故障,但它不适用于监控链路或端到端隧道的健康状况以进行保护。基于集中式lldp的监控模型具有严重的可扩展性限制,因为控制器必须参与所有探测消息的处理。

6、基于端主机的探测包是目前最为常用的方式,其本质就通过探针向网络边缘交换机发送数据包,并通过网络到达路径另一端的探针,当探针一段时间没有收到数据包更新时则认为路径中断,此时控制器根据全网中所有被中断的路径集,结合网络拓扑即可推断处失效链路。现有的方法主要根据连接建立时间,使用终端主机之间的tcp或http pings来推断路径上的链路是否断开,收集系统可以以此来统计网络中的路径状态。但这种方式往往需要对多个失效路径整合后进行查找,或者依次traceroute路径以查找失效链路。

7、总的来说,大部分的方案基本都是使用探测包进行链路失效发现。这种方案简便且易于实施,但是弊端却十分明显:

8、1、带宽与失效性不易平衡。如果想要更快的发现链路失效,也就需要更加频繁地发送网络探测包,而这会显著占用网络带宽;

9、2、不易处理拥塞和丢包。只要网络中偶尔出现拥塞,那么网络探测包就可能湮没在交换机队列甚至直接丢失,造成误判;

10、3、不能直接定位链路失效。除了控制器直接使用路径探测方法能够直接探测链路中断外,绝大部分探测方案都需要收集器对于路径收集情况聚合后交给上层由网络拓扑进行推断。


技术实现思路

1、针对现有技术中的上述不足,本发明提供的一种基于p4的链路失效检测方法,检测业务流路径上的链路是否发生链路失效,而对于承载了大量业务流的交换机网络,其中的每条业务路径上的流量其实都可以视为我们往网络中发送的探测,解决了业务流量争夺网络带宽、链路拥塞和链路失效的问题。

2、为了达到上述发明目的,本发明采用的技术方案为:

3、本发明提供一种基于p4的链路失效检测方法,包括监控路径生成阶段,及监控路径跟踪阶段;

4、所述监控路径生成阶段包括如下步骤:

5、a1、初始化各链路e的业务路径集pe,得到各链路的业务流数和各业务路径经过的链路总数;

6、a2、根据用于监控的业务路径选择情况,剔除未被业务路径覆盖的链路e′;

7、a3、根据各链路的业务流数和各业务路径经过的链路总数,查找所有未被监控路径覆盖的链路中业务路径集pe最小的链路,得到最小业务流数链路eminp;

8、a4、基于最小业务流数链路eminp,得到目标探测路径;

9、a5、基于目标探测路径,得到告警码为mask的告警码表项;

10、a6、基于告警码组表项,分别对告警码为mask的链路的两端的交换机添加一条spec端口--mask表项;

11、所述监控路径跟踪阶段包括如下步骤:

12、b1、设置测量间隔δt,针对检测边缘交换机每次从主机侧接收到数据包与上一次发送携带路径元信息的报文的时间间隔超过测量间隔δt时,则对接收到的数据包添加tb_path表项中与spec端口--mask表项对应的告警码mask,并将告警码mask附加至数据包;

13、b2、针对利用交换机接收附加有告警码mask的数据包时,则删除数据包的告警码mask相关字段,且或更新寄存器;

14、b3、针对利用交换机查询到待发送数据包的tb_path表项中与输出端口对应的告警码mask时,则将告警码mask与寄存器数据相与,得到相与结果;

15、b4、针对相与结果为0时,则不将相与结果附加至待发送数据包;

16、b5、针对相与结果不为0时,则将相与结果附加至待发送数据包,并异或更新寄存器;

17、b6、基于步骤b1至b5的监控路径跟踪方法,利用交换机将附加有路径标识信息的数据包在网络中逐跳转发,直至到达边缘交换机,得到携带有路径标识信息的数据包经过的路径path;

18、b7、将路径path传输至int monitor,并针对利用int monitor检测到当前路径path接收到数据包的时间距上一次接收时间超过路径老化时间told时,则确定当前路径path已经中断,完成基于p4的链路失效检测。

19、进一步地,所述步骤a1包括如下步骤:

20、a11、初始化各链路e的业务路径集pe为经过该链路的业务流数,其中,业务路径集pe包括若干条业务路径;

21、a12、将各业务路径经过的链路数tpi作为该业务路径经过的链路总数。

22、进一步地,所述步骤a4包括如下步骤:

23、a41、计算得到经过最小业务流数链路eminp的业务路径权重wpi,并选择业务路径权重wpi最大且业务路径经过链路数tpi最小的第一目标业务路径;

24、a42、判断第一目标业务路径中的所有链路是否均被监控路径覆盖,若是则进入步骤a43,否则返回步骤a41;

25、a43、计算所有未被选取为监控路径的剩余业务路径的业务路径权重wpi′,并选择其中业务路径权重wpi′最大且业务路径经过链路数tpi最小的第二目标业务路径;

26、a44、判断除第二目标业务路径外的所有未被选取为监控路径的剩余业务路径的业务路径权重wpi″是否均为0,若是则进入步骤a45,否则返回步骤a43;

27、a45、将第二目标业务路径中属于同一个告警码ls的链路的权重w设置为∞,并将不属于同一个告警码的链路的权重w减小,得到一条链路的权重w之和最小的第三目标业务路径p;

28、a46、计算第三目标业务路径p两端到边缘交换机的最短距离,得到探测路径;

29、a47、判断探测路径中的所有告警码ls是否均为1,若是则得到目标探测路径,并进入步骤a5,否则返回步骤a45。

30、进一步地,所述步骤a41中的业务路径权重wpi的计算表达式如下:

31、wpi=tpi*(nls-tpi)

32、其中,nls表示具有相同告警码的链路数。

33、进一步地,所述步骤a5包括如下步骤:

34、a51、基于目标探测路径,遍历所有监控路径,并对各监控路径从0到n依次编号;

35、a52、查看所有编号后的监控路径所经过的所有链路,并将各监控路径经过的链路的告警码更改为1,得到告警码为mask的告警码表项。

36、进一步地,所述步骤b2中或更新寄存器的计算表达式如下:

37、register=register|mask

38、其中,register表示寄存器数据,|表示或,mask表示mask相关字段。

39、进一步地,所述步骤b3中相与结果的计算表达式如下:

40、result=mask&register

41、其中,result表示相与结果,&表示与。

42、进一步地,所述步骤b5中异或更新寄存器的计算表达式如下:

43、register=register⊕result

44、其中,⊕表示异或。

45、本发明的有益效果为:本发明提供的一种基于p4的链路失效检测方法,对传统的网络链路失效检测方案进行了改进,从而能平衡网络带宽与检测效率,不再对拥塞与丢包敏感,而且能直接定位失效链路,具体体现在:

46、(1)、本发明利用基于p4的网络遥测系统,无需网络中主机的参与,直接由可编程数据平面和控制面完成全部的功能;

47、(2)、本发明将业务路径选取为监控路径,以减少网络探测包的发送,降低数据平面负载需求;

48、(3)、本发明利用int monitor收集到的信息与各链路告警码组结合,可以快速定位网络中的失效链路。

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