一种组播报文处理方法及装置转让专利

申请号 : CN200910254359.0

文献号 : CN102104488B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘恩慧王歆平

申请人 : 华为技术有限公司

摘要 :

本发明实施例涉及计算机网络领域,公开了一种组播报文处理方法及装置,该方法通过接收组播报文,并根据组播报文携带的组播路由条目来获得上述组播报文对应的本地路由器接口,并且将上述组播报文经过获得的本地路由器接口,转发至集群路由系统接口发送。本发明实施例可以将若干路由设备集群为一个虚拟的路由系统,对外表现为一个单独的路由节点支持组播业务,从而可以实现组播报文在虚拟聚合的集群路由系统内部的高效、可靠路由转发,使集群路由系统可以高效高质的支持组播业务。

权利要求 :

1.一种组播报文处理方法,其特征在于,包括:

根据组播路由条目与集群路由系统接口的对应关系,以及集群路由系统接口与集群路由系统内部的本地路由器接口的对应关系建立组播路由条目和集群路由系统内部的本地路由器接口的对应关系并保存到各个本地路由器的组播转发信息库中;

接收组播报文;

根据所述组播报文携带的组播路由条目,获得所述组播报文对应的本地路由器接口;

将所述组播报文经过获得的本地路由器接口,转发至集群路由系统接口发送。

2.根据权利要求1所述的方法,其特征在于,所述根据所述组播报文携带的组播路由条目,获得所述组播报文对应的本地路由器接口具体包括:根据所述组播报文携带的组播路由条目查询所述组播转发信息库,获得所述组播报文对应的本地路由器接口。

3.根据权利要求1至2任一项所述的方法,其特征在于,还包括:在至少两个集群路由系统接口对应一个本地路由器接口时,将对应至少两个集群路由系统接口的组播报文合并,并复制一份发送到所述本地路由器接口。

4.根据权利要求1至3任一项所述的方法,其特征在于,还包括:若所述组播报文去往另一个本地路由器的接口与所述组播报文进入当前本地路由器的接口为同一个接口时,从预设的转发接口列表中删除所述去往另一个本地路由器的接口。

5.根据权利要求1至3任一项所述的方法,其特征在于,还包括:在所述组播报文从所述集群路由系统接口发送时,将所述组播报文携带的TTL值减1。

6.一种组播报文处理方法,其特征在于,包括:

接收组播报文;

根据所述组播报文携带的组播路由条目,从组播路由条目与集群路由系统接口的对应关系中获得所述组播报文对应的集群路由系统接口;

根据所述集群路由系统接口,从集群路由系统接口和集群路由系统内部的本地路由器接口的对应关系中获得所述组播报文对应的本地路由器接口;

将所述组播报文经过获得的本地路由器接口,转发至集群路由系统接口发送。

7.根据权利要求6所述的方法,其特征在于,所述将所述组播报文经过获得的本地路由器接口,转发至集群路由系统接口发送具体包括:将所述集群路由系统接口作为标识,封装在所述组播报文上;

将封装标识的组播报文经过获得的本地路由器接口发往对应的本地路由器,以使所述本地路由器根据所述标识将封装标识的组播报文转发至所述集群路由系统接口发送。

8.根据权利要求6至7任一项所述的方法,其特征在于,还包括:若所述组播报文去往另一个本地路由器的接口与所述组播报文进入当前本地路由器的接口为同一个接口时,从预设的转发接口列表中删除所述去往另一个本地路由器的接口。

9.根据权利要求6至7任一项所述的方法,其特征在于,还包括:在所述组播报文从所述集群路由系统接口发送时,将所述组播报文携带的TTL值减1。

10.一种组播报文处理方法,其特征在于,包括:

将集群路由系统接口相同的组播路由条目合并,分配相应的内部共享树标识,并保存组播路由条目和内部共享树标识的对应关系;

根据所述组播路由条目和内部共享树标识的对应关系,组播路由条目与集群路由系统接口的对应关系,以及集群路由系统接口与集群路由系统内部的本地路由器接口的对应关系建立所述内部共享树标识和集群路由系统内部的本地路由器接口的对应关系并保存到各个本地路由器的内部组播转发信息库中;

接收组播报文;

根据所述组播报文携带的组播路由条目,获得所述组播报文对应的本地路由器接口;

将所述组播报文经过获得的本地路由器接口,转发至集群路由系统接口发送。

11.根据权利要求10所述的方法,其特征在于,所述根据所述组播报文携带的组播路由条目,获得所述组播报文对应的本地路由器接口具体包括:根据所述组播报文携带的组播路由条目,从所述组播路由条目和内部共享树标识的对应关系中获得内部共享树标识,根据所述内部共享树标识查询所述内部组播转发信息库,获得所述组播报文对应的本地路由器接口。

12.根据权利要求11所述的方法,其特征在于,所述将所述组播报文经过获得的本地路由器接口,转发至所述集群路由系统接口发送具体包括:将所述内部共享树标识封装在所述组播报文上;

将封装内部共享树标识的组播报文经过获得的本地路由器接口发往对应的本地路由器,以使所述本地路由器根据所述内部共享树标识将封装内部共享树标识的组播报文转发至所述集群路由系统接口发送。

13.根据权利要求10至12任一项所述的方法,其特征在于,还包括:若所述组播报文去往另一个本地路由器的接口与所述组播报文进入当前本地路由器的接口为同一个接口时,从预设的转发接口列表中删除所述去往另一个本地路由器的接口。

14.根据权利要求10至12任一项所述的方法,其特征在于,还包括:在所述组播报文从所述集群路由系统接口发送时,将所述组播报文携带的TTL值减1。

15.一种组播报文处理装置,其特征在于,包括:

接收单元,用于接收组播报文;

第一建立单元,用于在所述接收单元接收组播报文之前,根据组播路由条目与集群路由系统接口的对应关系,以及集群路由系统接口与集群路由系统内部的本地路由器接口的对应关系建立组播路由条目和集群路由系统内部的本地路由器接口的对应关系;

第一保存单元,用于将所述第一建立单元建立的所述组播路由条目和集群路由系统内部的本地路由器接口的对应关系保存到各个本地路由器的组播转发信息库中;

获取单元,用于根据所述接收单元接收的组播报文携带的组播路由条目,获得所述组播报文对应的本地路由器接口;所述获取单元具体用于根据所述接收单元接收的组播报文携带的组播路由条目查询所述组播转发信息库,获得所述组播报文对应的本地路由器接口;

转发单元,用于将所述接收单元接收的组播报文经过所述获取单元获得的本地路由器接口,转发至集群路由系统接口发送。

16.一种组播报文处理装置,其特征在于,包括:

接收单元,用于接收组播报文;

获取单元,用于根据所述接收单元接收的组播报文携带的组播路由条目,获得所述组播报文对应的本地路由器接口;

转发单元,用于将所述接收单元接收的组播报文经过所述获取单元获得的本地路由器接口,转发至集群路由系统接口发送;

所述获取单元包括:

第一获取子单元,用于根据所述接收单元接收的组播报文携带的组播路由条目,从组播路由条目与集群路由系统接口的对应关系中获得所述组播报文对应的集群路由系统接口;

第二获取子单元,用于根据所述第一获取子单元获得的集群路由系统接口,从集群路由系统接口和集群路由系统内部的本地路由器接口的对应关系中获得所述组播报文对应的本地路由器接口;

所述转发单元包括:

第一封装子单元,用于将所述第一获取子单元获得的集群路由系统接口作为标识,封装在所述组播报文上;

第一转发子单元,用于将封装标识的组播报文经过第二获取子单元获得的本地路由器接口发往对应的本地路由器,以使所述本地路由器根据所述标识将封装标识的组播报文转发至所述集群路由系统接口发送。

17.一种组播报文处理装置,其特征在于,包括:

接收单元,用于接收组播报文;

处理单元,用于在所述接收单元接收组播报文之前,将集群路由系统接口相同的组播路由条目合并,分配相应的内部共享树标识,并保存组播路由条目和内部共享树标识的对应关系;

第二建立单元,用于根据所述组播路由条目和内部共享树标识的对应关系,组播路由条目与集群路由系统接口的对应关系,以及集群路由系统接口与集群路由系统内部的本地路由器接口的对应关系建立所述内部共享树标识和集群路由系统内部的本地路由器接口的对应关系;

第二保存单元,用于将所述第二建立单元建立的所述内部共享树标识和集群路由系统内部的本地路由器接口的对应关系保存到各个本地路由器的内部组播转发信息库中;

获取单元,用于根据所述接收单元接收的组播报文携带的组播路由条目,获得所述组播报文对应的本地路由器接口;所述获取单元具体用于根据所述接收单元接收的组播报文携带的组播路由条目,从所述处理单元保存的组播路由条目和内部共享树标识的对应关系中获得内部共享树标识,根据所述内部共享树标识查询所述内部组播转发信息库,获得所述组播报文对应的本地路由器接口;

转发单元,用于将所述接收单元接收的组播报文经过所述获取单元获得的本地路由器接口,转发至集群路由系统接口发送;

所述转发单元包括:

第二封装子单元,用于将所述获取单元获得的内部共享树标识封装在所述组播报文上;

第二转发子单元,用于将封装内部共享树标识的组播报文经过所述获取单元获得的本地路由器接口发往对应的本地路由器,以使所述本地路由器根据所述内部共享树标识将封装内部共享树标识的组播报文转发至所述集群路由系统接口发送。

说明书 :

一种组播报文处理方法及装置

技术领域

[0001] 本发明涉及计算机网络领域,尤其涉及一种组播报文处理方法及装置。

背景技术

[0002] 传统的网络架构具有两层或者多层的层次结构,如图1所示,根据各层的功能和部署位置,可将网络划分为不同的层次(包括核心层、汇聚层、边缘接入层以及对等层),各层之间通常采用双归属冗余连接提高可靠性,逐层汇聚用户流量。其中,接入层负责用户终端的网络接入,用于提供丰富的用户接口类型,节点分布广,接口密度大;汇聚层负责汇聚接入节点流量,用于扩大核心节点的业务覆盖范围,接口类型丰富,汇聚能力强,具备综合业务处理能力;核心层负责高速转发,区域间业务互通,节点数较少。
[0003] 为整合和简化网络结构,提高资源利用率,现有的网络架构在处理点到多点的交换报文时,采用了将同一网络层中的两台或多台交换主设备构成一个虚拟网络设备的方法,降低使用多个冗余组件而导致的复杂性。
[0004] 另外,现有的硬件集群路由器为了适应集群内各设备之间巨大的数据交换容量,将多个高端路由器通过超短距光纤连接到中央交换矩阵机框,构成一拖四、二拖八、或者四拖十六等大型集群路由器。由于引入了专用的中央交换矩阵机和超短距光纤互连技术,导致网络拓扑结构复杂,路由收敛性和稳定性较差。
[0005] 综上所述,目前无论是为了简化网络结构的同一网络层设备的虚拟集群汇聚,还是应用在核心节点或超级节点的硬件集群路由器,对组播报文的处理均不完善。

发明内容

[0006] 本发明实施例提供了一种组播报文处理方法及装置,实现组播报文在虚拟聚合的集群路由系统内部的高效、可靠路由转发,使集群路由系统可以高效高质的支持组播业务。
[0007] 为了解决上述技术问题,本发明实施例提供如下技术方案:
[0008] 本发明实施例提供了一种组播报文处理方法,包括:
[0009] 接收组播报文;
[0010] 根据所述组播报文携带的组播路由条目,获得所述组播报文对应的本地路由器接口;
[0011] 将所述组播报文经过获得的本地路由器接口,转发至集群路由系统接口发送。
[0012] 本发明实施例提供了一种组播报文处理装置,包括:
[0013] 接收单元,用于接收组播报文;
[0014] 获取单元,用于根据所述接收单元接收的组播报文携带的组播路由条目,获得所述组播报文对应的本地路由器接口;
[0015] 转发单元,用于将所述接收单元接收的组播报文经过所述获取单元获得的本地路由器接口,转发至集群路由系统接口发送。
[0016] 与现有的技术相比,本发明实施例可以根据组播报文携带的组播路由条目来获得组播报文对应的本地路由器接口,进而将组播报文经过上述本地路由器接口转发至集群路由系统接口发送。本发明实施例可以将若干台路由设备集群为一个虚拟的路由系统,对外表现为一个单独的路由节点支持组播业务,从而可以实现组播报文在虚拟聚合的集群路由系统内部的高效、可靠路由转发,使集群路由系统可以高效高质的支持组播业务。

附图说明

[0017] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018] 图1为传统的网络架构的层次结构示意图;
[0019] 图2为本发明实施例中提供的一种组播报文处理方法的流程示意图;
[0020] 图3为本发明实施例中提供的集群路由系统的接口分布示意图;
[0021] 图4为本发明实施例中提供的另一种组播报文处理方法的流程示意图;
[0022] 图5为本发明实施例中提供的另一集群路由系统的接口分布示意图;
[0023] 图6为本发明实施例中提供的另一种组播报文处理方法的流程示意图;
[0024] 图7为本发明实施例中提供的又一种组播报文处理方法的流程示意图;
[0025] 图8为本发明实施例中提供的一种组播报文处理装置的结构示意图;
[0026] 图9为本发明实施例中提供的另一种组播报文处理装置的结构示意图;
[0027] 图10为本发明实施例中提供的另一种组播报文处理装置的结构示意图;
[0028] 图11为本发明实施例中提供的又一种组播报文处理装置的结构示意图。

具体实施方式

[0029] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0030] 实施例一:
[0031] 请参阅图2,图2为本发明实施例一提供的一种组播报文处理方法的流程示意图。如图2所示,该方法可以包括:
[0032] 101、接收组播报文;
[0033] 其中,上述101中接收的组播报文可以携带组播路由条目,组播路由条目的表达形式可以为(S,G),其中,S为源地址,G为组地址;也可以为(*,G),其中,*为任何源地址,G为组地址。
[0034] 一个实施例中,可以通过查询外部组播转发信息库(eMFIB,externalMulticast Forwarding Information Base),获得组播报文对应的集群路由系统接口。eMFIB中预先建立了组播路由条目(S,G)与集群路由系统接口的对应关系。
[0035] 102、根据上述组播报文携带的组播路由条目,获得上述组播报文对应的本地路由器接口;
[0036] 一个实施例中,通过查询eMFIB获得上述组播报文对应的集群路由系统接口之后,可以进一步查询内部转发信息库(IFIB,Internal ForwardingInformation Base),获得组播报文对应的本地路由器接口。其中,IFIB中预先建立了集群路由系统接口与集群路由系统内部的本地路由器接口的对应关系。
[0037] 参见图3和图5,在集群路由系统内部,可包括主节点和若干个从节点,主节点分别与每个从节点连接。举例来说,主节点可以是大容量高性能路由器,从节点可以是小容量低性能路由器。主节点、从节点与集群路由系统外部连接的边缘接口为集群路由系统接口;主节点和从节点相互连接的接口为内连接口;主节点或者从节点本身的所有接口为本地路由器接口;本地路由器接口也可以是集群路由系统接口;根据报文转发方向的不同,各接口相应的称为入接口和出接口。
[0038] 在多个集群路由系统接口对应一个集群路由系统内部的本地路由器接口时,可将需转发到多个集群路由系统接口的组播报文对应的路由条目合并,直接将组播报文发送到该本地路由器接口。在集群路由系统内部,只需要一份组播报文即能完成多个集群路由系统接口的组播业务,节约能耗,提高资源利用率。
[0039] 其中,上述的eMFIB和IFIB可以保存在集群路由系统中的每一个本地路由器上,这样当任意一个本地路由器接收到外部输入的携带了组播路由条目的组播报文之后,可以根据组播报文携带的组播路由条目分别查询eMFIB和IFIB获得组播报文对应的本地路由器接口,进行组播报文转发。
[0040] 103、将上述组播报文经过获得的本地路由器接口,转发至集群路由系统接口发送。
[0041] 可选地,在组播报文通过集群路由系统接口转发出去时,可以将组播报文携带的生存时间(TTL,Time To Live)值减1。
[0042] 一个实施例中,在组播报文转发时,可在组播报文上封装标识,标识可以是集群路由系统接口的标识,或者是内部共享树(IST,Internal Shared Tree)标识,IST标识为集群路由系统接口相同的组播报文的共同标识。在组播报文上封装标识,方便快速识别转发接口,以使组播报文快速从相应接口转发,提高转发速度。
[0043] 本发明实施例提供的组播路由处理方法不局限于实施例中内连拓扑为两层层次化树状拓扑,在多层多跳层次化树状拓扑、环形拓扑等各种异构复杂拓扑中均适用。
[0044] 本发明实施例可以根据组播报文携带的组播路由条目来获得组播报文对应的本地路由器接口,进而将组播报文经过上述本地路由器接口转发至集群路由系统接口发送。本发明实施例可以将若干台路由设备集群为一个虚拟的路由系统,对外表现为一个单独的路由节点支持组播业务,从而可以实现组播报文在虚拟聚合的集群路由系统内部的高效、可靠路由转发,使集群路由系统可以高效高质的支持组播业务。
[0045] 实施例二:
[0046] 请参阅图4,图4为本发明实施例二提供的一种组播报文处理方法的流程示意图。如图4所示,该方法可以包括:
[0047] 401、集群路由系统生成eMFIB。
[0048] 其中,eMFIB用于存储组播路由条目(S,G)与集群路由系统接口的对应关系。
[0049] 举例来说,集群路由系统可以采用但不限于动态集中方式和分布生成方式来生成eMFIB,其中,采用动态集中方式生成eMFIB的具体实现为:
[0050] A1、将集群路由系统视为一个路由节点,屏蔽集群路由系统内部互连机制,只关注集群路由系统的外连接口;
[0051] B1、指定高性能汇聚路由器主R1为主节点,主R1支持组播路由计算协议(PIM-DM/PIM-SIM/MSDP/MBGP等),从节点(R2、R3、R4)不支持任何组播路由计算协议;
[0052] C1、集群路由系统内部传递消息:从节点将从自身的集群路由系统外连接口(ExtP)接收到的邻居消息,通过内连接口(IntP)上报到主节点(主R1);
[0053] D1、组播路由表计算:主节点(主R1)根据从各从节点集群路由系统外连接口ExtP收到的邻居信息,运行组播路由计算协议,生成eMFIB,执行相应的组播控制功能;
[0054] E1、下发eMFIB:主节点集中计算生成eMFIB,并下发到集群路由系统内各主、从节点。
[0055] 其中,采用分布生成方式生成eMFIB的具体实现为:
[0056] A2、将集群路由系统视为一个路由节点,屏蔽集群路由系统内部互连机制,只关注集群路由系统的外连接口;
[0057] B2、外部信息接收:集群路由系统各节点(R1、R2、R3、R4)外连接口接收到外部邻居信息;
[0058] C2、集群路由系统内部消息传递和同步:各节点将信息在内部转发并同步;
[0059] D2、组播路由表计算:各节点支持组播路由计算协议(PIM-DM/PIM-SIM/MSDP/MBGP等),并根据这些邻居信息,生成外部网络拓扑图,并以集群路由系统作为一个节点计算路由表,生成eMFIB。
[0060] 在网络结构及接口分布如图5所示时,以组播地址为224.1.0.0为例,上述401生成的eMFIB可以如下表1所示:
[0061] 表1eMFIB
[0062](S,G) 集群路由系统入接口 集群路由系统出接口列表
(iif) (oiflist)
(S1,224.1.0.0) ExtP11 ExtP21,ExtP22,ExtP31,
ExtP32
(S2,224.2.0.0) ExtP31 ExtP11,ExtP41,ExtP42
[0063] 402、集群路由系统生成内部转发信息库IFIB。
[0064] 其中,IFIB的形式可以如下表所示,表2为主R1的IFIB,表3为从R2的IFIB,表4为从R3的IFIB:
[0065] 表2主R1的IFIB
[0066]集群路由系统出接口 本地路由器出接口
ExtP11 ExtP11
ExtP21 IntP11
ExtP22 IntP11
ExtP31 1ntP12
ExtP32 IntP12
[0067] 表3从R2的IFIB
[0068]集群路由系统出接口 本地路由器出接口
ExtP21 ExtP21
ExtP22 ExtP22
其它 IntP21
[0069] 表4从R3的IFIB
[0070]集群路由系统出接口 本地路由器出接口
ExtP31 ExtP31
ExtP32 ExtP32
其它 IntP31
[0071] 举例来说,主R1可以根据组播报文携带的组播路由条目(S1,224.1.0.0)从上述表1所示的eMFIB中获得集群路由系统出接口为ExtP21,ExtP22,ExtP31,ExtP32;进而可以从上述表2所示的IFIB中获得上述组播报文对应的本地路由器接口为ExtP11,IntP11,IntP12。
[0072] 其中,上述的401生成eMFIB与402生成IFIB之间没有先后顺序的限定,后续实施例也一样。
[0073] 403、利用eMFIB和IFIB生成并简化组播转发信息库(MFIB,MulticastForwarding Information Base)。
[0074] 其中,上述403可以根据组播路由条目与集群路由系统接口的对应关系(即eMFIB),以及集群路由系统接口与集群路由系统内部的本地路由器接口的对应关系(即IFIB),建立组播路由条目和集群路由系统内部的本地路由器接口的对应关系并保存到各个本地路由器的MFIB中。
[0075] MFIB的生成可以由集群路由系统内部各节点自行合并生成,也可以由主节点统一为各节点生成,并下发到从节点。
[0076] 如下以(S1,224.1.0.0)组播报文在集群路由系统内部的转发路径介绍集群内部各节点MFIB生成的流程。
[0077] 主R1的MFIB生成,主节点R1查找表1所示的eMFIB,得知该组播路由条目需从集群路由系统接口ExtP11进入,并转发到集群路由系统接口ExtP21,ExtP22,ExtP31,ExtP32发送;用集群路由系统出接口作索引查找表2所示的主R1的IFIB,得知ExtP21,ExtP22接口对应本地路由器的IntP11接口;ExtP31,ExtP32接口对应本地路由器的IntP12接口,则IntP11、IntP12为MFIB表中的本地路由器出接口;用集群路由系统入接口ExtP11作索引查找表2所示的主R1的IFIB,得知本地路由器出接口为ExtP11,则为MFIB表中的本地路由器入接口。从而,生成主R1的MFIB表的一条表项,依此方法类推,可生成主R1的MFIB的所有表项,如下表5所示:
[0078] 表5主R1的MFIB
[0079](S,G) 本地R入接口 本地R出接口
(S1,224.1.0.0) ExtP11 IntP11,IntP12
...... ...... ......
[0080] 进一步,依此方法,可生成从R2的MFIB,如表6所示。从节点R2查找表1所示的eMFIB,得知该组播路由条目需从ExtP11接口进入集群路由系统,并转发到ExtP21,ExtP22,ExtP31,ExtP32接口发送出集群路由系统接口;用集群路由系统出接口作索引查找表3所示的从R2的IFIB,得知ExtP21,ExtP22接口分别对应本地路由器的ExtP21接口和ExtP22接口,ExtP31,ExtP32接口对应本地路由器的IntP21接口,则ExtP21、ExtP22、IntP21为MFIB表中的本地路由器出接口;用集群路由系统入接口ExtP11作索引查找表3所示的从R2的IFIB,得知本地路由器出接口为ExtP21,则为MFIB表中的本地路由器入接口。从而,生成从R2的MFIB表的一条表项,依此方法类推,可生成从R2的MFIB的所有表项,如下表所示:
[0081] 表6从R2的MFIB
[0082](S,G) 本地R入接口 本地R出接口
(S1,224.1.0.0) IntP21 ExtP21、ExtP22、IntP21
...... ...... ......
[0083] 进一步,依此方法,可生成从R3的MFIB表如下:
[0084] 表7从R3的MFIB
[0085](S,G) 本地R入接口 本地R出接口
[0086](S1,224.1.0.0) IntP31 ExtP31、ExtP32、IntP31
...... ...... ......
[0087] 在生成MFIB的过程中,可采用以下手段简化MFIB,例如:
[0088] 1)出口相同复制一次机制
[0089] 在至少两个集群路由系统接口对应一个本地路由器接口时,将对应至少两个集群路由系统接口的组播报文合并,并复制一份发送到所述本地路由器接口,抑制组播报文被重复复制,节约能耗。
[0090] 例如,主R1将去往ExtP21,ExtP22接口的组播报文合并复制一份到IntP11,将去往ExtP31,ExtP32接口的组播报文合并复制一份到IntP12,发送至IntP31。
[0091] 2)环路抑制机制
[0092] 某本地路由器判断出组播报文需去往另一个本地路由器的接口与该组播报文进入本地路由器的接口为同一个接口时,则预设的转发接口列表中删除去往另一个本地路由器的接口,以防止组播报文在几个本地路由器间反复转发,或者同一个组播报文被几个本地路由器先后转发,形成环路,造成死锁,浪费系统资源。
[0093] 例如,从R2判断出去往ExtP31,ExtP32接口的组播报文的出接口为IntP21,与该组播报文进入从R2的入接口IntP21相同,则不转发,在从R2的MFIB中或者预设的转发接口列表中去掉出接口IntP21。同理,从R3判断出去往ExtP21,ExtP22接口的组播报文的出接口为IntP31,与该组播报文进入R3的入接口IntP31相同,则不转发,在R3的MFIB中去掉接口IntP31。从R2、从R3的MFIB表项变为如下所示:
[0094] 表8从R2的MFIB
[0095](S,G) 本地R入接口 本地R出接口
(S1,224.1.0.0) IntP21 ExtP21、ExtP22
...... ...... ......
[0096] 表9从R3的MFIB
[0097](S,G) 本地R入接口 本地R出接口
(S1,224.1.0.0) IntP31 ExtP31、ExtP32
...... ...... ......
[0098] 404、集群路由系统接收到组播报文。
[0099] 集群路由系统中的主R1收到了携带组播路由条目(S1,224.1.0.0)的组播报文。
[0100] 405、查询MFIB,转发组播报文。
[0101] 在组播报文从集群路由系统出接口转发出去后,将该组播报文携带的TTL值减1。
[0102] 本发明实施例可以实现将若干台路由设备集群为一个虚拟的路由节点,并通过eMFIB、IFIB合并生成MFIB,再直接查询MFIB然后转发组播报文,从而能减少组播报文的内部转发次数,提高路由收敛速度和稳定性,降低故障管理复杂性。
[0103] 实施例三、
[0104] 请参阅图6,图6为本发明实施例三提供的一种组播报文处理方法的流程示意图。如图6所示,该方法可以包括:
[0105] 601、集群路由系统生成eMFIB。
[0106] 其中,上述601生成eMFIB的具体实现方法在上述实施例二中已经给予详细介绍,本实施例不作复述。
[0107] 602、集群路由系统生成内部转发信息库IFIB。
[0108] 其中,上述602生成IFIB的具体实现方法在上述实施例二中已经给予详细介绍,本实施例不作复述。
[0109] 603、集群路由系统接收携带组播路由条目的组播报文。
[0110] 604、根据上述组播报文携带的组播路由条目,从eMFIB中获得上述组播报文对应的集群路由系统接口。
[0111] 605、根据上述获得的集群路由系统接口,从IFIB中获得上述组播报文对应的本地路由器接口;
[0112] 606、将上述获得的集群路由系统接口作为标识,封装在上述组播报文上;
[0113] 607、将封装标识的组播报文经过获得的本地路由器接口发往对应的本地路由器,以使本地路由器根据上述标识将封装标识的组播报文转发至集群路由系统接口发送。
[0114] 举例来说,如果主R1接收到外部输入的携带组播路由条目的组播报文,则主R1可以查找如表1所示的eMFIB,获得该组播报文对应的集群路由系统接口;分别用获得的集群路由系统接口作索引,查找主R1的IFIB,获得组播报文对应的本地路由器接口;分别将获得的集群路由系统接口作为标识,封装在组播报文上,然后发往对应的本地路由器,由对应的本地路由器根据该标识将封装标识的组播报文经过本地路由接口转发至集群路由系统接口发送。
[0115] 该对应的本地路由器根据该组播报文封装的标识查找自身的IFIB获得该对应的本地路由器的本地路由器接口,将封装标识的组播报文经过获得的本地路由器接口发往下一级对应的本地路由器,以此类推,直至将封装标识的组播报文转发至集群路由系统接口发送。
[0116] 标识可以使从节点根据标识所示的集群路由系统出接口,快速将报文发往该接口,以提高转发效率。
[0117] 在本实施例中,如果组播报文去往另一个本地路由器的接口与该组播报文进入当前本地路由器的接口为同一个接口时,从IFIB中或者预设的转发接口列表中删除去往另一个本地路由器的接口,以防止组播报文在几个本地路由器间反复转发,或者同一个组播报文被几个本地路由器先后转发,形成环路,造成死锁,浪费系统资源。
[0118] 另外,在上述组播报文从集群路由系统接口发送时,从上述组播报文中移除标识并将上述组播报文携带的TTL值减1。
[0119] 本发明实施例分别通过查询eMFIB、IFIB获得组播报文对应的集群路由系统接口以及本地路由器接口后,可以将集群路由器接口作为标识封装在组播报文中并发送给本地路由器,这样本地路由器可以根据该标识将组播报文快速地转发至集群路由系统接口发送,从而能减少组播报文的内部转发次数,提高路由收敛速度和稳定性,降低故障管理复杂性。
[0120] 实施例四:
[0121] 请参阅图7,图7为本发明实施例四提供的一种组播报文处理方法的流程示意图。如图7所示,该方法可以包括:
[0122] 701、集群路由系统生成eMFIB。
[0123] 其中,上述601生成eMFIB的具体实现方法在上述实施例二中已经给予详细介绍,本实施例不作复述。
[0124] 702、集群路由系统生成内部转发信息库IFIB。
[0125] 其中,上述602生成IFIB的具体实现方法在上述实施例二中已经给予详细介绍,本实施例不作复述。
[0126] 703、将集群路由系统接口相同的组播路由条目合并,分配相应的内部共享树标识IST,并保存组播路由条目和内部共享树标识IST的对应关系。
[0127] 举例来说,可以将集群路由系统接口相同组播路由条目(S,G)和(*,G)条目进行合并,并且分配IST标识,如表10所示;
[0128] 表10组播路由条目与IST标识映射表
[0129](S,G)/(*,G) IST标识
[0130] 上述的701生成eMFIB、702生成IFIB以及703生成内部共享树标识之间没有先后顺序的限定,后续实施例也一样。
[0131] 704、根据上述的组播路由条目和内部共享树标识IST的对应关系以及eMFIB、IFIB建立上述内部共享树标识IST和集群路由系统内部的本地路由器接口的对应关系并保存到各个本地路由器的内部组播转发信息库(IMFIB,Internal Multicast Forwarding Information Base))中。
[0132] 其中,内部组播转发信息库的生成与前述实施例中403的利用eMFIB和IFIB生成并简化组播转发信息库的发式基本相同,区别在于用内部共享树标识IST替代集群路由系统接口相同的组播路由条目。用于保存上述内部共享树标识IST和集群路由系统内部的本地路由器接口的对应关系的IMFIB可以如下表11所示:
[0133] 表11IMFIB
[0134]IST标识 本地路由器入接口 本地路由器出接口
...... ...... ......
[0135] 705、集群路由系统接收携带组播路由条目的组播报文。
[0136] 706、根据上述组播报文携带的组播路由条目,从组播路由条目和内部共享树标识的对应关系中获得内部共享树标识。
[0137] 举例来说,根据上述组播报文携带的组播路由条目,可以从表10中获得内部共享树标识。
[0138] 707、根据获得的内部共享树标识查询上述的内部组播转发信息库IMFIB,获得上述组播报文对应的本地路由器接口。
[0139] 708、将获得的内部共享树标识封装在上述组播报文上。
[0140] 709、将封装内部共享树标识的组播报文经过获得的本地路由器接口发往对应的本地路由器,以使对应的本地路由器根据内部共享树标识将封装内部共享树标识的组播报文转发至集群路由系统接口发送。
[0141] 该对应的本地路由器根据该组播报文封装的内部共享树标识查找自身的IMFIB获得该对应的本地路由器的本地路由器接口,将封装内部共享树标识的组播报文经过获得的本地路由器接口发往下一级对应的本地路由器,以此类推,直至将封装内部共享树标识的组播报文转发至集群路由系统接口发送。
[0142] 在上述组播报文从集群路由系统接口发送时,从上述组播报文中移除标识。
[0143] 优选地,在组播报文通过集群路由系统接口发送出去时,可以将组播报文携带的生存时间(TTL,Time To Live)值减1。
[0144] 另外,当上述组播报文去往另一个本地路由器的接口与上述组播报文进入当前本地路由器的接口为同一个接口时,从IFIB中或者预设的转发接口列表中删除去往另一个本地路由器的接口,以防止组播报文在几个本地路由器间反复转发,或者同一个组播报文被几个本地路由器先后转发,形成环路,造成死锁,浪费系统资源。
[0145] 本发明实施例可以减少组播报文的内部转发次数,提高路由收敛速度和稳定性,降低故障管理复杂性。
[0146] 本发明实施例除了提供上述的组播报文处理方法之外,还提供几种组播报文处理装置,详见以下实施例。
[0147] 实施例五:
[0148] 请参阅图8,图8为本发明实施例五提供的一种组播报文处理装置的结构示意图。如图8所示,该装置可以包括:
[0149] 接收单元801,用于接收组播报文;
[0150] 获取单元802,用于根据接收单元801接收的组播报文携带的组播路由条目,获得上述组播报文对应的本地路由器接口;
[0151] 转发单元803,用于将接收单元801接收的组播报文经过获取单元803获得的本地路由器接口,转发至集群路由系统接口发送。
[0152] 本发明实施例提供的组播报文处理装置可以实现将若干台路由设备集群为一个虚拟的路由系统,对外表现为一个单独的路由节点支持组播业务,从而可以实现组播报文在虚拟聚合的集群路由系统内部的高效、可靠路由转发,使集群路由系统可以高效高质的支持组播业务。
[0153] 请参阅图9,图9为本发明实施例五提供的另一种组播报文处理装置的结构示意图。与图8所示的组播报文装置相比,图9所示的组播报文处理装置增设了以下单元:
[0154] 第一建立单元804,用于在接收单元801接收组播报文之前,根据组播路由条目与集群路由系统接口的对应关系,以及集群路由系统接口与集群路由系统内部的本地路由器接口的对应关系建立组播路由条目和集群路由系统内部的本地路由器接口的对应关系;
[0155] 其中,第一建立单元804建立的组播路由条目和集群路由系统内部的本地路由器接口的对应关系可以和上述实施例中的表2、表3、表4相同,本实施例不作复述。
[0156] 第一保存单元805,用于将第一建立单元建立的组播路由条目和集群路由系统内部的本地路由器接口的对应关系保存到各个本地路由器的组播转发信息库MFIB中;
[0157] 其中,MFIB可以和上述实施例中的表5、表6、表7相同,本实施例不作复述。
[0158] 此时,获取单元802具体可以根据接收单元801接收的组播报文携带的组播路由条目查询组播转发信息库MFIB,获得上述组播报文对应的本地路由器接口。
[0159] 一个实施例中,在至少两个集群路由系统接口对应一个本地路由器接口时,将对应至少两个集群路由系统接口的组播报文合并,并复制一份发送到本地路由器接口,抑制组播报文被重复复制,节约能耗。
[0160] 某本地路由器判断出组播报文需去往另一个本地路由器的接口与该组播报文进入本地路由器的接口为同一个接口时,则预设的转发接口列表中删除去往另一个本地路由器的接口,以防止组播报文在几个本地路由器间反复转发,或者同一个组播报文被几个本地路由器先后转发,形成环路,造成死锁,浪费系统资源。
[0161] 请参阅图10,图10为本发明实施例五提供的另一种组播报文处理装置的结构示意图。与图8所示的组播报文装置相比,图10所示的组播报文处理装置中,获取单元802可以包括:
[0162] 第一获取子单元8021,用于根据接收单元801接收的组播报文携带的组播路由条目,从组播路由条目与集群路由系统接口的对应关系中获得上述组播报文对应的集群路由系统接口;
[0163] 其中,从组播路由条目与集群路由系统接口的对应关系可以保存在上述实施例中所说的eMFIB中。
[0164] 第二获取子单元8022,用于根据第一获取子单元8021获得的集群路由系统接口,从集群路由系统接口和集群路由系统内部的本地路由器接口的对应关系中获得上述组播报文对应的本地路由器接口;
[0165] 其中,集群路由系统接口和集群路由系统内部的本地路由器接口的对应关系可以保存在上述实施例中所说的IFIB中。
[0166] 如图10所示的组播报文处理装置中,转发单元803可以包括:
[0167] 第一封装子单元8031,用于将第一获取子单元8021获得的集群路由系统接口作为标识,封装在上述组播报文上;
[0168] 第一转发子单元8032,用于将封装标识的组播报文经过第二获取子单元8022获得的本地路由器接口发往对应的本地路由器,以使对应的本地路由器根据上述标识将封装标识的组播报文转发至集群路由系统接口发送。
[0169] 其中,该对应的本地路由器根据该组播报文封装的标识查找自身的IFIB获得该对应的本地路由器的本地路由器接口,将封装标识的组播报文经过获得的本地路由器接口发往下一级对应的本地路由器,以此类推,直至将封装标识的组播报文转发至集群路由系统接口发送。
[0170] 其中,上述的标识可以使本装置中的从节点直接找到标识所示的集群路由系统或本地路由器出接口,快速将报文发往该接口,以节约能耗。
[0171] 请参阅图11,图11为本发明实施例五提供的另一种组播报文处理装置的结构示意图。与图8所示的组播报文装置相比,图11所示的组播报文处理装置增设了以下单元:
[0172] 处理单元806,用于在接收单元801接收组播报文之前,将集群路由系统接口相同的组播路由条目合并,分配相应的内部共享树标识IST,并保存组播路由条目和内部共享树标识IST的对应关系;
[0173] 其中,处理单元806保存的组播路由条目和内部共享树标识IST的对应关系可以和上述实施例中的表10相同,本实施例不作复述。
[0174] 第二建立单元807,用于根据上述的组播路由条目和内部共享树标识IST的对应关系,组播路由条目与集群路由系统接口的对应关系,以及集群路由系统接口与集群路由系统内部的本地路由器接口的对应关系建立内部共享树标识IST和集群路由系统内部的本地路由器接口的对应关系;
[0175] 其中,第二建立单元807建立的内部共享树标识IST和集群路由系统内部的本地路由器接口的对应关系可以和上述实施例中的表11相同,本实施例不作复述。
[0176] 第二保存单元808,用于将第二建立单元807建立的内部共享树标识IST和集群路由系统内部的本地路由器接口的对应关系保存到各个本地路由器的内部组播转发信息库IMFIB中;
[0177] 此时,获取单元802具体可以根据接收单元801接收的组播报文携带的组播路由条目,从处理单元806保存的组播路由条目和内部共享树标识IST的对应关系中获得内部共享树标识IST,根据获得的内部共享树标识IST查询内部组播转发信息库IMFIB,获得上述组播报文对应的本地路由器接口;
[0178] 如图11所示的组播报文处理装置中,转发单元803可以包括:
[0179] 第二封装子单元8033,用于将获取单元802获得的内部共享树标识IST封装在上述组播报文上;
[0180] 第二转发子单元8034,用于将封装内部共享树标识的组播报文经过获取单元802获得的本地路由器接口发往对应的本地路由器,以使对应的本地路由器根据上述内部共享树标识将封装内部共享树标识的组播报文转发至集群路由系统接口发送。
[0181] 其中,该对应的本地路由器根据该组播报文封装的内部共享树标识查找自身的IMFIB获得该对应的本地路由器的本地路由器接口,将封装内部共享树标识的组播报文经过获得的本地路由器接口发往下一级对应的本地路由器,以此类推,直至将封装内部共享树标识的组播报文转发至集群路由系统接口发送。
[0182] 在上述组播报文从集群路由系统接口发送时,从上述组播报文中移除标识。
[0183] 本发明实施例提供的组播报文处理装置可以实现将若干台路由设备集群为一个虚拟的路由系统,对外表现为一个单独的路由节点支持组播业务,从而可以实现组播报文在虚拟聚合的集群路由系统内部的高效、可靠路由转发,使集群路由系统可以高效高质的支持组播业务。
[0184] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:只读存储器(Read-Only Memory,ROM)、随机存取器(Random-Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0185] 以上对本发明实施例提供的一种组播报文处理方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上可知,本说明书内容不应理解为对本发明的限制。