CN117176557A - 用于链路故障定位的方法、装置、设备和存储介质 - Google Patents
用于链路故障定位的方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN117176557A CN117176557A CN202311155279.6A CN202311155279A CN117176557A CN 117176557 A CN117176557 A CN 117176557A CN 202311155279 A CN202311155279 A CN 202311155279A CN 117176557 A CN117176557 A CN 117176557A
- Authority
- CN
- China
- Prior art keywords
- message
- network device
- trace
- transmission link
- tracking
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000004807 localization Effects 0.000 title claims abstract description 28
- 230000005540 biological transmission Effects 0.000 claims abstract description 114
- 230000004083 survival effect Effects 0.000 claims abstract description 78
- 239000000523 sample Substances 0.000 claims abstract description 40
- 230000004044 response Effects 0.000 claims abstract description 16
- 238000012545 processing Methods 0.000 claims description 44
- 238000001514 detection method Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 37
- 238000012544 monitoring process Methods 0.000 description 30
- 230000008569 process Effects 0.000 description 19
- 238000005516 engineering process Methods 0.000 description 11
- 238000007726 management method Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- HRULVFRXEOZUMJ-UHFFFAOYSA-K potassium;disodium;2-(4-chloro-2-methylphenoxy)propanoate;methyl-dioxido-oxo-$l^{5}-arsane Chemical compound [Na+].[Na+].[K+].C[As]([O-])([O-])=O.[O-]C(=O)C(C)OC1=CC=C(Cl)C=C1C HRULVFRXEOZUMJ-UHFFFAOYSA-K 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 4
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 2
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 2
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 2
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000975 dye Substances 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开的实施例提供一种用于链路故障定位的方法、装置、设备和介质。一种方法包括:在服务设备处,响应于检测到探测报文的丢失,基于至少一个网络设备各自在探测报文的传输链路中的位置来生成至少一个追踪报文,至少一个追踪报文分别指示与至少一个网络设备对应的生存值;在传输链路上发送至少一个追踪报文;以及至少基于是否接收到至少一个追踪报文各自对应的差错报文,确定传输链路的故障位置。由此,实现更加准确高效的链路故障定位方案。
Description
技术领域
本公开的示例实施例总体涉及计算机视觉领域,并且更具体地,涉及用于链路故障定位的方法、装置、设备和计算机可读存储介质。
背景技术
随着计算机技术的发展,网络监控和管理技术也得到了不断的改进和创新。例如,链路带内网络遥测(In-band Network Telemetry,INT)技术是一种用于收集网络中的信息和数据,以支持网络监控和管理的技术。INT技术作为可视化技术的一个重要组成部分,能够网络管理和运维走向真正自动化。通过INT技术,可以获知报文实际转发路径上的每个网络设备的信息,诸如报文在每个网络设备上的入端口、出端口、队列信息以及相应的时间戳信息等。
发明内容
在本公开的第一方面,提供一种用于链路故障定位的方法。该方法包括:在服务设备处,响应于检测到探测报文的丢失,基于至少一个网络设备各自在探测报文的传输链路中的位置来生成至少一个追踪报文,至少一个追踪报文分别指示与至少一个网络设备对应的生存值;在传输链路上发送至少一个追踪报文;以及至少基于是否接收到至少一个追踪报文各自对应的差错报文,确定传输链路的故障位置。
在本公开的第二方面,提供一种用于链路故障定位的方法。该方法包括:在第一网络设备处,从服务设备或传输链路中的上一跳网络设备接收至少一个追踪报文,至少一个追踪报文分别指示与传输链路中的至少一个网络设备对应的生存值,服务设备触发至少一个追踪报文的发送;通过将至少一个追踪报文中的生存值减去预定值,确定更新后的生存值;以及如果至少一个追踪报文中的第一追踪报文的更新后的生存值达到预定阈值,向服务设备发送第一追踪报文对应的第一差错报文。
在本公开的第三方面,提供一种用于链路故障定位的装置。该装置包括:生成模块,被配置为响应于检测到探测报文的丢失,基于至少一个网络设备各自在探测报文的传输链路中的位置来生成至少一个追踪报文,至少一个追踪报文分别指示与至少一个网络设备对应的生存值;追踪报文发送模块,被配置为在传输链路上发送至少一个追踪报文;以及确定模块,被配置为至少基于是否接收到至少一个追踪报文各自对应的差错报文,确定传输链路的故障位置。
在本公开的第四方面,提供一种用于链路故障定位的装置。该装置包括:接收模块,被配置为从服务设备或传输链路中的上一跳网络设备接收至少一个追踪报文,至少一个追踪报文分别指示与传输链路中的至少一个网络设备对应的生存值,服务设备触发至少一个追踪报文的发送;得到模块,被配置为通过将至少一个追踪报文中的生存值减去预定值,确定更新后的生存值;以及差错报文发送模块,被配置为如果至少一个追踪报文中的第一追踪报文的更新后的生存值达到预定阈值,向服务设备发送第一追踪报文对应的第一差错报文。
在本公开的第五方面,提供了一种服务设备。该服务设备包括至少一个处理单元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,指令在由至少一个处理单元执行时使电子设备执行本公开第一方面的方法。
在本公开的第六方面,提供了一种网络设备。该网络设备包括至少一个处理单元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,指令在由至少一个处理单元执行时使电子设备执行本公开第二方面的方法。
在本公开的第七方面,提供了一种计算机可读存储介质。该计算机可读存储介质上存储有计算机程序,其可由处理器执行以执行根据本公开的第一方面和/或第二方面的方法。
应当理解,本发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键特征或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的描述而变得容易理解。
附图说明
在下文中,结合附图并参考以下详细说明,本公开各实现方式的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了本公开的实施例能够在其中实现的示例环境的示意图;
图2A示出了基于TCP的INT报文格式的一个示例的示意图;
图2B示出了基于UDP的INT报文格式的一个示例的示意图;
图3示出了INT报文的固有头部格式的一个示例的示意图;
图4示出了INT报文的监测信息格式的一个示例的示意图;
图5示出了INT报文在网络中的运行机制的一个示例的示意图;
图6示出了根据本公开的一些实施例的用于链路故障定位的过程的流程图;
图7示出了根据本公开另一些实施例的用于链路故障定位的过程的流程图;
图8示出了根据本公开的一些实施例的快速数据路径程序处理数据的示例架构的示意图;
图9示出了根据本公开的一些实施例的用于链路故障定位的示例架构的示意图;
图10A示出了根据本公开的一些实施例的快速数据路径程序用于链路故障定位的示例过程的示意图;
图10B示出了根据本公开的一些实施例的快速数据路径程序用于链路故障定位的另一示例过程的示意图;
图11示出了根据本公开一些实施例的用于故障定位的装置的框图;
图12示出了根据本公开另一些实施例的用于故障定位的装置的框图;以及
图13示出了其中可以实施本公开的一个或多个实施例的电子设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中示出了本公开的一些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反,提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
需要说明的是,本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“一些实施例”应当理解为“至少一些实施例”。下文还可能包括其它明确的和隐含的定义。
如上文所简要提及的,链路INT探测技术可以获知报文实际转发路径上的每个网络设备的信息。链路INT报文是一种在网络数据流中嵌入元数据信息的报文,可以用于提供更加详细的网络状态信息。例如路由路径、时延、出口队列等。链路INT报文所提供的更加详细和准确的网络信息和数据,可以支持网络监控、管理和维护等。但是,当INT探测报文丢失时,INT探测采集的信息就无法获取了,因此链路INT探测技术无法解决探测报文本身丢包问题。
为了至少部分地解决上述问题,本公开提供了一种用于链路故障定位的改进方案。根据本公开的一些实施例,服务设备响应于检测到探测报文的丢失,基于至少一个网络设备各自在探测报文的传输链路中的位置来生成至少一个追踪报文。至少一个追踪报文分别指示与至少一个网络设备对应的生存值。在传输链路上发送至少一个追踪报文。至少基于是否接收到至少一个追踪报文各自对应的差错报文,确定传输链路的故障位置。
根据本公开的另一些实施例,第一网络设备从服务设备或传输链路中的上一跳网络设备接收至少一个追踪报文。至少一个追踪报文分别指示与传输链路中的至少一个网络设备对应的生存值。服务设备触发至少一个追踪报文的发送。通过将至少一个追踪报文中的生存值减去预定值,确定更新后的生存值。如果至少一个追踪报文中的第一追踪报文的更新后的生存值达到预定阈值,向服务设备发送第一追踪报文对应的第一差错报文。
由此,在检测到探测报文丢失时,本公开的方案可以触发传输链路上的网络设备回复差错报文。以此方式,可以快速定位探测报文丢包的节点位置,达到及时发现网络运行中的问题、减少故障出现时间的目的。本公开的方案可以配合链路INT探测技术部署,以实现更加准确高效的链路可观测方案。
下文将参考附图来详细描述本公开的示例实施例。
图1示出了本公开的实施例能够在其中实现的示例环境100的示意图。在环境100中,服务设备110-1可以与服务设备110-2之间建立至少一个传输链路,以进行通信。服务设备110-1可以作为发送数据的源设备(也称为发送端),通过至少一个传输链路向服务设备110-2发送该数据。在这样的情况下,服务设备110-2可以作为接收该数据的目的地设备(也称为接收端)。相应地,服务设备110-2也可以作为发送数据的源设备,以通过至少一个传输链路向目的地设备即服务设备110-1发送数据。服务设备110-1和服务设备110-2可以单独地或统称为服务设备110。
在一些实施例中,服务设备110-1可以根据用户下发的INT探测配置进行INT报文的封装发送。该报文经过每跳网络设备120时,都会被插入监测信息(也称为元数据信息)。在该报文到达服务设备110-2时,服务设备110-2可以将这些监测信息返回服务设备110-1处进行解析,以用于监测传输性能等。
服务设备110例如可以包括计算系统/服务器,诸如大型机、边缘计算节点、云环境中的计算设备、虚拟机,等等。虽然被示出单个设备,但服务设备110可以包括多个物理设备。
服务设备110-1与服务设备110-2之间的每个传输链路上可以包括多跳网络设备,例如其中一个传输链路上包括网络设备120-1、网络设备120-2……网络设备120-N等。这些网络设备可以单独地或统称为网络设备120。网络设备120包括但不限于路由器、交换机、中继器、转换器等等。网络设备120被配置为转发或处理后转发服务设备110之间传输的数据。
应当理解,仅出于示例性的目的描述环境100的结构和功能,而不暗示对于本公开的范围的任何限制。
通过INT探测报文(也称为INT报文、探测报文)可以获知报文实际转发路径上每跳网络设备120的信息。根据传输层协议不同,INT报文可以分为基于TCP的INT报文以及基于UDP的INT报文两种类型。服务设备110侧发送链路INT探测报文时,会在TCP头部和UDP头部后插入INT固有头部。INT报文经过每跳网络设备时会首先被识别为INT报文,然后每一跳网络设备会将自己的监测信息紧跟着INT固有头部后插入。
图2A示出了基于TCP的INT报文格式的示例200A的示意图。例如,服务设备110-1向服务设备110-2发送数据,并且根据用户下发的INT探测配置进行INT报文的封装发送。如果服务设备110-1发送基于TCP的INT报文,则会在TCP头部之后插入INT固有头部210。当该报文经过每跳网络设备120时,都会被插入监测信息220。具体地,当该报文经过网络设备120-1时,网络设备120-1会在INT固有头部210后插入监测信息#1并转发。当该报文经过网络设备120-2时,网络设备120-2会在INT固有头部210和监测信息#1之间插入监测信息#2并转发。以此类推,当该报文经过网络设备120-N时,网络设备120-N会在INT固有头部210和监测信息#N-1之间插入监测信息#N并转发。
图2B示出了基于UDP的INT报文格式的示例200B的示意图。继续上述示例,如果服务设备110-1发送基于UDP的INT报文,则会在UDP头部之后插入INT固有头部230。当该报文经过每跳网络设备120时,都会被插入监测信息240。具体地,当该报文经过网络设备120-1时,网络设备120-1会在INT固有头部210后插入监测信息#1并转发。当该报文经过网络设备120-2时,网络设备120-2会在INT固有头部210和监测信息#1之间插入监测信息#2并转发。以此类推,当该报文经过网络设备120-N时,网络设备120-N会在INT固有头部210和监测信息#N-1之间插入监测信息#N并转发。
以下将参考图3至图5分别描述INT报文的固有头部格式、监测信息格式以及在网络中的运行机制。
图3示出了INT报文的固有头部格式的示例300的示意图。服务设备110构造INT报文。这样的INT报文包括多个字段,例如,探针标记(Probe Maker)字段、版本(Version)字段、跳数限制(Hop Limit)字段、跳数计数(Hop Count)字段等等。每跳网络设备通过ProbeMaker字段值识别INT报文,其被固定填充为“0xaaaaaaaabbbbbbbb”。由于仅依靠INT报文的8a8b特征识别会存在误识别问题,因此服务设备110在配置网络设备120时选择灵活性INT报文,亦即,在INT报文封装时使用指定的差分服务代码点(Differentiated ServicesCode Point,DSCP)。DSCP是一种分组服务质量(QoS)机制。DSCP值可以从0到63,它将每个IP数据包划分成八个不同的类别。每个类别具有相应的服务质量配额,从而可以控制每个数据包的优先级和流量。通过DSCP的值可以将INT报文与业务报文区分开来。网络设备120可以在入端口通过访问控制列表(Access Control List,ACL)匹配指定的DSCP规则对原始报文进行筛选,命中规则的报文即为INT报文。而后,网络设备120在INT报文中添加监测信息。
图4示出了INT报文的监测信息格式的示例400的示意图。这样的检测信息包括多个字段,例如,设备标识(Device-ID)字段、IP生存时间(IP_TTL)字段、入端口(Ingress-Port)字段、出端口(Egress-Port)字段等等。每跳网络设备通过Device-ID字段标识该设备的管理IP。Ingress-Port字段和Egress-Port字段分别用来标识INT报文流经该设备的入端口和出端口。队列标识(Queue-Id)字段用来标识出端口的队列标识。入端口纳秒级时间戳高字节(Rx Timestamp Nano-Seconds Upper)字段和出端口纳秒级时间戳高字节(TxTimestamp Nano-Seconds Upper)字段分别用来标识INT报文流经该设备的入端口纳秒级时间戳和出端口纳秒级时间戳。由此,可以基于这样的监测信息来计算出INT报文在该设备上的处理延时。
图5示出了INT报文在网络中的运行机制的示例500的示意图。服务设备110-1侧部署代理(agent)程序。代理程序根据用户下发的INT探测配置(五元组信息等)来进行INT报文的封装发送。INT报文经过网络设备120-1时,网络设备120-1会将处理报文时采集的信息填充到监测信息1中。INT报文经过网络设备120-2时,网络设备120-2也会将处理该报文时采集的信息填充到监测信息2中。INT报文经过网络设备120-3时,网络设备120-3也会将处理该报文时采集的信息填充到监测信息3中。亦即,每跳网络设备120依次填充对应的监测信息,直到将该报文传送到服务设备110-2接收端。接收端agent会将该报文回送到服务设备110-1发送端。最终该INT报文的所有监测信息会在服务设备110-1的agent程序中进行解析。服务设备110-1将解析结果发送给远程的采集器。采集器通过大数据工具对解析结果进行分析、染色、聚合等。最后通过可视化展示来实现网络链路更细粒度的网络流路径拓扑及时延的监测,达到帮助优化网络,改善网络性能的目的。
以服务设备110-1向服务设备110-2发送INT探测报文为例,例如服务设备110-1基于对INT探测是否超时的判断,来确定传输链路上是否出现了INT报文丢失。如果INT报文丢失,则该传输链路上的每跳网络设备的信息均无法获取到。由此,本公开提出一种端侧快速追踪的方法来定位传输链路中INT报文丢包的问题。以下将参考图6至图10B描述本公开的各个实施例。
图6示出了根据本公开的一些实施例的用于链路故障定位的示例过程600的流程图。过程600可以实现在服务设备处。在下文中,为便于理解,以下参考图1描述过程600,并且以过程600被实现在服务设备110-1处为例进行说明。
在框610,如果服务设备110-1检测到探测报文的丢失,可以基于至少一个网络设备120各自在探测报文的传输链路中的位置来生成对应数目的追踪报文。这样的追踪报文分别指示与这些网络设备对应的生存值(也称为生存时间)。例如,在图1的示例中,如果服务设备110-1确定向传输链路上的第1个网络设备(即网络设备120-1)发送追踪报文时,服务设备110-1首先构造生存值例如为1的追踪报文并发送。当这样的追踪报文到达网络设备120-1时,生存时间期满,亦即该生存值表示这样的追踪报文经过一跳网络设备。
在一些实施例中,为了定位探测报文丢失位置,服务设备110-1可以将追踪报文构造为包括与探测报文相同格式的五元组报文。五元组报文包括源IP地址、目的IP地址、源端口、目的端口以及传输协议。以此方式,可以保证追踪报文与探测报文从同一源设备发出并到达同一目的地设备。
在框620,服务设备110-1在传输链路上发送至少一个追踪报文。
在一些实施例中,该传输链路上的网络设备至少包括网络设备120-1(也称为第一网络设备)和网络设备120-2(也称为第二网络设备)。服务设备110-1可以基于网络设备120-1在传输链路上的位置构造第一追踪报文。这样的第一追踪报文指示与网络设备120-1对应的生存值。响应于探测报文的丢失,服务设备110-1可以向传输链路上发送第一追踪报文。
如果服务设备110-1接收到与第一追踪报文对应的第一差错报文,则可以基于网络设备120-2在传输链路上的位置构造第二追踪报文。这样的第二追踪报文指示与网络设备120-2对应的生存值。对于传输链路上的其他网络设备,如果服务设备110-1接收到与第二追踪报文对应的第二差错报文,则可以基于下一跳网络设备120在传输链路上的位置再次构造追踪报文。以此方式,可以实现串行发送追踪报文的效果,从而依次定位传输链路上的每个网络设备是否存在故障。
在一些实施例中,该传输链路上的网络设备至少包括第一网络设备和第二网络设备。服务设备110-1可以基于第一网络设备和第二网络设备在传输链路中的位置来构造第一追踪报文和第二追踪报文,并且在传输链路上同时发送第一追踪报文和第二追踪报文。以此方式,可以实现并行发送追踪报文的效果,从而提高故障定位的效率。
在框630,服务设备110-1至少基于是否接收到每个追踪报文各自对应的差错报文,来确定该传输链路是否存在故障以及故障位置。
在一些实施例中,如果服务设备110-1接收到第一追踪报文对应的第一差错报文,确定传输链路中从服务设备110-1到第一网络设备的链路部分无故障。如果服务设备110-1未接收到第二追踪报文对应的第二差错报文,确定传输链路的故障发生在第一网络设备和第二网络设备之间或在第二网络设备处。
例如,服务设备110-1向第一网络设备发送第一追踪报文。第一网络设备接收到第一追踪报文后向服务设备110-1返回差错报文。在这样的情况下,可以确定从服务设备110-1到第一网络设备的链路部分以及第一网络设备自身无故障。
进一步地,服务设备110-1确定从服务设备110-1到第一网络设备的链路部分以及第一网络设备自身无故障后,发送第二追踪报文。如果第二网络设备接收到第二追踪报文后向服务设备110-1返回差错报文,则服务设备110-2可以确定从服务设备110-1到第二网络设备的链路部分以及第二网络设备自身无故障。否则,服务设备110-2确定传输链路的故障发生在第一网络设备和第二网络设备之间或在第二网络设备处。以此类推,取决于服务设备110-1与服务设备110-2之间的传输链路的具体状况,服务设备110-1可以类似地构造和发送追踪报文。
在一些实施例中,追踪报文各自对应的差错报文在追踪报文的生存值达到预设阈值时在对应的网络设备处被触发发送。作为一个示例,生存值可以表示追踪报文可以被网络设备(例如路由器)转发的最大次数。每经过一个网络设备,生存值就会被减少,当生存值达到预定阈值的时候,网络设备将会丢弃该追踪报文,并向该追踪报文的初始发送者返回差错报文。以此方式,可以避免追踪报文在网络中无限循环,并且导致网络拥塞或者其他问题。
继续上述示例,第一网络设备接收到第一追踪报文,由于第一追踪报文指示的生存值在第一网络设备处达到预设阈值,则第一网络设备向服务设备110-1返回对应的差错报文。服务设备110-1继续发送第二追踪报文。第二追踪报文首先经过第一网络设备。在第一网络设备处,第二追踪报文未达到预设阈值,则第一网络设备向第二网络设备转发第二追踪报文。第二网络设备接收到第二追踪报文,由于第二追踪报文指示的生存值在第二网络设备处达到预设阈值,则第二网络设备向服务设备110-1返回对应的差错报文。由此,没有发生故障的网络设备在判断追踪报文的生存值后,可以确定应该转发该追踪报文还是返回对应的差错报文。以此方式,服务设备110-1可以基于不同的差错报文确定返回该差错报文的网络设备。
在一些实施例中,每个差错报文可以指示发送该差错报文的网络设备的地址。服务设备110-1在确定传输链路的故障位置时,还可以参考接收到的差错报文中指示的网络设备的地址、传输链路的链接拓扑等信息。通常来说,服务设备110-1侧存储全局视角下的网络链接拓扑,由此,服务设备110-1可以确定传输链路的链接拓扑。继续上述示例,第一网络设备在确定第一追踪报文的生存值达到预定阈值时,构造差错报文并添加自身地址。如果服务设备110-1未接收到第二网络设备返回的第二差错报文,则可以根据第一网络设备返回的差错报文中指示的地址以及在传输链路中第一网络设备的下一跳网络设备的位置,从而分析出故障所在的位置。
参考图1,传输链路上包括N个网络设备,服务设备110-1可以构造N个追踪报文来定位其中是否存在故障。如果服务设备110-1收到对应的N个差错报文,则故障可能发生在服务设备110-2(也称为目的地设备)或附近链路部分。在这样的情况下,服务设备110-1可以基于服务设备110-2的位置生成对应的追踪报文(也称为第三追踪报文)。这样的追踪报文指示与目的地设备对应的生存值。服务设备110-1在传输链路上发送第三追踪报文。如果未接收到第三追踪报文对应的应答报文,则确定所述传输链路上的故障发生在目的地设备和上一跳网络设备之间或在目的地设备处。
上述实施例描述了在服务设备110-1处进行的操作,以下将参考图7进一步描述在网络设备120处执行的操作。
图7示出了根据本公开的一些实施例的用于链路故障定位的示例过程700的流程图。过程700可以实现在传输链路上的任一网络设备120处。以下参考图1描述过程700。
在框710,网络设备120(例如网络设备120-1)可以从服务设备110-1接收追踪报文。网络设备120(例如网络设备120-2)还可以从传输链路中的上一跳网络设备(例如网络设备120-1)接收追踪报文。这些追踪报文分别指示与传输链路中的网络设备对应的生存值。服务设备110-1响应于探测报文的丢失,而触发这些追踪报文的发送。
在框720,网络设备120通过将接收到的追踪报文中的生存值减去预定值,确定更新后的生存值。例如,预定值为1。网络设备120-1接收到的第一追踪报文中的生存值为1,则更新后的生存值为0。网络设备120-1接收到的第二追踪报文中的生存值为2,则新后的生存值为1。
在框730,追踪报文至少包括第一追踪报文和第二追踪报文。如果第一追踪报文的更新后的生存值达到预定阈值,网络设备120向服务设备110-1发送第一追踪报文对应的第一差错报文。在一些实施例中,如果第二追踪报文的更新后的生存值未达到预定阈值,网络设备120-1向传输链路中的下一跳网络设备发送第二追踪报文。
例如,预定阈值为0。继续上述示例,网络设备120-1接收到的第一追踪报文中的生存值为1,则更新后的生存值为0。在判断更新后的生存值达到0时,网络设备120-1丢弃第一追踪报文并向服务设备110-1返回对应的差错报文。网络设备120-1接收到的第二追踪报文中的生存值为2,则新后的生存值为1。在判断更新后的生存值未达到0时,网络设备120-1向网络设备120-2转发第二追踪报文。网络设备120-2接收到的第二追踪报文中的生存值已被更新为1,则再次更新后的生存值为0。在判断更新后的生存值达到0时,网络设备120-2丢弃第二追踪报文并向服务设备110-1返回对应的差错报文。应当理解,差错报文可以沿原传输链路返回服务设备110-1,也可以沿其他传输链路返回服务设备110-1,本公开对此不作限制。
在一些实施例中,第一差错报文至少指示发送第一差错报文的第一网络设备的地址。服务设备110-1可以参考接收到的差错报文中指示的网络设备的地址、传输链路的链接拓扑等信息来确定传输链路中的故障位置。
以上通过各个实施例对本公开的链路故障定位方案进行了描述。在一些实施例中,可以基于原生快速数据路径(eXpress Data Path,XDP)程序通过包触发方式递增追踪报文的生存值,以此来触发传输链路上的网络设备返回差错报文(例如ICMP差错报文)。基于XDP的快速追踪可以保证和链路INT探测路径一致。XDP是一种高性能的数据包处理框架,它是Linux内核网络协议栈中的一部分,可以在数据包到达网卡(Network InterfaceCard,NIC)之前拦截、过滤、修改或直接发送数据包。原生XDP程序即运行在网络驱动程序的早期路径,需要网卡驱动程序的支持,而10G及以上速率的大多数网卡基本都是支持的。
图8示出了根据本公开的一些实施例的快速数据路径程序处理数据的示例架构800的示意图。示例架构可以实现在服务设备110-1处。服务设备110-1端侧XDP程序根据差错报文获取到的网络设备的地址(例如管理IP信息),通过记录的网络设备IP信息结合网络链接拓扑可以快速定位到INT报文丢包节点位置,达到及时发现网络运行中的问题,减少故障出现时间的目的。
在图8的示例中,XDP程序810从网卡820-1接收报文并处理。通过解析报文所携带的信息,XDP程序810可以将报文丢弃、处理后从原网卡820-1发出、重定向到另一网卡820-2或用户空间、或将报文送往内核的网络协议堆栈。作为一个示例,XDP程序810可以生成生存值依次递增的追踪报文并通过网卡820-1向传输链路上的网络设备发送。作为另一个示例,XDP程序810还可以通过网卡820-1接收返回的ICMP差错报文,通过解析可以获取到发送该ICMP差错报文的网络设备的管理IP地址。
以下将参考图9描述一个基于XDP程序的用于链路故障定位的具体示例,并参考图10A和图10B描述XDP程序用于链路故障定位的具体流程。
图9示出了根据本公开的一些实施例的用于链路故障定位的示例架构900的示意图。示例架构900总体上包括服务设备110-1、服务设备110-2以及网络设备120-1至网络设备120-3。网络设备120-1至网络设备120-3位于从服务设备110-1到服务设备110-2的传输链路中。网络设备120-1的入端口为1,出端口为2。网络设备120-2的入端口为3,出端口为4。网络设备120-3的入端口为5,出端口为6。
示例架构900还可以包括网络设备120-4至网络设备120-6。在这些网络设备中,网络设备120-1、网络设备120-5、网络设备120-6以及网络设备120-3例如位于接入层。网络设备120-2以及网络设备120-4例如位于汇聚层。
服务设备110-1构造需要INT探测的业务五元组报文,并使用不同于业务的DSCP值进行区分。假设服务设备110-1构造的INT探测报文的转发路径为图8中的箭头所示,即转发路径为:网络设备120-1的入端口1>网络设备120-1的出端口2>网络设备120-2的入端口3>网络设备120-2的出端口4>网络设备120-3的入端口5>网络设备120-3的出端口6>服务设备110-2。在探测超时后,可以确定该链路上出现了INT探测报文丢失的问题。在这种情况下,这条链路的每跳网络设备信息均无法获取到,亦即INT测探失败。
为了定位INT探测报文丢包位置,在服务设备110-1上封装与INT报文相同五元组的追踪报文,并设置生存值1(例如为1)后发送。网络设备120-1在处理追踪报文时将生存值1减1后为0,则将该追踪报文丢弃并向服务设备110-1发送ICMP差错报文。服务设备110-1上面的XDP程序收到ICMP差错报文后通过解析可以获取到网络设备120-1的管理IP地址;然后XDP程序会将该报文重新封装设置生存值为2后发送。网络设备120-2会将该追踪报文丢弃并向服务设备110-1发送ICMP差错报文。以此类推,直到服务设备110-2收到追踪报文并回复为止,或者链路中的网络设备120出现故障,服务设备110-1等待超时时间后仍未收到服务设备110-2的应答报文。
图9中展示的为服务设备110-1端XDP程序发送生存值4的追踪报文并等待超时时间后仍未收到服务设备110-2的回复,此时XDP程序已经记录了网络设备120-1至网络设备120-3的管理IP信息,再结合链路拓扑图可以确定INT探测报文丢包位置在网络设备120-3的下行链路。
图10A示出了根据本公开的一些实施例的XDP程序用于链路故障定位的示例过程的示意图。图10A的示例可以实现在服务设备110处。以下参考图1进行描述。
图10A的示例主要涉及处理TRACE报文应答和TRACE报文终结的情况。例如,在服务设备110-1向服务设备110-2发送追踪报文后,服务设备110-2可以返回应答报文。如果服务设备110-2没有返回应答报文,服务设备110-1端的XDP程序可以进行报文终结,例如丢弃。
具体地,在框1002,XDP程序对收到的报文进行以太网头部解析。在框1004,XDP程序如果判断为IPv4报文,则进行到框1006,XDP程序进行IPv4头部解析。否则,XDP程序通过返回码XDP_PASS将该报文继续送往内核的网络协议栈处理。
在框1008,XDP程序如果判断匹配DSCP列表,则进行到框1010,XDP程序继续判断是否为UDP报文。否则,XDP程序通过返回码XDP_PASS将该报文继续送往内核的网络协议栈处理。
在框1010,如果XDP程序如果判断为UDP报文,则进行到框1012,XDP程序进行UDP头部解析。否则,进行到框1024,XDP程序继续判断是否为TCP报文。如果是TCP报文,则进行到框1026。在框1026,XDP程序进行UDP头部解析。否则,进行到框1040,XDP程序继续判断是否为ICMP报文。如果是ICMP报文,下文将参考图10B的示例详细描述。如果不是ICMP报文,XDP程序通过返回码XDP_PASS将该报文继续送往内核的网络协议栈处理。
在框1014,XDP程序识别为追踪报文(TRACE报文)。在框1016,XDP程序继续判断生存值(IP-TTL)是否为1。如果是,则进行到框1018,例如服务设备110-2端侧的XDP程序可以进行TRACE报文应答。在框1020,服务设备110-2端侧的XDP程序可以重置IP_TTL为64;反转源目的端口/IP地址/源目的MAC。在框1022,服务设备110-2端侧的XDP程序可以重新计算IP校验和,并通过返回码XDP_TX将该报文从收到的端口发出。
在框1016,如果XDP程序判断生存值(IP-TTL)不为1,则进行到框1028。在框1028,例如服务设备110-1端侧的XDP程序可以进行TRACE报文终结。在框1030,例如服务设备110-1端侧的XDP程序可以根据五元组/DSCP/IPID组成的key在trace_map中查找。在框1032,服务设备110-1端侧的XDP程序可以判断是否命中表项。如果是,则进行到框1036。在框1036,服务设备110-1端侧的XDP程序可以获取并更新trace_value内容标记trace_status为0,填充value的sw_ips、hop_count。在框1038,服务设备110-1端侧的XDP程序可以创建structtrace_statperf_event_output。进而,服务设备110-1端侧的XDP程序可以通过返回码XDP_DROP在网卡驱动层直接将该报文丢掉,无需进一步处理。
在框1032,如果服务设备110-1端侧的XDP程序判断没有命中表项,则进行到框1034,服务设备110-1端侧的XDP程序可以创建trace_value局部变量将本地tr_val作为目标使用。而后,进行到框1036和框1038,服务设备110-1端侧的XDP程序可以通过返回码XDP_DROP在网卡驱动层直接将该报文丢掉,无需进一步处理。
图10B示出了根据本公开的一些实施例的XDP程序用于链路故障定位的另一示例过程的示意图。图10B的示例可以实现在服务设备110处。以下参考图1进行描述。
图10B的示例主要涉及处理ICMP报文的情况。例如,在服务设备110-1向网络设备120发送追踪报文后,网络设备120可以返回ICMP差错报文。
在框1040,XDP程序判断是否为ICMP报文,如果是ICMP报文则进行到框1044。在框1044,XDP程序进行ICMP头部解析。在框1046,XDP程序继续判断Icmp-type是否为11,如果是11则进行到框1048。在框1048,XDP程序继续判断Icmp-code是否为0,如果是0则进行到框1050。在框1050,XDP程序识别为ICMP差错报文。在框1052,XDP程序解析内层IPv4头部。在框1054,XDP程序继续判断是否为UDP报文,如果是UDP报文则进行到框1056。在框1056,XDP程序根据内层五元组/DSCP/IPID组成的key在trace_map中查找。
在框1060,XDP程序继续判断是否命中表项。如果命中表项,则进行到框1062。在框1062,XDP程序继续判断trace_status是否为1。如果为1,则进行到框1064,XDP程序更新trace_map表项,填充value的sw_ips、hop_count。在框1056,XDP程序删除外层IP+ICMP头部28B,根据hop_count更新IP_TTL。在框1068,XDP程序判断Ingress_ifindex一致性。如果是,则进行到框1022。在框1022,XDP程序可以重新计算IP校验和,并通过返回码XDP_TX将该报文从收到的端口发出。否则,进行到框1076,XDP程序将报文通过bpf_redirect重定向转发到记录的ingress_ifindex网口。进一步地,XDP程序可以通过返回码XDP_REDIRECT将该报文从其他指定端口发出。
在框1046、框1048以及框1070,如果XDP程序判断为否,则通过返回码XDP_PASS将该报文继续送往内核的网络协议栈处理。在框1070,如果XDP程序判断为TCP报文,则进行到框1072。在框1072,XDP程序解析内层TCP头部,然后进行到框1058。
在框1060,如果XDP程序判断为没有命中表项,则进行到框1074。在框1074,XDP程序创建trace_map表项,初始化trace_status为1,hop_count为1,并填充sw_ips列表,记录ingress_ifindex,然后进行到框1066。
根据图10A和图10B的示例,除首包需要应用层发送TRACE报文外,其他处理均需要XDP来实现,XDP程序实现了TRACE报文应答、TRACE报文终结,以及链路网络设备节点发送过来的ICMP差错报文的处理。总的来说,相关XDP返回码作用如下:XDP_DROP会在网卡驱动层直接将该报文丢掉,无需再进一步处理;XDP_PASS会将该报文继续送往内核的网络协议栈处理;XDP_TX会将该报文从收到该包的网口发出;XDP_REDIRECT会将该报文从其他指定网口发出。
综上所述,本公开的各个实施例,可以触发传输链路上的网络设备120回复差错报文。服务设备120可以获取差错报文中的各个网络设备120的管理IP信息。通过所记录的网络设备120的IP信息并结合网络链接拓扑,服务设备120可以快速定位到INT报文丢包节点位置,达到及时发现网络运行中的问题、减少故障出现时间的目的。本公开的方案可以配合链路INT探测技术部署,以实现更加准确高效的链路可观测方案。
示例装置
图11示出了根据本公开一些实施例的用于链路故障定位的装置1100的框图。装置1100可以被实现在图1的服务设备110中。装置1100中的各个模块/组件可以由硬件、软件、固件或者它们的任意组合来实现。
装置1100包括生成模块1110,被配置为响应于检测到探测报文的丢失,基于至少一个网络设备各自在探测报文的传输链路中的位置来生成至少一个追踪报文,至少一个追踪报文分别指示与至少一个网络设备对应的生存值。装置1100还包括追踪报文发送模块1120,被配置为在传输链路上发送至少一个追踪报文。装置1100还包括确定模块1130,被配置为至少基于是否接收到至少一个追踪报文各自对应的差错报文,确定传输链路的故障位置。
在一些实施例中,至少一个网络设备至少包括第一网络设备和第二网络设备,并且追踪报文发送模块1120还被配置为在传输链路上发送第一追踪报文,第一追踪报文指示与第一网络设备对应的生存值;以及响应于接收到第一追踪报文对应的第一差错报文,在传输链路上发送第二追踪报文,第二追踪报文指示与第二网络设备对应的生存值。
在一些实施例中,至少一个网络设备至少包括第一网络设备和第二网络设备,并且追踪报文发送模块1120还被配置为在传输链路上同时发送第一追踪报文和第二追踪报文,第一追踪报文指示与第一网络设备对应的生存值,第二追踪报文指示与第二网络设备对应的生存值。
在一些实施例中,确定模块1130被配置为如果接收到第一追踪报文对应的第一差错报文,确定传输链路中从服务设备到第一网络设备的链路部分无故障;以及如果未接收到第二追踪报文对应的第二差错报文,确定传输链路的故障发生在第一网络设备和第二网络设备之间或在第二网络设备处。
在一些实施例中,装置1100还包括第三追踪报文生成模块,被配置为响应于接收到至少一个追踪报文各自对应的差错报文,基于探测报文的目的地设备在传输链路中的位置来生成第三追踪报文,成第三追踪报文指示与目的地设备对应的生存值;第三追踪报文发送模块,被配置为在传输链路上发送第三追踪报文;以及故障确定模块,被配置为如果未接收到第三追踪报文对应的应答报文,确定传输链路上的故障发生在目的地设备和上一跳网络设备之间或在目的地设备处。
在一些实施例中,至少一个追踪报文各自对应的差错报文在至少一个追踪报文的生存值达到预设阈值时在对应的网络设备处被触发发送,并且每个差错报文至少指示发送该差错报文的网络设备的地址,确定模块1130还被配置为还基于以下一项或多项确定传输链路的故障位置:接收到的差错报文中指示的网络设备的地址,或传输链路的链接拓扑。
在一些实施例中,至少一个追踪报文分别包括与探测报文相同格式的五元组报文。
装置1100中所包括的单元可以利用各种方式来实现,包括软件、硬件、固件或其任意组合。在一些实施例中,一个或多个单元可以使用软件和/或固件来实现,例如存储在存储介质上的机器可执行指令。除了机器可执行指令之外或者作为替代,装置1100中的部分或者全部单元可以至少部分地由一个或多个硬件逻辑组件来实现。作为示例而非限制,可以使用的示范类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD),等等。
图12示出了根据本公开一些实施例的用于链路故障定位的装置1200的框图。装置1200可以被实现在网络设备120中。装置1200中的各个模块/组件可以由硬件、软件、固件或者它们的任意组合来实现。
装置1200包括接收模块1210,被配置为从服务设备或传输链路中的上一跳网络设备接收至少一个追踪报文,至少一个追踪报文分别指示与传输链路中的至少一个网络设备对应的生存值,服务设备触发至少一个追踪报文的发送。装置1200还包括得到模块1220,被配置为通过将至少一个追踪报文中的生存值减去预定值,确定更新后的生存值。装置1200还包括差错报文发送模块1230,被配置为如果至少一个追踪报文中的第一追踪报文的更新后的生存值达到预定阈值,向服务设备发送第一追踪报文对应的第一差错报文。
在一些实施例中,装置1200还包括第二追踪报文发送模块,被配置为如果至少一个追踪报文中的第二追踪报文的更新后的生存值未达到预定阈值,向传输链路中的下一跳网络设备发送第二追踪报文。
在一些实施例中,第一差错报文至少指示发送第一差错报文的第一网络设备的地址。
装置1200中所包括的单元可以利用各种方式来实现,包括软件、硬件、固件或其任意组合。在一些实施例中,一个或多个单元可以使用软件和/或固件来实现,例如存储在存储介质上的机器可执行指令。除了机器可执行指令之外或者作为替代,装置1200中的部分或者全部单元可以至少部分地由一个或多个硬件逻辑组件来实现。作为示例而非限制,可以使用的示范类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD),等等。
图13示出了其中可以实施本公开的一个或多个实施例的电子设备1300的框图。应当理解,图13所示出的电子设备1300仅仅是示例性的,而不应当构成对本文所描述的实施例的功能和范围的任何限制。图13所示出的电子设备1300可以用于实现图1的服务设备110和/或网络设备120。
如图13所示,电子设备1300是通用电子设备的形式。电子设备1300的组件可以包括但不限于一个或多个处理器或处理单元1310、存储器1320、存储设备1330、一个或多个通信单元1340、一个或多个输入设备1350以及一个或多个输出设备1360。处理单元1310可以是实际或虚拟处理器并且能够根据存储器1320中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高电子设备1300的并行处理能力。
电子设备1300通常包括多个计算机存储介质。这样的介质可以是电子设备1300可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器1320可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或它们的某种组合。存储设备1330可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如闪存驱动、磁盘或者任何其他介质,其可以能够用于存储信息和/或数据(例如用于训练的训练数据)并且可以在电子设备1300内被访问。
电子设备1300可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图13中示出,可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。存储器1320可以包括计算机程序产品1325,其具有一个或多个程序模块,这些程序模块被配置为执行本公开的各种实施例的各种方法或动作。
通信单元1340实现通过通信介质与其他电子设备进行通信。附加地,电子设备1300的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,电子设备1300可以使用与一个或多个其他服务器、网络个人计算机(PC)或者另一个网络节点的逻辑连接来在联网环境中进行操作。
输入设备1350可以是一个或多个输入设备,例如鼠标、键盘、追踪球等。输出设备1360可以是一个或多个输出设备,例如显示器、扬声器、打印机等。电子设备1300还可以根据需要通过通信单元1340与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与电子设备1300交互的设备进行通信,或者与使得电子设备1300与一个或多个其他电子设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。
根据本公开的示例性实现方式,提供了一种计算机可读存储介质,其上存储有一条或多条计算机指令,其中一条或多条计算机指令被处理器执行以实现上文描述的方法。根据本公开的示例性实现方式,还提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,而计算机可执行指令被处理器执行以实现上文描述的方法。
这里参照根据本公开实现的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实现。
Claims (15)
1.一种用于链路故障定位的方法,包括:
在服务设备处,响应于检测到探测报文的丢失,基于至少一个网络设备各自在所述探测报文的传输链路中的位置来生成至少一个追踪报文,所述至少一个追踪报文分别指示与所述至少一个网络设备对应的生存值;
在所述传输链路上发送所述至少一个追踪报文;以及
至少基于是否接收到所述至少一个追踪报文各自对应的差错报文,确定所述传输链路的故障位置。
2.根据权利要求1所述的方法,其中所述至少一个网络设备至少包括第一网络设备和第二网络设备,并且其中在所述传输连路上发送所述至少一个追踪报文包括:
在所述传输链路上发送第一追踪报文,所述第一追踪报文指示与所述第一网络设备对应的生存值;以及
响应于接收到所述第一追踪报文对应的第一差错报文,在所述传输链路上发送第二追踪报文,所述第二追踪报文指示与所述第二网络设备对应的生存值。
3.根据权利要求1所述的方法,其中所述至少一个网络设备至少包括第一网络设备和第二网络设备,并且其中在所述传输连路上发送所述至少一个追踪报文包括:
在所述传输链路上同时发送第一追踪报文和第二追踪报文,所述第一追踪报文指示与所述第一网络设备对应的生存值,所述第二追踪报文指示与所述第二网络设备对应的生存值。
4.根据权利要求2或3所述的方法,其中确定所述传输链路的故障位置包括:
如果接收到所述第一追踪报文对应的所述第一差错报文,确定所述传输链路中从所述服务设备到所述第一网络设备的链路部分无故障;以及
如果未接收到所述第二追踪报文对应的第二差错报文,确定所述传输链路的故障发生在所述第一网络设备和所述第二网络设备之间或在所述第二网络设备处。
5.根据权利要求1所述的方法,还包括:
响应于接收到所述至少一个追踪报文各自对应的差错报文,基于所述探测报文的目的地设备在传输链路中的位置来生成第三追踪报文,所述成第三追踪报文指示与所述目的地设备对应的生存值;
在所述传输链路上发送所述第三追踪报文;以及
如果未接收到所述第三追踪报文对应的应答报文,确定所述传输链路上的故障发生在所述目的地设备和上一跳网络设备之间或在所述目的地设备处。
6.根据权利要求1所述的方法,其中所述至少一个追踪报文各自对应的差错报文在所述至少一个追踪报文的所述生存值达到预设阈值时在对应的网络设备处被触发发送,并且每个差错报文至少指示发送该差错报文的网络设备的地址,其中确定所述传输链路的故障位置还包括:
还基于以下一项或多项确定所述传输链路的故障位置:
接收到的差错报文中指示的网络设备的地址,或
所述传输链路的链接拓扑。
7.根据权利要求1所述的方法,其中所述至少一个追踪报文分别包括与所述探测报文相同格式的五元组报文。
8.一种用于链路故障定位的方法,包括:
在第一网络设备处,从服务设备或传输链路中的上一跳网络设备接收至少一个追踪报文,所述至少一个追踪报文分别指示与所述传输链路中的至少一个网络设备对应的生存值,所述服务设备触发所述至少一个追踪报文的发送;
通过将所述至少一个追踪报文中的生存值减去预定值,确定更新后的生存值;以及
如果所述至少一个追踪报文中的第一追踪报文的更新后的生存值达到预定阈值,向所述服务设备发送所述第一追踪报文对应的第一差错报文。
9.根据权利要求8所述的方法,还包括:
如果所述至少一个追踪报文中的第二追踪报文的更新后的生存值未达到所述预定阈值,向所述传输链路中的下一跳网络设备发送所述第二追踪报文。
10.根据权利要求8所述的方法,其中所述第一差错报文至少指示发送所述第一差错报文的所述第一网络设备的地址。
11.一种用于链路故障定位的装置,包括:
生成模块,被配置为响应于检测到探测报文的丢失,基于至少一个网络设备各自在所述探测报文的传输链路中的位置来生成至少一个追踪报文,所述至少一个追踪报文分别指示与所述至少一个网络设备对应的生存值;
追踪报文发送模块,被配置为在所述传输链路上发送所述至少一个追踪报文;以及
确定模块,被配置为至少基于是否接收到所述至少一个追踪报文各自对应的差错报文,确定所述传输链路的故障位置。
12.一种用于链路故障定位的装置,包括:
接收模块,被配置为从服务设备或传输链路中的上一跳网络设备接收至少一个追踪报文,所述至少一个追踪报文分别指示与所述传输链路中的至少一个网络设备对应的生存值,所述服务设备触发所述至少一个追踪报文的发送;
得到模块,被配置为通过将所述至少一个追踪报文中的生存值减去预定值,确定更新后的生存值;以及
差错报文发送模块,被配置为如果所述至少一个追踪报文中的第一追踪报文的更新后的生存值达到预定阈值,向所述服务设备发送所述第一追踪报文对应的第一差错报文。
13.一种服务设备,包括:
至少一个处理单元;以及
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令在由所述至少一个处理单元执行时使所述设备执行根据权利要求1至7中任一项所述的方法。
14.一种网络设备,包括:
至少一个处理单元;以及
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令在由所述至少一个处理单元执行时使所述设备执行根据权利要求8至10中任一项所述的方法。
15.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1至7中任一项所述的方法和/或根据权利要求8至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311155279.6A CN117176557A (zh) | 2023-09-07 | 2023-09-07 | 用于链路故障定位的方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311155279.6A CN117176557A (zh) | 2023-09-07 | 2023-09-07 | 用于链路故障定位的方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117176557A true CN117176557A (zh) | 2023-12-05 |
Family
ID=88931451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311155279.6A Pending CN117176557A (zh) | 2023-09-07 | 2023-09-07 | 用于链路故障定位的方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117176557A (zh) |
-
2023
- 2023-09-07 CN CN202311155279.6A patent/CN117176557A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tan et al. | In-band network telemetry: A survey | |
CN110178342B (zh) | Sdn网络的可扩缩应用级别监视 | |
US11095546B2 (en) | Network device service quality detection method and apparatus | |
EP3306871B1 (en) | Method and apparatus for acquiring path information | |
US9306819B2 (en) | Controller driven OAM for split architecture network | |
US8254273B2 (en) | Tracing connection paths through transparent proxies | |
US7342897B1 (en) | Network verification tool | |
WO2021017658A1 (zh) | 评估网络节点相关传输性能的系统、方法以及相关设备 | |
WO2016045098A1 (zh) | 交换机、控制器、系统及链路质量检测方法 | |
WO2016058245A1 (zh) | 操作、管理和维护oam报文处理方法及装置 | |
CN101595686B (zh) | 触发中间设备处的流分析 | |
US7426577B2 (en) | Detection of load balanced links in internet protocol netwoks | |
US11057290B2 (en) | Ping/traceroute for static label switched paths (LSPs) and static segment routing traffic engineering (SRTE) tunnels | |
CN109428782B (zh) | 网络监控的方法和设备 | |
WO2018107882A1 (zh) | 故障定位方法和网络设备 | |
US20220255857A1 (en) | Packet Processing Method, Network Node, and System | |
CN108566336A (zh) | 一种网络路径获取方法和设备 | |
US11323381B2 (en) | Dropped packet detection and classification for networked devices | |
CN105991338A (zh) | 网络运维管理方法及装置 | |
EP1943787B1 (en) | Method and system for loop-back and continue in packet-based network | |
WO2021027420A1 (zh) | 用于数据传输的方法和装置 | |
CN112532468B (zh) | 网络测量系统、方法、设备及存储介质 | |
CN117176557A (zh) | 用于链路故障定位的方法、装置、设备和存储介质 | |
Cisco | Interface Configuration Commands | |
Cisco | Interface Configuration Commands |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |