CN111385213B - 一种组播转发表项生成方法及装置 - Google Patents

一种组播转发表项生成方法及装置 Download PDF

Info

Publication number
CN111385213B
CN111385213B CN201811645056.7A CN201811645056A CN111385213B CN 111385213 B CN111385213 B CN 111385213B CN 201811645056 A CN201811645056 A CN 201811645056A CN 111385213 B CN111385213 B CN 111385213B
Authority
CN
China
Prior art keywords
node
multicast
tunnel
message
address
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.)
Active
Application number
CN201811645056.7A
Other languages
English (en)
Other versions
CN111385213A (zh
Inventor
王大为
刘京卿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201811645056.7A priority Critical patent/CN111385213B/zh
Publication of CN111385213A publication Critical patent/CN111385213A/zh
Application granted granted Critical
Publication of CN111385213B publication Critical patent/CN111385213B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例公开了一种组播转发表项生成方法及装置,有助于提高被保护节点的备份下一跳节点的组播转发表项的生成效率。所述组播转发表项生成方法包括:第一节点接收来自非直连邻居的第二节点的加入消息,所述加入消息包括第一组播源地址和第一组播组地址;所述第一节点生成第一组播转发表项,所述第一组播转发表项包括所述第一组播源地址、所述第一组播组地址以及出接口,所述出接口为第一隧道的隧道接口,所述第一隧道为所述第一节点与所述第二节点间用于转发组播报文的隧道。

Description

一种组播转发表项生成方法及装置
技术领域
本申请涉及网络通信领域,尤其涉及一种组播转发表项生成方法及装置。
背景技术
组播是一种点到多点的信息传输方式,即一个组播源(source)可以同时将数据发送给多个接收端(receiver),多个接收端构成一个特定的节点集合,称为组或者群组。由于组播技术具有网络利用率高、减少骨干网络拥塞、节省资源、可扩展性强等优点,在视频会议、文件分发、实时信息发布、网络电视等新型网络应用中发挥了很大的作用。
目前,通常采用组播快速重路由(multicast-only fast reroute,MoFRR)技术减少组播报文的丢失。即,组播源可以通过两条或两条以上的链路向同一个接收端发送相同的组播报文,其中一条链路为主链路,其他链路为备链路。主链路和备链路具有相同的被保护节点,所谓被保护节点是指主链路和备链路汇聚的终节点,来自组播源的相同的组播报文经过主链路和备链路到达被保护节点。在主链路没有发生故障时,被保护节点向接收端转发来自主链路的组播报文,丢弃来自备链路的组播报文;而当主链路发生故障时,被保护节点向接收端转发来自备链路的组播报文。
而传统技术在建立备链路时,首先根据无环路替代(loop free alternative,LFA)算法,从被保护节点的邻居节点中选出一个满足内部网关协议(interior gatewayprotocols,IGP)链路开销(cost)条件的节点,作为该被保护节点的备份下一跳节点,然后根据备份下一跳节点建立备链路。如果被保护节点的邻居节点中没有满足IGP cost条件的节点作为备份下一跳节点,就无法自动建立备链路。此时需要人工选择合适的备链路,并手动在该备链路包括的所有节点上配置用于转发组播报文的组播转发表项,当备链路上的节点较多时,就需要花费较多的时间来配置组播转发表项,效率较低。
发明内容
本申请实施例提供了一种组播转发表项生成方法及装置,有助于提高被保护节点的备份下一跳节点的组播转发表项的生成效率。
第一方面,本申请实施例提供了一种组播转发表项生成方法,该方法可以应用于第一节点,第一节点可以是路由器、交换机或软件定义网络(software defined network,SDN)控制器等设备。第一节点可以支持协议无关组播(protocol independent multicast,PIM)协议。组播转发表项生成方法包括:首先,第一节点接收来自非直连邻居的第二节点的加入(join)消息,加入消息包括第一组播源地址和第一组播组地址。其次,第一节点根据加入消息建立第一隧道(tunnel),第一隧道为第一节点与第二节点间用于转发组播报文的隧道。第一隧道为点到点(peer to peer,P2P)隧道,例如为多协议标签交换(multi-protocollabel switching,MPLS)流量工程(traffic engineering,TE)隧道,或通用路由封装协议(generic routing encapsulation,GRE)IP隧道等。最后,第一节点生成第一组播转发表项,第一组播转发表项包括第一组播源地址、第一组播组地址以及出接口,出接口为第一隧道的隧道接口。在本申请实施例中,第一节点通过接收来自第二节点的加入消息,根据加入消息建立通往第二节点的第一隧道,然后根据第一隧道的隧道接口以及加入消息中的第一组播源地址和第一组播组地址自动的生成第一组播转发表项。相对于传统技术需要在备用下一跳节点中手动配置组播转发表项的方式,本申请实施例能够有效提高备用下一跳节点的组播转发表项的生成效率。
可选的,方法还包括:第一节点接收来自第二节点的第一消息,第一消息可以是第一hello消息。第一消息用于向第一节点通告第二节点为第一节点的非直连邻居节点。第一节点接收来自第二节点的第一消息可以先于接收来自第二节点的加入消息执行。通过第一消息来告知第二节点为第一节点的非直连邻居节点,减少人工参与,给用户提供了便利,且提高了组播表项的生成效率。
可选的,第一消息中可以包括第一标识,该第一标识用于指示第一节点向第二节点发送第二消息,第二消息可以是第二hello消息,第二消息用于向第二节点通告第一节点为第二节点的非直连邻居节点。第一标识例如可以存储在第一hello消息的消息头中的保留(reserved)字段中。在第一节点接收到来自第二节点的第一消息之后,可以根据第一标识向第二节点发送第二消息。也就是说,本申请实施例可以使得第一节点和第二节点自动的互相知晓对方是自己的非直连邻居节点,从而第二节点可以基于此向第一节点发送加入消息,有助于减少人工参与,提高用户体验,且提高了组播表项的生成效率。
在本申请实施例中,不同类型的第一隧道,第一节点对组播报文处理方式也不同。
若第一隧道为MPLS TE隧道,第一组播转发表项中还包括MPLS标签,MPLS标签与第一隧道对应。上述方法还包括:第一节点获取组播报文,组播报文包括第二组播源地址和第二组播组地址,第二组播源地址与第一组播源地址相同,第二组播组地址与第一组播组地址相同;第一节点根据第二组播源地址、第二组播组地址和第一组播转发表项,获取出接口和MPLS标签;第一节点用MPLS标签封装组播报文,获得封装有MPLS标签的组播报文;第一节点通过出接口向第二节点发送封装有MPLS标签的组播报文。即若第一隧道为MPLS TE隧道,则需要在组播报文中封装MPLS标签之后才能在第一隧道中发送。
若第一隧道为GRE IP隧道,则方法还包括:第一节点获取组播报文,组播报文包括第二组播源地址和第二组播组地址,第二组播源地址与第一组播源地址相同,第二组播组地址与第一组播组地址相同;第一节点为组播报文封装GRE头,并在GRE头之外封装IP头,获得封装有GRE头和IP头的组播报文,IP头包括第一隧道的源节点的地址和第一隧道的目的节点的地址,第一隧道的源节点的地址为第一节点的IP地址,第一隧道的目的节点的地址为第二节点的IP地址;第一节点通过出接口向第二节点发送封装有GRE头和IP头的组播报文。也就是说,第一隧道为GRE IP隧道,则需要在组播报文封装GRE头和IP头之后才能在第一隧道转发。
第二方面,本申请实施例还提供了一种组播转发表项生成方法,该方法可以应用于第二节点,第二节点可以是路由器、交换机或软件定义网络(software definednetwork,SDN)控制器等设备。第二节点可以支持协议无关组播(protocol independentmulticast,PIM)协议。方法包括:第二节点接收第一节点发送的第一消息,第一消息用于通告第二节点第一节点为第二节点的非直连邻居节点;第二节点基于第一消息向第一节点发送加入消息,加入消息中包括第一组播源地址和第一组播组地址,第一组播源地址和第一组播组地址用于生成第一组播转发表项。所述第一组播转发表项为所述第一节点生成的用于转发组播报文的表项。
可选的,在第二节点接收第一节点发送的第一消息之前,方法还包括:第二节点向第一节点发送第二消息,第二消息包括第一标识,第一标识用于指示第一节点向第二节点发送第一消息。通过第二消息来指示第一节点发送第一消息,能够减少人工参与,提高用户体验,且提高了组播表项的生成效率。
可选的,方法还包括:第二节点接收第一节点通过第一隧道发送的组播报文,第一隧道为第一节点与第二节点间用于转发组播报文的隧道。本申请实施例通过第一隧道来发送组播报文,实现了在没有计算出合适的直连邻居节点作为备份下一跳节点的情况下仍然能够发送组播报文的目的。
在实际应用中,第二节点在接收到来自第一节点的组播报文之后,需要对组播报文进行反向路径转发(reverse path forwarding,RPF)检查,以保证组播报文是从组播源通过最短路径,也就是通过第一隧道到达第二节点的。
作为其中一种可能实现的方式,第二节点可以向第一节点发送用于进行RPF检查的信息。
具体的,第二节点向第一节点发送的加入消息还包括与第一隧道对应的第一信息,方法还包括:若组播报文包括第一信息,则第二节点确认组播报文通过反向路径转发RPF检查。在本申请实施例中,当组播报文中包括第二节点向第一节点发送的第一信息时,认为该组播报文是通过第一隧道来的,即通过RPF检查。
作为另外一种可能实现的方式,第一节点可以向第二节点发送用于进行RPF检查的信息。
若第一隧道为MPLS TE隧道,则在第二节点接收第一节点通过第一隧道发送的组播报文之前,方法还包括:第二节点接收来自第一节点的隧道建立请求,根据隧道建立请求生成与第一隧道对应的第二信息和多协议标签交换MPLS标签,MPLS标签用于建立MPLS TE隧道;第二节点建立第二信息与MPLS标签之间的映射关系,并向第一节点发送MPLS标签。当第一节点发送组播报文时,可以为组播报文封装MPLS标签,然后通过MPLS TE隧道转发该封装了MPLS标签的组播报文。
那么,在第二节点接收第一节点通过第一隧道发送的组播报文之前,方法还包括:第二节点接收来自第一节点的第三消息,第三消息中包括与第一隧道对应的第二信息,第三消息用于指示与第二信息对应的MPLS标签用于转发组播报文;
在第二节点接收第一节点通过第一隧道发送的组播报文之后,方法还包括:若组播报文中包括用于转发组播报文的MPLS标签,则第二节点确认组播报文通过RPF检查。
在本申请实施例中,第一节点主动向第二节点发送用于RPF检查的第二信息,该第二信息用于标识MPLS标签用于转发组播报文。当第二节点接收到组播报文之后,判断出组播报文中包括用于转发组播报文的MPLS标签,则认为组播报文是通过第一隧道来的,即通过RPF检查。
若第一隧道为GRE IP隧道,则在第二节点接收第一节点通过第一隧道发送的组播报文之前,方法还包括:第二节点接收来自于第一节点的第四消息,第四消息中包括与第一隧道对应的第三信息;
在第二节点接收第一节点通过第一隧道发送的组播报文之后,方法还包括:若组播报文中包括第三信息,则第二节点确认组播报文通过RPF检查。
在本申请实施例中,第一节点主动向第二节点发送用于RPF检查的第三信息,该第三信息与第一隧道对应。当第二节点接收到组播报文之后,判断出组播报文中包括第三信息,则认为组播报文是通过第一隧道来的,即通过RPF检查。
第三方面,本申请实施例还提供了一种组播转发表项生成装置,装置应用于第一节点,装置包括:第一接收单元,用于接收来自非直连邻居的第二节点的加入消息,加入消息包括第一组播源地址和第一组播组地址;生成单元,用于生成第一组播转发表项,第一组播转发表项包括第一组播源地址、第一组播组地址以及出接口,出接口为第一隧道的隧道接口,第一隧道为第一节点与第二节点间用于转发组播报文的隧道。
可选的,装置还包括:第二接收单元,用于接收来自第二节点的第一消息,第一消息用于向第一节点通告第二节点为第一节点的非直连邻居节点。
可选的,第一隧道为MPLS TE隧道,第一组播转发表项中还包括MPLS标签,MPLS标签与第一隧道对应,装置还包括:第一获取单元,用于获取组播报文,组播报文包括第二组播源地址和第二组播组地址,第二组播源地址与第一组播源地址相同,第二组播组地址与第一组播组地址相同;第二获取单元,用于根据第二组播源地址、第二组播组地址和第一组播转发表项,获取出接口和MPLS标签;第一封装单元,用于用MPLS标签封装组播报文,获得封装有MPLS标签的组播报文;第一发送单元,用于通过出接口向第二节点发送封装有MPLS标签的组播报文。
可选的,第一隧道为GRE IP隧道,则装置还包括:第三获取单元,用于第一节点获取组播报文,组播报文包括第二组播源地址和第二组播组地址,第二组播源地址与第一组播源地址相同,第二组播组地址与第一组播组地址相同;第二封装单元,用于为组播报文封装GRE头,并在GRE头之外封装IP头,获得封装有GRE头和IP头的组播报文,IP头包括第一隧道的源节点的地址和第一隧道的目的节点的地址,第一隧道的源节点的地址为第一节点的IP地址,第一隧道的目的节点的地址为第二节点的IP地址;第二发送单元,用于通过出接口向第二节点发送封装有GRE头和IP头的组播报文。
第四方面,本申请实施例提供了一种组播转发表项生成装置,应用于第二节点,装置包括:第一接收单元,用于接收第一节点发送的第一消息,第一消息用于通告第二节点第一节点为第二节点的非直连邻居节点;第一发送单元,用于基于第一消息向第一节点发送加入消息,加入消息中包括第一组播源地址和第一组播组地址,第一组播源地址和第一组播组地址用于生成第一组播转发表项。所述第一组播转发表项是所述第一节点生成的用于转发组播报文的表项。
可选的,装置还包括:第二发送单元,用于向第一节点发送第二消息,第二消息包括第一标识,第一标识用于指示第一节点向第二节点发送第一消息。
可选的,装置还包括:第二接收单元,用于接收第一节点通过第一隧道发送的组播报文,第一隧道为第一节点与第二节点间用于转发组播报文的隧道。
可选的,装置还包括:第一检查单元,用于若组播报文包括第一信息,则确认组播报文通过反向路径转发RPF检查。
可选的,若第一隧道为MPLS TE隧道,则装置还包括:第三接收单元,用于接收来自第一节点的隧道建立请求,根据隧道建立请求生成与第一隧道对应的第二信息和多协议标签交换MPLS标签,MPLS标签用于建立MPLS TE隧道;第三发送单元,用于建立第二信息与MPLS标签之间的映射关系,并向第一节点发送MPLS标签。
可选的,装置还包括:第四接收单元,用于接收来自第一节点的第三消息,第三消息中包括与第一隧道对应的第二信息,第三消息用于指示与第二信息对应的MPLS标签用于转发组播报文;第二检查单元,用于若组播报文中包括用于转发组播报文的MPLS标签,则确认组播报文通过RPF检查。
可选的,若第一隧道为GRE IP隧道,则装置还包括:第五接收单元,用于接收来自于第一节点的第四消息,第四消息中包括与第一隧道对应的第三信息;第三检查单元,用于若组播报文中包括第三信息,则确认组播报文通过RPF检查。
附图说明
图1为本申请实施例提供的组播网络拓扑结构示意图;
图2为本申请实施例提供的一种组播转发表项生成方法的交互信令图;
图3为本申请实施例提供的组播网络拓扑结构的另外一个示意图;
图4为本申请实施例提供的一种组播转发表项生成装置的结构框图;
图5为本申请实施例提供的一种组播转发表项生成装置的结构框图;
图6为本申请实施例提供的一种组播转发表项生成设备的结构框图;
图7为本申请实施例提供的一种组播转发表项生成设备的结构框图。
具体实施方式
传统技术在自动生成组播网络的备链路时,首先根据LFA算法从被保护节点的邻居节点中选出一个满足IGP cost条件的节点,作为该被保护节点的备份下一跳节点。所谓备份下一跳节点是指备链路中将组播报文直接发送给被保护节点的节点。
所谓IGP cost条件可以表述为:cost(N→D)<cost(N→S)+cost(S→D),其中,S是被保护节点,D是组播源,N是被保护节点的邻居节点,cost(N→D)是指从N到D最短路径的链路开销,cost(N→S)是指从N到S最短路径的链路开销,cost(S→D)是指从S到D最短路径的链路开销。
举个例子,参见图1,该图为组播网络拓扑结构示意图。在该图中,组播网络拓扑结构包括组播源101、接收端201、第一节点R1 301、第二节点R2 302、第三节点R3 303、第四节点R4 304、第五节点R5 305、第六节点R6 306和第七节点R7 307。其中,组播源101与R1 301连接,R1 301与R2 302连接,R2 302与R3 303连接,R3 303与R4 304连接,R4 304与R5 305连接,R5 305与R6 306连接,R6 306与R7 307连接,R7 307与R1 301连接,接收端201与R3303连接。在图1中,被保护节点为R3 303,R3 303的邻居节点是R2 302和R4 304。
假设R1 301、R2 302、R3 303、R4 304、R5 305、R6 306和R7 307中,直连的两个节点之间的IGP cost均为1。且从组播源101到R3 303的主链路为R1 301→R2 302→R3 303。由于R2 302是主链路上的节点,所以排除R2 302作为R3 303的备份下一跳节点。
那么对于R4 304而言,R4 304到R1 301的最短路径为R4 304→R3 303→R2 302→R1 301,所以R4 304到R1 301的最短路径的链路开销cost(R2 304→R1 301)为3;R4 304到R3 303的最短路径为R4 304→R3 303,所以R4 304到R3 303的最短路径的链路开销cost(R4 304→R3 303)为1;R3 303到R1 301的最短路径为R3 303→R2 302→R1 301,所以R3303到R1 301的最短路径的链路开销cost(R3 303→R1 301)为2。由于cost(R4 304→R1301)=cost(R4 304→R3 303)+cost(R3 303→R1 301),不满足IGP cost条件,所以根据LFA算法,R4 304不能作为R3 303的备份下一跳节点,也就无法自动生成备链路。
在这种情况下,需要人为确定备链路,并在备链路包括的节点中手动配置组播转发表项。在图1所示的例子中,备链路可以是R1 301→R7 307→R6 306→R5 305→R4 304→R3 303,虽然该链路不满足IGP cost条件,但因为没有其他链路可以选择,所以只能选择该链路作为备链路。在确定该链路作为备链路之后,需要在该备链路包括的这些节点中手动配置组播转发表项,效率较低。
为了克服上述技术问题,本申请实施例提供了一种组播转发表项生成方法及装置,一种组播转发表项生成方法及装置,以提高备链路节点中组播转发表项的生成效率。
参见图2,该图为本申请实施例提供的一种组播转发表项生成方法的流程示意图。
本申请实施例提供的组播转发表项生成方法涉及两个节点,比如第一节点和第二节点。第一节点和第二节点可以均是路由器、交换机或软件定义网络(software definednetwork,SDN)控制器等设备。第一节点和第二节点可以支持协议无关组播(protocolindependent multicast,PIM)协议。
在本申请实施例中,组播转发表项生成方法具体包括如下步骤:
S101:第二节点向第一节点发送第一hello消息,第一hello消息用于向第一节点通告第二节点为第一节点的非直连邻居节点。
在本申请实施例中,第二节点为被保护节点。被保护节点可以是组播网络的中除第一跳节点以外的任何一个节点,第一跳节点为与组播源直连的节点。例如在图1中,第一跳节点为R1 301,第二节点为最后一跳节点,即与接收端201直连的节点R3 303。
第一节点为第二节点的非直连邻居节点,例如R5 305为R3 303的非直连邻居节点。所谓邻居节点是指具有邻居关系的节点。非直连邻居节点意味着节点之间具有邻居关系但并非直接连接。
在本申请实施例中,当根据LFA算法无法在第二节点的直连邻居节点中选择出备份下一跳节点的情况下,第一节点为第二节点的备份下一跳节点。在本申请实施例中,第一节点为满足上述IGP cost条件的节点,即,第一节点到第一跳节点最短路径的IGP cost小于,第一节点到第二节点的最短路径的IGP cost与第二节点到第一跳节点的最短路径的IGP cost之和。
可选的,第二节点可以计算组播网络的至少一个PQ节点,并从至少一个PQ节点中选择一个节点作为第一节点。如果至少一个PQ节点为多个,则可以从中选择与第二节点之间IGP cost最小的PQ节点作为第一节点。
所谓PQ节点是指同时属于P空间(P-space)和Q空间(Q-space)的节点,或者,PQ节点为同时属于扩展的P空间(extended P-space)和Q空间的节点。
属于P空间的节点是指以被保护节点为根节点建立最短路径树,所有从根节点不经过保护链路可达的节点。保护链路是指被保护节点的直连链路中在主链路上的链路。以图1为例,保护链路为R3 303与R2 302之间的链路,属于P空间的节点包括R4 304、R5 305和R6 306。
属于Q空间的节点是指以组播源为根节点建立反向最短路径树,所有从根节点不经过保护链路可达的节点。以图1为例,属于Q空间的节点包括:R1 301、R2 302、R5 305、R6306和R7 307。
所以同时属于P空间和Q空间的节点包括R5 305和R6 306。
如果没有同时属于P空间和Q空间的节点,那么可以计算扩展的P空间。扩展的P空间是指以被保护节点的各个邻居节点(不包括主链路上的邻居节点)为根节点,建立到其他节点的最短路径树,所有从根节点不经过主链路可达的节点都属于扩展P空间中的节点。以图1为例,扩展的P空间的节点包括:R5 305、R6 306和R7 307。
同时属于扩展的P空间的节点和Q空间的节点包括R5 305、R6 306和R7 307。
在上述多个PQ节点中,R5 305为与R3 303距离最短的PQ节点。
PQ节点满足上述IGP cost条件。以R5 305为例,R5 305到R1 301的最短路径为R5305→R6 306→R7 307→R1 301,所以R5 305到R1 301的最短路径的链路开销cost(R5 305→R1 301)为3;R5 305到R3 303的最短路径为R5 305→R4 304→R3 303,所以R5 305到R3303的最短路径的链路开销cost(R5 305→R3 303)为2;R3 303到R1 301的最短路径为R3303→R2 302→R1 301,所以R3 303到R1 301的最短路径的链路开销cost(R3 303→R1301)为2。由于cost(R5 305→R1 301)<cost(R5 305→R3 303)+cost(R3 303→R1 301),所以R5 305满足IGP cost条件,可以作为R3 303的备份下一跳节点。
在本申请实施例中,当第二节点从至少一个PQ节点中选择出第一节点为第二节点的备份下一跳节点,或者第二节点确认第一节点为第二节点指定的备份下一跳节点时,第二节点可以向第一节点发送第一hello消息,第一hello消息用于向第一节点通告第二节点为第一节点的非直连邻居节点。
第一hello消息包括源互联网协议(Internet Protocol,IP)地址和目的IP地址。其中,源IP地址为第二节点的IP地址。由于第二节点为第一节点的非直连邻居节点,而传统组播技术中,发送hello消息只能向直连邻居节点发,因为传统的hello消息的目的IP地址为组播组地址。所以为了实现第二节点能够向第一节点发送hello消息,需要令第一hello消息的目的IP地址为第一节点的IP地址。
S102:第一节点接收第一hello消息,并向第二节点发送第二hello消息,第二hello消息用于向第二节点通告第一节点为第二节点的非直连邻居节点。
由于第一hello消息的源IP地址为第二节点的IP地址,所以第一节点在接收到第一hello消息之后,确认第二节点为第一节点的非直连邻居节点。
此外为了让第一节点成为第二节点的非直连邻居节点,第一节点可以基于第一hello消息向第二节点发送第二hello消息,第二hello消息用于向第二节点通告第一节点为第二节点的非直连邻居节点。为了能够指示第一节点向第二节点发送第二hello消息,第一hello消息中可以包括第一标识,第一标识例如为第一hello消息的消息头中的保留(reserved)字段。具体的,第一标识可以是保留字段的最低位的值(该值例如可以为1)。
与第一hello消息类似,第二hello消息的目的IP地址不是组播组地址,而是第二节点的IP地址。第二hello消息的源IP地址为第一节点的IP地址。第二hello消息中可以包括第二标识,第二标识可以存储在第二hello消息的消息头中的保留(reserved)字段中。具体的,第二标识可以是保留字段的最低位的值(该值例如可以为1)。
S103:第二节点接收第二hello消息,并向第一节点发送加入消息,加入消息中包括第一组播源地址和第一组播组地址。
由于第二hello消息的源IP地址为第一节点的IP地址,所以第二节点在接收到第二hello消息之后,确认第一节点为第二节点的非直连邻居节点。也就是说,第一节点和第二节点互为邻居关系。在这个基础上,第二节点可以向第一节点发送加入消息,加入消息中包括第一组播源地址和第一组播组地址。具体的,第二节点可以根据第二hello消息中的第二标识触发向第一节点发送加入消息的动作。
需要说明的是,通过发送第一hello消息和第二hello消息使得非直连的第一节点和第二节点之间建立起邻居关系的方式并不构成对本申请实施例的限定,本领域技术人员还可以根据具体情况自行设计。
此外,根据PIM协议,传统的加入消息的目的IP地址为组播组地址,即加入消息以组播的形式发送。所以根据PIM协议,传统的加入消息只能发送给直连邻居节点。为了让第一节点能够接收到第二节点的加入消息,第二节点向第一节点发送的加入消息的目的IP地址为第一节点的IP地址。也就是说,第二节点需要通过单播的方式向第一节点发送加入消息。为了与传统的加入消息区分,在本申请实施例中,第二节点向第一节点发送的加入消息也可以称为单播加入消息。
在第二节点向第一节点发送单播加入消息之前,第二节点可以生成第一单播路由表项,第一单播路由表项用于第二节点向第一节点转发单播加入消息。第一单播路由表项包括目的IP地址和出接口,其中目的IP地址为第一节点的IP地址,出接口为第二节点向第一节点发送单播加入消息的接口。
S104:第一节点接收来自第二节点的加入消息,并根据加入消息建立用于向第二节点转发组播报文的第一隧道。
第一节点接收到来自第二节点的加入消息之后,根据加入消息建立通往第二节点的第一隧道,该第一隧道用于第一节点将组播报文转发给第二节点。第一隧道为点到点(peer to peer,P2P)隧道,例如为多协议标签交换(multi-protocol label switching,MPLS)流量工程(traffic engineering,TE)隧道,或通用路由封装协议(generic routingencapsulation,GRE)IP隧道等。
若第一隧道为MPLS TE隧道,那么建立第一隧道的过程可以例如为第一节点向第二节点发送隧道建立请求,第二节点根据隧道建立请求向第一节点发送第一隧道的MPLS标签。第一节点在接收到第一隧道的MPLS标签之后,生成第一隧道的隧道接口与第一节点物理接口之间的映射关系,从而完成第一隧道的建立。
若第一隧道为GRE IP隧道,那么建立第一隧道的过程可以例如为根据第二节点的IP地址建立GRE IP隧道,并生成GRE IP隧道的隧道接口。
S105:第一节点生成第一组播转发表项,第一组播转发表项中包括第一组播源地址、第一组播组地址以及出接口,出接口为第一隧道的隧道接口。
在完成第一隧道的建立之后,第一节点可以生成用于转发组播报文的第一组播转发表项。其中,组播转发表项也称为(S,G)表项,其中的S是指组播源,G是指组播组。第一组播转发表项中至少包括第一组播源地址、第一组播组地址以及出接口。其中出接口为第一隧道的隧道接口。第一组播源地址和第一组播组地址来自第二节点的加入消息。
当第一节点接收到组播报文时,可以根据组播报文中携带的第二组播源地址和第二组播组地址找到对应的第一组播转发表项,第二组播源地址与第一组播转发表项的第一组播源地址相同,第二组播组地址与第一组播转发表项的第一组播组地址相同。然后根据第一组播转发表项的出接口,即第一隧道的隧道接口将该组播报文发送给第二节点。
具体的,第一节点根据第一组播转发表项中的隧道接口,以及上述隧道接口和第一节点物理接口之间的映射关系,确定对应的物理接口,然后通过该对应的物理接口将组播报文发出去。
若第一隧道为MPLS TE隧道,那么第一组播转发表项中还可以包括第一隧道的MPLS标签。当第一节点接收到组播报文之后,根据组播报文中的第二组播源地址和第二组播组地址从第一组播转发表项中找到对应的第一隧道的MPLS标签,然后在该组播报文中封装该第一隧道的MPLS标签,并通过与该第一隧道的MPLS标签对应的第一隧道发送该封装了该第一隧道的MPLS标签的组播报文。
若第一隧道为GRE IP隧道,那么当第一节点接收到组播报文之后,根据组播报文中的第二组播源地址和第二组播组地址从第一组播转发表项中找到第一隧道的隧道接口。并且为组播报文封装GRE报文头和IP头,IP头中包括第一隧道的源节点的地址和第一隧道的目的节点的地址。其中,第一隧道的源节点的地址可以是该隧道起点地址。第一隧道的目的节点的地址可以是该隧道终点地址。在本申请实施例中,第一隧道的源节点的地址为第一节点的IP地址,第一隧道目的节点的地址为第二节点的IP地址。以图1为例,第一隧道的源节点的地址为R5的IP地址,第一隧道的目的节点的地址为R3的IP地址。
在本申请实施例中,第一节点通过接收来自第二节点的加入消息,根据加入消息建立通往第二节点的第一隧道,然后根据第一隧道的隧道接口以及加入消息中的第一组播源地址和第一组播组地址自动的生成第一组播转发表项。相对于传统技术需要在备用下一跳节点中手动配置组播转发表项的方式,本申请实施例能够有效提高备用下一跳节点的组播转发表项的生成效率。
为了提高其他节点的组播转发表项的生成效率,在本申请实施例中,第一节点可以向下一跳节点发送加入消息。
在本申请实施例中,第一节点在从接收端到组播源的方向上的下一跳节点为备链路中直接将组播报文发送给第一节点的节点。例如,在图1中,备链路为R1 301→R7 307→R6 306→R5 305→R3 303,所以R5 305在从接收端201到组播源101的方向上的下一跳节点为R6 306。
第一节点向从接收端到组播源的方向上的下一跳节点发送的加入消息为传统的组播加入消息,即该加入消息的目的地址可以为组播组地址。在向从接收端到组播源的方向上的下一跳节点发送组播加入消息之前,第一节点生成单播转发表项,该单播转发表项包括组播源地址、组播组地址、目的地址和出接口,其中组播源地址和组播组地址为第二节点向第一节点发送的加入消息中携带的组播源地址和组播组地址。第一节点中单播转发表项的目的地址为从接收端到组播源的方向上的下一跳节点的IP地址。第一节点通过单播转发表项中的出接口向从接收端到组播源的方向上的下一跳节点发送组播加入消息。
从接收端到组播源的方向上的下一跳节点在接收到组播加入消息之后,可以根据该组播加入消息生成该下一跳节点的组播转发表项。组播加入消息中包括第一组播源地址和第一组播组地址,该第一组播源地址和第一组播组地址分别为第二节点向第一节点发送的单播加入消息中的第一组播源地址和第一组播组地址。
从接收端到组播源的方向上的下一跳节点的组播转发表项中包括组播加入消息中的第一组播源地址和第一组播组地址,除此以外,该下一跳节点的组播转发表项中还包括出接口,该出接口为该下一跳节点接收组播加入消息的接口。
例如,R5 305将组播加入消息发送给R6 306。R6 306在接收到来自R5 305的组播加入消息之后,可以自动生成R6 306的组播转发表项,该组播转发表项中包括组播加入消息中的第一组播源地址和第一组播组地址,以及出接口,出接口为R6 306接收来自R5 305的组播加入消息的接口。
在本申请实施例中,第一节点通过向从接收端到组播源的方向上的下一跳节点发送加入消息,使得该下一跳节点能够自动的生成路由转发表项,相比于现有技术通过手动配置路由转发表项的方式,本申请实施例有效提高了下一跳节点路由转发表项的生成效率。
以此类推,从接收端到组播源的方向上的下一跳节点可以向从接收端到组播源的方向上的下下一跳节点发送组播加入消息,以在该下下一跳节点中自动生成组播转发表项,直到备链路的所有节点中都自动生成了组播转发表项。例如R6 306可以向R7 307发送组播加入消息,以在R7 307中自动生成路由转发表项。而R7 307可以向R1 301发送组播加入消息,以在R1 301中自动生成组播转发表项。
另外,在实际应用中,第二节点在接收到来自第一节点的组播报文之后,需要对组播报文进行反向路径转发(reverse path forwarding,RPF)检查,以保证组播报文是从组播源通过最短路径到达第二节点,所谓最短路径是指链路cost最小。
在本申请实施例中,RPF检查包括如下步骤:
作为其中一种可能实现的方式,第二节点接收到来自于第一隧道的组播报文,就默认完成了RPF检查。
作为另一种可能的实现方式,第二节点可以对向第一节点发送的单播加入消息进行扩展,其中可以携带用于进行RPF检查的第一隧道的第一信息,第一信息是用于标识第一隧道的信息。
具体的,第二节点在生成第一信息之后,将第一信息携带在单播加入消息中发给第一节点。第一节点接收到单播加入消息后,从该单播加入消息中提取出第一信息,并在向第二节点发送的组播报文中加入该第一信息。第二节点接收到来自第一节点的组播报文后,可以判断组播报文中是否包括第一信息,如果是,则确认该组播报文通过RPF检查。
若第一隧道为MPLS TE隧道,则第一信息可以是第一标签。第一标签可以封装在组播报文的内层,外层封装第一隧道的MPLS标签。第二节点接收到来自第一节点的组播报文之后,可以将外层的第一隧道的MPLS标签弹出,获取到内层的第一标签,然后判断第一标签是否存储在第二节点中,如果是,则确认组播报文通过RPF检查。
若第一隧道为GRE IP隧道,则第一信息可以是隧道标识(tunnel ID)。第一节点可以将第一信息封装在GRE报文头中,具体的,可以封装在GRE报文头中的关键字(key)字段中。第二节点在接收到来自第一节点的组播报文之后,可以从组播报文GRE报文头的key字段中取出第一信息,并判断该第一信息是否存储在第二节点中,如果是,则确认该组播报文通过RPF检查。
作为再一种可能实现的方式,第一节点可以在建立了第一隧道之后,可以在向第二节点周期性发送的hello消息中携带有用于进行RPF检查的信息。
具体的,若第一隧道为MPLS TE隧道,则第二节点在根据隧道建立请求生成MPLS标签的同时,获取第二信息,并建立第二信息与MPLS标签之间的映射关系。该第二信息可以包括第一隧道的源节点的地址、第一隧道的目的节点的地址和隧道标识。其中,第一隧道的源节点的地址为第一节点的IP地址,第一隧道的目的节点的地址为第二节点的IP地址。第一隧道的源节点的地址和第一隧道的目的节点的地址可以从隧道建立请求中获取,隧道标识可以由第二节点生成。
在建立了第一隧道之后,第一节点可以向第二节点发送第三hello消息,第三hello消息中包括与第一隧道对应的第二信息,第三hello消息用于指示与第二信息对应的MPLS标签用于转发组播报文。其中第一隧道的源节点的地址可以存储于第三hello消息中扩展隧道标识(extended tunnel ID)字段中。
第二节点在接收到第三hello消息之后,可以根据第二信息找到对应的MPLS标签,并标识该MPLS标签为用于转发组播报文的标签。当第二节点接收到来自第一节点的组播报文之后,从组播报文的外层获取MPLS标签,然后判断该该MPLS标签是否是用于转发组播报文的MPLS标签,如果是,则确认组播报文通过反向路径转发RPF检查。
若第一隧道为GRE IP隧道,则第一节点可以向第二节点发送第四hello消息,第四hello消息中包括与第一隧道对应的第三信息,第三信息用于对第一隧道进行标识,第三信息可以例如为隧道标识。第二节点接收到第四hello消息之后,可以存储该第三信息。第一节点在向第二节点发送组播报文时,可以将第三信息封装在GRE报文头中,具体的,可以封装在GRE报文头的Key字段中。当第二节点接收到来自第一节点的组播报文之后,从组播报文的GRE报文头中提取出第三信息,并判断该第三信息是否存储在第二节点中,如果是,则确认组播报文通过反向路径转发RPF检查。
需要说明的是,第三hello消息和第四hello消息的作用也是让第二节点确认第一节点为其非直连邻居节点。在实际应用中,第一节点和第二节点可以周期性的向对方发送hello消息,以保持二者之间的邻居关系。而第三hello消息和第四hello消息可以视为第一节点在建立第一隧道之后向第二节点发送的hello消息。
在本申请实施例中,当第二节点在确认组播报文通过RPF检查之后,第二节点可以通过第二组播转发表项向从组播源到接收端的方向上的下一跳节点转发组播报文。第二组播转发表项是指第二节点的组播转发表项。第二组播转发表项中至少包括组播源地址、组播组地址、入接口和出接口。其中,第二组播转发表项中的组播源地址和组播组地址为第二节点向第一节点发送的加入消息中的第一组播源地址和第一组播组地址。第二组播转发表项中的入接口为第二节点接收来自第一隧道的组播报文的接口,也就是说,第二组播转发表项中的入接口为逻辑接口。第二组播转发表项中的出接口为与从组播源到接收端的方向上的下一跳节点相连接的接口。以图1为例,节点R3 303的、从组播源101到接收端201的方向上的下一跳节点为接收端201。
此外,在本申请实施例中,当不需要第一节点作为第二节点的备份下一跳节点,例如组播网络的网络拓扑结构发生变化时,第二节点可以向第一节点发送剪枝(prune)消息,该剪枝消息用于第一节点拆除第一隧道以及删除用于转发组播报文到第二节点的第一组播转发表项。
例如,参见图3,该图为组播网络拓扑结构的另外一个示意图。相比较于图1,图3中的组播网络拓扑结构增加了第八节点R8 308和第九节点R9 309,其中R8 308与R5 305连接,R9 309与R8 308连接,R4 304与R9 309连接。R8 308与R5 305之间的IGP cost、R9 309与R8 308之间的IGP cost、R4 304与R9 309之间的IGP cost均为1。经过计算R8 308为新的PQ节点,那么R3 303可以与R8 308进行如与R5 305类似的信令交互,以在R8 308自动生成组播转发表项。并且,R3 303可以向R5 305发送剪枝消息,以拆除R5 305中建立的第一隧道和删除R5 305中用于转发组播报文到R3 303的第一组播转发表项。
相应的,参见图4,本申请实施例还提供了一种组播转发表项生成装置,应用于第一节点,该第一节点可以实现图2所示实施例中第一节点的功能。该装置包括:第一接收单元401和生成单元402。其中,第一接收单元401用于执行图2所示实施例中的S104。生成单元402用于执行图2所示实施例中的S105。
第一接收单元401,用于接收来自非直连邻居的第二节点的加入消息,加入消息包括第一组播源地址和第一组播组地址;
生成单元402,用于生成第一组播转发表项,第一组播转发表项包括第一组播源地址、第一组播组地址以及出接口,出接口为第一隧道的隧道接口,第一隧道为第一节点与第二节点间用于转发组播报文的隧道。
可选的,装置还包括:第二接收单元,用于接收来自第二节点的第一消息,第一消息用于向第一节点通告第二节点为第一节点的非直连邻居节点。
可选的,第一隧道为多协议标签交换流量工程MPLS TE隧道,第一组播转发表项中还包括MPLS标签,MPLS标签与第一隧道对应,装置还包括:第一获取单元,用于获取组播报文,组播报文包括第二组播源地址和第二组播组地址,第二组播源地址与第一组播源地址相同,第二组播组地址与第一组播组地址相同;第二获取单元,用于根据第二组播源地址、第二组播组地址和第一组播转发表项,获取出接口和MPLS标签;第一封装单元,用于用MPLS标签封装组播报文,获得封装有MPLS标签的组播报文;第一发送单元,用于通过出接口向第二节点发送封装有MPLS标签的组播报文。
可选的,第一隧道为通用路由封装协议GRE IP隧道,则装置还包括:第三获取单元,用于第一节点获取组播报文,组播报文包括第二组播源地址和第二组播组地址,第二组播源地址与第一组播源地址相同,第二组播组地址与第一组播组地址相同;第二封装单元,用于为组播报文封装GRE头,并在GRE头之外封装IP头,获得封装有GRE头和IP头的组播报文,IP头包括第一隧道的源节点的地址和第一隧道的目的节点的地址,第一隧道的源节点的地址为第一节点的IP地址,第一隧道的目的节点的地址为第二节点的IP地址;第二发送单元,用于通过出接口向第二节点发送封装有GRE头和IP头的组播报文。
相应的,参见图5,本申请实施例提供了一种组播转发表项生成装置,应用于第二节点,该第二节点可以实现图2所示实施例中第二节点的功能。该装置包括:第一接收单元501和第一发送单元502。其中,第一接收单元501用于执行图2所示实施例中的S103。第一发送单元502用于执行图2所示实施例中的S103。
第一接收单元501,用于接收第一节点发送的第一消息,第一消息用于通告第二节点第一节点为第二节点的非直连邻居节点;
第一发送单元502,用于基于第一消息向第一节点发送加入消息,加入消息中包括第一组播源地址和第一组播组地址,第一组播源地址和第一组播组地址用于第一节点生成第一组播转发表项。
可选的,装置还包括:第二发送单元,用于向第一节点发送第二消息,第二消息包括第一标识,第一标识用于指示第一节点向第二节点发送第一消息。
可选的,装置还包括:第二接收单元,用于接收第一节点通过第一隧道发送的组播报文,第一隧道为第一节点与第二节点间用于转发组播报文的隧道。
可选的,装置还包括:第一检查单元,用于若组播报文包括第一信息,则确认组播报文通过反向路径转发RPF检查。
可选的,若第一隧道为MPLS TE隧道,则装置还包括:第三接收单元,用于接收来自第一节点的隧道建立请求,根据隧道建立请求生成与第一隧道对应的第二信息和多协议标签交换MPLS标签,MPLS标签用于建立MPLS TE隧道;第三发送单元,用于建立第二信息与MPLS标签之间的映射关系,并向第一节点发送MPLS标签。
可选的,装置还包括:第四接收单元,用于接收来自第一节点的第三消息,第三消息中包括与第一隧道对应的第二信息,第三消息用于指示与第二信息对应的MPLS标签用于转发组播报文;第二检查单元,用于若组播报文中包括用于转发组播报文的MPLS标签,则确认组播报文通过RPF检查。
可选的,若第一隧道为GRE IP隧道,则装置还包括:第五接收单元,用于接收来自于第一节点的第四消息,第四消息中包括与第一隧道对应的第三信息;第三检查单元,用于若组播报文中包括第三信息,则确认组播报文通过RPF检查。
参见图6,本申请实施例还提供了一种组播转发表项生成设备600,组播转发表项生成设备600可以实现图2所示实施例中第一节点的功能。组播转发表项生成设备600包括存储器601、处理器602和通信接口603。
所述存储器601,用于存储指令;
所述处理器602,用于执行所述存储器601中的所述指令,执行上述应用于图2所示实施例中第一节点的组播转发表项生成方法;
所述通信接口603,用于与第二节点进行通信。
存储器601、处理器602和通信接口603通过总线604相互连接;总线604可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
参见图7,本申请实施例还提供了一种组播转发表项生成设备700,组播转发表项生成设备700可以实现图2所示实施例中第二节点的功能。组播转发表项生成设备700包括存储器701、处理器702和通信接口703。
所述存储器701,用于存储指令;
所述处理器702,用于执行所述存储器701中的所述指令,执行上述应用于图2所示实施例中第二节点的组播转发表项生成方法;
所述通信接口703,用于与第一节点进行通信。
存储器701、处理器702和通信接口703通过总线704相互连接;总线704可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
上述存储器601和存储器701可以是随机存取存储器(random-access memory,RAM)、闪存(flash)、只读存储器(read only memory,ROM)、可擦写可编程只读存储器(erasable programmable read only memory,EPROM)、电可擦除可编程只读存储器(electrically erasable programmable read only memory,EEPROM)、寄存器(register)、硬盘、移动硬盘、CD-ROM或者本领域技术人员知晓的任何其他形式的存储介质。
上述处理器602和处理器702例如可以是中央处理器(central processing unit,CPU)、通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
上述通信接口603和通信接口703例如可以是接口卡等,可以为以太(ethernet)接口或异步传输模式(asynchronous transfer mode,ATM)接口。
本申请实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行以上应用于第一节点的组播转发表项生成方法。
本申请实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行以上应用于第二节点的组播转发表项生成方法。
本申请实施例还提供了一种组播转发表项生成系统,该系统包含图2所示实施例中提供的第一节点和第二节点。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (22)

1.一种组播转发表项生成方法,其特征在于,所述方法包括:
第一节点接收来自非直连邻居的第二节点的加入消息,所述加入消息包括第一组播源地址和第一组播组地址;
所述第一节点生成第一组播转发表项,所述第一组播转发表项包括所述第一组播源地址、所述第一组播组地址以及出接口,所述出接口为第一隧道的隧道接口,所述第一隧道为所述第一节点与所述第二节点间用于转发组播报文的隧道。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一节点接收来自所述第二节点的第一消息,所述第一消息用于向所述第一节点通告所述第二节点为所述第一节点的非直连邻居节点。
3.根据权利要求1或2所述的方法,其特征在于,所述第一隧道为多协议标签交换流量工程MPLS TE隧道,所述第一组播转发表项中还包括MPLS标签,所述MPLS标签与所述第一隧道对应,所述方法还包括:
所述第一节点获取所述组播报文,所述组播报文包括第二组播源地址和第二组播组地址,所述第二组播源地址与所述第一组播源地址相同,所述第二组播组地址与所述第一组播组地址相同;
所述第一节点根据所述第二组播源地址、所述第二组播组地址和所述第一组播转发表项,获取所述出接口和所述MPLS标签;
所述第一节点用所述MPLS标签封装所述组播报文,获得封装有所述MPLS标签的组播报文;
所述第一节点通过所述出接口向所述第二节点发送所述封装有所述MPLS标签的组播报文。
4.根据权利要求1或2所述的方法,其特征在于,所述第一隧道为通用路由封装协议GREIP隧道,则所述方法还包括:
所述第一节点获取所述组播报文,所述组播报文包括第二组播源地址和第二组播组地址,所述第二组播源地址与所述第一组播源地址相同,所述第二组播组地址与所述第一组播组地址相同;
所述第一节点为所述组播报文封装GRE头,并在所述GRE头之外封装IP头,获得封装有所述GRE头和所述IP头的组播报文,所述IP头包括所述第一隧道的源节点的地址和所述第一隧道的目的节点的地址,所述第一隧道的源节点的地址为所述第一节点的IP地址,所述第一隧道的目的节点的地址为所述第二节点的IP地址;
所述第一节点通过所述出接口向所述第二节点发送所述封装有所述GRE头和所述IP头的组播报文。
5.一种组播转发表项生成方法,其特征在于,所述方法包括:
第二节点接收第一节点发送的第一消息,所述第一消息用于通告所述第二节点所述第一节点为所述第二节点的非直连邻居节点;
所述第二节点基于所述第一消息向所述第一节点发送加入消息,所述加入消息中包括第一组播源地址和第一组播组地址,所述第一组播源地址和第一组播组地址用于生成第一组播转发表项。
6.根据权利要求5所述的方法,其特征在于,在第二节点接收所述第一节点发送的第一消息之前,所述方法还包括:
所述第二节点向所述第一节点发送第二消息,所述第二消息包括第一标识,所述第一标识用于指示所述第一节点向所述第二节点发送所述第一消息。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
所述第二节点接收所述第一节点通过第一隧道发送的组播报文,所述第一隧道为所述第一节点与所述第二节点间用于转发组播报文的隧道。
8.根据权利要求7所述的方法,其特征在于,所述加入消息还包括与所述第一隧道对应的第一信息,所述方法还包括:
若所述组播报文包括所述第一信息,则所述第二节点确认所述组播报文通过反向路径转发RPF检查。
9.根据权利要求7所述的方法,其特征在于,若所述第一隧道为MPLS TE隧道,则在所述第二节点接收所述第一节点通过第一隧道发送的组播报文之前,所述方法还包括:
所述第二节点接收来自所述第一节点的隧道建立请求,根据所述隧道建立请求生成与所述第一隧道对应的第二信息和多协议标签交换MPLS标签,所述MPLS标签用于建立所述MPLS TE隧道;
所述第二节点建立所述第二信息与所述MPLS标签之间的映射关系,并向所述第一节点发送所述MPLS标签。
10.根据权利要求9所述的方法,其特征在于,在所述第二节点接收所述第一节点通过第一隧道发送的组播报文之前,所述方法还包括:
所述第二节点接收来自所述第一节点的第三消息,所述第三消息中包括与所述第一隧道对应的第二信息,所述第三消息用于指示所述与所述第二信息对应的MPLS标签用于转发组播报文;
在所述第二节点接收所述第一节点通过第一隧道发送的组播报文之后,所述方法还包括:
若所述组播报文中包括所述用于转发组播报文的所述MPLS标签,则所述第二节点确认所述组播报文通过RPF检查。
11.根据权利要求7所述的方法,其特征在于,若所述第一隧道为GREIP隧道,则在所述第二节点接收所述第一节点通过第一隧道发送的组播报文之前,所述方法还包括:
所述第二节点接收来自于所述第一节点的第四消息,所述第四消息中包括与所述第一隧道对应的第三信息;
在所述第二节点接收所述第一节点通过第一隧道发送的组播报文之后,所述方法还包括:
若所述组播报文中包括所述第三信息,则所述第二节点确认所述组播报文通过RPF检查。
12.一种组播转发表项生成装置,其特征在于,所述装置应用于第一节点,所述装置包括:
第一接收单元,用于接收来自非直连邻居的第二节点的加入消息,所述加入消息包括第一组播源地址和第一组播组地址;
生成单元,用于生成第一组播转发表项,所述第一组播转发表项包括所述第一组播源地址、所述第一组播组地址以及出接口,所述出接口为第一隧道的隧道接口,所述第一隧道为所述第一节点与所述第二节点间用于转发组播报文的隧道。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第二接收单元,用于接收来自所述第二节点的第一消息,所述第一消息用于向所述第一节点通告所述第二节点为所述第一节点的非直连邻居节点。
14.根据权利要求12或13任一项所述的装置,其特征在于,所述第一隧道为多协议标签交换流量工程MPLS TE隧道,所述第一组播转发表项中还包括MPLS标签,所述MPLS标签与所述第一隧道对应,所述装置还包括:
第一获取单元,用于获取所述组播报文,所述组播报文包括第二组播源地址和第二组播组地址,所述第二组播源地址与所述第一组播源地址相同,所述第二组播组地址与所述第一组播组地址相同;
第二获取单元,用于根据所述第二组播源地址、所述第二组播组地址和所述第一组播转发表项,获取所述出接口和所述MPLS标签;
第一封装单元,用于用所述MPLS标签封装所述组播报文,获得封装有所述MPLS标签的组播报文;
第一发送单元,用于通过所述出接口向所述第二节点发送所述封装有所述MPLS标签的组播报文。
15.根据权利要求12或13任一项所述的装置,其特征在于,所述第一隧道为通用路由封装协议GREIP隧道,则所述装置还包括:
第三获取单元,用于所述第一节点获取所述组播报文,所述组播报文包括第二组播源地址和第二组播组地址,所述第二组播源地址与所述第一组播源地址相同,所述第二组播组地址与所述第一组播组地址相同;
第二封装单元,用于为所述组播报文封装GRE头,并在所述GRE头之外封装IP头,获得封装有所述GRE头和所述IP头的组播报文,所述IP头包括所述第一隧道的源节点的地址和所述第一隧道的目的节点的地址,所述第一隧道的源节点的地址为所述第一节点的IP地址,所述第一隧道的目的节点的地址为所述第二节点的IP地址;
第二发送单元,用于通过所述出接口向所述第二节点发送所述封装有所述GRE头和所述IP头的组播报文。
16.一种组播转发表项生成装置,其特征在于,所述装置应用于第二节点,所述装置包括:
第一接收单元,用于接收第一节点发送的第一消息,所述第一消息用于通告所述第二节点所述第一节点为所述第二节点的非直连邻居节点;
第一发送单元,用于基于所述第一消息向所述第一节点发送加入消息,所述加入消息中包括第一组播源地址和第一组播组地址,所述第一组播源地址和第一组播组地址用于生成第一组播转发表项。
17.根据权利要求16所述的装置,其特征在于,所述装置还包括:
第二发送单元,用于向所述第一节点发送第二消息,所述第二消息包括第一标识,所述第一标识用于指示所述第一节点向所述第二节点发送所述第一消息。
18.根据权利要求16或17所述的装置,其特征在于,所述装置还包括:
第二接收单元,用于接收所述第一节点通过第一隧道发送的组播报文,所述第一隧道为所述第一节点与所述第二节点间用于转发组播报文的隧道。
19.根据权利要求18所述的装置,其特征在于,所述装置还包括:
第一检查单元,用于若所述组播报文包括第一信息,则确认所述组播报文通过反向路径转发RPF检查。
20.根据权利要求18所述的装置,其特征在于,若所述第一隧道为MPLS TE隧道,则所述装置还包括:
第三接收单元,用于接收来自所述第一节点的隧道建立请求,根据所述隧道建立请求生成与所述第一隧道对应的第二信息和多协议标签交换MPLS标签,所述MPLS标签用于建立所述MPLS TE隧道;
第三发送单元,用于建立所述第二信息与所述MPLS标签之间的映射关系,并向所述第一节点发送所述MPLS标签。
21.根据权利要求20所述的装置,其特征在于,所述装置还包括:
第四接收单元,用于接收来自所述第一节点的第三消息,所述第三消息中包括与所述第一隧道对应的第二信息,所述第三消息用于指示所述与所述第二信息对应的MPLS标签用于转发组播报文;
第二检查单元,用于若所述组播报文中包括所述用于转发组播报文的所述MPLS标签,则确认所述组播报文通过RPF检查。
22.根据权利要求18所述的装置,其特征在于,若所述第一隧道为GRE IP隧道,则所述装置还包括:
第五接收单元,用于接收来自于所述第一节点的第四消息,所述第四消息中包括与所述第一隧道对应的第三信息;
第三检查单元,用于若所述组播报文中包括所述第三信息,则确认所述组播报文通过RPF检查。
CN201811645056.7A 2018-12-29 2018-12-29 一种组播转发表项生成方法及装置 Active CN111385213B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811645056.7A CN111385213B (zh) 2018-12-29 2018-12-29 一种组播转发表项生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811645056.7A CN111385213B (zh) 2018-12-29 2018-12-29 一种组播转发表项生成方法及装置

Publications (2)

Publication Number Publication Date
CN111385213A CN111385213A (zh) 2020-07-07
CN111385213B true CN111385213B (zh) 2021-10-22

Family

ID=71218328

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811645056.7A Active CN111385213B (zh) 2018-12-29 2018-12-29 一种组播转发表项生成方法及装置

Country Status (1)

Country Link
CN (1) CN111385213B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101163103A (zh) * 2007-11-07 2008-04-16 孙先花 一种实现快速重路由的方法
CN101599841A (zh) * 2008-06-03 2009-12-09 华为技术有限公司 实现组播的方法、路由器及系统
CN101656679A (zh) * 2009-09-25 2010-02-24 华为技术有限公司 一种组播快速收敛方法、路由器和通信系统
CN103491001A (zh) * 2012-06-11 2014-01-01 中兴通讯股份有限公司 层次化标签交换路径lsp处理方法、装置及网关节点
CN103841037A (zh) * 2012-11-21 2014-06-04 华为技术有限公司 组播报文转发的方法及设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7606175B1 (en) * 2005-04-15 2009-10-20 Nvidia Corporation Extended service set mesh path selection
US9544230B2 (en) * 2013-09-17 2017-01-10 Cisco Technology, Inc. Migration support for bit indexed explicit replication

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101163103A (zh) * 2007-11-07 2008-04-16 孙先花 一种实现快速重路由的方法
CN101599841A (zh) * 2008-06-03 2009-12-09 华为技术有限公司 实现组播的方法、路由器及系统
CN101656679A (zh) * 2009-09-25 2010-02-24 华为技术有限公司 一种组播快速收敛方法、路由器和通信系统
CN103491001A (zh) * 2012-06-11 2014-01-01 中兴通讯股份有限公司 层次化标签交换路径lsp处理方法、装置及网关节点
CN103841037A (zh) * 2012-11-21 2014-06-04 华为技术有限公司 组播报文转发的方法及设备

Also Published As

Publication number Publication date
CN111385213A (zh) 2020-07-07

Similar Documents

Publication Publication Date Title
EP3934183B1 (en) Service function chain sfc-based communication methods, and apparatuses
EP3716541B1 (en) Method, device and system for determining message forwarding path
CN107306222B (zh) 标签交换路径上的流量工程隧道建立的方法和设备
CN111669330A (zh) 一种bier报文的发送方法和装置
WO2022062506A1 (zh) 一种数据处理方法、装置、存储介质及电子装置
EP3364613B1 (en) Method and device for transmitting traffic via specified path
CN108063716B (zh) 用于以太虚拟专用网的方法和设备
CN109617803B (zh) 一种转发表项生成方法、装置及设备
US9203631B2 (en) Multicast distribution trees for mRSVP-TE based multicast virtual private networks
CN102035729A (zh) 一种组播数据转发方法及其装置
CN114465946A (zh) 获取转发表项的方法、装置以及系统
KR20190062525A (ko) 멀티캐스트 서비스를 제공하기 위한 방법 및 소프트웨어 정의 네트워킹(sdn) 제어기
WO2017201750A1 (zh) 组播数据处理方法、装置及系统
CN106357541B (zh) 一种信息传递方法和装置
US8243728B2 (en) Apparatus and method for transmitting packets in a packet switched network
JP2023527932A (ja) Bierマルチキャストトラフィック統計の収集方法、装置、およびシステム
CN111385213B (zh) 一种组播转发表项生成方法及装置
CN104348736A (zh) 组播负载场景下选路的方法和路由器
US11909546B2 (en) Method and network node for sending and obtaining assert packet
US11784919B2 (en) Method for sending BIERv6 packet and first network device
EP4131868A1 (en) Information submitting method, information processing method, apparatus, and device
CN110945847B (zh) 路径切换过程中快速恢复业务的方法、装置和系统
CN114900462A (zh) 一种路由匹配方法、信息发送方法及装置
JP5180175B2 (ja) Ipマルチキャストサービス回復方法およびシステム
CN105099907B (zh) 路径检测方法、宿节点设备及通信系统

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
GR01 Patent grant
GR01 Patent grant