实现不同IP域之间组播的方法及边界网关路由器转让专利

申请号 : CN201010598557.1

文献号 : CN102025522B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 姚辉林东豪翁石强

申请人 : 北京星网锐捷网络技术有限公司

摘要 :

本发明涉及一种实现不同IP域之间组播的方法及边界网关路由器,方法至少包括:边界网关路由器从各IP域RP路由器获取组播组信息;当根据组播组信息获知存在跨域组播组时,边界网关路由器通过跨域组播组的组播源所在IP域的RP路由器,向组播源发起加入跨域组播组的加入组请求,加入跨域组播组;组播源所在IP域的RP路由器转发组播源发送的组播数据;边界网关路由器接收组播数据,将组播数据中的组播源地址转换为边界网关路由器上的目的IP域接口地址或预设目的IP域地址池中的空闲地址;将组播数据中的组地址转换为目的IP域的组地址;将组播源地址及组地址转换后的组播数据发送到目的IP域中直连的组播路由器。

权利要求 :

1.一种实现不同IP域之间组播的方法,其特征在于,至少包括:

边界网关路由器从各IP域汇聚点RP路由器获取组播组信息,所述组播组信息至少包括组播源信息及组播接收者信息;

当根据所述组播组信息获知存在跨域组播组时,所述边界网关路由器通过所述跨域组播组的组播源所在IP域的RP路由器,向所述组播源发起加入所述跨域组播组的加入组请求,加入所述跨域组播组,所述跨域组播组为组播源与组播接收者属于不同IP域的组播组;

所述组播源所在IP域的RP路由器转发所述组播源发送的组播数据;

所述边界网关路由器接收所述组播数据,将所述组播数据中的组播源地址转换为所述边界网关路由器上的目的IP域接口地址或预设目的IP域地址池中的空闲地址,并保存转换的映射关系;

所述边界网关路由器将所述组播数据中的组地址转换为目的IP域的组地址;

所述边界网关路由器将所述组播源地址及组地址转换后的组播数据发送到所述目的IP域中直连的组播路由器;

所述边界网关路由器从各IP域RP路由器获取组播组信息包括:

所述边界网关路由器向所述各IP域RP路由器发送基于组播路由协议的共享组查询报文,所述共享组查询报文包括所述共享组查询报文的源地址、目的地址、组播路由协议版本、报文类型及为所述各IP域RP路由器中的组播组提供的源地址空间、组地址空间、组播源是否存在标识及组播接收者是否存在标识空间;

所述各IP域RP路由器返回基于组播路由协议的共享组查询应答报文,所述共享组查询应答报文包括所述共享组查询应答报文的源地址、目的地址、组播路由协议版本、报文类型及所述各IP域RP路由器中的组播组的源地址、组地址、组播源是否存在标识及组播接收者是否存在标识;

所述边界网关路由器接收所述共享组查询应答报文,获取所述各IP域RP路由器中的组播组的源地址、组地址、组播源是否存在标识及组播接收者是否存在标识。

2.根据权利要求1所述的实现不同IP域之间组播的方法,其特征在于,所述边界网关路由器定期向各IP域RP路由器查询并获取组播组信息,查询周期小于组播路由协议加入报文的更新时间。

3.根据权利要求1或2所述的实现不同IP域之间组播的方法,其特征在于,所述边界网关路由器将所述组播数据中的组地址转换为目的IP域的组地址包括:所述边界网关路由器将所述组播数据中的IPv4域组地址嵌入到具有组播前缀标识的IPv6域组地址中;或者从具有组播前缀标识的IPv6域组地址中提取后32位,作为IPv4域组地址。

4.根据权利要求3所述的实现不同IP域之间组播的方法,其特征在于,所述组播前缀标识为FFxy:F20:/96,所述x用于标识所述组播前缀标识的IPv6组播地址中,嵌入的IPv4域组地址是否为永久分配的组播地址,所述y用于标识IPv6域可取的地址范围;

从具有组播前缀标识的IPv6域组地址中提取后32位,作为IPv4域组地址包括:从具有组播前缀标识的IPv6组播地址中提取后32位,根据所述x、y的值确定的类型,将所述后

32位转换为IPv4域组地址。

5.根据权利要求1或2所述的实现不同IP域之间组播的方法,其特征在于,还包括:所述边界网关路由器再次查询所述各IP域RP路由器获取组播组信息;

当根据所述组播组信息获知在所述目的IP域组地址主机离开所述跨域组播组后,所述边界网关路由器删除保存的组播源地址与目的IP域接口地址的映射关系,或释放所述边界网关路由器上预设目的IP域地址池中被占用的空闲地址。

6.一种用于上述权利要求1-5任一项所述的实现不同IP域之间组播的方法的边界网关路由器,其特征在于,包括:组播组信息获取单元,用于从各IP域汇聚点RP路由器获取组播组信息,所述组播组信息至少包括组播源信息及组播接收者信息;

加入组单元,用于当根据所述组播组信息获知存在跨域组播组时,通过所述跨域组播组的组播源所在IP域的RP路由器,向所述组播源发起加入所述跨域组播组的加入组请求,加入所述跨域组播组,所述跨域组播组为组播源与组播接收者属于不同IP域的组播组;

接收单元,用于接收所述组播源所在IP域的RP路由器转发的所述组播源发送的组播数据;

映射单元,用于将所述组播数据中的组播源地址转换为所述边界网关路由器上的目的IP域接口地址或预设目的IP域地址池中的空闲地址,并保存转换的映射关系;

地址转换单元,用于将所述组播数据中的组地址转换为目的IP域的组地址;

数据发送单元,用于将所述组播源地址及组地址转换后的组播数据发送到所述目的IP域中直连的组播路由器;

所述组播组信息获取单元包括:

组播组查询子单元,用于向所述各IP域RP路由器发送基于组播路由协议的共享组查询报文,所述共享组查询报文包括所述共享组查询报文的源地址、目的地址、组播路由协议版本、报文类型及为所述各IP域RP路由器中的组播组提供的源地址空间、组地址空间、组播源是否存在标识及组播接收者是否存在标识空间;

组播组获取子单元,用于接收所述各IP域RP路由器返回的基于组播路由协议的共享组查询应答报文,获取所述各IP域RP路由器中的组播组的源地址、组地址、组播源是否存在标识及组播接收者是否存在标识,所述共享组查询应答报文包括所述共享组查询应答报文的源地址、目的地址、组播路由协议版本、报文类型及所述各IP域RP路由器中的组播组的源地址、组地址、组播源是否存在标识及组播接收者是否存在标识。

7.根据权利要求6所述的边界网关路由器,其特征在于,所述组播组信息获取单元具体用于定期从各IP域RP路由器查询并获取组播组信息,查询周期小于组播路由协议加入报文的更新时间。

8.根据权利要求6或7所述的边界网关路由器,其特征在于,所述地址转换单元包括以下任一子单元或组合:前向转换子单元,用于将所述组播数据中的IPv4域组地址嵌入到具有组播前缀标识的IPv6域组地址中;

反向转换子单元,用于从具有组播前缀标识的IPv6域组地址中提取后32位,作为IPv4域组地址。

9.根据权利要求8所述的边界网关路由器,其特征在于,所述组播前缀标识为FFxy:F20:/96,所述x用于标识所述组播前缀标识的IPv6组播地址中,嵌入的IPv4域组地址是否为永久分配的组播地址,所述y用于标识IPv6域可取的地址范围;

所述反向转换子单元具体用于从具有组播前缀标识的IPv6组播地址中提取后32位,根据所述x、y的值确定的类型,将所述后32位转换为IPv4域组地址。

10.根据权利要求6或7所述的边界网关路由器,其特征在于,所述组播组信息获取单元还用于在将所述组播源地址及组地址转换后的组播数据发送到所述目的IP域中直连的组播路由器之后,再次查询所述各IP域RP路由器获取组播组信息;

所述边界网关路由器还包括:

资源释放单元,用于当根据所述组播组信息获知在所述目的IP域组地址主机离开所述跨域组播组后,删除保存的组播源地址与目的IP域接口地址的映射关系,或释放所述边界网关路由器上预设目的IP域地址池中被占用的空闲地址。

说明书 :

实现不同IP域之间组播的方法及边界网关路由器

技术领域

[0001] 本发明涉及网络技术,尤其涉及一种实现不同IP域之间组播的方法及边界网关路由器。

背景技术

[0002] 随着IP技术的迅速发展,将出现基于IPv6的下一代互联网即IPv6网络也即IPv6域,以解决互联网应用的不断扩展导致的IPv4网络地址资源枯竭的问题。 [0003] 在从IPv4网络向IPv6网络过渡过程中,IPv4网络与IPv6网络共存,导致二者存在兼容问题。如对于组播技术,当一个组播组中既有IPv4网络参与又有IPv6网络参与时,就需要考虑如何将一个域中组播源发送的组播数据发送到另一个IP域中。这里的IP域是指IPv4网络(IPv4域)或IPv6网络(IPv6域)。
[0004] 现有技术通过双协议栈技术或转发器方式来实现不同IP域的同一组播问题。 [0005] 其中,双协议栈技术实际上是纯IPv4组播网和纯IPv6组播网两者的叠加。具体地,组播源被配置成双协议栈,同时向IPv4组和IPv6组发送数据流,使运行不同协议栈的所有主机都能接收组播报文。这就要求在组播转发路径上的所有节点路由器都需要支持双栈,对于部分参与者仅使用IPv4,另一部分参与者仅使用IPv6的情况,则无法实现组播。 [0006] 转发器方式是指IPv4-IPv6组播转发器在IPv4和IPv6组播之间进行转换(Reffect),给定IPv4组地址和端口及IPv6组地址和端口,转发器将同时加入两个组并监听相应的端口,从一个组接收到的所有数据将重新发送(Resend) 至另一组。其中,当内容提供者所使用的协议没有被广泛支持,并且主机或应用程序不支持双协议时,将转发器部署在组播源附近;当接收者使用不同于源的另一种协议时,将转发器部署在接收者附近。转发器方式的主要缺陷是性能较低,不能支持大规模的组播应用。另外它必须为每个会话都启用一个实例,即使没有接收者,它仍执行接收重发的过程。如果用户需要利用转发器在网络上提供服务,用户必须联系管理员,申请在有限的时间内分配一个会话。 [0007] 因此,目前急需一种组播方案来实现不同IP域的组播资源共享。 [0008] 发明内容
[0009] 本发明提出一种实现不同IP域之间组播的方法及边界网关路由器,以实现IPv4网络与IPv6网络的组播资源共享。
[0010] 本发明提供了一种实现不同IP域之间组播的方法,至少包括: [0011] 边界网关路由器从各IP域汇聚点RP路由器获取组播组信息,所述组播组信息至少包括组播源信息及组播接收者信息;
[0012] 当根据所述组播组信息获知存在跨域组播组时,所述边界网关路由器通过所述跨域组播组的组播源所在IP域的RP路由器,向所述组播源发起加入所述跨域组播组的加入组请求,加入所述跨域组播组,所述跨域组播组为组播源与组播接收者属于不同IP域的组播组;
[0013] 所述组播源所在IP域的RP路由器转发所述组播源发送的组播数据; [0014] 所述边界网关路由器接收所述组播数据,将所述组播数据中的组播源地址转换为所述边界网关路由器上的目的IP域接口地址或预设目的IP域地址池中的空闲地址,并保存转换的映射关系;
[0015] 所述边界网关路由器将所述组播数据中的组地址转换为目的IP域的组地址; [0016] 所述边界网关路由器将所述组播源地址及组地址转换后的组播数据发送到所述目的IP域中直连的组播路由器;
[0017] 所述边界网关路由器从各IP域RP路由器获取组播组信息包括: [0018] 所述边界网关路由器向所述各IP域RP路由器发送基于组播路由协议的共享组查询报文,所述共享组查询报文包括所述共享组查询报文的源地址、目的地址、组播路由协议版本、报文类型及为所述各IP域RP路由器中的组播组提供的源地址空间、组地址空间、组播源是否存在标识及组播接收者是否存在标识空间;
[0019] 所述各IP域RP路由器返回基于组播路由协议的共享组查询应答报文, 所述共享组查询应答报文包括所述共享组查询应答报文的源地址、目的地址、组播路由协议版本、报文类型及所述各IP域RP路由器中的组播组的源地址、组地址、组播源是否存在标识及组播接收者是否存在标识;
[0020] 所述边界网关路由器接收所述共享组查询应答报文,获取所述各IP域RP路由器中的组播组的源地址、组地址、组播源是否存在标识及组播接收者是否存在标识。 [0021] 本发明还提供一种用于上述实现不同IP域之间组播的方法的边界网关路由器,包括:
[0022] 组播组信息获取单元,用于从各IP域汇聚点RP路由器获取组播组信息,所述组播组信息至少包括组播源信息及组播接收者信息;
[0023] 加入组单元,用于当根据所述组播组信息获知存在跨域组播组时,通过所述跨域组播组的组播源所在IP域的RP路由器,向所述组播源发起加入所述跨域组播组的加入组请求,加入所述跨域组播组,所述跨域组播组为组播源与组播接收者属于不同IP域的组播组;
[0024] 接收单元,用于接收所述组播源所在IP域的RP路由器转发的所述组播源发送的组播数据;
[0025] 映射单元,用于将所述组播数据中的组播源地址转换为所述边界网关路由器上的目的IP域接口地址或预设目的IP域地址池中的空闲地址,并保存转换的映射关系; [0026] 地址转换单元,用于将所述组播数据中的组地址转换为目的IP域的组地址; [0027] 数据发送单元,用于将所述组播源地址及组地址转换后的组播数据发送到所述目的IP域中直连的组播路由器;
[0028] 所述组播组信息获取单元包括:
[0029] 组播组查询子单元,用于向所述各IP域RP路由器发送基于组播路由协议的共享组查询报文,所述共享组查询报文包括所述共享组查询报文的源地址、目的地址、组播路由协议版本、报文类型及为所述各IP域RP路由器中的组播组提供的源地址空间、组地址空间、组播源是否存在标识及组播接收者是否存在标识空间;
[0030] 组播组获取子单元,用于接收所述各IP域RP路由器返回的基于组播路由协议的共享组查询应答报文,获取所述各IP域RP路由器中的组播组的源地址、组地址、组播源是否存在标识及组播接收者是否存在标识,所述共享组查询应答报文包括所述共享组查询应答报文的源地址、目的地址、组播路由协议版本、报文类型及所述各IP域RP路由器中的组播组的源地址、组地址、组播源是否存在标识及组播接收者是否存在标识。 [0031] 本发明提供的实现不同IP域之间组播的方法及边界网关路由器,通过边界网关路由器获取各IP域即IPv4域和IPv6域的组播组信息,获知跨域组播组信息,并在加入跨域组播组后,作为中介转发组播报文及组播数据,实现了IPv4域与IPv6域的组播资源共享。
[0032] 附图说明
[0033] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0034] 图1为本发明实施例提供的一种实现不同IP域之间组播的方法的流程图; [0035] 图2本发明实施例提供的实现不同IP域之间组播的方法中共享组查询报文及共享组查询响应报文的格式示意图;
[0036] 图3为本发明实施例提供的实现不同IP域之间组播的方法中共享组播组组地址转换示意图;
[0037] 图4为本发明实施例提供的另一种实现不同IP域之间组播的方法的流程图; [0038] 图5为本发明实施例提供的实现不同IP域之间组播的方法应用的一种网络示意图;
[0039] 图6为本发明实施例提供的实现不同IP域之间组播的方法应用的另一种网络示意图;
[0040] 图7为本发明实施例提供的实现不同IP域之间组播的方法应用的又一种网络示意图;
[0041] 图8为本发明实施例提供的实现不同IP域之间组播的方法应用的再一种网络示意图;
[0042] 图9为本发明实施例提供的用于上述实现不同IP域之间组播的方法的边界网关路由器的结构示意图。
[0043] 具体实施方式
[0044] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0045] 图1为本发明实施例提供的一种实现不同IP域之间组播的方法的流程图,如图1所示,该方法至少包括:
[0046] 步骤11、边界网关路由器从各IP域RP(Rendezvous Point,汇聚点)路由器获取组播组信息,所述组播组信息至少包括组播源信息及组播接收者信息。 [0047] 具体地,所述边界网关路由器可定期从各IP域RP路由器查询并获取组播组信息,查询周期小于组播路由协议(Protocol Independent Multicast,PIM)加入(join)报文的更新时间,以保证边界网关路由器实时获取最新的组播组信息。
[0048] 边界网关路由器从各IP域RP路由器获取组播组信息的方式有多种,优选地,可在现有PIM报文基础上扩展,增加两种类型报文,通过这两种报文获取组播组信息。一种是由边界网关路由器向IPv4/IPv6域的RP路由器发起的共享组查询报文,用来查询IPv4/IPv6组播组;另一种是由RP路由器回应的共享组查询响应报文,该共享组查询响应报文携带有本地的组播组信息。当某一IP域中有一主机向该域的RP路由器发起加入某一组播组请求时,上述组播组信息中还可包括组播接收者信息,即该主机信息。所请求加入的组播组可能与发起请求的主机在同一个IP域内,也可能不在同一个IP域内。当发起加入组播组请求的主机与所请求加入的组播组不在同一个IP域内时,该组播组将成为跨域组播组。 [0049] 其中,共享组查询报文格式如图2所示,其中“PIM Ver”表示使用的PIM版本信息,这里使用的版本为2的PIM;“Type”表示本报文的类型,当取值为15时,表示本报文的类型为共享组查询报文;“Group Address”表示IPv4/IPv6组播组的组地址,如果本报文为共享组查询报文,则这里为全0。“Source Address”表示IPv4/IPv6组播组的组播源地址,如果本报文为共享组查询报文,则这里为全0。“R”是是否存在组播接收者的标记,用来记录本地的RP路由器上是否存在接收者申请某一组播组的组播流量,如果本报 文为共享组查询报文,该值为0。“S”表示是否已有注册的组播源,即表示记录本地的RP路由器(汇聚点)路由器上是否存在已注册的组播组的组播源信息,如果本报文为共享组查询报文,该值为0。 [0050] 此外,共享组查询报文还需携带源IP(Source IP)信息及目的IP(Destination IP)。其中,源IP即边界网关路由器上发送共享组查询报文的本地IPv4/IPv6接口信息;目的IP即接收共享组查询报文的RP路由器地址。
[0051] 共享组查询报文可由边界网关路由器以单播形式发送给RP路由器,以请求目的RP路由器上的组播源或组播接收者信息。
[0052] 共享组查询响应报文如图2所示,格式与共享组查询报文类似,只是取值有所不同。其中,“Type”值为16,“Group Address”处为IPv4/IPv6组播组的组地址,“Source Address”处为IPv4/IPv6组播组的组播源地址,“R”处标记是否存在组播接收者,“S”处表示是否已有注册的组播源。类似地,共享组查询响应报文还需携带源IP及目的IP,只是源IP及目的IP的值与共享组查询报文刚好相反,即源IP为接收共享组查询报文的RP路由器地址,也是发送共享组查询响应报文的RP路由器地址;目的IP为边界网关路由器上发送共享组查询报文的本地IPv4/IPv6接口,也即边界网关路由器上接收共享组查询响应报文的本地IPv4/IPv6接口。
[0053] 共享组查询响应报文可由RP路由器以单播形式回应边界网关路由器的共享组查询报文,告知边界网关路由器本地RP路由器上的组播源或接收者信息。若本地RP路由器上没有任何共享组播源或组播接收者信息,返回的组地址和组播源地址为全0,且R表示组播接收者不存在,S表示组播源不存在。
[0054] 边界网关路由器通过上述两种报文获取组播组信息具体包括: [0055] 所述边界网关路由器向所述各IP域RP路由器发送基于组播路由协议的共享组查询报文;共享组查询报文详见上述说明。
[0056] 所述各域RP路由器返回基于组播路由协议的共享组查询应答报文;共 享组查询应答报文详见上述说明。
[0057] 所述边界网关路由器接收所述共享组查询应答报文,从中获取所述各域RP路由器中的组播组的源地址和组地址,甚至进一步获取组播组的组播接收者信息(详见上述说明)。
[0058] 步骤12、当根据所述组播组信息获知存在跨域组播组时,所述边界网关路由器通过所述跨域组播组的组播源所在IP域的RP路由器,向所述组播源发起加入所述跨域组播组的加入组请求,加入所述跨域组播组,所述跨域组播组为组播源与组播接收者属于不同IP域的组播组。
[0059] 其中,跨域组播组即一个组播组即包含IPv4域内的主机也包含IPv6域内的主机。如组播源在IPv4域内,而组播接收者在IPv6域内,或者一个组播组的接收者既包含IPv4域内的主机也包含IPv6域内的主机,或者组播源在IPv6域内,而接收者在IPv4域内。 [0060] 边界网关路由器根据组播组信息以及地址转换算法判断,在IPv6(或IPv4)域中存在接收者时,是否在对应的IPv4(或IPv6)域中也存在相应的组播源,若是则说明存在跨域组播组,该跨域组播组既在IPv6(或IPv4)域中有接收者,又在IPv4(或IPv6)域中存在所需的组播源,具体地,若IPv4域内有某一组播组的组播源信息,则将IPv4域内的该组播组信息中的组地址转换为IPv6域的组地址,然后判断在IPv6域是否存在转换得到的组地址并且是否存在接收者,若存在则说明目的主机在IPv6内,该组地址所属的组播组为跨域组播组;若IPv6域内有某一组播组的组播源信息,则将IPv6域内的组播组信息中的组地址转换为IPv4域的组地址,然后判断在IPv4域是否存在转换得到的组地址并且是否存在接收者,若存在则说明目的主机在IPv4内,该组地址所属的组播组为跨域组播组。若某一组播组为跨域组播组,则边界网关路由器向组播源的方向即组播源所在的IPv4(或IPv6)域中的RP路由器发出加入组请求,以使RP路由器建立的组播转发路径中边界网关路由器也是转发路径中的一个节点,RP路由器发送组播数据时,将发送给另一 网络目的组地址的组播数据发送给边界网关路由器,再由边界网关路由器进行地址转换,最终将组播数据发送给另一网络的组地址,从而使得与组播源不同IP域的接收者通过边界路由器接收组播数据。
[0061] 步骤13、所述组播源所在IP域的RP路由器转发所述组播源发送的组播数据。 [0062] 当跨域组播组的组播源位于IPv4域中时,由IPv4域中的RP路由器发送组播数据给边界网关路由器;当跨域组播组的组播源位于IPv6域中时,由IPv6域中的RP路由器发送组播数据给边界网关路由器。
[0063] 步骤14、所述边界网关路由器接收所述组播数据,将所述组播数据中的组播源地址转换为所述边界网关路由器上的目的IP域接口地址或预设目的IP域地址池中的空闲地址,并保存转换的映射关系。
[0064] 具体地,如组播数据来自IPv4域,即跨域组播组的组播源位于IPv4域,则将组播源的IPv4地址修改为该边界网关路由器的IPv6接口的地址(或是预设地址池中的IPv6地址),并维持对应的映射关系,以便IPv6域中的接收者根据该映射关系,通过边界网关路由器访问组播源。
[0065] 如组播数据来自IPv6域,即跨域组播组的组播源位于IPv6域,则将组播源的IPv6地址修改为该边界网关路由器的IPv4接口的地址(或是预设地址池中的地址),并维持对应的映射关系,以便IPv4域中的接收者根据该映射关系,通过边界网关路由器访问组播源。
[0066] 步骤15、所述边界网关路由器将所述组播数据中的组地址转换为目的IP域的组地址。
[0067] 具体地,当边界网络路由器接收来自IPv4域中的组播数据时,将所述组播数据中的IPv4域组地址嵌入到具有组播前缀标识的IPv6域组地址中。
[0068] 其中,组播前缀标识例如可以为FFxy:F20:/96,其中“x”“y”遵循RFC2365中定义的flags与Scope字段的赋值要求。Flags为全0表示永久分配的组播地址;取1表示非永久分配的组播地址。具体地,当IPv4域组地址 是一个由全球Internet编址中心(GINA)永久分配的组播地址时,组播前缀标识中x标记置为“0”,否则为“1”;组播前缀标识中y选择标准草案RFC2365中定义的IPv6域范围(scope)字段未分配的值进行转换。 [0069] Scope字段取值定义如表1所示:
[0070] 表1
[0071]取值 含义
0、3、F 保留(reserved)
1 接口本地范围(interface-local scope)
2 链路本地范围(link-local scope)
4 管理本地范围(admin-local scope)
5 站点本地范围(site-local scope)
6、7、9~D 未分配(unassigned)
8 机构本地范围(organization-local scope)
E 全球范围(global scope)
[0072] IPv4域组地址向IPv6域组地址转换时,如图3所示,将IPv4域组地址置于IPv6域组地址中的低32位,并根据IPv4域组地址类型,设置x与y的值。
[0073] 当边界网络路由器接收来自IPv6域中的组播数据时,从具有组播前缀标识的IPv6域组地址中提取后32位,作为IPv4域组地址。
[0074] IPv6域组地址向IPv4域组地址转换时,如图3所示,必须根据x和y确定IPv4域组地址类型,同样,IPv4域组地址向IPv6域组地址转换时,设置相同类型的组地址分配在IPv6域组地址的后32位中。
[0075] 需要说明的是上述步骤14、步骤15的前后顺序不限,二者可同时执行,也可先执行步骤15,再执行步骤14。
[0076] 步骤16、所述边界网关路由器将所述组播源地址及组地址转换后的组播 数据发送到所述目的IP域中直连的组播路由器。
[0077] 具体地,如果组播源在IPv4域内,其地址被映射为IPv6接口,则边界网关路由器通过该IPv6接口将组地址转换后的组播数据发送到IPv6域组地址,该IPv6域组地址由组播数据中的组地址转换得到。如果组播源在IPv6域内,其地址被映射为IPv4接口,则边界网关路由器通过该IPv4接口将组地址转换后的组播数据发送到IPv4域组地址,该IPv4域组地址由组播数据中的组地址转换得到。
[0078] 具体地,边界网关路由器首先将组播数据发到直连的下一跳组播路由器上,然后由直连组播路由器来完成其他的PIM组播路由器的动作,包括向RP发起组播源注册等。 [0079] 本发明实施例以边界网关路由器作为IPv4域与IPv6域的中介,在IPv4域与IPv6域的组播RP路由器之间转递各自域内的组播源信息和接收者请求,并建立一条组播转发通道,实现了IPv4(或IPv6)域内的最短路径树与IPv6(或IPv4)域内的共享树的拼接,达到了IPv4域与IPv6域组播的互通。进一步地,上述实施例约定了将IPv6域组播前缀FFxy:F20:/96,作为共享协议组的组播转换地址。边界网关设备在IPv4域和IPv6域的边缘,通过对各种组播域内RP(汇聚点)路由器的查询,获得IPv4域及IPv6域内注册跨域组播组的源信息和对跨域组播组的请求信息。并通过在边界网关设备上的IPv6/IPv4协议转换,将不同IP域的组播数据流发到各自域的RP设备上,实现了IPv4(或IPv6)的最短路径树与IPv6(或IPv4)的共享树的嫁接,完成了IPv4(或IPv6)网络的组播数据向IPv6(或IPv4)的网络中转发过程。本发明实施例提供的技术方案不但实现了IPv4/IPv6域的组播路由的互通,也减少了网关设备对处理大量复杂协议报文的性能损耗,完全适用于IPv4域向IPv6域过渡期间的各种组播部署应用。
[0080] 本发明实施例提供的实现不同IP域之间组播的方法,上述步骤11之前还可进一步包括:主机向所在域的RP路由器发起加入组播组请求,所述组 播组请求中包含有目的组地址;
[0081] 所述边界网关路由器从所述主机所在域的RP路由器获取目的组地址及所述主机的信息;
[0082] 所述边界网关路由器对所述目的组地址进行地址转换,得到另一IP域的组地址; [0083] 所述边界网关路由器在由所述目的组地址转换得到的组地址已在所述另一IP域内存在的情况下,向所述组播源所在IP域的RP路由器发送加入组请求,并代替所述主机加入所述组播组请求中的组播组。如果在此之前所述主机所在域已有主机发起加入组播组请求,则边界网关路由器不再向所述组播源所在IP域的RP路由器发起加入组请求。 [0084] 如,IPv4域中的主机通过RP路由器向所述边界网关路由器发起加入某一组播组的请求,而该组播组的组播源位于IPv6域中,则边界网关路由器首先查询组播组信息,详见上述步骤11的说明,在主机请求加入的组播组的组地址经过地址转换后,得到的IPv6组地址在IPv6域中已存在的情况下,边界网关路由器向IPv6域中的RP路由器发送加入组请求,并代替所述主机加入IPv6域中的组播组。或者,如IPv6域中的主机通过RP路由器向所述边界网关路由器发起加入某一组播组的请求,而该组播组的组播源位于IPv4域中,则边界网关路由器经过上述查询后替代主机加入IPv4域中的组播组。
[0085] 本发明实施例提供的实现不同IP域之间组播的方法还可进一步包括: [0086] 所述边界网关路由器再次查询所述各IP域RP路由器获取组播组信息; [0087] 当根据所述组播组信息获知在所述目的IP域组地址主机全部离开所述跨域组播组后,所述边界网关路由器删除保存的组播源地址与目的IP域接口地址的映射关系,或释放所述边界网关路由器上预设目的IP域地址池中被占用的空闲地址。若只有部分所述目的IP域组地址主机离开所述跨域组播组时,则仍然保留组播源地址与目的IP域接口地址的映射关系,或保留所述边界网关路由器上预设目的IP域地址池中被占用的空闲地址。 [0088] 图4为本发明实施例提供的另一种实现不同IP域之间组播的方法的流程图,如图4所示,该方法包括:
[0089] 步骤41、边界网关路由器每30秒(s)向邻接的组播域发出共享组查询报文。 [0090] 共享组查询报文的携带信息如下:
[0091] Source IP:本地IPv4/IPv6接口信息;
[0092] Destination IP:RP路由器地址;
[0093] PIM Ver:组播路由协议版本=2;
[0094] Type:报文类型=15,表示本报文为共享组查询报文;
[0095] Group Address1:组地址1(查询报文的话为全0);
[0096] Source Address1:源地址1(查询报文的话为全0);
[0097] S:是否存在组播源的标记;R:是否存在组播接收者的标记。 [0098] ……
[0099] Group Address n:组地址n(查询报文的话为全0);
[0100] Source Address3:源地址n(查询报文的话为全0);
[0101] S:是否存在组播源的标记;R:是否存在组播接收者的标记。 [0102] 步骤42、边界网关路由器接收IPv4域中的RP路由器及IPv6域中的RP路由器回应的共享组查询应答报文。
[0103] 共享组查询应答报文的携带信息如下:
[0104] Source IP:RP路由器地址;
[0105] Destination IP:边界网关路由器上的本地IPv4/IPv6接口信息; [0106] PIM Ver:组播路由协议版本=2;
[0107] Type:报文类型=16,表示本报文为共享组查询应答报文;
[0108] Group Address1:组地址1;
[0109] Source Address1:源地址1;
[0110] S:是否存在组播源的标记;R:是否存在组播接收者的标记。 [0111] ……
[0112] Group Address n:组地址n;
[0113] Source Address n:源地址n;
[0114] S:是否存在组播源的标记;R:是否存在组播接收者的标记。 [0115] 步骤43、边界网关路由器对共享组查询应答报文进行解析,查看“S”值,判断是否有组播源存在,若有组播源存在,则记录该组播源信息即“Source Address”。 [0116] 步骤44、边界网关路由器对共享组查询应答报文进行解析,查看“R”值,判断是否有某个组播接收者存在,若有组播接收者存在,则记录该组播接收者信息即“Group Address”。
[0117] 步骤45、边界网关路由器对记录的组播接收者信息即组地址(Group Address)进行计算,找到对应的IPv4/IPv6域的组播源。
[0118] 步骤46、边界网关路由器判断如果本地记录的某个组播组为跨域组播组,则向该跨域组播组的组播源的方向发起加入组请求。
[0119] 如图5所示,边界网关路由器同通过对两个处于不同IP域的RP路由器进行查询,获知组播组224.1.1.1(FF09:F20:E001:101)在IPv4域和IPv6域中都存在已注册的组播源和接收者,则组播组224.1.1.1(FF09:F20:E001:101)为跨域组播组。 [0120] 步骤47、组播源所在网络中的RP路由器根据步骤46中发生的加入组请求建立组播转发树,并向边界网关路由器转发组播源发送的组播数据。
[0121] 步骤48、边界网关路由器收到组播数据后,对其进行协议地址和协议报文头部转换,将其转换为对应的IPv4(或IPv6)组播报文。
[0122] 如图6所示,在边界网关路由器上使用地址翻译技术直接对IPv4和IPv6报头进行转换。并通过地址映射的方式,在静态配置的地址池中选取空闲的IPv4(或IPv6地址),实现对原组播源地址的转换。
[0123] 当边界网关路由器通过查询,得知在IPv4与IPv6域中均存在跨域组播 组224.1.1.1的组播源与接收者时。边界网关路由向源所在域的RP路由器发出加入跨域组播组224.1.1.1的请求报文。IPv4域中的RP路由器收到的加入组224.1.1.1请求报文后,向边界网关路由器转发组播数据。边界网关路由器接收到该IPv4域中的RP路由器路由转发的组播数据时,如表3所示,边界网关路由器利用协议转换机制将IPv4组播组的地址224.1.1.1嵌入到前缀为FF09:F20::/96的IPv6地址中,得到组播IPv6地址FF09:F20::E001:0101/128。并如表2所示将IPv4组播源地址202.1.17.2映射到所配置地址池中的空闲IPv6地址2001:890:1000::1901/128,使用该IPv6地址作为转换后IPv6域中的组播源发给直连的组播路由器,由后者完成向IPv6组播域的RP路由器的注册过程。 [0124] 表2IPv4到(to)IPv6的地址映射表
[0125]IPv4组播源 IPv6地址池
202.1.17.2 2001:890:1000::1901/128
20.1.1.2 2001:890:1000::1902/128
-- 2001:890:1000::1903/128
-- 2001:890:1000::1904/128
… …
[0126] 表3IPv4到(to)IPv6报文头转换表
[0127]
[0128] 另外,等到IPv6域中的共享组接收者离开所述共享组时,在边界网关设备上应该释放IPv4组播源与所选的IPv6地址的映射关系,释放IPv6的地址资源。 [0129] 当如图5所示的IPv6域中的某个接收者1,向本域内的RP路由器发起加入跨域组播组FF09:F20:E001:101/128的请求。同时在IPv4域的RP路由器上中也存在该跨域组播组对应的IPv4组224.1.1.1.如下图6所示,IPv4域的RP路由器将该请求发送到边界网关路由器。边界网关路由器通过对IPv4域中的RP路由器和IPv6域中的RP路由器进行查询,了解到组播组224.1.1.1(FF09:F20:E001:101)在IPv4域存在已注册的组播源,在IPv6域中存在已注册的组播接收者,则由边界网关路由向组播源所在域IPv4域中的RP路由器发起加入组播组请求,向组播源注册,并把IPv4域中的RP路由器转发出的IPv4组播报文转换为IPv6组播报文,发向IPv6域中的RP路由器,将接收者1加入跨域组播组224.1.1.1。 [0130] 当跨域组播组的组播源位于IPv4域中时,如图7所示,边界网关路由器接收到的组播数据来自IPv4域。边界网关路由器通过查询,得知在IPv4与IPv6域中分别存在跨域组播组224.1.1.1的组播源与接收者时,边界网关路由器向组播源所在域的RP路由器发出加入组224.1.1.1的请求报文。IPv4域中的RP路由器收到224.1.1.1的加入组请求后,向边界网关路由器发送组播数据,由边界网关路由器将组播数据转发给IPv6域中的接收者。当边界网关路由器接收到该IPv4组播的流量时,如表5所示,通过协议转换机制将IPv4组播组的地址224.1.1.1翻译为IPv6的组地址FF09:F20::E001:0101/128,并如表4所示将IPv4组播源地址202.1.17.2映射到所配置地址池中的空闲IPv6地址2001:890:1000::1901/128,使用该空闲IPv6地址作为转换后IPv6域的组播源发给直连的组播路由器。由上述直连的组播路由器通过边界网关路由器完成向IPv4组播域的RP路由器进行注册的过程。
[0131] 表4IPv4到(to)IPv6地址映射表
[0132]IPv4地址池 IPv6组播源
202.1.17.2 2001:890:1000::1901/128
-- 2001:890:1000::1902/128
-- 2001:890:1000::1903/128
-- 2001:890:1000::1904/128
… …
[0133] 表5IPv4到(to)IPv6报文头转换表
[0134]
[0135] 当如图8所示的IPv4域中的某个接收者2,向本域内的RP路由器发起加入组播组224.1.1.1的请求,RP路由器将该请求转发给边界网关路由器,并且在IPv6域中的RP路由器上中也存在该组播组对应的IPv6跨域组播组FF09:F20::E001:101/128。边界网关路由向IPv6域中的RP路由器发出加入组播组请求,并把由IPv6域中的RP路由器转发出的IPv6组播报文,转换为IPv4组播报文发向IPv4域中的RP路由器,这样接收者2就加入跨域组播组FF09:F20:E001:101。
[0136] 等到IPv4域中的跨域组播组接收者离开所述跨域组播组时,在边界网关设备上应该释放IPv6组播源与所选的IPv4地址的映射关系,释放IPv4的地址资源。 [0137] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0138] 图9为本发明实施例提供的用于上述实现不同IP域之间组播的方法的边界网关路由器的结构示意图。如图9所示,边界网关路由器包括组播组信息获取单元91、加入组单元92、接收单元93、映射单元94、地址转换单元95及数据发送单元96。 [0139] 组播组信息获取单元91用于从各IP域RP路由器获取组播组信息,所述组播组信息至少包括组播源信息及组播接收者信息;所述组播组信息获取单元91可具体用于定期从各域RP路由器查询并获取组播组信息,查询周期小于组播路由协议加入报文的更新时间。具体操作详见上述步骤11的说明。
[0140] 加入组单元92用于当根据所述组播组信息获知存在跨域组播组时,通过所述跨域组播组的组播源所在IP域的RP路由器,向所述组播源发起加入所述跨域组播组的加入组请求,加入所述跨域组播组,所述跨域组播组为组播源与组播接收者属于不同IP域的组播组。具体操作详见上述步骤12的说明。
[0141] 接收单元93用于接收所述组播源所在IP域的RP路由器转发的所述组播源发送的组播数据。具体操作详见上述步骤13的说明。
[0142] 映射单元94用于将所述组播数据中的组播源地址转换为所述边界网关路由器上的目的IP域接口地址或预设目的IP域地址池中的空闲地址,并保存转换的映射关系。具体操作详见上述步骤14的说明。
[0143] 地址转换单元95用于将所述组播数据中的组地址转换为目的IP域的组地址。具体操作详见上述步骤15的说明。
[0144] 数据发送单元96用于将所述组播源地址及组地址转换后的组播数据发送到所述目的IP域中直连的组播路由器。具体操作详见上述步骤16的说明。
[0145] 所述组播组信息获取单元91可包括:组播组查询子单元及组播组获取子单元。 [0146] 组播组查询子单元用于向所述各IP域RP路由器发送基于组播路由协议的共享组查询报文,所述共享组查询报文包括所述共享组查询报文的源地址、目的地址、组播路由协议版本、报文类型及为所述各IP域RP路由器中的组播组提供的源地址空间、组地址空间、组播源是否存在标识及组播接收者是否存在标识空间;具体操作详见上述步骤11的说明。 [0147] 组播组获取子单元用于接收所述各IP域RP路由器返回的基于组播路由协议的共享组查询应答报文,获取所述各IP域RP路由器中的组播组的源地址、组地址、组播源是否存在标识及组播接收者是否存在标识,所述共享组查询应答报文包括所述共享组查询应答报文的源地址、目的地址、组播路由协议版本、报文类型及所述各IP域RP路由器中的组播组的源地址、组地址、组播源是否存在标识及组播接收者是否存在标识。具体操作详见上述步骤11的说明。
[0148] 所述地址转换单元95可包括前向转换子单元,用于将所述组播数据中的IPv4域组地址嵌入到具有组播前缀标识的IPv6域组地址中,以实现将组播报文或数据从IPv4域发送到IPv6域。
[0149] 或者可包括反向转换子单元,用于从具有组播前缀标识的IPv6域组地址中提取后32位,作为IPv4域组地址,以实现将组播报文或数据从IPv6域发送到IPv4域。 [0150] 或者可包括上述前向转换子单元及反向转换子单元,以实现将组播报文或数据在IPv6域与IPv4域之间的交互。
[0151] 所述组播前缀标识为FFxy:F20:/96,所述x用于标识所述组播前缀标识的IPv6域组地址中,嵌入的IPv4域组地址是否为永久分配的组播地址,所述y用于标识IPv6域可取的地址范围;此时,所述反向转换子单元可具体用于从具有组播前缀标识的IPv6域组地址中提取后32位,根据所述x、y的值 确定的类型,将所述后32位转换为IPv4域组地址。 [0152] 本发明实施例提供的用于上述实现不同IP域之间组播的方法的边界网关路由器中,所述组播组信息获取单元91还可用于再次查询所述各IP域RP路由器获取组播组信息,此时,边界网关路由器还可包括:资源释放单元97,用于当根据所述组播组信息获知在所述目的IP域组地址主机离开所述跨域组播组后,删除保存的组播源地址与目的IP域接口地址的映射关系,或释放所述边界网关路由器上预设目的IP域地址池中被占用的空闲地址。
[0153] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。