CN117118802A - 路径故障检测方法、装置、网络设备及存储介质 - Google Patents
路径故障检测方法、装置、网络设备及存储介质 Download PDFInfo
- Publication number
- CN117118802A CN117118802A CN202210895773.5A CN202210895773A CN117118802A CN 117118802 A CN117118802 A CN 117118802A CN 202210895773 A CN202210895773 A CN 202210895773A CN 117118802 A CN117118802 A CN 117118802A
- Authority
- CN
- China
- Prior art keywords
- multicast
- address
- node
- message
- root node
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 332
- 230000005540 biological transmission Effects 0.000 claims abstract description 118
- 238000000034 method Methods 0.000 claims description 59
- 230000002457 bidirectional effect Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 15
- 238000007689 inspection Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004904 shortening Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种路径故障检测方法、装置、网络设备和存储介质,属于通信技术领域。在本申请实施例中,第一节点可以根据第一组播源对应的组播根节点的地址和第一组播组的地址,建立自身与该组播根节点间的组播检测路径,该组播检测路径将与第一组播源提供的业务流的传输路径相一致。在这种情况下,第一节点可以基于从该组播检测路径上获取到的检测报文来准确判断第一组播源提供业务流的传输路径是否故障,从而实现故障的快速感知,进而快速切换路径,以缩短业务中断的时间。
Description
本申请要求于2022年5月17日提交的申请号为202210539872.X、申请名称为“一种建立检测路径的方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,特别涉及一种路径故障检测方法、装置、网络设备及存储介质。
背景技术
目前,在组播场景中,为了提高业务可靠性,与组播源连接的组播根节点在接收到来自组播源的组播业务流后,可以将该组播业务流同时发送至该组播业务流对应的主转发节点和备份转发节点。主转发节点和备份转发节点在接收到该组播业务流后,分别向与组播接收者连接的组播叶子节点发送该组播业务流。组播叶子节点在接收到主转发节点和备份转发节点分别发送的组播业务流后,将主转发节点发送的组播业务流转发给组播接收者,将备份转发节点发送的组播业务流丢弃。当组播叶子节点检测到主转发节点故障或者是自身与主转发节点连接的主接口故障后,该组播叶子节点可以切换为将备份转发节点发送的组播业务流转发给组播接收者。然而,当主转发节点与组播根节点之间发生故障时,由于组播叶子节点无法直接检测到该故障,所以,无法快速切换为转发备份转发节点的组播业务流,从而导致业务中断时间较长。
发明内容
本申请实施例提供了一种路径故障检测方法、装置、网络设备及存储介质,可以组播场景下业务传输路径的故障的快速感知,从而快速切换路径,缩短业务中断的时间。所述技术方案如下:
第一方面,提供了一种路径故障检测方法,所述方法包括:第一节点获取第一组播源对应的组播根节点的地址和第一组播组的地址;所述第一节点获取第一组播加入报文并发送所述第一组播加入报文,所述第一组播加入报文包括所述组播根节点的地址和所述第一组播组的地址,所述第一组播加入报文用于建立所述组播根节点与所述第一节点间的组播检测路径,所述组播检测路径与所述第一组播源提供的业务流的传输路径相同;所述第一节点基于从所述组播检测路径获取的检测报文判断是否存在故障,所述检测报文包括所述组播根节点的地址和所述第一组播组的地址。
在本申请实施例中,第一节点可以根据第一组播源对应的组播根节点的地址和第一组播组的地址,建立自身与该组播根节点间的组播检测路径,该组播检测路径将与第一组播源提供的业务流的传输路径相一致。在这种情况下,第一节点可以基于从该组播检测路径上获取到的检测报文来准确判断第一组播源提供业务流的传输路径是否故障,从而实现故障的快速感知,进而快速切换路径,以缩短业务中断的时间。
需要说明的是,上述的第一节点可以为组播叶子节点,也可以为组播叶子节点和组播根节点之间的中间节点。也即,不仅组播叶子节点可以通过建立的组播检测路径来检测自身到组播根节点之间的业务流的传输路径是否故障,中间节点也可以通过该组播检测路径来检测自身到组播根节点之间的业务流的传输路径是否故障。
可选地,第一节点还可以获取第一组播源对应的第一会话标识,所述第一会话标识可以为用于标识双向转发检测(bidirectional forwarding detection,BFD)会话的标识,在这种情况下,检测报文可以包括所述第一会话标识,通过所述第一会话标识可以区分不同的BFD会话。例如,该第一会话标识可以为本端鉴别符(my discriminator,MD)。当然,如果采用其他检测技术来检测路径故障时,该第一会话标识也可以为其他用于标识相应检测会话的标识,本申请对此不做限定。
可选地,在获取第一组播源对应的组播根节点的地址、第一组播组的地址和第一会话标识之前,所述第一节点接收来自所述组播根节点的通告报文,所述通告报文包括所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址;所述第一节点基于所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址,获取第一对应关系,所述第一对应关系包括所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址。
在本申请中,第一节点可以提前接收组播根节点通告的第一组播源的地址、该组播根节点的地址和第一组播组的地址,并基于接收到的通告信息获得第一对应关系。
可选地,上述的通告报文中还可以包括第一组播源对应的第一会话标识,相应地,第一节点建立的第一对应关系中包括所述第一组播源的地址、所述组播根节点的地址、所述第一组播组的地址和所述第一会话标识。
可选地,所述第一节点获取第一组播源对应的组播根节点的地址和第一组播组的地址的实现过程可以为:所述第一节点基于所述第一组播源的地址和所述第一对应关系,获取所述组播根节点的地址和所述第一组播组的地址。
可选地,所述通告报文为协议独立组播(protocol independent multicast,PIM)报文。在这种情况下,所述PIM报文可以包括第一类型长度值TLV字段,所述第一TLV字段中携带所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址。
当通告报文为PIM报文时,组播根节点在向第一节点发送该PIM报文的过程中,该PIM报文途径的各个节点将会对PIM报文中携带的第一组播源的地址和组播根节点的地址进行反向路径转发(reverse path forwarding,RPF)检查。这样,最终到达第一节点的PIM报文中携带的第一组播源的地址、组播根节点的地址将是通过RPF检查的地址,这样,第一节点可以基于该PIM报文中的第一组播源的地址、组播根节点的地址和第一组播组的地址获得第一对应关系。
可选地,所述通告报文为边界网关协议(border gateway protocol,BGP)报文。在这种情况下,所述BGP报文可以包括网络可达路由信息NLRI字段和第二TLV字段,所述NLRI字段携带所述第一组播源对应的前缀,所述第二TLV字段携带所述组播根节点的地址和所述第一组播组的地址。
当通告报文为BGP报文时,组播根节点可以通过路由反射器将BGP报文反射至第一节点,在这种情况下,第一节点可以比较BGP报文中携带的第一组播源的单播路由前缀和自身存储的第一组播源的单播路由前缀。如果BGP报文中包括的第一组播源对应的单播路由前缀的优先级低于该第一节点上存储的第一组播源对应的单播路由前缀的优先级,则说明该BGP报文中的第一组播源对应的单播路由前缀并非该第一组播源的最优路由前缀。在这种情况下,该第一节点则可以丢弃该BGP报文中的第一组播源对应的单播路由前缀。如果BGP报文中的第一组播源对应的单播路由前缀的优先级等于或高于该第一节点上存储的第一组播源对应的前缀的优先级,则说明该BGP报文中的第一组播源对应的单播路由前缀即为该第一组播源的最优路由前缀,也即,该组播根节点即为第一组播源的最优路由上的根节点。在这种情况下,该第一节点可以基于第一组播源对应的前缀确定第一组播源的地址,进而将该第一组播源的地址、该组播根节点的地址和第一组播组的地址对应存储至第一对应关系中。
可选地,所述第一节点为组播根节点和组播叶子节点之间的中间节点,在此基础上,所述第一节点获取第一组播加入报文的实现过程为:所述第一节点接收来自所述组播叶子节点的所述第一组播加入报文,并基于所述第一组播加入报文生成组播表项,所述组播表项包括所述组播根节点的地址、所述第一组播组的地址和出接口,所述出接口为所述第一节点接收所述第一组播加入报文的接口。
当第一节点为组播根节点和组播叶子节点之间的中间节点时,该中间节点可以接收来自组播叶子节点的第一组播加入报文,进而基于该第一组播加入报文生成组播表项,其中,该组播表项也可以称为组播检测表项,用于在该中间节点从组播检测路径上接收到检测报文后指导该检测报文的转发。
可选地,所述第一节点为组播叶子节点,在此基础上,所述第一节点获取第一组播加入报文的实现过程为:所述第一节点基于所述组播根节点的地址和所述第一组播组的地址,生成所述第一组播加入报文。
可选地,所述发送所述第一组播加入报文的实现过程为:所述第一节点通过第一接口发送所述第一组播加入报文,所述第一接口为与所述组播检测路径上的上一跳节点通信的接口。
可选地,所述第一节点基于从所述组播检测路径获取的检测报文判断所述组播检测路径是否存在故障的实现过程为:所述第一节点在预设时长内通过所述第一接口接收到的检测报文的数量为小于阈值,则确定所述组播检测路径存在故障。
可选地,所述第一节点为组播叶子节点,在此基础上,所述第一节点还可以接收组播接收者发送的组播加入请求,所述组播加入请求包括所述第一组播源的地址和第二组播组的地址;基于所述组播加入请求生成第二组播加入报文,所述第二组播加入报文包括所述第一组播源的地址和所述第二组播组的地址;所述第一节点发送所述第二组播加入报文,以建立所述传输路径。
在本申请中,组播叶子节点在接收到组播加入请求时,可以生成第一组播加入报文和第二组播加入报文,并发送该第一组播加入报文和第二组播加入报文。其中,第二组播加入报文用于建立从第一组播源到该组播叶子节点之间的业务流传输路径。
可选地,所述第一节点发送所述第二组播加入报文的实现过程为:所述第一节点通过第一接口和第二接口发送所述第二组播加入报文,所述第一接口为与所述传输路径上的上一跳节点通信的接口,所述第二接口为与所述传输路径的备份路径上的上一跳节点通信的接口。
在本申请中,第一接口为组播叶子节点上的主接口,第二接口为备份接口。组播叶子节点可以通过第一接口发送第一组播加入报文和第二组播加入报文。也即,组播叶子节点可以采用主接口发送第一组播加入报文和第二组播加入报文,这样,该主接口对应的上一跳节点也即主上一跳节点在接收到这两个组播加入报文之后,建立这两个组播加入报文分别对应的组播表项,并继续向主上一跳节点发送这两个组播加入报文,直至第一组播加入报文到达组播根节点时组播检测路径建立完成,第二组播加入报文到达第一组播源时业务流的传输路径建立完成,此时,该组播检测路径与业务流从组播根节点到组播叶子节点的传输路径一致。
另外,组播叶子节点在通过第一接口发送第二组播加入报文以建立业务流的传输路径时,还可以通过第二接口发送第二组播加入报文以建立业务流的传输路径的备份路径,以便后续在检测到业务流的传输路径故障的情况下,切换至业务流的传输路径的备份路径来接收业务流。
第二方面,提供了一种路径故障检测方法,所述方法包括:组播根节点接收第一组播加入报文,所述第一组播加入报文包括所述组播根节点的地址和第一组播组的地址,所述第一组播加入报文用于建立所述组播根节点与第一节点间的组播检测路径,所述组播检测路径与所述组播根节点对应的第一组播源提供的业务流的传输路径相同;所述组播根节点通过所述组播检测路径向所述第一节点发送检测报文,所述检测报文包括所述组播根节点的地址和所述第一组播组的地址。
在本申请中,组播根节点可以接收第一组播加入报文,由于该第一组播加入报文用于建立组播根节点与第一节点间的组播检测路径,且该组播检测路径将与该组播根节点连接的第一组播源提供的业务流的传输路径相一致。因此,组播根节点可以通过该组播检测路径向第一节点发送检测报文,以使得第一节点可以基于从该组播检测路径上获取到的检测报文来准确判断第一组播源提供业务流的传输路径是否故障,从而实现故障的快速感知,进而快速切换路径,以缩短业务中断的时间。
可选地,所述组播根节点在接收第一组播加入报文之前,还可以发送通告报文,所述通告报文包括所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址。
在本申请中,组播根节点上可以配置有与该组播根节点连接的第一组播源的地址以及与第一组播源的地址对应的检测会话信息。其中,该检测会话信息包括该组播根节点的地址和第一组播组的地址。可选地,该检测会话信息还可以包括第一会话标识。在这种情况下,检测报文还包括该第一会话标识。其中,所述第一会话标识用于标识双向转发检测BFD会话。相应地,该检测报文即为BFD报文。
可选地,当该组播根节点同时连接有多个组播源时,该组播根节点上配置的该多个组播源的地址对应的检测会话信息可以相同。例如,当组播根节点还连接有第二组播源时,该组播根节点上还配置有第二组播源的地址与组播根节点的地址、第一组播组的地址的对应关系,也即,第一组播源的地址和第二组播源的地址均对应组播根节点的地址和第一组播组的地址。这样,组播叶子节点在接收到携带不同组播源的组播加入请求时,在基于组播加入请求建立组播检测路径的过程中,该组播根节点和组播叶子节点之间的中间节点对于不同组播源只需建立一个组播检测表项即可,降低了网络中建立的组播检测表项的数量。
可选地,所述通告报文为PIM报文。在这种情况下,组播根节点在生成该PIM报文之后,可以分别向与其连接的中间节点发送该PIM报文。其中,与其连接的中间节点是指该组播根节点的PIM邻居节点。
其中,所述PIM报文可以包括第一TLV字段,所述第一TLV字段中携带所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址。
可选地,所述通告报文为BGP报文。在这种情况下,组播根节点在生成该BGP报文之后,可以将该BGP报文发送至路由反射器(route reflector,RR)。该RR中配置有该组播根节点连接的所有组播叶子节点的地址,这样,该RR可以将该BGP报文反射至该组播根节点对应的各个组播叶子节点。
其中,所述BGP报文可以包括网络可达路由信息NLRI字段和第二TLV字段,所述NLRI字段携带所述第一组播源对应的前缀,所述第二TLV字段携带所述组播根节点的地址和所述第一组播组的地址。
可选地,所述组播根节点接收第一组播加入报文的实现过程为:所述组播根节点通过第一接口接收所述第一组播加入报文,所述第一接口为与所述组播检测路径上的下一跳节点通信的接口。同时,该第一接口也是该组播根节点与第一组播源提供的业务流的传输路径上的下一跳节点通信的接口。
可选地,所述组播根节点还可以接收第二组播加入报文,以建立所述传输路径,所述第二组播加入报文包括所述第一组播源的地址和第二组播组的地址。
可选地,所述组播根节点接收第二组播加入报文的实现过程为:所述组播根节点通过第一接口和第二接口接收所述第二组播加入报文,所述第一接口为与所述传输路径上的下一跳节点通信的接口,所述第二接口为与所述传输路径的备份路径上的下一跳节点通信的接口。
在本申请中,第一接口为主接口,第二接口为备份接口。组播根节点可以通过第一接口接收第一组播加入报文和第二组播加入报文。也即,组播根节点可以采用主接口接收第一组播加入报文和第二组播加入报文,并建立第一组播加入报文对应的组播表项以完成组播检测路径的建立,建立第二组播加入报文对应的组播表项,并向第一组播源继续转发第二组播加入报文,以使第一组播源建立第二组播加入报文对应的组播表项以建立业务流的传输路径,此时,该组播检测路径与业务流从组播根节点到组播叶子节点的传输路径一致。
另外,组播根节点在通过第一接口接收第二组播加入报文以建立业务流的传输路径时,还可以通过第二接口接收第二组播加入报文以建立业务流的传输路径的备份路径,以便后续同时通过该传输路径和备份路径发送业务流,从而使得组播叶子节点在业务流的传输路径故障的情况下,能够切换至业务流的传输路径的备份路径来接收业务流。
可选地,所述第一节点为组播叶子节点或中间节点。也即,上述与组播根节点建立组播检测路径的第一节点可以是组播叶子节点,也可以是组播叶子节点与该组播根节点之间的中间节点。这样,通过第一节点与组播根节点之间的组播检测路径,该第一节点可以检测业务流从该组播根节点到该第一节点之间的传输路径是否故障,也即,根据第一节点的不同,能够实现对该业务流的传输路径上的某一段路径的检测。
第三方面,提供了一种路径故障检测装置,部署于组播网络中的第一节点上,所述第一节点为组播叶子节点或中间节点,所述路径故障检测装置包括至少一个模块,所述至少一个模块用于实现第一方面所述的路径故障检测方法。示例性地,所述至少一个模块包括获取模块、发送模块和检测模块。
其中,获取模块,用于获取第一组播源对应的组播根节点的地址和第一组播组的地址;发送模块,用于获取第一组播加入报文并发送所述第一组播加入报文,所述第一组播加入报文包括所述组播根节点的地址和所述第一组播组的地址,所述第一组播加入报文用于建立所述组播根节点与所述第一节点间的组播检测路径,所述组播检测路径与所述第一组播源提供的业务流的传输路径相同;检测模块,用于基于从所述组播检测路径获取的检测报文判断是否存在故障,所述检测报文包括所述组播根节点的地址和所述第一组播组的地址。
可选地,所述装置还包括:接收模块。其中,所述接收模块用于接收来自所述组播根节点的通告报文,所述通告报文包括所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址;所述获取模块还用于基于所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址,获取第一对应关系,所述第一对应关系包括所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址。
可选地,所述获取模块主要用于基于所述第一组播源的地址和所述第一对应关系,获取所述组播根节点的地址和所述第一组播组的地址。
可选地,所述通告报文为协议独立组播PIM报文。
可选地,所述PIM报文包括第一类型长度值TLV字段,所述第一TLV字段中携带所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址。
可选地,所述通告报文为边界网关协议BGP报文。
可选地,所述BGP报文包括网络可达路由信息NLRI字段和第二TLV字段,所述NLRI字段携带所述第一组播源对应的前缀,所述第二TLV字段携带所述组播根节点的地址和所述第一组播组的地址。
可选地,所述第一节点为组播根节点和组播叶子节点之间的中间节点,所述接收模块主要用于接收来自所述组播叶子节点的所述第一组播加入报文,所述发送模块主要用于基于所述第一组播加入报文生成组播表项,所述组播表项包括所述组播根节点的地址、所述第一组播组的地址和出接口,所述出接口为所述第一节点接收所述第一组播加入报文的接口。
可选地,所述第一节点为组播叶子节点,所述发送模块主要用于基于所述组播根节点的地址和所述第一组播组的地址,生成所述第一组播加入报文。
可选地,所述发送模块主要用于通过第一接口发送所述第一组播加入报文,所述第一接口为与所述组播检测路径上的上一跳节点通信的接口。
可选地,所述检测模块主要用于:在预设时长内通过所述第一接口接收到的检测报文的数量为小于阈值,则确定所述组播检测路径存在故障。
可选地,所述第一节点为组播叶子节点,所述接收模块还用于接收组播接收者发送的组播加入请求,所述组播加入请求包括所述第一组播源的地址和第二组播组的地址;所述发送模块还用于基于所述组播加入请求生成第二组播加入报文,所述第二组播加入报文包括所述第一组播源的地址和所述第二组播组的地址,发送所述第二组播加入报文,以建立所述传输路径。
可选地,所述发送模块主要用于通过第一接口和第二接口发送所述第二组播加入报文,所述第一接口为与所述传输路径上的上一跳节点通信的接口,所述第二接口为与所述传输路径的备份路径上的上一跳节点通信的接口。
第四方面,提供了一种路径故障检测装置,部署于组播网络中的组播根节点上,所述路径故障检测装置包括至少一个模块,所述至少一个模块用于实现第一方面所述的路径故障检测方法。示例性地,所述至少一个模块包括接收模块和发送模块。
其中,接收模块用于接收第一组播加入报文,所述第一组播加入报文包括所述组播根节点的地址和第一组播组的地址,所述第一组播加入报文用于建立所述组播根节点与第一节点间的组播检测路径,所述组播检测路径与所述组播根节点对应的第一组播源提供的业务流的传输路径相同;发送模块通过所述组播检测路径向所述第一节点发送检测报文,所述检测报文包括所述组播根节点的地址和所述第一组播组的地址。
可选地,所述发送模块还用于:发送通告报文,所述通告报文包括所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址。
可选地,所述通告报文为PIM报文。
可选地,所述PIM报文包括第一TLV字段,所述第一TLV字段中携带所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址。
可选地,所述通告报文为BGP报文。
可选地,所述BGP报文包括网络可达路由信息NLRI字段和第二TLV字段,所述NLRI字段携带所述第一组播源对应的前缀,所述第二TLV字段携带所述组播根节点的地址和所述第一组播组的地址。
可选地,上述的检测报文和通告报文还包括所述第一组播源对应的第一会话标识,所述第一会话标识用于标识双向转发检测BFD会话。
可选地,所述接收模块主要用于通过第一接口接收所述第一组播加入报文,所述第一接口为与所述组播检测路径上的下一跳节点通信的接口。
可选地,所述接收模块还用于:接收第二组播加入报文,以建立所述传输路径,所述第二组播加入报文包括所述第一组播源的地址和第二组播组的地址。
可选地,所述接收模块主要用于通过第一接口和第二接口接收所述第二组播加入报文,所述第一接口为与所述传输路径上的下一跳节点通信的接口,所述第二接口为与所述传输路径的备份路径上的下一跳节点通信的接口。
可选地,所述第一节点为组播叶子节点或中间节点。
第五方面,提供了一种网络设备,所述网络设备的结构中包括处理器和存储器,所述存储器用于存储支持网络设备执行上述第一方面或第二方面所提供的路径故障检测方法的至少一条程序指令或代码,以及存储用于实现上述第一方面或第二方面所提供的路径故障检测方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序指令或代码。
第六方面,提供了一种组播网络系统,所述组播网络系统包括组播根节点和第一节点;其中,所述第一节点用于获取第一组播源对应的组播根节点的地址和第一组播组的地址;获取第一组播加入报文并发送所述第一组播加入报文,所述第一组播加入报文包括所述组播根节点的地址和所述第一组播组的地址,所述第一组播加入报文用于建立所述组播根节点与所述第一节点间的组播检测路径,所述组播检测路径与所述第一组播源提供的业务流的传输路径相同;所述组播根节点用于接收第一组播加入报文,并通过所述组播检测路径向所述第一节点发送检测报文,所述检测报文包括所述组播根节点的地址和所述第一组播组的地址;所述第一节点用于基于从所述组播检测路径获取的检测报文判断是否存在故障。
其中,上述的第一节点可以为组播叶子节点,也可以为组播叶子节点与该组播根节点之间的中间节点。另外,组播根节点和第一节点之间还可以存在其他节点。需要说明的是,第一节点在实现各个步骤时可以参考前述第一方面中的相关实现方式,组播根节点在实现各个步骤时可以参考前述第二方面中的相关实现方式,本申请实施例对此不再赘述。
第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的路径故障检测方法。
第八方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的路径故障检测方法。
上述第三方面至第八方面所获得的技术效果与第一方面和第二方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
本申请实施例提供的技术方案至少具有如下有益效果:
在本申请实施例中,第一节点可以根据第一组播源对应的组播根节点的地址和第一组播组的地址,建立自身与该组播根节点间的组播检测路径,该组播检测路径将与第一组播源提供的业务流的传输路径相一致。在这种情况下,第一节点可以基于从该组播检测路径上获取到的检测报文来准确判断第一组播源提供业务流的传输路径是否故障,从而实现故障的快速感知,进而快速切换路径,以缩短业务中断的时间。
附图说明
图1是本申请实施例提供的一种组播网络的架构图;
图2是本申请实施例提供的一种网络设备的结构示意图;
图3是本申请实施例提供的一种路径故障检测方法的流程图;
图4是本申请实施例提供的一种PIM报文的报文格式的示意图;
图5是本申请实施例提供的一种BGP报文中携带的TLV字段的示意图;
图6是本申请实施例提供的另一种组播网络的架构图;
图7是本申请实施例提供的一种组播根节点向组播叶子节点通告信息的流程图;
图8是本申请实施例提供的一种组播根节点向组播叶子节点发送的PIM报文的传输路径示意图;
图9是本申请实施例提供的另一种组播根节点向组播叶子节点通告信息的流程图;
图10是本申请实施例提供的一种组播根节点向组播叶子节点发送的BGP报文的传输路径示意图;
图11是本申请实施例提供的一种组播根节点和组播叶子节点之间建立组播检测路径和发送检测报文的流程图;
图12是本申请实施例提供的一种组播叶子节点发送的组播加入报文的传输路径示意图;
图13是本申请实施例提供的一种组播源提供的业务流和检测报文的传输路径示意图;
图14是本申请实施例提供的一种路径故障检测装置的结构示意图;
图15是本申请实施例提供的另一种路径故障检测装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例的应用场景进行介绍。
网络协议(internet protocol,IP)组播技术实现了IP网络中点到多点的高效数据传输,能够有效的节约网络带宽,降低网络负载,被广泛的应用于诸如网络电视(internet protocol television,IPTV)、证券交易等场景中。
为了保证IP组播的可靠性,在组播网络中,组播接收者和组播源之间可以建立至少两条组播路径来实现故障备份。例如,图1是本申请实施例示出的一种组播网络的架构图。如图1所示,该组播网络包括组播源101、与组播源101连接的组播根节点102、第一中间节点103、第二中间节点104、组播叶子节点105和组播接收者106。其中,组播叶子节点105和组播接收者106连接,组播根节点102和组播叶子节点105均与第一中间节点103、第二中间节点104连接。并且,第一中间节点103和第二中间节点104可以通过选举确定出主中间节点和备份中间节点。这样,组播根节点、主中间节点和组播叶子节点组成了业务流的传输路径,而组播根节点、备份中间节点和组播叶子节点组成了该传输路径的备份路径。在下文中以第一中间节点103为主中间节点、第二中间节点104为备份中间节点为例进行说明。
当组播接收者106要接收组播源101提供的业务流时,可以向组播叶子节点105发送组播加入请求。组播叶子节点在接收到组播加入请求之后,分别向第一中间节点103和第二中间节点104发送组播加入报文。第一中间节点103和第二中间节点104各自基于接收该组播加入报文的接口建立组播表项。之后,将该组播加入报文发送至组播根节点102。组播根节点102同样基于接收该组播加入报文的接口建立组播表项,之后,将该组播加入报文发送至组播源101。组播源101基于接收该组播加入报文的接口建立组播表项。如此,从组播源101到组播接收者106的业务流的传输路径和该传输路径的备份路径即建立成功。
后续,组播源101在向组播接收者106发送业务流时,根据前述建立的组播表项将该组播业务流发送至组播根节点102。组播根节点102在接收到该业务流之后,根据前述建立的组播表项将该业务流复制至第一中间节点103和第二中间节点104。第一中间节点103和第二中间节点104在接收到该业务流之后,分别向组播叶子节点105转发该业务流。由于第一中间节点103为主中间节点,而第二中间节点104为备份中间节点,所以,组播叶子节点105可以将自身与第一中间节点103连接的主接口上接收到的业务流转发给组播接收者106。而对于自身与第二中间节点104连接的备份接口上接收到的业务流,则可以丢弃。如果组播叶子节点105确定第一中间节点103所在的传输路径故障,则该组播叶子节点105可以切换为将备份接口上接收到的业务流发送至组播接收者106,以此来实现故障切换。
目前,如果组播叶子节点105上连接第一中间节点103的主接口发生故障或者是第一中间节点故障导致传输路径故障,则组播叶子节点105能够快速感知到该故障并进行故障切换。但是,如果第一中间节点103和组播根节点102之间发生故障导致该传输路径故障,则组播叶子节点105无法快速感知此类远端故障,需要依赖于组播源101的单播路由收敛为第二中间节点104作为主中间节点时,才能切换为将第二中间节点104发送的业务流转发给组播接收者106,这将导致业务中断时间较长。
基于此,本申请实施例提供了一种路径故障检测方法,通过在组播根节点102和组播叶子节点105之间建立与业务流的传输路径一致的组播检测路径,进而在该组播检测路径上传输检测报文来检测组播业务流的传输路径是否故障,以此达到组播叶子节点快速感知远端故障并快速进行故障切换,缩短业务中断的时间的效果。
在本申请实施例中,组播根节点102可以通过第一中间节点103和第二中间节点104向组播叶子节点105发送通告报文,该通告报文包括组播源101的地址、组播根节点102的地址和第一组播组的地址。组播叶子节点105在接收到该通告报文之后,将组播源101的地址、组播根节点102的地址和第一组播组的地址对应存储。之后,当组播叶子节点105接收到组播接收者106发送的请求获取组播源101提供的业务流的组播加入请求时,该组播叶子节点105可以通过本申请实施例提供的方法与组播根节点102之间建立与该组播业务流的传输路径一致的组播检测路径。之后,组播根节点102可以通过该组播检测路径发送检测报文,组播叶子节点105可以基于在该组播检测路径上接收的检测报文的情况来确定该组播检测路径是否故障。由于该组播检测路径与业务流的传输路径一致,所以,通过判断该组播检测路径是否故障即能够判定出该业务流的传输路径是否故障。
在一种可能的情况中,在本申请实施例中,组播根节点102在通过组播检测路径发送检测报文后,位于组播检测路径上的中间节点也可以通过接收到的检测报文来确定自身到组播根节点102之间的传输路径是否故障。
需要说明的是,图1所示的组播网络中以组播根节点和组播叶子节点之间通过两个中间节点连接为例进行的说明。但是,这并不构成对中间节点的数量的限制。也即,组播根节点和组播叶子节点之间可以连接有更多的中间节点。例如,第一中间节点103与组播叶子节点105之间还可以连接有其他中间节点,第一中间节点103与组播根节点102之间也可以连接有其他中间节点。第二中间节点104与组播根节点102、组播叶子节点105之间也可以连接有其他中间节点。再例如,组播根节点102和组播叶子节点105还可以通过除第一中间节点和第二中间节点之外的其他中间节点连接,在这种情况下,第二中间节点和该其他中间节点均为备份中间节点,也即,组播根节点102和组播叶子节点105之间的备份路径可以有不止一条。
另外,上述图1中仅示出了组播根节点102连接的一个组播源101。在本申请实施例中,组播根节点102也可以同时连接多个组播源,并且,每个组播源与该组播根节102点可以直接连接,也可以通过其他节点间接连接,本申请实施例对此不做限定。同理,组播叶子节点105也可以连接多个组播接收者,并且,每个组播接收者与组播叶子节点105可以直接连接,也可以通过其他节点间接连接。
其中,上述的组播源101可以为服务器,组播接收者106可以为用户终端,组播根节点102和组播叶子节点105可以为交换机,各个中间节点可以路由器、交换机等具有转发功能的网络设备,或者,在一些可能的实现方式中,每个中间节点均可以为一个由多个网络设备组成的网络区域,本申请实施例对此不做具体限定。
图2是本申请实施例提供的一种网络设备的结构示意图。图1所示的组播网络中的组播根节点、中间节点和组播叶子节点中的任一节点可以通过该网络设备来实现。参见图2,该网络设备包括至少一个处理器201,通信总线202,存储器203以及至少一个通信接口204。
处理器201可以是一个网络处理器(network processing unit,CPU),通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线202可包括一通路,在上述组件之间传送信息。
存储器203可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,随机存取存储器(random access memory,RAM))或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器203可以是独立存在,通过通信总线202与处理器201相连接。存储器203也可以和处理器201集成在一起。
通信接口204,使用任何收发器一类的装置,用于与其它设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(wireless local area networks,WLAN)等。
在具体实现中,作为一种实施例,处理器201可以包括一个或多个CPU,例如图2中所示的CPU0和CPU1。
在具体实现中,作为一种实施例,网络设备可以包括多个处理器,例如图2中所示的处理器201和处理器205。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
其中,存储器203用于存储执行本申请方案的程序代码,并由处理器201来控制执行。处理器201用于执行存储器203中存储的程序代码206。程序代码206中可以包括一个或多个软件模块。该网络设备可以通过处理器201以及存储器203中的程序代码206中的一个或多个软件模块,来实现下述方法中的任意可能的实现方式中的方法。
接下来对本申请实施例提供的路径故障检测方法进行解释说明。
图3是本申请实施例提供的一种路径故障检测方法的流程图,该方法可以应用于前述图1所示的组播网络中,如图3所示,该方法包括以下步骤:
步骤301:组播根节点发送通告报文,该通告报文包括第一组播源的地址和组播根节点的地址。
在本申请实施例中,组播根节点上可以配置有与该组播根节点直接连接或间接连接的组播源的地址以及与组播源的地址对应的检测会话信息。该检测会话信息用于建立与组播源提供的业务流的传输路径相一致的组播检测路径。这样,通过检测该组播检测路径是否故障即能够检测该组播源提供的业务流的传输路径是否故障。
其中,该检测会话信息可以包括该组播根节点的地址和组播组的地址。组播根节点的地址可以为该组播根节点的本地环回地址。组播组的地址可以为任意一个组播组地址。
可选地,该检测会话信息还可以包括会话标识,该会话标识可以用于唯一标识一个检测会话,例如,在本申请实施例中,该检测会话信息可以为双向转发检测(bidirectional forwarding detection,BFD)会话信息,此时,该会话标识即用于唯一标识一个BFD会话。在这种情况下,该会话标识可以为本端鉴别符(my discriminator,MD)。
当该组播根节点同时连接有多个组播源时,该组播根节点上配置的该多个组播源的地址对应的检测会话信息可以相同。
可选地,当某个组播源在连接该组播根节点的同时还连接有其他组播根节点时,则在该组播根节点和其他组播根节点上配置的该组播源地址对应的检测会话信息可以相同也可以不同。
示例性地,以该组播根节点连接的组播源为第一组播源为例。该组播根节点可以获取自身配置的第一组播源的地址以及与该第一组播源的地址对应的该组播根节点的地址和第一组播组的地址。之后,该组播根节点可以基于该第一组播源的地址、自身的地址和第一组播组的地址生成通告报文,并向组播叶子节点发送该通告报文。其中,该通告报文包括第一组播源的地址、该组播根节点的地址和第一组播组的地址。其中,第一组播组的地址可以为任一组播组的地址。可选地,该通告报文还可以包括第一组播源对应的第一会话标识。
在一种可能的实现方式中,该通告报文可以为协议独立组播(protocolindependent multicast)报文。其中,该PIM报文可以包括第一TLV字段,该第一TLV字段中携带第一组播源的地址、该组播根节点的地址和第一组播组的地址。可选地,该第一TLV字段还可以包括第一会话标识。
例如,图4是本申请实施例示出的一种PIM报文的报文格式示意图。参见图4,该PIM报文中包括PIM版本、预留字段、校验和字段。第一TLV字段可以位于该校验和字段之后。该第一TLV字段包括类型字段、长度字段和值字段,类型字段用于指示该第一TLV字段为携带有检测会话信息的字段,长度字段用于指示值字段的长度,值字段则用于携带上述的第一组播源的地址、该组播根节点的地址、第一组播组的地址和第一会话标识。例如,该组播根节点的地址为Sx1,第一组播组的地址为Gx1,第一会话标识为MD1,第一组播源的地址为S1,则可以如图4所示在第一TLV字段的值字段中依次携带Sx1、Gx1、MD1和S1。
可选地,当该组播根节点还连接有其他组播源时,该PIM报文中还可以包括其他组播源的地址。例如,当该组播根节点连接有第二组播源,且第二组播源的地址为S2时,如图4所示,该PIM报文的第一TLV字段的值字段中还携带有S2。此时,该第二组播源与组播根节点的地址、第一组播组的地址和第一会话标识对应。也即,该第二组播源对应的检测会话信息与第一组播源对应的检测会话信息相同。
可选地,该PIM报文的第一TLV字段中还可以携带有组播源数量N,以指示该第一TLV字段中携带的组播源的地址的数量。例如,如图4所示,当该第一TLV字段的值字段携带有S1和S2时,该组播源数量N等于2。
可选地,由前述介绍可知,该组播根节点连接的组播源还可能连接有其他组播根节点,且不同组播根节点上配置的该组播源对应的检测会话信息不同。基于此,其他组播根节点可能也会向组播叶子节点发送PIM报文,以向组播叶子节点通告用于建立检测该组播源的组播业务流的传输路径是否故障的检测会话信息。在这种情况下,该PIM报文的第一TLV字段的值字段中还可以包括优先级。其中,该优先级为该PIM报文中包括的检测会话信息的优先级。例如,如图4所示,该优先级可以位于组播根节点的地址之前。这样,组播叶子节点在接收到不同的PIM报文中包括的该组播源的地址对应的不同的检测会话信息时,可以基于各个PIM报文中携带的优先级来选择一个检测会话信息建立该组播源对应的组播业务流的组播检测路径。
在通告报文为PIM报文的情况下,组播根节点在生成该PIM报文之后,可以分别向与其连接的中间节点发送该PIM报文。其中,与其连接的中间节点是指该组播根节点的PIM邻居节点。
以任一个中间节点为例,当该中间节点接收到该组播根节点发送的PIM报文时,该中间节点可以对该PIM报文中的该组播根节点的地址和第一组播源的地址进行反向路径转发(reverse path forwarding,RPF)检查。如果对该组播根节点的地址和第一组播源的地址的RPF检查通过,则该中间节点可以将该PIM报文中携带的第一组播源的地址、该组播根节点的地址和第一组播组的地址对应存储。可选地,当PIM报文中还包括第一会话标识时,该中间节点可以将该第一会话标识也与上述信息对应存储。
示例性地,该中间节点可以确定该PIM报文的入接口。之后,该中间节点可以获取自身存储的该组播根节点的单播路由信息以及第一组播源的单播路由信息。如果该组播根节点的单播路由信息中该组播根节点的地址对应的出接口即为该PIM报文的入接口,则确定对该组播根节点的地址的RPF检查通过,如果该组播根节点的地址对应的出接口不为该PIM报文的入接口,则确定对该组播根节点的地址的RPF检测未通过。同理,如果第一组播源的单播路由信息中该第一组播源的地址对应的出接口为该PIM报文的入接口,则确定对第一组播源的地址的RPF检查通过,否则,确定对第一组播源的地址的RPF检查未通过。
如果该中间节点对组播根节点的地址和第一组播源的地址的RPF检查均通过,则该中间节点可以确定自身即为到该组播根节点和第一组播源的最优路由上的节点。在这种情况下,该中间节点可以将该的第一组播源的地址、该组播根节点的地址和第一组播组的地址对应存储。
如果该中间节点对该组播根节点的地址的RPF检查未通过,则该中间节点可以直接将该PIM报文丢弃。
如果该中间节点对该组播根节点的地址的RPF检查通过,但是对第一组播源的地址的RPF检查未通过,则该中间节点可以将该PIM报文的第一TLV字段中携带的第一组播源的地址删除。在删除第一组播源的地址之后,如果该第一TLV字段不包括其他组播源的地址,则该中间节点可以直接将该PIM报文丢弃。如果该第一TLV字段还包括其他组播源的地址,则该中间节点可以继续参考上述方式对其他组播源的地址进行RPF检查。
在通过上述方式对PIM报文中的组播根节点的地址和组播源的地址进行RPF检查得到检查通过的PIM报文之后,该中间节点可以向自身的PIM邻居节点发送检查通过的PIM报文。此时,该中间节点的PIM邻居节点可能为其他中间节点,也可能为组播叶子节点,也可能为其他组播根节点。
对于与组播根节点连接的每个中间节点,均可以通过上述方式来对接收到的PIM报文进行处理,而这些中间节点的PIM邻居节点在接收到PIM报文之后,也可以参考这些中间节点的处理方式对该PIM报文进行处理,如此,通过逐跳传输,可以将最终通过RPF检查的PIM报文传输至组播叶子节点。
在另一种可能的实现方式中,组播根节点生成的通告报文为BGP报文。其中,该BGP报文中可以包括组播根节点的地址、第一组播组的地址和该组播根节点存储的与该组播根节点直接或间接连接的第一组播源对应的单播路由前缀。可选地,该BGP报文中还可以包括与第一组播源对应的第一会话标识。
其中,BGP报文包括NLRI字段和第二TLV字段。在本申请实施例中,可以通过NLRI字段携带该组播根节点存储的第一组播源对应的前缀,通过第二TLV字段携带组播根节点的地址和第一组播组的地址。当该BGP报文还包括第一会话标识时,第二TLV字段还可以携带第一会话标识。其中,第二TLV字段包括类型字段、长度字段和值字段。其中,类型字段用于指示该第二TLV字段携带有检测会话信息,长度字段用于指示该第二TLV字段中的值字段的长度,值字段则可以用于携带组播根节点的地址和第一组播组的地址。可选地,该值字段还可以用于携带第一会话标识。
例如,图5是本申请实施例示出的一种BGP报文中的第二TLV字段的示意图。其中,在第二TLV字段的值字段中依次携带有组播根节点的地址Sx1、第一组播组的地址Gx1和第一会话标识MD1。
可选地,当该组播根节点还连接有其他组播源时,则该BGP报文的NLRI字段中还可以携带有该组播根节点存储的其他组播源对应的前缀。例如,当该组播根节点连接有第二组播源时,该BGP报文的NLRI字段中还携带有该组播根节点存储的第二组播源对应的前缀。
在通告报文为BGP报文的情况下,组播根节点在生成该BGP报文之后,可以将该BGP报文发送至路由反射器(route reflector,RR)。该RR中配置有与该组播根节点通信的所有组播叶子节点的地址,这样,该RR可以将该BGP报文反射至该组播根节点对应的各个组播叶子节点。
步骤302:组播叶子节点基于通告报文获取第一对应关系,该第一对应关系包括第一组播源的地址、组播根节点的地址和第一组播组的地址。
对于与该组播根节点通信的任一个组播叶子节点,该组播叶子节点可以接收来自组播根节点的通告报文。
其中,如果该通告报文为前述的PIM报文,且该PIM报文中包括第一组播源的地址、该组播根节点的地址和第一组播组的地址,则该组播叶子节点对组播根节点的地址和第一组播源的地址进行RPF检查。如果检查通过,则该组播叶子节点将该第一组播源的地址、组播根节点的地址和第一组播组的地址对应存储至第一对应关系中。其中,当该PIM报文还包括第一会话标识时,该组播叶子节点还可以将第一会话标识也与上述信息对应存储至第一对应关系中。
可选地,如果该PIM报文中还包括其他组播源的地址,则该组播叶子节点同样可以对其他组播源的地址进行RPF检查,并在检查通过之后,将其他组播源的地址与组播根节点的地址和第一组播组的地址对应存储至第一对应关系中。
例如,组播叶子节点上的第一对应关系可以如表1所示。当组播叶子节点接收到的PIM报文即为图4所示的PIM报文时,该组播叶子节点在该第一对应关系中存入的第一组播源的地址、第二组播源的地址和对应的组播根节点的地址、第一组播组的地址和第一会话标识如表1所示。
表1第一对应关系
组播源 | 检测会话信息 |
S1 | (Sx1,Gx1,MD1) |
S2 | (Sx1,Gx1,MD1) |
可选地,如前述介绍可知,一个组播源除了连接该组播根节点还可能连接其他组播根节点,在这种情况下,组播叶子节点除了会接收到来自该组播根节点的包含有第一组播源的地址的PIM报文,可能还会接收到来自其他组播根节点的包含有第一组播源的地址的PIM报文。在这种情况下,组播叶子节点可以比较各个PIM报文携带的优先级,基于优先级较大的PIM报文中包括的第一组播源的地址和对应的检测会话信息获取上述第一对应关系。此时,该第一对应关系中将包括第一组播源的地址和该优先级较大的PIM报文中的检测会话信息。
可选地,如果该通告报文为前述的BGP报文,且该BGP报文包括该组播根节点的地址、第一组播组的地址以及该组播根节点存储的与该组播根节点连接的第一组播源对应的前缀,则该组播叶子节点可以获取该BGP报文中包括的第一组播源对应的前缀,之后,将自身存储的第一组播源对应的前缀和BGP报文中的包括的第一组播源对应的前缀进行比较。其中,该组播叶子节点上存储有第一组播源的最优单播路由。在此基础上,如果BGP报文中包括的第一组播源对应的前缀的优先级低于该组播叶子节点上存储的第一组播源对应的前缀的优先级,则说明该BGP报文中的第一组播源对应的前缀并非该第一组播源的最优路由前缀。在这种情况下,该组播叶子节点则可以丢弃该BGP报文中的第一组播源对应的前缀。如果BGP报文中的第一组播源对应的前缀的优先级等于或高于该组播叶子节点上存储的第一组播源对应的前缀的优先级,则说明该BGP报文中的第一组播源对应的前缀即为该第一组播源的最优路由前缀,也即,该组播根节点即为第一组播源的最优路由上的根节点。在这种情况下,该组播叶子节点可以基于第一组播源对应的前缀确定第一组播源的地址,进而将该第一组播源的地址、该组播根节点的地址和第一组播组的地址对应存储至第一对应关系中。当然,如果该BGP报文中还携带有第一会话标识,则该组播叶子节点还可以将第一会话标识也与上述信息对应存储至第一对应关系中。
可选地,如果BGP报文中还携带有该组播根节点连接的其他组播源对应的前缀,则该组播叶子节点可以参考上述方法对其他组播源对应的前缀进行处理,以决定是否将其他组播源的地址、该组播根节点的地址和第一组播组的地址对应存储至第一对应关系中。
可选地,在将组播源的地址、该组播根节点的地址和第一组播组的地址对应存储时,还可以对应的存储BGP报文中该组播源对应的前缀。
例如,组播叶子节点上的第一对应关系可以如表2所示。当组播叶子节点接收到的BGP报文既包括第一组播源对应的前缀也包括第二组播源对应的前缀时,该组播叶子节点在该第一对应关系中存入的对应关系如表2所示。
表2第一对应关系
组播源 | 组播源的单播路由前缀 | 检测会话信息 |
S1 | Prefix1 | (Sx1,Gx1,MD1) |
S2 | Prefix2 | (Sx1,Gx1,MD1) |
步骤303:组播叶子节点获取第一组播源对应的组播根节点的地址和第一组播组的地址。
组播叶子节点在基于通告报文中的第一组播源的地址、组播根节点的地址和第一组播组的地址获得第一对应关系之后,当该组播叶子节点接收到组播接收者发送的携带有第一组播源的地址和第二组播组的地址的组播加入请求时,该组播叶子节点可以获取该组播加入请求中的第一组播源的地址,根据第一组播源的地址和第一对应关系,获取第一组播源的地址对应的组播根节点的地址和第一组播组的地址。
其中,第二组播组可以为与第一组播组相同的组播组,或者,也可以为与第一组播组不同的组播组,本申请实施例对此不做限定。
步骤304:组播叶子节点获取第一组播加入报文并发送第一组播加入报文,第一组播加入报文包括组播根节点的地址和第一组播组的地址,第一组播加入报文用于建立组播根节点与组播叶子节点间的组播检测路径,该组播检测路径与第一组播源提供的业务流的传输路径相同。
在获取到第一组播源的地址对应的组播根节点的地址和第一组播组的地址之后,该组播叶子节点可以基于该组播根节点的地址和第一组播组的地址生成第一组播加入报文。之后,组播叶子节点可以基于组播根节点的地址,确定第一接口和第二接口,其中,该第一接口为组播叶子节点与组播检测路径的上一跳节点(下文中称为主中间节点)通信的接口,第二接口为第一接口的备份接口,也即,该第二接口为组播叶子节点与组播检测路径的备份路径上的上一跳节点(下文中称为备份中间节点)的通信接口。在确定出第一接口之后,组播叶子节点将该第一接口与该组播根节点的地址和第一组播组的地址关联,或者,将该第一接口与该组播根节点的地址、第一组播组的地址和第一会话标识关联,以此来指示后续基于从第一接口上获取的检测报文来判断第一组播源提供的业务流的组播路径是否故障。之后,通过第一接口向该组播检测路径的上一跳节点发送第一组播加入报文。
在组播子节点通过第一接口将第一组播加入报文发送至主中间节点后,该主中间节点基于该第一组播加入报文生成组播表项,该组播表项包括组播根节点的地址、第一组播组的地址和对应的出接口,该出接口为该主中间节点收到所述第一组播加入报文的接口。该组播表项即为用于指导该主中间节点在接收到组播根节点发送的携带有组播根节点的地址和第一组播组的地址的检测报文时,通过对应的出接口来发送该检测报文。
例如,当组播根节点的地址为Sx1、第一组播组的地址为Gx1、出接口为PORT1时,生成的组播表项如下表3所示。
表3组播表项
(Sx1,Gx1) | PORT1 |
在建立组播表项之后,该主中间节点可以基于该组播根节点的地址,向组播检测路径上该主中间节点的上一跳主中间节点继续发送该第一组播加入报文。该上一跳主中间节点按照前述的主中间节点相同的方式生成组播表项并继续向其自身的上一跳主中间节点发送该第一组播加入报文,直到组播根节点收到该第一组播加入报文。组播根节点收到该第一组播加入报文之后按照相同的方式生成组播表项,由于第一组播加入报文中的组播根节点地址Sx1为根节点的本地地址,第一组播加入报文不再继续向上游传递,如此,从组播根节点到组播叶子节点的组播检测路径即建立完成。
除了发送第一组播加入报文,组播叶子节点还可以基于前述组播接收者发送的组播加入请求生成第二组播加入报文,该第二组播加入报文包括第一组播源的地址和第二组播组的地址,该第二组播加入报文用于创建第一组播源提供的业务流的传输路径。
在生成第二组播加入报文之后,组播叶子节点可以分别通过前述的第一接口和第二接口发送第二组播加入报文。其中,通过第一接口发送的第二组播加入报文用于建立与前述的组播检测路径一致的业务流的传输路径,而通过第二接口发送的第二组播加入报文则用于建立该业务流的传输路径的备份路径。
与组播叶子节点的第一接口通信的主中间节点在接收到第二组播加入报文后,也可以参考上述的方法基于第一组播源的地址和第二组播组的地址建立对应的组播表项,之后,向自身的上一跳主中间节点转发该第二组播加入报文。此时,该组播表项用于在主中间节点接收到第一组播源发送的携带有第一组播源的地址和第二组播组的地址的业务流之后,指导该主中间节点通过对应的出接口发送该业务流。
当与组播叶子节点的第二接口通信的备份中间节点接收到第二组播加入报文时,可以参考前述主中间节点对第二组播加入报文的处理方式进行处理,本申请实施例对此不再赘述。
主中间节点和备份中间节点在向各自的上一跳节点发送第二组播加入报文之后,各自的上一跳节点也可以基于同样的方式对第二组播加入报文进行处理。如此,通过逐跳传递,组播根节点可以从业务流的传输路径和该传输路径的备份路径上接收第二组播加入报文,并建立对应的组播表项,之后,组播根节点可以将该第二组播加入报文转发给第一组播源,第一组播源基于第二组播加入报文建立对应的组播表项,以完成对第一组播源提供的业务流的传输路径的建立以及该传输路径的备份路径的建立。
需要说明的是,由上述介绍可知,第一组播加入报文包括组播根节点的地址和第一组播组的地址,用于建立该组播根节点到该组播叶子节点之间的组播检测路径,而第二组播加入报文包括第一组播源的地址和第二组播组的地址,用于建立第一组播源到该组播叶子节点之间的传输路径。由于第一组播源与组播根节点连接,而第一组播加入报文包括该组播根节点的地址,第二组播加入报文第一组播源的地址,所以,通过第一组播加入报文建立的从组播根节点到组播叶子节点的组播检测路径和通过第二组播加入报文建立的业务流的传输路径上从组播根节点到组播叶子节点之间的传输路径将相同。也即是,本申请实施例中通过在第一组播加入报文中携带第一组播源连接的组播根节点的地址以及在第二组播加入报文中携带第一组播源的地址,来保证建立的组播检测路径和业务流的传输路径相一致。
另外,由前述介绍可知,组播根节点可以同时连接第一组播源和第二组播源,且第一组播源和第二组播源均与组播根节点的地址、第一组播组的地址对应,也即,第一组播源和第二组播源对应有相同的检测会话信息。在这种情况下,组播叶子节点和组播根节点通过上述方式建立组播检测路径之后,由于组播叶子节点和组播根节点之间的主中间节点已经基于第一组播加入报文生成了包含有组播根节点的地址和第一组播组的地址和对应的出接口的组播表项,因此,如果后续组播叶子节点接收到组播接收者发送的携带有第二组播源的组播加入请求,则该组播叶子节点发现第二组播源和第一组播源对应的组播根节点的地址、第一组播组的地址和第一会话标识相同,则该组播叶子不再为第二组播源发送组播加入报文,而是与第一组播源复用相同的组播检测路径。由此可见,在本申请实施例中,通过为多个组播源绑定同一个检测会话信息,可以减少网络中建立的组播检测路径的组播表项的数量。
步骤305:组播根节点通过组播检测路径向组播叶子节点发送检测报文,该检测报文包括组播根节点的地址和第一组播组的地址。
当组播根节点基于第一组播加入报文建立对应的组播表项以完成组播检测路径的建立之后,该组播根节点生成检测报文,之后,通过该组播检测路径向组播叶子节点发送检测报文。其中,该检测报文包括该组播根节点的地址和第一组播组的地址。可选地,如果组播根节点还向组播叶子节点发送了第一会话标识,则该检测报文还可以包括第一会话标识。此时,该检测报文为一个点到多点的检测报文,也即,该检测报文为组播检测报文。示例性地,该检测报文为BFD检测报文。
组播根节点在生成检测报文之后,从存储的组播表项中确定该组播根节点的地址和第一组播组的地址对应的出接口,之后,组播根节点通过确定的出接口向组播检测路径上该组播根节点的下一跳节点发送该检测报文。并且,在本申请实施例中,组播根节点可以在一个检测周期内每隔预设时间间隔即通过上述方式发送一个检测报文。
步骤306:组播叶子节点基于从组播检测路径获取的检测报文判断是否存在故障。
组播叶子节点可以基于从组播检测路径上接收的检测报文的情况来判断组播检测路径是否故障,进而基于该组播检测路径的故障情况来判断第一组播源提供的业务流的传输路径是否故障。
示例性地,组播叶子节点可以通过第一接口接收组播检测路径上传输的检测报文。如果在预设时长内在第一接口上接收到的检测报文的数量小于阈值,则可以确定该组播检测路径故障。由于该组播检测路径与第一组播源提供的业务流从所连接的组播根节点到该组播叶子节点的传输路径一致,所以,当确定该组播检测路径故障时,该组播叶子节点可以确定从该第一组播源从所连接的组播根节点到该组播叶子节点之间用于传输该第一组播源提供的业务流的传输路径也发生了故障。
其中,该预设时长可以是指一个检测周期内的一定时长,该阈值可以是该预设时长内组播根节点发送的检测报文的数量的数值。例如,假设在所述预设时长内在第一接口上收到的检测报文数量小于该阈值,则可以确定组播检测路径故障。
由前述介绍可知,组播叶子节点在发送第一组播加入报文时,将第一接口与组播根节点的地址、第一组播组的地址进行关联。基于此,在本步骤中,该组播叶子节点可以基于该关联关系,参考上述介绍的方法,通过第一接口上接收到的检测报文的数量来检测第一组播源发送的组播业务流的传输路径是否故障。
如果组播叶子节点确定出从组播根节点到其自身的组播检测路径发生故障,则该组播叶子节点可以将从第一组播源提供的业务流的传输路径的备份路径上接收到的业务流转发给组播接收者,也即,该组播叶子节点可以将通过第二接口接收到的业务流转发给组播接收者。之后,该组播叶子节点可以参考前述建立组播检测路径的方法,通过第二接口发送第一组播加入报文,以建立前述的组播检测路径的备份路径,并将第二接口与第一组播加入报文对应的组播根节点的地址、第一组播组的地址关联,这样,组播叶子节点后续可以根据第二接口上检测报文的接收情况来判断当前传输该业务流的备份路径是否故障,以便在备份路径故障的情况下,再次进行故障切换。
在本申请实施例中,组播叶子节点可以根据第一组播源对应的组播根节点的地址和第一组播组的地址,建立自身与该组播根节点间的组播检测路径,该组播检测路径将与第一组播源提供的业务流的传输路径相一致。在这种情况下,组播叶子节点可以基于从该组播检测路径上获取到的检测报文来准确判断第一组播源提供业务流的传输路径是否故障,从而实现故障的快速感知,进而快速切换路径,以缩短业务中断的时间。
另外,在本申请实施例中,对于连接同一个组播根节点的多个组播源,该组播根节点可以为该多个组播源绑定同一个检测会话信息,也即,多个组播源对应相同的检测会话信息,这样,组播叶子节点在接收到携带不同组播源的组播加入请求时,在基于组播加入请求建立组播检测路径的过程中,该组播根节点和组播叶子节点之间的中间节点对于不同组播源只需建立一个组播检测表项即可,降低了网络中建立的组播检测表项的数量。
需要说明的是,在上述实施例中以在组播根节点和组播叶子节点之间建立组播检测路径为例进行说明。其中,对于组播根节点和组播叶子节点之间的任一中间节点,由前述介绍可知,在组播根节点通过上述步骤301向该组播叶子节点通告第一组播源的地址、该组播根节点的地址和第一组播组的地址的过程中,该中间节点也可以获取到第一组播源的地址、该组播根节点的地址和第一组播组的地址,并根据上述信息获得对应关系。之后,当该中间节点接收到来自组播叶子节点发送的第一组播加入报文之后,该中间节点也可以基于该第一组播加入报文建立组播表项,并向组播检测路径上的上一跳节点发送该第一组播加入报文。在此基础上,该中间节点也可以通过组播检测路径接收检测报文,并通过从该组播检测路径上接收到的报文来检测组播根节点与该中间节点间的检测路径是否故障。
另外,上述实施例中步骤301和302为可选步骤,也即,本申请实施例中可以由组播根节点向组播叶子节点预先下发组播源的地址、组播根节点的地址和组播组的地址的对应关系,也可以直接在组播根节点和组播叶子节点配置上述对应关系,本申请实施例对此不做限定。
接下来结合图6所示的组播网络来对本申请实施例提供的路径故障检测方法进行示例性说明。如图6所示,该组播网络中包括组播根节点R1、组播源S1至S3、中间节点P1至P3以及组播叶子节点L1至L3。其中,S1和S2均与R1连接,S3与P2连接。R1分别与P1、P3连接。P1与P2连接,P2和P3均与L1、L2、L3连接。其中,各个组播叶子节点与P2通信的接口为主接口,与P3通信的接口为备份接口,也即,P2为主中间节点,P3为备份中间节点。
在R1上可以配置有如表4所示的对应关系。其中,下述表中的S1、S2和S3用于标识相应节点的地址,Sx1表示R1的地址,Gx1表示第一组播组的地址,MD1为第一会话标识。
表4R1上配置的对应关系
组播源 | 检测会话信息 |
S1 | (Sx1,Gx1,MD1) |
S2 | (Sx1,Gx1,MD1) |
S3 | (Sx1,Gx1,MD1) |
在此基础上,R1可以分别向L1至L3发布通告报文,以通告上述对应关系。
当R1采用PIM报文通告上述对应关系时,如图7所示,R1向L1至L3通告的流程包括以下步骤701至708,相应地,PIM报文的传输路径如图8所示。
步骤701:R1分别向P1和P3发送PIM报文,其中,该PIM报文包括(Sx1,Gx1,MD1)与对应的S1、S2和S3。
步骤702:P1和P3在接收到该PIM报文之后,各自对该PIM报文中的Sx1、S1、S2和S3进行RPF检查,并确定对Sx1、S1、S2的RPF检查通过,对S3的RPF检查未通过。
由于P1上该R1的单播路由的出接口、S1的单播路由的出接口以及S2的单播路由的出接口均为PIM报文在P1上的入接口,所以对Sx1、S1和S2的RPF检查通过。但是,由于S3连接P2,因此,P1上S3的单播路由的出接口将为P2上的接口,也即不为PIM报文在P1上的入接口,因此,对S3的RPF检查未通过。
同理,P3确定对该PIM报文中的Sx1、S1和S2的RPF检查通过,对S3的RPF检查未通过。
步骤703:P1和P3均删除PIM报文中的S3。
步骤704:P1向P2转发该PIM报文,P3分别向L1、L2和L3转发该PIM报文。
步骤705:P2对接收到的PIM报文中的Sx1、S1和S2进行RPF检查,并确定检查通过。
步骤706:P2分别向L1、L2和L3转发该PIM报文。
步骤707:L1、L2和L3在接收到P2和P3发送的PIM报文之后,各自对该PIM报文中的Sx1、S1和S2进行RPF检查,并确定检查通过。
步骤708:L1、L2和L3基于S1、S2和(Sx1,Gx1,MD1),获取第一对应关系,该第一对应关系包括S1、S2和对应的(Sx1,Gx1,MD1)。
当R1采用BGP报文通告上述对应关系时,如图9所示,R1向L1至L3通告的流程包括以下步骤901至904,相应地,BGP报文的传输路径如图10所示。
步骤901:R1向RR发送BGP报文,该BGP报文包括(Sx1,Gx1,MD1)以及S1、S2和S3分别对应的单播路由前缀。
步骤902:RR将该BGP报文反射至L1、L2和L3。
步骤903:L1、L2和L3将自身存储的S1、S2和S3分别对应的单播路由前缀与BGP报文中的相应地单播路由前缀进行比较,确定BGP报文中S1、S2对应的单播路由前缀的优先级不低于自身存储的S1、S2的单播路由前缀,BGP报文中S3对应的单播路由前缀的优先级低于自身存储的S3的单播路由前缀。
步骤904:L1、L2和L3基于S1、S2分别对应的单播路由前缀和(Sx1,Gx1,MD1),获取第一对应关系,该第一对应关系包括S1、S2和对应的(Sx1,Gx1,MD1)。
在通过上述图7或图9中介绍的方法获得第一对应关系之后,以L1为例,当L1接收到组播接收者发送的组播加入请求时,L1和R1可以通过下述步骤1101至1115建立组播检测路径,并通过该组播检测路径来检测路径是否故障。
步骤1101:L1接收组播接收者发送的组播加入请求,该组播加入请求携带(S1,G1)。
步骤1102:L1根据组播加入请求中携带的S1查询第一对应关系,获得S1对应的(Sx1,Gx1,MD1)。
步骤1103:L1向P2发送检测组播加入报文,并分别向P2和P3发送业务组播加入报文,检测组播加入报文包括(Sx1,Gx1),业务组播加入报文包括(S1,G1)。
步骤1104:P2和P3分别基于业务组播加入报文建立对应组播业务表项,P2基于检测组播加入报文建立对应的组播检测表项。
步骤1105:P2向P1发送检测组播加入报文和业务组播加入报文,P3向R1发送业务组播加入报文。
步骤1106:P1基于检测组播加入报文建立对应组播检测表项,基于业务组播加入报文建立对应的组播业务表项。
步骤1107:P1向R1发送检测组播加入报文和业务组播加入报文。
步骤1108:R1分别基于P3和P1发送的业务播加入报文建立对应的组播业务表项,并基于P1发送的检测组播加入报文建立对应的组播检测表项。
步骤1109:R1向S1继续发送业务组播加入报文。
步骤1110:S1基于业务组播加入报文建立对应的组播业务表项。
步骤1111:S1基于组播业务表项向R1发送(S1,G1)业务流。
步骤1112:R1基于组播业务表项向P1、P3发送(S1,G1)业务流,并基于组播检测表项周期性向P1发送检测报文,检测报文包括(Sx1,Gx1,MD1)。
步骤1113:P1基于组播业务表项向P2发送(S1,G1)业务流,P3基于组播业务表项向L1发送(S1,G1)业务流,P1基于组播检测表项向P2发送检测报文。
步骤1114:P2基于组播检测表项向L1发送检测报文并基于组播业务表项向L1发送(S1,G1)业务流。
步骤1115:当L1基于从P2接收到的检测报文确定路径故障时,将从P3接收到的(S1,G1)业务流转发给组播接收者。
步骤1116:L1通过向P3发送检测组播加入报文以建立组播检测路径的备份路径,并建立L1上与P3通信的接口与组播根节点、第一组播组地址、第一检测会话标识符之间的关联关系。
其中,在上述步骤1101至1110中,组播加入报文的传输路径如图12所示,后续,S1提供的业务流以及R1发送的检测报文的传输路径如图13所示。
需要说明的是,上述以L1接收到的组播加入请求中携带S1为例进行的说明,当L2和L3接收到携带S1的组播加入请求时,也可以参考L1的方式与R1之间建立组播检测路径,从而根据R1在该组播检测路径上传输的检测报文来检测路径是否故障。当然,如果L1、L2和L3中的任一组播叶子节点接收到携带有S2的组播加入请求时,也可以参考上述方式进行处理,本申请实施例在此不再赘述。
接下来对本申请实施例提供的路径故障检测装置进行介绍。
图14是本申请实施例提供的一种路径故障检测装置1400的结构示意图,该装置1400可以部署于前述介绍的组播叶子节点或中间节点上。示例性地,如图14所示,该装置1400可以包括获取模块1401、发送模块1402和检测模块1403。
其中,获取模块1401,用于执行前述实施例中的步骤303;
发送模块1402,用于执行前述实施例中的步骤304;
检测模块1403,用于执行前述实施例中的步骤306。
可选地,参见图14,该装置1400还包括:接收模块1404;该接收模块1404用于接收来自组播根节点的通告报文,通告报文包括第一组播源的地址、组播根节点的地址和第一组播组的地址;获取模块1401还用于基于第一组播源的地址、组播根节点的地址和第一组播组的地址,获取第一对应关系,第一对应关系包括第一组播源的地址、组播根节点的地址和第一组播组的地址。
可选地,获取模块1401主要用于:基于第一组播源的地址和第一对应关系,获取组播根节点的地址和第一组播组的地址。
可选地,通告报文为协议独立组播PIM报文。
可选地,PIM报文包括第一类型长度值TLV字段,第一TLV字段中携带第一组播源的地址、组播根节点的地址和第一组播组的地址。
可选地,通告报文为边界网关协议BGP报文。
可选地,BGP报文包括网络可达路由信息NLRI字段和第二TLV字段,NLRI字段携带第一组播源对应的前缀,第二TLV字段携带组播根节点的地址和第一组播组的地址。
可选地,检测报文和BGP报文还包括第一组播源对应的第一会话标识,第一会话标识用于标识BFD会话。
可选地,接收模块1404主要用于:接收来自组播叶子节点的第一组播加入报文;发送模块1402主要用于:基于第一组播加入报文生成组播表项,组播表项包括组播根节点的地址、第一组播组的地址和出接口,出接口为第一节点接收第一组播加入报文的接口。
可选地,第一节点为组播叶子节点,发送模块1402主要用于:基于组播根节点的地址和第一组播组的地址,生成第一组播加入报文。
可选地,发送模块1402主要用于:通过第一接口发送第一组播加入报文,第一接口为与组播检测路径上的上一跳节点通信的接口。
可选地,检测模块1403主要用于:在预设时长内通过第一接口接收到的检测报文的数量为小于阈值,则确定组播检测路径存在故障。
可选地,第一节点为组播叶子节点;接收模块1404还用于:接收组播接收者发送的组播加入请求,组播加入请求包括第一组播源的地址和第二组播组的地址;发送模块1402还用于基于组播加入请求生成第二组播加入报文,第二组播加入报文包括第一组播源的地址和第二组播组的地址,发送第二组播加入报文,以建立传输路径。
可选地,发送模块1402主要用于通过第一接口和第二接口发送第二组播加入报文,第一接口为与传输路径上的上一跳节点通信的接口,第二接口为与传输路径的备份路径上的上一跳节点通信的接口。
在本申请实施例中,第一节点可以根据第一组播源对应的组播根节点的地址和第一组播组的地址,建立自身与该组播根节点间的组播检测路径,该组播检测路径将与第一组播源提供的业务流的传输路径相一致。在这种情况下,第一节点可以基于从该组播检测路径上获取到的检测报文来准确判断第一组播源提供业务流的传输路径是否故障,从而实现故障的快速感知,进而快速切换路径,以缩短业务中断的时间。
图15是本申请实施例提供的一种路径故障检测装置1500的结构示意图,该装置1500可以部署于前述介绍的组播根节点上。示例性地,如图15所示,该装置1500可以包括接收模块1501和发送模块1502。
其中,接收模块1501,用于在前述实施例中的步骤303之后,接收第一组播加入报文;
发送模块1502,用于执行前述实施例中的步骤306。
可选地,发送模块1502还用于:发送通告报文,通告报文包括第一组播源的地址、组播根节点的地址和第一组播组的地址。
可选地,通告报文为PIM报文。
可选地,PIM报文包括第一TLV字段,第一TLV字段中携带第一组播源的地址、组播根节点的地址和第一组播组的地址。
可选地,通告报文为BGP报文。
可选地,BGP报文包括网络可达路由信息NLRI字段和第二TLV字段,NLRI字段携带第一组播源对应的前缀,第二TLV字段携带组播根节点的地址和第一组播组的地址。
可选地,检测报文和通告报文还包括第一组播源对应的第一会话标识,第一会话标识用于标识BFD会话。
可选地,接收模块1501主要用于通过第一接口接收第一组播加入报文,第一接口为与组播检测路径上的下一跳节点通信的接口。
可选地,接收模块1501还用于:接收第二组播加入报文,以建立传输路径,第二组播加入报文包括第一组播源的地址和第二组播组的地址。
可选地,接收模块1501主要用于通过第一接口和第二接口接收第二组播加入报文,第一接口为与传输路径上的下一跳节点通信的接口,第二接口为与传输路径的备份路径上的下一跳节点通信的接口。
可选地,第一节点为组播叶子节点或中间节点。
在本申请实施例中,组播根节点可以接收第一组播加入报文,由于该第一组播加入报文用于建立组播根节点与第一节点间的组播检测路径,且该组播检测路径将与该组播根节点连接的第一组播源提供的业务流的传输路径相一致。因此,组播根节点可以通过该组播检测路径向第一节点发送检测报文,以使得第一节点可以基于从该组播检测路径上获取到的检测报文来准确判断第一组播源提供业务流的传输路径是否故障,从而实现故障的快速感知,进而快速切换路径,以缩短业务中断的时间。
需要说明的是:上述实施例提供的路径故障检测装置在进行路径故障检测时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的路径故障检测装置与路径故障检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成为一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现,或者也可以全部或部分地通过软件、硬件、固件中任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(digital subscriber line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(digital versatile disc,DVD))、或者半导体介质(例如:固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。
Claims (52)
1.一种路径故障检测方法,其特征在于,所述方法包括;
第一节点获取第一组播源对应的组播根节点的地址和第一组播组的地址;
所述第一节点获取第一组播加入报文并发送所述第一组播加入报文,所述第一组播加入报文包括所述组播根节点的地址和所述第一组播组的地址,所述第一组播加入报文用于建立所述组播根节点与所述第一节点间的组播检测路径,所述组播检测路径与所述第一组播源提供的业务流的传输路径相同;
所述第一节点基于从所述组播检测路径获取的检测报文判断是否存在故障,所述检测报文包括所述组播根节点的地址和所述第一组播组的地址。
2.根据权利要求1所述的方法,其特征在于,所述第一节点获取第一组播源对应的组播根节点的地址和第一组播组的地址之前,还包括:
所述第一节点接收来自所述组播根节点的通告报文,所述通告报文包括所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址;
所述第一节点基于所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址,获取第一对应关系,所述第一对应关系包括所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址。
3.根据权利要求2所述的方法,其特征在于,所述第一节点获取第一组播源对应的组播根节点的地址和第一组播组的地址包括:
所述第一节点基于所述第一组播源的地址和所述第一对应关系,获取所述组播根节点的地址和所述第一组播组的地址。
4.根据权利要求2或3所述的方法,其特征在于,所述通告报文为协议独立组播PIM报文。
5.根据权利要求4所述的方法,其特征在于,所述PIM报文包括第一类型长度值TLV字段,所述第一TLV字段中携带所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址。
6.根据权利要求2或3所述的方法,其特征在于,所述通告报文为边界网关协议BGP报文。
7.根据权利要求6所述的方法,其特征在于,所述BGP报文包括网络可达路由信息NLRI字段和第二TLV字段,所述NLRI字段携带所述第一组播源对应的前缀,所述第二TLV字段携带所述组播根节点的地址和所述第一组播组的地址。
8.根据权利要求2至7任一所述的方法,其特征在于,所述通告报文和所述检测报文还包括所述第一组播源对应的第一会话标识,所述第一会话标识用于标识双向转发检测BFD会话。
9.根据权利要求1至8任一所述的方法,其特征在于,所述第一节点为组播根节点和组播叶子节点之间的中间节点,所述第一节点获取第一组播加入报文,包括:
所述第一节点接收来自所述组播叶子节点的所述第一组播加入报文,并基于所述第一组播加入报文生成组播表项,所述组播表项包括所述组播根节点的地址、所述第一组播组的地址和出接口,所述出接口为所述第一节点接收所述第一组播加入报文的接口。
10.根据权利要求1至8任一所述的方法,其特征在于,所述第一节点为组播叶子节点,所述第一节点获取第一组播加入报文,包括:
所述第一节点基于所述组播根节点的地址和所述第一组播组的地址,生成所述第一组播加入报文。
11.根据权利要求10所述的方法,其特征在于,所述发送所述第一组播加入报文包括:
所述第一节点通过第一接口发送所述第一组播加入报文,所述第一接口为与所述组播检测路径上的上一跳节点通信的接口。
12.根据权利要求11所述的方法,其特征在于,所述第一节点基于从所述组播检测路径获取的检测报文判断所述组播检测路径是否存在故障,包括:
所述第一节点在预设时长内通过所述第一接口接收到的检测报文的数量为小于阈值,则确定所述组播检测路径存在故障。
13.根据权利要求1至8以及10至12任一所述的方法,其特征在于,所述第一节点为组播叶子节点,所述方法还包括:
所述第一节点接收组播接收者发送的组播加入请求,所述组播加入请求包括所述第一组播源的地址和第二组播组的地址;
所述第一节点基于所述组播加入请求生成第二组播加入报文,所述第二组播加入报文包括所述第一组播源的地址和所述第二组播组的地址;
所述第一节点发送所述第二组播加入报文,以建立所述传输路径。
14.根据权利要求13所述的方法,其特征在于,所述第一节点发送所述第二组播加入报文包括:
所述第一节点通过第一接口和第二接口发送所述第二组播加入报文,所述第一接口为与所述传输路径上的上一跳节点通信的接口,所述第二接口为与所述传输路径的备份路径上的上一跳节点通信的接口。
15.一种路径故障检测方法,其特征在于,所述方法包括:
组播根节点接收第一组播加入报文,所述第一组播加入报文包括所述组播根节点的地址和第一组播组的地址,所述第一组播加入报文用于建立所述组播根节点与第一节点间的组播检测路径,所述组播检测路径与所述组播根节点对应的第一组播源提供的业务流的传输路径相同;
所述组播根节点通过所述组播检测路径向所述第一节点发送检测报文,所述检测报文包括所述组播根节点的地址和所述第一组播组的地址。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
所述组播根节点发送通告报文,所述通告报文包括所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址。
17.根据权利要求16所述的方法,其特征在于,所述通告报文为PIM报文。
18.根据权利要求17所述的方法,其特征在于,所述PIM报文包括第一TLV字段,所述第一TLV字段中携带所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址。
19.根据权利要求16所述的方法,其特征在于,所述通告报文为BGP报文。
20.根据权利要求19所述的方法,其特征在于,所述BGP报文包括网络可达路由信息NLRI字段和第二TLV字段,所述NLRI字段携带所述第一组播源对应的前缀,所述第二TLV字段携带所述组播根节点的地址和所述第一组播组的地址。
21.根据权利要求16-20任一所述的方法,其特征在于,所述检测报文和所述通告报文还包括所述第一组播源对应的第一会话标识,所述第一会话标识用于标识双向转发检测BFD会话。
22.根据权利要求15至21任一所述的方法,其特征在于,所述组播根节点接收第一组播加入报文包括:
所述组播根节点通过第一接口接收所述第一组播加入报文,所述第一接口为与所述组播检测路径上的下一跳节点通信的接口。
23.根据权利要求15至22任一所述的方法,其特征在于,所述方法还包括:
所述组播根节点接收第二组播加入报文,以建立所述传输路径,所述第二组播加入报文包括所述第一组播源的地址和第二组播组的地址。
24.根据权利要求23所述的方法,其特征在于,所述组播根节点接收第二组播加入报文包括:
所述组播根节点通过第一接口和第二接口接收所述第二组播加入报文,所述第一接口为与所述传输路径上的下一跳节点通信的接口,所述第二接口为与所述传输路径的备份路径上的下一跳节点通信的接口。
25.根据权利要求15至24任一所述的方法,其特征在于,所述第一节点为组播叶子节点或中间节点。
26.一种路径故障检测装置,其特征在于,所述装置部署于第一节点中,所述装置包括:
获取模块,用于获取第一组播源对应的组播根节点的地址和第一组播组的地址;
发送模块,用于获取第一组播加入报文并发送所述第一组播加入报文,所述第一组播加入报文包括所述组播根节点的地址和所述第一组播组的地址,所述第一组播加入报文用于建立所述组播根节点与所述第一节点间的组播检测路径,所述组播检测路径与所述第一组播源提供的业务流的传输路径相同;
检测模块,用于基于从所述组播检测路径获取的检测报文判断是否存在故障,所述检测报文包括所述组播根节点的地址和所述第一组播组的地址。
27.根据权利要求26所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收来自所述组播根节点的通告报文,所述通告报文包括所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址;
所述获取模块,还用于基于所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址,获取第一对应关系,所述第一对应关系包括所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址。
28.根据权利要求27所述的装置,其特征在于,所述获取模块主要用于:
基于所述第一组播源的地址和所述第一对应关系,获取所述组播根节点的地址和所述第一组播组的地址。
29.根据权利要求27或28所述的装置,其特征在于,所述通告报文为协议独立组播PIM报文。
30.根据权利要求29所述的装置,其特征在于,所述PIM报文包括第一类型长度值TLV字段,所述第一TLV字段中携带所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址。
31.根据权利要求27或28所述的装置,其特征在于,所述通告报文为边界网关协议BGP报文。
32.根据权利要求31所述的装置,其特征在于,所述BGP报文包括网络可达路由信息NLRI字段和第二TLV字段,所述NLRI字段携带所述第一组播源对应的前缀,所述第二TLV字段携带所述组播根节点的地址和所述第一组播组的地址。
33.根据权利要求27至32任一所述的装置,其特征在于,所述通告报文和所述检测报文还包括所述第一组播源对应的第一会话标识,所述第一会话标识用于标识双向转发检测BFD会话。
34.根据权利要求26至33任一所述的装置,其特征在于,所述第一节点为组播根节点和组播叶子节点之间的中间节点,所述装置包括:
接收模块,用于接收来自所述组播叶子节点的所述第一组播加入报文;
所述发送模块,主要用于基于所述第一组播加入报文生成组播表项,所述组播表项包括所述组播根节点的地址、所述第一组播组的地址和出接口,所述出接口为所述第一节点接收所述第一组播加入报文的接口。
35.根据权利要求26至33任一所述的装置,其特征在于,所述第一节点为组播叶子节点,所述发送模块主要用于:
基于所述组播根节点的地址和所述第一组播组的地址,生成所述第一组播加入报文。
36.根据权利要求35所述的装置,其特征在于,所述发送模块主要还用于:
通过第一接口发送所述第一组播加入报文,所述第一接口为与所述组播检测路径上的上一跳节点通信的接口。
37.根据权利要求36所述的装置,其特征在于,所述检测模块主要用于:
所述第一节点在预设时长内通过所述第一接口接收到的检测报文的数量为小于阈值,则确定所述组播检测路径存在故障。
38.根据权利要求26至33以及35至37任一所述的装置,其特征在于,所述第一节点为组播叶子节点,所述装置还包括:
接收模块,用于接收组播接收者发送的组播加入请求,所述组播加入请求包括所述第一组播源的地址和第二组播组的地址;
所述发送模块,还用于基于所述组播加入请求生成第二组播加入报文,所述第二组播加入报文包括所述第一组播源的地址和所述第二组播组的地址;发送所述第二组播加入报文,以建立所述传输路径。
39.根据权利要求38所述的装置,其特征在于,所述发送模块主要用于:
通过第一接口和第二接口发送所述第二组播加入报文,所述第一接口为与所述传输路径上的上一跳节点通信的接口,所述第二接口为与所述传输路径的备份路径上的上一跳节点通信的接口。
40.一种路径故障检测装置,其特征在于,所述装置部署于组播根节点中,所述装置包括:
接收模块,用于接收第一组播加入报文,所述第一组播加入报文包括所述组播根节点的地址和第一组播组的地址,所述第一组播加入报文用于建立所述组播根节点与第一节点间的组播检测路径,所述组播检测路径与所述组播根节点对应的第一组播源提供的业务流的传输路径相同;
发送模块,用于通过所述组播检测路径向所述第一节点发送检测报文,所述检测报文包括所述组播根节点的地址和所述第一组播组的地址。
41.根据权利要求40所述的装置,其特征在于,所述发送模块还用于:
发送通告报文,所述通告报文包括所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址。
42.根据权利要求41所述的装置,其特征在于,所述通告报文为PIM报文。
43.根据权利要求42所述的装置,其特征在于,所述PIM报文包括第一TLV字段,所述第一TLV字段中携带所述第一组播源的地址、所述组播根节点的地址和所述第一组播组的地址。
44.根据权利要求41所述的装置,其特征在于,所述通告报文为BGP报文。
45.根据权利要求44所述的装置,其特征在于,所述BGP报文包括网络可达路由信息NLRI字段和第二TLV字段,所述NLRI字段携带所述第一组播源对应的前缀,所述第二TLV字段携带所述组播根节点的地址和所述第一组播组的地址。
46.根据权利要求41至45任一所述的装置,其特征在于,所述检测报文和所述通告报文还包括所述第一组播源对应的第一会话标识,所述第一会话标识用于标识双向转发检测BFD会话。
47.根据权利要求40至46任一所述的装置,其特征在于,所述接收模块主要用于:
通过第一接口接收所述第一组播加入报文,所述第一接口为与所述组播检测路径上的下一跳节点通信的接口。
48.根据权利要求40至47任一所述的装置,其特征在于,所述接收模块还用于:
接收第二组播加入报文,以建立所述传输路径,所述第二组播加入报文包括所述第一组播源的地址和第二组播组的地址。
49.根据权利要求48所述的装置,其特征在于,所述接收模块主要用于:
通过第一接口和第二接口接收所述第二组播加入报文,所述第一接口为与所述传输路径上的下一跳节点通信的接口,所述第二接口为与所述传输路径的备份路径上的下一跳节点通信的接口。
50.根据权利要求40至49任一所述的装置,其特征在于,所述第一节点为组播叶子节点或中间节点。
51.一种网络设备,其特征在于,所述网络设备包括处理器和存储器,所述存储器用于存储至少一条程序指令或代码,所述处理器用于执行所述存储器中存储的所述至少一条程序指令或代码,以实现权利要求1至14或权利要求15至25中任一项所述的路径故障检测方法。
52.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在网络设备上运行时,使得网络设备执行权利要求1至14或权利要求15至25中任一项所述的路径故障检测方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210539872X | 2022-05-17 | ||
CN202210539872 | 2022-05-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117118802A true CN117118802A (zh) | 2023-11-24 |
Family
ID=88807909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210895773.5A Pending CN117118802A (zh) | 2022-05-17 | 2022-07-27 | 路径故障检测方法、装置、网络设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117118802A (zh) |
-
2022
- 2022-07-27 CN CN202210895773.5A patent/CN117118802A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2187565B1 (en) | Detecting and processing method and device of node fault within a peer-to-peer network | |
US8570857B2 (en) | Resilient IP ring protocol and architecture | |
US20030193958A1 (en) | Methods for providing rendezvous point router redundancy in sparse mode multicast networks | |
US9160616B2 (en) | Multicast packet transmission method, related device and system | |
US8218429B2 (en) | Method and device for multicast traffic redundancy protection | |
US8599683B2 (en) | System and method for changing a delivery path of multicast traffic | |
US20080019265A1 (en) | Systems and methods for configuring a network to include redundant upstream connections using an upstream control protocol | |
US20220174006A1 (en) | Method for EVPN and VPLS Active-Active Integration, Device, and System | |
WO2012106915A1 (zh) | 故障通告方法、检测装置、转发装置、系统及数据结构 | |
CN103117935A (zh) | 应用于多归属组网的组播数据转发方法和装置 | |
US10225091B2 (en) | Method for implementing point-to-multipoint multicast, network node, and system | |
CN102685009B (zh) | 一种组播传输路径的探测方法及装置 | |
US11582053B2 (en) | Data multicast implementation method, apparatus, and system | |
EP4262158A1 (en) | Route detection method and apparatus | |
CN117118802A (zh) | 路径故障检测方法、装置、网络设备及存储介质 | |
US11909546B2 (en) | Method and network node for sending and obtaining assert packet | |
CN106059925B (zh) | 一种组播处理方法和设备 | |
CN109039921B (zh) | 一种指定路由器切换方法、组播路由器及组播网络 | |
US10205652B2 (en) | Path checking method, sink node device, and communications system | |
CN113765815B (zh) | 组播报文负载分担的方法、设备和系统 | |
US11876680B2 (en) | Method and apparatus for determining link for forwarding service flow | |
CN117811995A (zh) | 用于确定节点的方法及装置 | |
CN112737826A (zh) | 组播业务故障处理方法、c-bsr、电子设备及介质 | |
CN115580574A (zh) | 报文转发方法、装置以及系统 | |
CN113824754A (zh) | 网络设备的通信方法、网络设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |