组播报文转发的方法及设备的制作方法

文档序号:7986035阅读:407来源:国知局
组播报文转发的方法及设备的制作方法
【专利摘要】本发明公开了一种组播报文转发的方法、ISATAP设备、ISATAP主机和IPv4设备。该方法包括:接收ISATAP主机发送的封装在IPv4单播报文中的加入IPv6组播组的MLD组播组加入报文;根据该MLD组播组加入报文维护IPv6组播转发表;接收IPv6网络设备发送的对应该IPv6组播组的IPv6组播数据报文;根据该IPv6组播转发表,确定该IPv6组播组的出接口为ISATAP隧道接口;根据IPv6与IPv4的组播组映射关系将该IPv6组播数据报文封装在IPv4组播数据报文中发送给IPv4设备,以便于该IPv4设备将该IPv4组播数据报文转发给该ISATAP主机。本发明实施例可以实现IPv6组播数据报文在IPv4网络中组播转发,从而能够节省IPv4网络带宽。
【专利说明】组播报文转发的方法及设备
【技术领域】
[0001]本发明涉及通信领域,并且更具体地,涉及组播报文转发的方法、自动隧道地址协议(Intra-site Automatic Tunnel Addressing Protocol,简称为“ISATAP”)设备、ISATAP主机和互联网协议第四版(Internet Protocol Version4,简称为“IPv4”)设备。
【背景技术】
[0002]IPv4 上的互联网协议第六版(Internet Protocol Version6,简称为 “IPv6”)(IPv6over IPv4 )技术为:IPv6报文被封装在IPv4报文中,实现IPv6报文在IPv4网络中的透明传输。在IPv4网络向IPv6网络过渡的初期,IPv4网络已被大量部署,而IPv6网络只是散布在世界各地的一些孤岛。采用专用的线路将这些孤岛互连起来,显然是不经济的,通常的做法是采用隧道技术。利用隧道技术可在IPv4网络上创建隧道,从而实现IPv6孤岛的互连。这类似于在IP网络上利用隧道技术部署虚拟专用网络(Virtual Private Network,简称为“VPN”)的情况。ISATAP隧道用于IPv4网络中的IPv4/IPv6主机访问IPv6网络的情况,可以在IPv4/IPv6主机与ISATAP设备之间建立ISATAP隧道。为了描述方便,IPv4/IPv6主机在后续内容中统一称为ISATAP主机。
[0003]设备上的ISATAP隧道一般服务于多台ISATAP主机,当多台ISATAP主机需要点播IPv6网络中的IPv6组播组节目时,ISATAP设备需要使能组播监听者发现协议(MulticastListener Discovery,简称为“MLD”)功能,ISATAP主机将MLD组播组成员加入报文封装在IPv4单播报文中发送给ISATAP设备,由于MLD组播组加入信息中每个IPv6组播组只保存最新发送MLD组播组成员加入报文的ISATAP主机链路本地地址信息,当ISATAP设备接收到IPv6组播数据报文后,ISATAP设备只能把IPv6组播数据报文复制后封装在IPv4单播报文中,并由IPv4网络中的设备转发给所有的ISATAP主机,这样导致部分没有点播此IPv6组播组的ISATAP主机也能接收到IPv6组播数据,同时IPv6组播数据先复制再被封装在IPv4单播报文中进行传输,造成IPv4网络中的带宽浪费。

【发明内容】

[0004]本发明实施例提供了一种组播报文转发的方法、ISATAP设备、ISATAP主机和IPv4设备,能够节省IPv4网络带宽。
[0005]第一方面,提供了一种组播报文转发的方法,包括:接收自动隧道地址协议ISATAP主机发送的封装在互联网协议第四版IPv4单播报文中的加入互联网协议第六版IPv6组播组的组播监听者发现协议MLD组播组加入报文;根据该MLD组播组加入报文维护IPv6组播转发表;接收IPv6网络设备发送的对应该IPv6组播组的IPv6组播数据报文;根据该IPv6组播转发表,确定该IPv6组播组的出接口为ISATAP隧道接口 ;获取IPv6与IPv4的组播组映射关系,根据该组播组映射关系获取该IPv6组播组对应的IPv4组播组,将该IPv6组播数据报文封装在对应该IPv4组播组的IPv4组播数据报文中,将该IPv4组播数据报文发送给IPv4设备,以便于该IPv4设备将该IPv4组播数据报文转发给该ISATAP主机。[0006]在第一种可能的实现方式中,在获取IPv6与IPv4的组播组映射关系之前,该方法还包括:建立该组播组映射关系。
[0007]在第二种可能的实现方式中,结合第一方面或第一方面的第一种可能的实现方式,该方法还包括:向该ISATAP主机发送封装在IPv4单播报文中的MLD通用组查询报文或MLD特定组查询报文;接收自动隧道地址协议ISATAP主机发送的封装在互联网协议第四版IPv4单播报文中的加入互联网协议第六版IPv6组播组的组播监听者发现协议MLD组播组加入报文,包括:接收该ISATAP主机在响应该MLD通用组查询报文或该MLD特定组查询报文时发送的该MLD组播组加入报文。
[0008]在第三种可能的实现方式中,结合第一方面或第一方面的第一种或第二种可能的实现方式,该方法还包括:接收该ISATAP主机发送的封装在IPv4单播报文中的离开该IPv6组播组的MLD组播组离开报文;根据该MLD组播组离开报文维护该IPv6组播转发表。
[0009]第二方面,提供了一种组播报文转发的方法,包括:向自动隧道地址协议ISATAP设备发送封装在互联网协议第四版IPv4单播报文中的加入互联网协议第六版IPv6组播组的组播监听者发现协议MLD组播组加入报文,以便于该ISATAP设备根据该MLD组播组加入报文维护IPv6组播转发表;获取IPv6与IPv4的组播组映射关系,根据该组播组映射关系,生成加入IPv4组播组的因特网组管理协议IGMP组播组加入报文;向IPv4设备发送该IGMP组播组加入报文,以便于该IPv4设备根据该IGMP组播组加入报文维护IPv4组播转发表;接收该IPv4设备基于该IPv4组播转发表转发的该ISATAP设备发送的IPv4组播数据报文,其中,该IPv4组播数据报文为该ISATAP设备在根据该IPv6组播转发表确定该IPv6组播组的出接口为ISATAP隧道接口时,根据该组播组映射关系将对应该IPv6组播组的IPv6组播数据报文封装在对应该IPv4组播组的组播报文中而成的;对该IPv4组播数据报文进行解封装,获取该IPv6组播数据报文。
[0010]在第一种可能的实现方式中,在获取IPv6与IPv4的组播组映射关系之前,该方法还包括:建立该组播组映射关系。
[0011]在第二种可能的实现方式中,结合第二方面或第二方面的第一种可能的实现方式,该方法还包括:接收该ISATAP设备发送的封装在IPv4单播报文中的MLD通用组查询报文或MLD特定组查询报文;根据加入的该IPv6组播组,确定响应该MLD通用组查询报文或该MLD特定组查询报文;在响应该MLD通用组查询报文或该MLD特定组查询报文时,向该ISATAP设备发送该MLD组播组加入报文,以便于该ISATAP设备根据该MLD组播组加入报文维护该IPv6组播转发表。
[0012]在第三种可能的实现方式中,结合第二方面或第二方面的第一种或第二种可能的实现方式,该方法还包括:接收该IPv4设备发送的IGMP通用组查询报文或IGMP特定组查询报文;根据加入的该IPv6组播组和该组播组映射关系,确定响应该IGMP通用组查询报文或该IGMP特定组查询报文;在响应该IGMP通用组查询报文或该IGMP特定组查询报文时,向该IPv4设备发送该IGMP组播组加入报文,以便于该IPv4设备根据该IGMP组播组加入报文维护该IPv4组播转发表。
[0013]在第四种可能的实现方式中,结合第二方面或第二方面的第一种可能的实现方式,该方法还包括:接收该IPv4设备发送的IGMP通用组查询报文或IGMP特定组查询报文;根据加入的该IPv6组播组和该组播组映射关系,确定将该IGMP通用组查询报文或该IGMP特定组查询报文转换为MLD通用组查询报文或MLD特定组查询报文;根据加入的该IPv6组播组,确定响应该MLD通用组查询报文或该MLD特定组查询报文;在响应该MLD通用组查询报文或该MLD特定组查询报文时,向该IPv4设备发送该IGMP组播组加入报文,以便于该IPv4设备根据该IGMP组播组加入报文维护该IPv4组播转发表。
[0014]在第五种可能的实现方式中,结合第二方面或第二方面的第一至四种可能的实现方式中的任一种可能的实现方式,该方法还包括:向该ISATAP设备发送封装在IPv4单播报文中的离开该IPv6组播组的MLD组播组离开报文,以便于该ISATAP设备根据该MLD组播组离开报文维护该IPv6组播转发表。
[0015]在第六种可能的实现方式中,结合第二方面或第二方面的第一至五种可能的实现方式中的任一种可能的实现方式,该方法还包括:根据该组播组映射关系,生成离开该IPv4组播组的IGMP组播组离开报文;向该IPv4设备发送该IGMP组播组离开报文,以便于该IPv4设备根据该IGMP组播组离开报文维护该IPv4组播转发表。
[0016]第三方面,提供了一种组播报文转发的方法,包括:接收自动隧道地址协议ISATAP主机发送的加入互联网协议第四版IPv4组播组的因特网组管理协议IGMP组播组加入报文,该IGMP组播组加入报文为该ISATAP主机根据互联网协议第六版IPv6与IPv4的组播组映射关系和加入的IPv6组播组生成的;根据该IGMP组播组加入报文维护IPv4组播转发表;接收ISATAP设备发送的IPv4组播数据报文,该IPv4组播数据报文为该ISATAP设备根据该组播组映射关系将对应该IPv6组播组的IPv6组播数据报文封装在对应该IPv4组播组的组播报文中而成的;基于该IPv4组播转发表,将该IPv4组播数据报文转发给该ISATAP 主机。
[0017]在第一种可能的实现方式中,该方法还包括:向该ISATAP主机发送IGMP通用组查询报文或IGMP特定组查询报文;接收自动隧道地址协议ISATAP主机发送的加入互联网协议第四版IPv4组播组的因特网组管理协议IGMP组播组加入报文,包括:接收该ISATAP主机在响应该IGMP通用组查询报文或该IGMP特定组查询报文时发送的该IGMP组播组加入报文。
[0018]在第二种可能的实现方式中,结合第三方面或第三方面的第一种可能的实现方式,该方法还包括:接收该ISATAP主机发送的离开该IPv4组播组的IGMP组播组离开报文;根据该IGMP组播组离开报文维护该IPv4组播转发表。
[0019]第四方面,提供了一种自动隧道地址协议ISATAP设备,包括:接收模块,用于接收ISATAP主机发送的封装在互联网协议第四版IPv4单播报文中的加入互联网协议第六版IPv6组播组的组播监听者发现协议MLD组播组加入报文;处理模块,用于根据该MLD组播组加入报文维护IPv6组播转发表;该接收模块还用于接收IPv6网络设备发送的对应该IPv6组播组的IPv6组播数据报文;该处理模块还用于根据该IPv6组播转发表,确定该IPv6组播组的出接口为ISATAP隧道接口,获取IPv6与IPv4的组播组映射关系,根据该组播组映射关系获取该IPv6组播组对应的IPv4组播组,将该IPv6组播数据报文封装在对应该IPv4组播组的IPv4组播数据报文中;发送模块,用于将该IPv4组播数据报文发送给IPv4设备,以便于该IPv4设备将该IPv4组播数据报文转发给该ISATAP主机。
[0020]在第一种可能的实现方式中,还包括:建立模块,用于在该处理模块获取IPv6与IPv4的组播组映射关系之前,建立该组播组映射关系。[0021]在第二种可能的实现方式中,结合第四方面或第四方面的第一种可能的实现方式,该发送模块还用于向该ISATAP主机发送封装在IPv4单播报文中的MLD通用组查询报文或MLD特定组查询报文;该接收模块进一步用于接收该ISATAP主机在响应该MLD通用组查询报文或该MLD特定组查询报文时发送的该MLD组播组加入报文。
[0022]在第三种可能的实现方式中,结合第四方面或第四方面的第一种或第二种可能的实现方式,该接收模块还用于接收该ISATAP主机发送的封装在IPv4单播报文中的离开该IPv6组播组的MLD组播组离开报文;该处理模块还用于根据该MLD组播组离开报文维护该IPv6组播转发表。
[0023]第五方面,提供了一种自动隧道地址协议ISATAP主机,包括:发送模块,用于向ISATAP设备发送封装在互联网协议第四版IPv4单播报文中的加入互联网协议第六版IPv6组播组的组播监听者发现协议MLD组播组加入报文,以便于该ISATAP设备根据该MLD组播组加入报文维护IPv6组播转发表;处理模块,用于获取IPv6与IPv4的组播组映射关系,根据该组播组映射关系,生成加入IPv4组播组的因特网组管理协议IGMP组播组加入报文;该发送模块还用于向IPv4设备发送该IGMP组播组加入报文,以便于该IPv4设备根据该IGMP组播组加入报文维护IPv4组播转发表;接收模块,用于接收该IPv4设备基于该IPv4组播转发表转发的该ISATAP设备发送的IPv4组播数据报文,其中,该IPv4组播数据报文为该ISATAP设备在根据该IPv6组播转发表确定该IPv6组播组的出接口为ISATAP隧道接口时,根据该组播组映射关系将对应该IPv6组播组的IPv6组播数据报文封装在对应该IPv4组播组的组播报文中而成的;该处理模块还用于对该IPv4组播数据报文进行解封装,获取该IPv6组播数据报文。
[0024]在第一种可能的实现方式中,还包括:建立模块,用于在该处理模块获取IPv6与IPv4的组播组映射关系之前,建立该组播组映射关系。
[0025]在第二种可能的实现方式中,结合第五方面或第五方面的第一种可能的实现方式,该接收模块还用于接收该ISATAP设备发送的封装在IPv4单播报文中的MLD通用组查询报文或MLD特定组查询报文;该处理模块还用于根据加入的该IPv6组播组,确定响应该MLD通用组查询报文或该MLD特定组查询报文;该发送模块还用于在响应该MLD通用组查询报文或该MLD特定组查询报文时,向该ISATAP设备发送该MLD组播组加入报文,以便于该ISATAP设备根据该MLD组播组加入报文维护该IPv6组播转发表。
[0026]在第三种可能的实现方式中,结合第五方面或第五方面的第一种或第二种可能的实现方式,该接收模块还用于接收该IPv4设备发送的IGMP通用组查询报文或IGMP特定组查询报文;该处理模块还用于根据加入的该IPv6组播组和该组播组映射关系,确定响应该IGMP通用组查询报文或该IGMP特定组查询报文;该发送模块还用于在响应该IGMP通用组查询报文或该IGMP特定组查询报文时,向该IPv4设备发送该IGMP组播组加入报文,以便于该IPv4设备根据该IGMP组播组加入报文维护该IPv4组播转发表。
[0027]在第四种可能的实现方式中,结合第五方面或第五方面的第一种可能的实现方式,该接收模块还用于接收该IPv4设备发送的IGMP通用组查询报文或IGMP特定组查询报文;该处理模块还用于根据加入的该IPv6组播组和该组播组映射关系,确定将该IGMP通用组查询报文或该IGMP特定组查询报文转换为MLD通用组查询报文或MLD特定组查询报文,根据加入的该IPv6组播组,确定响应该MLD通用组查询报文或该MLD特定组查询报文;该发送模块还用于在响应该MLD通用组查询报文或该MLD特定组查询报文时,向该IPv4设备发送该IGMP组播组加入报文,以便于该IPv4设备根据该IGMP组播组加入报文维护该IPv4
组播转发表。
[0028]在第五种可能的实现方式中,结合第五方面或第五方面的第一至四种可能的实现方式中的任一种可能的实现方式,该发送模块还用于向该ISATAP设备发送封装在IPv4单播报文中的离开该IPv6组播组的MLD组播组离开报文,以便于该ISATAP设备根据该MLD组播组离开报文维护该IPv6组播转发表。
[0029]在第六种可能的实现方式中,结合第五方面或第五方面的第一至五种可能的实现方式中的任一种可能的实现方式,该处理模块还用于根据该组播组映射关系,生成离开该IPv4组播组的IGMP组播组离开报文;该发送模块还用于向该IPv4设备发送该IGMP组播组离开报文,以便于该IPv4设备根据该IGMP组播组离开报文维护该IPv4组播转发表。
[0030]第六方面,提供了一种互联网协议第四版IPv4设备,包括:接收模块,用于接收自动隧道地址协议ISATAP主机发送的加入IPv4组播组的因特网组管理协议IGMP组播组加入报文,该IGMP组播组加入报文为该ISATAP主机根据互联网协议第六版IPv6与IPv4的组播组映射关系和加入的IPv6组播组生成的;处理模块,用于根据该IGMP组播组加入报文维护IPv4组播转发表;该接收模块还用于接收ISATAP设备发送的IPv4组播数据报文,该IPv4组播数据报文为该ISATAP设备根据该组播组映射关系将对应该IPv6组播组的IPv6组播数据报文封装在对应该IPv4组播组的组播报文中而成的;发送模块,用于基于该IPv4组播转发表,将该IPv4组播数据报文转发给该ISATAP主机。
[0031]在第一种可能的实现方式中,该发送模块还用于向该ISATAP主机发送IGMP通用组查询报文或IGMP特定组查询报文;该接收模块进一步用于接收该ISATAP主机在响应该IGMP通用组查询报文或该IGMP特定组查询报文时发送的该IGMP组播组加入报文。
[0032]在第二种可能的实现方式中,结合第六方面或第六方面的第一种可能的实现方式,该接收模块还用于接收该ISATAP主机发送的离开该IPv4组播组的IGMP组播组离开报文;该处理模块还用于根据该IGMP组播组离开报文维护该IPv4组播转发表。
[0033]基于上述技术方案,本发明实施例根据IPv6与IPv4的组播组映射关系,将IPv6组播数据报文封装在对应IPv4组播组的IPv4组播数据报文中,再将IPv4组播数据报文发送到IPv4网络中,可以实现IPv6组播数据报文在IPv4网络中组播转发,不需要将IPv6组播数据复制成多份在IPv4网络中传输,从而能够节省IPv4网络带宽。
【专利附图】

【附图说明】
[0034]为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035]图1是根据本发明实施例的组播报文转发的方法的示意性流程图。
[0036]图2是根据本发明实施例的组播报文转发的方法的另一示意性流程图。
[0037]图3是根据本发明实施例的组播报文转发的方法的又一示意性流程图。
[0038]图4是根据本发明另一实施例的组播报文转发的方法的示意性流程图。[0039]图5是根据本发明实施例的发送MLD组播组加入报文和IGMP组播组加入报文的流程图。
[0040]图6是根据本发明另一实施例的组播报文转发的方法的另一示意性流程图。
[0041 ]图7是根据本发明实施例的接收MLD协议报文和IGMP协议报文的流程图。
[0042]图8是根据本发明又一实施例的组播报文转发的方法的示意性流程图。
[0043]图9是根据本发明又一实施例的组播报文转发的方法的另一示意性流程图。
[0044]图10是根据本发明实施例的IPv6组播报文在IPv4网络中的转发示意图。
[0045]图11是根据本发明实施例的组播报文转发的方法的示意图。
[0046]图12是根据本发明实施例的ISATAP设备的示意性框图。
[0047]图13是根据本发明实施例的ISATAP设备的另一示意性框图。
[0048]图14是根据本发明实施例的ISATAP主机的示意性框图。
[0049]图15是根据本发明实施例的ISATAP主机的另一示意性框图。
[0050]图16是根据本发明实施例的IPv4设备的示意性框图。
[0051]图17是根据本 发明实施例的ISATAP设备的结构示意图。
[0052]图18是根据本发明实施例的ISATAP主机的结构示意图。
[0053]图19是根据本发明实施例的IPv4设备的结构示意图。
【具体实施方式】
[0054]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
[0055]在本发明实施例中,ISATAP设备也称为ISATAP隧道设备,它可以将IPv6报文封装在IPv4报文中发给ISATAP主机;ISATAP主机也称为IPv4/IPv6主机,它可以将IPv6报文封装在IPv4报文中发给ISATAP设备。ISATAP主机与ISATAP设备之间建立ISATAP隧道。ISATAP隧道用于IPv4网络中的IPv4/IPv6主机访问IPv6网络的情况。建立ISATAP隧道时,需要使用 ISATAP 格式地址,其格式如下:Prefix(64bit):: 5EFE:1Pv4_Address。ISATAP主机获得IPv6地址的过程如下:
[0056]1、ISATAP主机向ISATAP设备发送请求消息:IPv4/IPv6主机使用ISATAP格式的链路本地地址向ISATAP设备发送交换机请求消息,该ISATAP设备请求消息被封装在IPv4报文中。
[0057]2、ISATAP设备响应请求:ISATAP设备使用通告消息响应ISATAP主机的请求。通告消息中包含ISATAP前缀(ISATAP前缀在ISATAP设备上通过人工配置)。
[0058]3、ISATAP主机得到自己的IPv6地址。ISATAP主机将ISATAP前缀与5EFE:1Pv4-Address组合得到自己的IPv6地址,并用此IPv6地址访问IPv6主机。
[0059]ISATAP主机通过单播方式访问IPv6网络的工作原理如下:
[0060]1、IPv4网络中的ISATAP主机按照上面的过程获得自己的IPv6地址。
[0061]2、ISATAP主机发送访问IPv6网络的IPv6主机报文,该报文封装在IPv4报文中。
[0062]3、ISATAP设备接收该IPv4报文后执行解封装操作,将其中的IPv6报文发送到IPv6网络中的IPv6主机。
[0063]4、IPv6网络中的IPv6主机发送IPv6报文给ISATAP主机时,IPv6报文由IPv6网络中的设备发送给ISATAP设备,ISATAP设备根据报文中的目的IPv6地址简析出目的IPv4地址,ISATAP设备将IPv6报文封装在IPv4报文中,报文由IPv4网络中的设备转发给ISATAP主机,ISATAP主机执行解封装,把IPv6报文上送给ISATAP主机的IPv6协议层处理。
[0064]图1示出了根据本发明实施例的组播报文转发的方法100的示意性流程图。该方法100由ISATAP设备执行,如图1所示,该方法100包括:
[0065]SI 10,接收ISATAP主机发送的封装在IPv4单播报文中的加入IPv6组播组的MLD组播组加入报文;
[0066]S120,根据该MLD组播组加入报文维护IPv6组播转发表;
[0067]S130,接收IPv6网络设备发送的对应该IPv6组播组的IPv6组播数据报文;
[0068]S140,根据该IPv6组播转发表,确定该IPv6组播组的出接口为ISATAP隧道接口 ;
[0069]S150,获取IPv6与IPv4的组播组映射关系,根据该组播组映射关系获取该IPv6组播组对应的IPv4组播组,将该IPv6组播数据报文封装在对应该IPv4组播组的IPv4组播数据报文中,将该IPv4组播数据报文发送给IPv4设备,以便于该IPv4设备将该IPv4组播数据报文转发给该ISATAP主机。
[0070]ISATAP主机在请求IPv6组播数据报文时,会向ISATAP设备发送IPv6组播组加入报文,IPv6组播组加入报文封装在IPv4单播报文中,由IPv4网络中的设备转发给ISATAP设备;同时ISATAP主机根据IPv6与IPv4的组播组映射关系,构造因特网组管理协议(Internet Group Management Protocol,简称为“IGMP”)格式的 IPv4 组播组加入报文,发送给ISATAP主机所在广播网络的IPv4设备。ISATAP设备接收到ISATAP主机发送的封装在IPv4单播报文中的加入IPv6组播组的MLD组播组加入报文后,解封装该报文,根据该MLD组播组加入报文生成IPv6组播组成员信息表,并维护IPv6组播转发表;当ISATAP设备接收到IPv6网络设备发送过来的对应该IPv6组播组的IPv6组播数据报文时,ISATAP设备根据该IPv6组播转发表,确定该IPv6组播组的出接口,在确定该IPv6组播组的出接口为ISATAP隧道接口时,ISATAP设备获取IPv6与IPv4的组播组映射关系,根据该组播组映射关系获取该IPv6组播组对应的IPv4组播组,将该IPv6组播数据报文封装在对应该IPv4组播组的IPv4组播数据报文中,将该IPv4组播数据报文发送给IPv4设备,并由该IPv4设备将该IPv4组播数据报文转发给该ISATAP主机。由于ISATAP设备将IPv6组播数据报文封装在IPv4组播数据报文中发送到IPv4网络,因而不需要将IPv6组播数据复制成多份在IPv4网络中传输。
[0071]因此,本发明实施例的组播报文转发的方法,根据IPv6与IPv4的组播组映射关系,将IPv6组播数据报文封装在对应IPv4组播组的IPv4组播数据报文中,再将IPv4组播数据报文发送到IPv4网络中,可以实现IPv6组播数据报文在IPv4网络中组播转发,不需要将IPv6组播数据复制成多份在IPv4网络中传输,从而能够节省IPv4网络带宽。
[0072]在SllO中,ISATAP设备接收ISATAP主机发送的封装在IPv4单播报文中的加入IPv6组播组的MLD组播组加入报文。
[0073]ISATAP主机在请求加入IPv6组播组时,将MLD组播组加入报文封装在IPv4单播报文中发给ISATAP设备。IPv4单播报文的目的IPv4地址为ISATAP主机上配置的到ISATAP设备的目的地址。该单播报文由IPv4网络中的设备转发给该ISATAP设备。这样,ISATAP设备接收IPv4网络中的设备转发的ISATAP主机发送的封装在IPv4单播报文中的MLD组播组加入报文。
[0074]在S120中,ISATAP设备根据该MLD组播组加入报文维护IPv6组播转发表。
[0075]ISATAP设备接收到封装在IPv4单播报文中的MLD组播组加入报文后,对其解封装,得到该MLD组播组加入报文,并把该MLD组播组加入报文上送到MLD协议层处理,生成IPv6组播组成员信息表,向上游发送IPv6协议无关组播(Protocol IndependentMulticast,简称为“PM”)消息,并维护IPv6组播转发表(也称为组播路由表)。例如,在IPv6组播转发表中添加该ISATAP主机的表项,该ISATAP主机对应的出接口为ISATAP隧道接口。
[0076]在S130中,ISATAP设备接收IPv6网络设备发送的对应该IPv6组播组的IPv6组播数据报文。
[0077]当IPv6网络中有该IPv6组播组的IPv6组播数据报文时,IPv6网络设备将其转发至该ISATAP设备。
[0078]在S140中,ISATAP设备根据该IPv6组播转发表,确定该IPv6组播组的出接口为ISATAP隧道接口。
[0079]ISATAP设备在接收到IPv6网络设备发送的对应该IPv6组播组的IPv6组播数据报文后,根据IPv6组播转发表,确定该IPv6组播组的出接口。由于该IPv6组播组是ISATAP主机加入的组播组,因此该IPv6组播组的出接口中存在ISATAP隧道接口。
[0080]在S150中,ISATAP设备在确定该IPv6组播组的出接口为ISATAP隧道接口时,获取IPv6与IPv4的组播组映射关系,根据该组播组映射关系获取该IPv6组播组对应的IPv4组播组,将该IPv6组播数据报文封装在对应该IPv4组播组的IPv4组播数据报文中,将该IPv4组播数据报文发送给IPv4设备,以便于该IPv4设备将该IPv4组播数据报文转发给该ISATAP 主机。
[0081]在确定该IPv6组播组的出接口为ISATAP隧道接口时,即需要将IPv6组播数据通过ISATAP隧道发向IPv4网络时,ISATAP设备获取IPv6与IPv4的组播组映射关系,根据该组播组映射关系获取该IPv6组播组对应的IPv4组播组,将该IPv6组播数据报文封装在对应该IPv4组播组的IPv4组播数据报文中,该IPv4组播数据报文的源IPv4地址为ISATAP隧道出接口的源IPv4地址,然后,ISATAP设备将封装好的IPv4组播数据报文发送给IPv4网络中的IPv4设备。IPv4设备再根据它的IPv4组播转发表把IPv4组播数据报文转发给此IPv4组播组的ISATAP主机。
[0082]在本发明实施例中,如图2所示,可选地,在获取IPv6与IPv4的组播组映射关系之前,该方法100还包括:
[0083]S160,建立该组播组映射关系。
[0084]具体而言,为了将IPv6组播数据报文在IPv4网络中组播转发,可以在ISATAP设备和ISATAP主机上建立IPv6与IPv4的组播组映射关系。这样,一方面,ISATAP主机可以在请求加入IPv6组播组时,根据该组播组映射关系生成加入该IPv6组播组对应的IPv4组播组的IGMP组播组加入报文并发送给IPv4设备;另一方面,ISATAP设备在需要将IPv6组播数据报文发送到IPv4网络时,能够根据该组播组映射关系将IPv6组播数据报文封装在IPv4组播数据报文中发送给IPv4设备,IPv4设备再将IPv4组播数据报文转发给ISATAP主机。
[0085]建立IPv6与IPv4的组播组映射关系的方式可以有多种,本发明实施例对此并不限定,例如,可以采用预先指定的方式,在ISATAP设备和ISATAP主机上指定组播组的一一对应关系,比如FF03::1〈>235.0.0.1 ;还可以采用自动映射的方式,在ISATAP设备和ISATAP主机上配置或默认指定用于映射的IPv4组播组段,所有的IPv6组播组地址的底位向IPv4组播组网段的低位映射,比如IPv4组播组网段235.0.0.0/16对应IPv6组播组的FFxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:0000/112。
[0086]应理解,ISATAP设备获取IPv6与IPv4的组播组映射关系的方式还可以有其他方式,例如,若ISATAP设备没有建立该组播组映射关系,ISATAP设备可以从其他服务器上获取该组播组映射关系。
[0087]在本发明实施例中,如图3所示,可选地,该方法100还包括:
[0088]S170,向该ISATAP主机发送封装在IPv4单播报文中的MLD通用组查询报文或MLD特定组查询报文;
[0089]SllO 包括:
[0090]S111,接收该ISATAP主机在响应该MLD通用组查询报文或该MLD特定组查询报文时发送的该MLD组播组加入报文。
[0091]具体而言,ISATAP设备需要定时维护MLD组播组(即IPv6组播组)成员关系。ISATAP设备先将MLD通用组查询报文或特定组查询封装IPv6组播报文头,然后根据ISATAP隧道的IPv6邻居表项复制MLD通用组查询报文或特定组查询报文,然后分别封装IPv4单播报文头,发给IPv4设备,再由IPv4设备转发给ISATAP主机。ISATAP主机接收到该IPv4单播报文后进行解封装,得到该MLD通用组查询报文或该MLD特定组查询报文,然后将其送给MLD协议层处理;当MLD协议层需要对MLD通用组查询报文或特定组查询报文进行回应时,向ISATAP设备发送MLD组播组加入报文,表示继续加入该IPv6组播组。
[0092]若ISATAP主机没有响应ISATAP设备的MLD通用组查询报文或MLD特定组查询报文,则表示ISATAP主机不再加入该IPv6组播组。ISATAP主机也可以主动向ISATAP设备发送离开该IPv6组播组的MLD组播组离开报文,因此,可选地,该方法100还包括:
[0093]接收该ISATAP主机发送的封装在IPv4单播报文中的离开该IPv6组播组的MLD组播组离开报文;
[0094]解封装该MLD组播组离开报文,根据该MLD组播组离开报文维护该IPv6组播转发表。
[0095]ISATAP主机在请求离开IPv6组播组时,将MLD组播组离开报文封装在IPv4单播报文中发给ISATAP设备。该单播报文由IPv4网络中的设备转发给该ISATAP设备。ISATAP设备接收到封装在IPv4单播报文中的MLD组播组离开报文后,对其解封装,得到该MLD组播组离开报文,根据该MLD组播组离开报文维护IPv6组播组成员信息表,向上游发送IPv6PIM消息,并维护IPv6组播转发表。
[0096]应理解,在本发明实施例中,维护IPv6组播转发表包括添加或删除ISATAP主机的表项。例如,在接收到ISATAP主机发送的MLD组播组加入报文时,ISATAP设备根据MLD组播组加入报文添加ISATAP主机的表项;在接收到ISATAP主机发送的MLD组播组离开报文时,ISATAP设备根据MLD组播组离开报文发送MLD特定组查询报文,并在没有收到ISATAP主机响应该MLD特定组查询报文的MLD组播组加入报文时删除ISATAP主机的表项。
[0097]本发明实施例的组播报文转发的方法,根据IPv6与IPv4的组播组映射关系,将IPv6组播数据报文封装在IPv4组播数据报文中发送到IPv4网络中,不需要将IPv6组播数据复制成多份在IPv4网络中传输,从而能够节省IPv4网络带宽。
[0098]上文中结合图1至图3,从ISATAP设备的角度详细描述了组播报文转发的方法,下面将结合图4至图7,从ISATAP主机的角度详细描述组播报文转发的方法。
[0099]图4示出了根据本发明另一实施例的组播报文转发的方法200的示意性流程图。该方法200由ISATAP主机执行,如图4所示,该方法200包括:
[0100]S210,向ISATAP设备发送封装在IPv4单播报文中的加入IPv6组播组的MLD组播组加入报文,以便于该ISATAP设备根据该MLD组播组加入报文维护IPv6组播转发表;
[0101]S220,获取IPv6与IPv4的组播组映射关系,根据该组播组映射关系,生成加入IPv4组播组的IGMP组播组加入报文;
[0102]S230,向IPv4设备发送该IGMP组播组加入报文,以便于该IPv4设备根据该IGMP组播组加入报文维护IPv4组播转发表;
[0103]S240,接收该IPv4设备基于该IPv4组播转发表转发的该ISATAP设备发送的IPv4组播数据报文,其中,该IPv4组播数据报文为该ISATAP设备在根据该IPv6组播转发表确定该IPv6组播组的出接口为ISATAP隧道接口时,根据该组播组映射关系将对应该IPv6组播组的IPv6组播数据报文封装在对应该IPv4组播组的组播报文中而成的;
[0104]S250,对该IPv4组播数据报文进行解封装,获取该IPv6组播数据报文。
[0105]ISATAP主机在请求加入IPv6组播组时,会向ISATAP设备发送MLD组播组加入报文,MLD组播组加入报文封装在IPv4单播报文中,由IPv4网络中的设备转发给ISATAP设备,ISATAP设备根据该MLD组播组加入报文维护IPv6组播转发表;同时ISATAP主机获取IPv6与IPv4的组播组映射关系,根据该组播组映射关系,生成加入IPv4组播组的IGMP组播组加入报文,发送给ISATAP主机所在广播网络的IPv4设备,该IPv4设备根据该IGMP组播组加入报文维护IPv4组播转发表。当ISATAP设备接收到IPv6网络设备发送的对应该IPv6组播组的IPv6组播数据报文时,ISATAP设备根据该IPv6组播转发表,确定该IPv6组播组的出接口为ISATAP隧道接口,获取IPv6与IPv4的组播组映射关系,根据该组播组映射关系将该IPv6组播数据报文封装在对应该IPv4组播组的IPv4组播数据报文中,将该IPv4组播数据报文发送给IPv4设备。IPv4设备基于该IPv4组播转发表转发该IPv4组播数据报文给ISATAP主机。ISATAP主机接收到该IPv4组播数据报文后,对其解封装,从而获取该IPv6组播数据报文。
[0106]这样,本发明实施例的组播报文转发的方法,通过向ISATAP设备发送加入IPv6组播组的MLD组播组加入报文,并向IPv4设备发送加入与该IPv6组播组对应的IPv4组播组的IGMP组播组加入报文,可以实现IPv6组播数据报文在IPv4网络中组播转发,不需要将IPv6组播数据复制成多份在IPv4网络中传输,从而能够节省IPv4网络带宽。
[0107]ISATAP主机从ISATAP设备上获取到全球单播IPv6地址和IPv6本地链路地址,全球单播IPv6地址为ISATAP前缀与5EFE:1Pv4-Address组合得到,IPv6本地链路地址为FE80::5EFE:1Pv4-Address组合得到;ISATAP主机用此全球单播IPv6地址访问IPv6网络中的设备和主机。
[0108]当ISATAP主机请求IPv6组播数据报文时,ISATAP主机发送MLD组播组加入报文,MLD组播组加入报文封装在IPv4单播报文中,并由IPv4设备转发给ISATAP设备,IPv4单播报文的目的IPv4地址为ISATAP主机上配置的到ISATAP设备的目的地址;同时ISATAP主机根据IPv6与IPv4的组播组映射关系,构造IGMP组播组加入报文,发送给IPv4设备。IPv4设备向上游设备发送IPv4PM消息,并维护IPv4组播转发表,例如,在IPv4组播转发表中添加该ISATAP主机的表项;ISATAP设备接收到封装在IPv4单播报文中的MLD组播组加入报文后,执行解封装,并把MLD组播组加入报文上送到MLD协议层处理,生成IPv6组播组成员信息表,向上游发送IPv6PM消息,并维护IPv6组播转发表。
[0109]ISATAP主机发送MLD组播组加入报文和IGMP组播组加入报文的流程如图5所示。
[0110]501,当ISATAP主机需要加入IPv6组播组时,ISATAP主机上的“IPv6应用程序”发送MLD组播组加入报文。
[0111]502,ISATAP主机根据IPv6与IPv4的组播组映射关系生成IGMP组播组加入报文,SP,将MLD组播组加入报文转换成IGMP组播组加入报文。
[0112]503, MLD组播组加入报文封装IPv6组播报文头。
[0113]504,封装IPv6组播报文头的MLD组播组加入报文再封装IPv4单播报文头,其中IPv4单播报文头中目的地址为ISATAP主机上配置的到ISATAP隧道的目的地址。
[0114]505,在504之 后,再封装链路层协议报文头并发送到物理线路上。
[0115]506, IGMP组播组加入报文封装IPv4组播报文头。
[0116]507,在506之后,再封装链路层协议报文头并发送到物理线路上。
[0117]在本发明实施例中,如图6所示,可选地,在获取IPv6与IPv4的组播组映射关系之前,该方法200还包括:
[0118]S260,建立该组播组映射关系。
[0119]在ISATAP设备和ISATAP主机上建立IPv6与IPv4的组播组映射关系。这样,ISATAP主机可以在请求加入IPv6组播组时,根据该组播组映射关系生成加入该IPv6组播组对应的IPv4组播组的IGMP组播组加入报文并发送给IPv4设备。
[0120]ISATAP设备需要定时维护MLD组播组成员关系。因此,在本发明实施例中,可选地,该方法200还包括:
[0121]接收该ISATAP设备发送的封装在IPv4单播报文中的MLD通用组查询报文或MLD特定组查询报文;
[0122]根据加入的该IPv6组播组,确定响应该MLD通用组查询报文或该MLD特定组查询报文;
[0123]在响应该MLD通用组查询报文或该MLD特定组查询报文时,向该ISATAP设备发送该MLD组播组加入报文,以便于该ISATAP设备根据该MLD组播组加入报文维护该IPv6组
播转发表。
[0124]具体而言,ISATAP设备先将MLD通用组查询报文或特定组查询报文封装IPv6组播报文头,然后根据ISATAP隧道的IPv6邻居表项复制MLD通用组查询报文或特定组查询报文,然后分别封装IPv4单播报文头,发给IPv4设备,再由IPv4设备转发给ISATAP主机。ISATAP主机接收到该IPv4单播报文后进行解封装,得到该MLD通用组查询报文或该MLD特定组查询报文,然后将其送给MLD协议层处理。具体流程如图7中701至705所示。
[0125]701,物理线路接收报文并解封装链路层协议报文头,该报文中封装有MLD通用组查询报文或MLD特定组查询报文。
[0126]702,解封装IPv4单播报文头。
[0127]703,解封装IPv6组播报文。
[0128]704,解封装后得到MLD协议报文,即MLD通用组查询报文或MLD特定组查询报文。
[0129]705,将MLD通用组查询报文或MLD特定组查询报文送给MLD协议层处理。
[0130]MLD协议层根据加入的IPv6组播组,确定响应该MLD通用组查询报文或该MLD特定组查询报文。当对MLD通用组查询报文或MLD特定组查询报文进行响应时,向ISATAP设备发送MLD组播组加入报文,表示继续加入该IPv6组播组。ISATAP主机向ISATAP设备发送MLD组播组加入报文的流程如图5所示,在此不再赘述。
[0131]IPv4设备也需要维护IGMP组播组成员关系,IPv4设备向ISATAP主机发送IGMP通用组查询报文或IGMP特定组查询报文。ISATAP主机接收到IGMP通用组查询报文或IGMP特定组查询报文时,有两种处理方式。因此,一方面,可选地,该方法200还包括:
[0132]接收该IPv4设备发送的IGMP通用组查询报文或IGMP特定组查询报文;
[0133]根据加入的该IPv6组播组和该组播组映射关系,确定响应该IGMP通用组查询报文或该IGMP特定组查询报文;
[0134]在响应该IGMP通用组查询报文或该IGMP特定组查询报文时,向该IPv4设备发送该IGMP组播组加入报文,以便于该IPv4设备根据该IGMP组播组加入报文维护该IPv4组
播转发表。
[0135]在这种方式中,ISATAP主机在接收到IPv4设备发送的IGMP通用组查询报文或IGMP特定组查询报文时,根据IPv6与IPv4的组播组映射关系和ISATAP主机加入的IPv6组播组来判断是否需要对IGMP通用组查询报文或特定组查询报文作出响应;当ISATAP主机加入的IPv6组播组在IPv6与IPv4的组播组映射关系列表中时,响应该IGMP通用组查询报文或该IGMP特定组查询报文,IGMP协议栈构造IGMP组播组加入报文发送给IPv4设备,以便于IPv4设备维护IGMP组播组成员关系以及IPv4组播转发表。
[0136]另一方面,可选地,该方法200还包括:
[0137]接收该IPv4设备发送的IGMP通用组查询报文或IGMP特定组查询报文;
[0138]根据加入的该IPv6组播组和该组播组映射关系,确定将该IGMP通用组查询报文或该IGMP特定组查询报文转换为MLD通用组查询报文或MLD特定组查询报文;
[0139]根据加入的该IPv6组播组,确定响应该MLD通用组查询报文或该MLD特定组查询报文;
[0140]在响应该MLD通用组查询报文或该MLD特定组查询报文时,向该IPv4设备发送该IGMP组播组加入报文,以便于该IPv4设备根据该IGMP组播组加入报文维护该IPv4组播转发表。
[0141]在这种方式中,ISATAP主机在接收到IPv4设备发送的IGMP通用组查询报文或IGMP特定组查询报文时,根据IPv6与IPv4的组播组映射关系和ISATAP主机加入的IPv6组播组来判断是否需要将IGMP通用组查询报文或特定组查询报文转换为MLD通用组查询报文或特定组查询报文;当ISATAP主机加入的IPv6组播组在IPv6与IPv4的组播组映射关系列表中时,将IGMP通用组查询报文或特定组查询报文转换为MLD通用组查询报文或特定组查询报文,给MLD协议层处理。具体流程如图7中706至709所示。
[0142]706,物理线路接收报文并解封装链路层协议报文头,该报文中封装有IGMP通用组查询报文或IGMP特定组查询报文。
[0143]707,解封装IPv4单播报文头。
[0144]708,解封装后得到IGMP协议报文,即IGMP通用组查询报文或IGMP特定组查询报文。
[0145]709,根据IPv6与IPv4的组播组映射关系和ISATAP主机加入的IPv6组播组确定将该IGMP通用组查询报文或该IGMP特定组查询报文转换为MLD通用组查询报文或MLD特定组查询报文,送给MLD协议层处理。
[0146]MLD协议层根据ISATAP主机加入的IPv6组播组对MLD通用组查询报文或特定组查询报文作出响应,后续流程如图5所示,在此不再赘述。
[0147]ISATAP主机也可以主动向ISATAP设备发送离开该IPv6组播组的MLD组播组离开报文,因此,可选地,该方法200还包括:
[0148]向该ISATAP设备发送封装在IPv4单播报文中的离开该IPv6组播组的MLD组播组离开报文,以便于该ISATAP设备根据该MLD组播组离开报文维护该IPv6组播转发表
[0149]ISATAP主机也可以主动向IPv4设备发送离开该IPv4组播组的IGMP组播组离开报文,因此,可选地,该方法200还包括:
[0150]根据该组播组映射关系,生成离开该IPv4组播组的IGMP组播组离开报文;
[0151]向该IPv4设备发送该IGMP组播组离开报文,以便于该IPv4设备根据该IGMP组播组离开报文维护该IPv4组播转发表。
[0152]ISATAP主机向ISATAP设备发送MLD组播组离开报文以及向IPv4设备发送IGMP组播组离开报文的具体流程如图5所示,与ISATAP主机发送MLD组播组加入报文以及IGMP组播组加入报文的流程相似,在此不再赘述。
[0153]本发明实施例的组播报文转发的方法,通过向ISATAP设备发送加入IPv6组播组的MLD组播组加入报文,并向IPv4设备发送加入与该IPv6组播组对应的IPv4组播组的IGMP组播组加入报文,可以实现IPv6组播数据报文在IPv4网络中组播转发,从而能够节省IPv4网络带宽。
[0154]上文中结合图1至图3,从ISATAP设备的角度详细描述了组播报文转发的方法,结合图4至图7,从ISATAP主机的角度详细描述了组播报文转发的方法,下面将结合图8和图9,从IPv4设备的角度详细描述组播报文转发的方法。
[0155]图8示出了根据本发明又一实施例的组播报文转发的方法300的示意性流程图。该方法300由IPv4设备执行,如图8所示,该方法300包括:
[0156]S310,接收ISATAP主机发送的加入IPv4组播组的IGMP组播组加入报文,该IGMP组播组加入报文为该ISATAP主机根据IPv6与IPv4的组播组映射关系和加入的IPv6组播组生成的;
[0157]S320,根据该IGMP组播组加入报文维护IPv4组播转发表;
[0158]S330,接收ISATAP设备发送的IPv4组播数据报文,该IPv4组播数据报文为该ISATAP设备根据该组播组映射关系将对应该IPv6组播组的IPv6组播数据报文封装在对应该IPv4组播组的组播报文中而成的;
[0159]S340,基于该IPv4组播转发表,将该IPv4组播数据报文转发给该ISATAP主机。
[0160]ISATAP主机在请求IPv6组播数据报文时,会向ISATAP设备发送MLD组播组加入报文;同时ISATAP主机根据IPv6与IPv4的组播组映射关系,生成加入IPv4组播组的IGMP组播组加入报文,发送给IPv4设备。IPv4设备接收到ISATAP主机发送的IGMP组播组加入报文后,根据该IGMP组播组加入报文维护IPv4组播转发表;当IPv6网络设备将IPv6组播数据报文发送给ISATAP设备时,ISATAP设备根据IPv6与IPv4的组播组映射关系将该IPv6组播数据报文封装在对应该IPv4组播组的IPv4组播数据报文中,将该IPv4组播数据报文发送给IPv4设备;IPv4设备基于该IPv4组播转发表,将该IPv4组播数据报文转发给该ISATAP主机。
[0161]这样,本发明实施例的组播报文转发的方法,根据ISATAP主机发送的加入与IPv6组播组对应的IPv4组播组的IGMP组播组加入报文,维护IPv4组播转发表,并基于该IPv4组播转发表,转发封装有IPv6组播数据报文的IPv4组播数据报文给ISATAP主机,可以实现IPv6组播数据报文在IPv4网络中组播转发,从而能够节省IPv4网络带宽。
[0162]在本发明实施例中,如图9所示,可选地,该方法300还包括:
[0163]S350,向该ISATAP主机发送IGMP通用组查询报文或IGMP特定组查询报文;
[0164]S310 包括:
[0165]S311,接收该ISATAP主机在响应该IGMP通用组查询报文或该IGMP特定组查询报文时发送的该IGMP组播组加入报文。
[0166]具体而言,IPv4设备需要维护IGMP组播组成员关系。IPv4设备向ISATAP主机发送IGMP通用组查询报文或IGMP特定组查询报文。ISATAP主机接收到该IGMP通用组查询报文或该IGMP特定组查询报文后,当需要对该IGMP通用组查询报文或该IGMP特定组查询报文进行回应时,向IPv4设备发送IGMP组播组加入报文。
[0167]ISATAP主机也可以主动向IPv4设备发送离开该IPv4组播组的IGMP组播组离开报文,因此,可选地,该方法300还包括:
[0168]接收该ISATAP主机发送的离开该IPv4组播组的IGMP组播组离开报文;
[0169]根据该IGMP组播组离开报文维护该IPv4组播转发表。
[0170]IPv4设备接收到ISATAP主机发送的IGMP组播组离开报文后,根据该IGMP组播组离开报文维护IGMP组播组成员信息表项,向上游发送IPv4PM报文,并维护IPv4组播转发表。
[0171]应理解,在本发明实施例中,维护IPv4组播转发表包括添加或删除ISATAP主机的表项。例如,在接收到ISATAP主机发送的IGMP组播组加入报文时,IPv4设备根据IGMP组播组加入报文添加ISATAP主机的表项;在接收到ISATAP主机发送的IGMP组播组离开报文时,IPv4设备根据IGMP组播组离开报文发送IGMP特定组查询报文,并在没有收到ISATAP主机响应该IGMP特定组查询报文的IGMP组播组加入报文时删除ISATAP主机的表项。
[0172]下面将结合具体的例子详细描述本发明实施例。应注意,这些例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。
[0173]图10是根据本发明实施例的IPv6组播报文在IPv4网络中的转发示意图。其中,ISATAP设备和ISATAP主机都同时支持IPv4和IPv6协议栈。ISATAP设备物理上一边连接IPv6网络,一边连接IPv4网络;ISATAP主机物理上只连接IPv4网络。ISATAP主机I和ISATAP主机2可能在同一网段内或在不同网段内。IPv4设备1、IPv4设备2和IPv4设备3均支持处理IGMP协议报文;IPv4网络中的设备支持IPv4PM功能,IPv6网络中的设备支持IPv6PIM功能。具体流程如图11所示。
[0174]1101,ISATAP主机向ISATAP设备发送加入IPv6组播组的MLD组播组加入报文。该MLD组播组加入报文封装在IPv4单播报文中,IPv4单播报文的目的地址为ISATAP主机上配置的到ISATAP隧道的目的地址,由IPv4设备转发给ISATAP设备。
[0175]1102,ISATAP主机生成加入IPv4组播组的IGMP组播组加入报文。ISATAP主机获取IPv6与IPv4的组播组映射关系,根据该组播组映射关系,生成加入与该IPv6组播组对应的IPv4组播组的IGMP组播组加入报文。
[0176]1103,ISATAP主机向IPv4设备发送IGMP组播组加入报文。
[0177]1104,IPv4设备维护IPv4组播转发表。,IPv4设备接收到IGMP组播组加入报文后,向上游发送IPv4PM消息,并维护IPv4组播转发表。
[0178]1105,ISATAP设备维护IPv6组播转发表。ISATAP设备接收到封装在IPv4单播报文中的MLD组播组加入报文后,对报文进行解封装后上送给MLD协议层处理,生成IPv6组播组成员信息表,向上游发送IPv6PM消息,并维护IPv6组播转发表。
[0179]1106,ISATAP设备将IPv6组播数据报文封装在IPv4组播数据报文中。当ISATAP设备接收到IPv6网络设备发送过来的IPv6组播数据报文时,ISATAP设备根据该IPv6组播转发表,确定该IPv6组播组的出接口为ISATAP隧道接口,获取IPv6与IPv4的组播组映射关系,根据该组播组映射关系将该IPv6组播数据报文封装在IPv4组播数据报文中,IPv4组播数据报文的源IPv4地址为ISATAP隧道出接口的源IPv4地址。
[0180]1107,ISATAP设备将IPv4组播数据报文发送给IPv4设备。
[0181]1108, IPv4设备基于IPv4组播转发表将IPv4组播数据报文转发给ISATAP主机。
[0182]ISATAP主机接收到IPv4组播数据报文后,对IPv4组播数据报文进行解封装,得到的IPv6组播数据报文发送给ISATAP主机上层协议处理。
[0183]因此,本发明实施例的组播报文转发的方法,根据IPv6与IPv4的组播组映射关系,将IPv6组播数据报文封装在对应IPv4组播组的IPv4组播数据报文中,再将IPv4组播数据报文发送到IPv4网络中,可以实现IPv6组播数据报文在IPv4网络中组播转发,不需要将IPv6组播数据复制成多份在IPv4网络中传输,从而能够节省IPv4网络带宽。
[0184]应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0185]上文中结合图1至图11,详细描述了根据本发明实施例的组播报文转发的方法,下面将结合图12至图19,描述根据本发明实施例的ISATAP设备、ISATAP主机和IPv4设备。
[0186]图12示出了根据本发明实施例的ISATAP设备1200的示意性框图。如12所示,该ISATAP设备1200包括:
[0187]接收模块1210,用于接收ISATAP主机发送的封装在互联网协议第四版IPv4单播报文中的加入互联网协议第六版IPv6组播组的组播监听者发现协议MLD组播组加入报文;
[0188]处理模块1220,用于根据该MLD组播组加入报文维护IPv6组播转发表;
[0189]该接收模块1210还用于接收IPv6网络设备发送的对应该IPv6组播组的IPv6组播数据报文;
[0190]该处理模块1220还用于根据该IPv6组播转发表,确定该IPv6组播组的出接口为ISATAP隧道接口,获取IPv6与IPv4的组播组映射关系,根据该组播组映射关系获取该IPv6组播组对应的IPv4组播组,将该IPv6组播数据报文封装在对应该IPv4组播组的IPv4组播数据报文中;
[0191]发送模块1230,用于将该IPv4组播数据报文发送给IPv4设备,以便于该IPv4设备将该IPv4组播数据报文转发给该ISATAP主机。
[0192]本发明实施例的ISATAP设备,根据IPv6与IPv4的组播组映射关系,将IPv6组播数据报文封装在对应IPv4组播组的IPv4组播数据报文中,再将IPv4组播数据报文发送到IPv4网络中,可以实现IPv6组播数据报文在IPv4网络中组播转发,不需要将IPv6组播数据复制成多份在IPv4网络中传输,从而能够节省IPv4网络带宽。
[0193]在本发明实施例中,如图13所示,可选地,该ISATAP设备1200还包括:
[0194]建立模块1240,用于在该处理模块1220获取IPv6与IPv4的组播组映射关系之前,建立该组播组映射关系。
[0195]可选地,该发送模块1230还用于向该ISATAP主机发送封装在IPv4单播报文中的MLD通用组查询报文或MLD特定组查询报文;
[0196]该接收模块1210进一步用于接收该ISATAP主机在响应该MLD通用组查询报文或该MLD特定组查询报文时发送的该MLD组播组加入报文。
[0197]可选地,该接收模块1210还用于接收该ISATAP主机发送的封装在IPv4单播报文中的离开该IPv6组播组的MLD组播组离开报文;
[0198]该处理模块1220还用于根据该MLD组播组离开报文维护该IPv6组播转发表。
[0199]根据本发明实施例的ISATAP设备1200可对应于根据本发明实施例的组播报文转发的方法中的ISATAP设备,并且ISATAP设备1200中的各个模块的上述和其它操作和/或功能分别为了实现图1至图11中的各个方法的相应流程,为了简洁,在此不再赘述。
[0200]图14示出了根据本发明实施例的ISATAP主机1400的示意性框图。如图14所示,该ISATAP主机1400包括:
[0201]发送模块1410,用于向ISATAP设备发送封装在互联网协议第四版IPv4单播报文中的加入互联网协议第六版IPv6组播组的组播监听者发现协议MLD组播组加入报文,以便于该ISATAP设备根据该MLD组播组加入报文维护IPv6组播转发表;
[0202]处理模块1420,用于获取IPv6与IPv4的组播组映射关系,根据该组播组映射关系,生成加入IPv4组播组的因特网组管理协议IGMP组播组加入报文;
[0203]该发送模块1410还用于向IPv4设备发送该IGMP组播组加入报文,以便于该IPv4设备根据该IGMP组播组加入报文维护IPv4组播转发表;
[0204]接收模块1430,用于接收该IPv4设备基于该IPv4组播转发表转发的该ISATAP设备发送的IPv4组播数据报文,其中,该IPv4组播数据报文为该ISATAP设备在根据该IPv6组播转发表确定该IPv6组播组的出接口为ISATAP隧道接口时,根据该组播组映射关系将对应该IPv6组播组的IPv6组播数据报文封装在对应该IPv4组播组的组播报文中而成的;
[0205]该处理模块1420还用于对该IPv4组播数据报文进行解封装,获取该IPv6组播数据报文。
[0206]本发明实施例的ISATAP主机,通过向ISATAP设备发送加入IPv6组播组的MLD组播组加入报文,并向IPv4设备发送加入与该IPv6组播组对应的IPv4组播组的IGMP组播组加入报文,可以实现IPv6组播数据报文在IPv4网络中组播转发,不需要将IPv6组播数据复制成多份在IPv4网络中传输,从而能够节省IPv4网络带宽。
[0207]在本发明实施例中,如图15所示,可选地,该ISATAP主机1400还包括:
[0208]建立模块1440,用于在该处理模块1420获取IPv6与IPv4的组播组映射关系之前,建立该组播组映射关系。
[0209]可选地,该接收模块1430还用于接收该ISATAP设备发送的封装在IPv4单播报文中的MLD通用组查询报文或MLD特定组查询报文;
[0210]该处理模块1420还用于根据加入的该IPv6组播组,确定响应该MLD通用组查询报文或该MLD特定组查询报文;
[0211]该发送模块1410还用于在响应该MLD通用组查询报文或该MLD特定组查询报文时,向该ISATAP设备发送该MLD组播组加入报文,以便于该ISATAP设备根据该MLD组播组加入报文维护该IPv6组播转发表。
[0212]可选地,该接收模块1430还用于接收该IPv4设备发送的IGMP通用组查询报文或IGMP特定组查询报文;
[0213]该处理模块1420还用于根据加入的该IPv6组播组和该组播组映射关系,确定响应该IGMP通用组查询报文或该IGMP特定组查询报文;
[0214]该发送模块1410还用于在响应该IGMP通用组查询报文或该IGMP特定组查询报文时,向该IPv4设备发送该IGMP组播组加入报文,以便于该IPv4设备根据该IGMP组播组加入报文维护该IPv4组播转发表。
[0215]可选地,该接收模块1430还用于接收该IPv4设备发送的IGMP通用组查询报文或IGMP特定组查询报文;
[0216]该处理模块1420还用于根据加入的该IPv6组播组和该组播组映射关系,确定将该IGMP通用组查询报文或该IGMP特定组查询报文转换为MLD通用组查询报文或MLD特定组查询报文,根据加入的该IPv6组播组,确定响应该MLD通用组查询报文或该MLD特定组查询报文;
[0217]该发送模块1410还用于在响应该MLD通用组查询报文或该MLD特定组查询报文时,向该IPv4设备发送该IGMP组播组加入报文,以便于该IPv4设备根据该IGMP组播组加入报文维护该IPv4组播转发表。
[0218]可选地,该发送模块1410还用于向该ISATAP设备发送封装在IPv4单播报文中的离开该IPv6组播组的MLD组播组离开报文,以便于该ISATAP设备根据该MLD组播组离开报文维护该IPv6组播转发表;
[0219]可选地,该处理模块1420还用于根据该组播组映射关系,生成离开该IPv4组播组的IGMP组播组离开报文;[0220]该发送模块1410还用于向该IPv4设备发送该IGMP组播组离开报文,以便于该IPv4设备根据该IGMP组播组离开报文维护该IPv4组播转发表。
[0221 ] 根据本发明实施例的ISATAP主机1400可对应于根据本发明实施例的组播报文转发的方法中的ISATAP主机,并且ISATAP主机1400中的各个模块的上述和其它操作和/或功能分别为了实现图1至图11中的各个方法的相应流程,为了简洁,在此不再赘述。
[0222]图16示出了根据本发明实施例的IPv4设备1600的示意性框图。如图16所示,该IPv4设备1600包括:
[0223]接收模块1610,用于接收自动隧道地址协议ISATAP主机发送的加入IPv4组播组的因特网组管理协议IGMP组播组加入报文,该IGMP组播组加入报文为该ISATAP主机根据互联网协议第六版IPv6与IPv4的组播组映射关系和加入的IPv6组播组生成的;
[0224]处理模块1620,用于根据该IGMP组播组加入报文维护IPv4组播转发表;
[0225]该接收模块1610还用于接收ISATAP设备发送的IPv4组播数据报文,该IPv4组播数据报文为该ISATAP设备根据该组播组映射关系将对应该IPv6组播组的IPv6组播数据报文封装在对应该IPv4组播组的组播报文中而成的;
[0226]发送模块1630,用于基于该IPv4组播转发表,将该IPv4组播数据报文转发给该ISATAP 主机。
[0227]本发明实施例的IPv4设备,根据ISATAP主机发送的加入与IPv6组播组对应的IPv4组播组的IGMP组播组加入报文,维护IPv4组播转发表,并基于该IPv4组播转发表,转发封装有IPv6组播数据报文的IPv4组播数据报文给ISATAP主机,可以实现IPv6组播数据报文在IPv4网络中组播转发,从而能够节省IPv4网络带宽。
[0228]可选地,该发送模块1630还用于向该ISATAP主机发送IGMP通用组查询报文或IGMP特定组查询报文;
[0229]该接收模块1610进一步用于接收该ISATAP主机在响应该IGMP通用组查询报文或该IGMP特定组查询报文时发送的该IGMP组播组加入报文。
[0230]可选地,该接收模块1610还用于接收该ISATAP主机发送的离开该IPv4组播组的IGMP组播组离开报文;
[0231]该处理模块1620还用于根据该IGMP组播组离开报文维护该IPv4组播转发表。
[0232]根据本发明实施例的IPv4设备1600可对应于根据本发明实施例的组播报文转发的方法中的IPv4设备,并且IPv4设备1600中的各个模块的上述和其它操作和/或功能分别为了实现图1至图11中的各个方法的相应流程,为了简洁,在此不再赘述。
[0233]图17是本发明实施例提供的ISATAP设备的结构示意图。如图17所示,ISATAP设备1700 —般包括至少一个处理器1710,例如CPU,至少一个端口 1720,存储器1730,和至少一个通信总线1740。通信总线1740用于实现这些装置之间的连接通信。处理器1710用于执行存储器1730中存储的可执行模块,例如计算机程序;ISATAP设备可选的包含用户接口 1750,包括但不限于显示器,键盘和点击设备,例如鼠标、轨迹球(trackball)、触感板或者触感显示屏。存储器1730可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个端口 1720实现该ISATAP设备与至少一个网络设备之间的通信连接。
[0234]在一些实施方式中,存储器1730存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
[0235]操作系统1732,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
[0236]应用模块1734,包含各种应用程序,用于实现各种应用业务。
[0237]应用模块1734中包括但不限于接收模块1210、处理模块1220、发送模块1230和建立模块1240。
[0238]应用模块1734中各模块的具体实现参见图12和图13所示实施例中的相应模块,在此不赘述。
[0239]图18是本发明实施例提供的ISATAP主机的结构示意图。如图18所示,ISATAP主机1800 —般包括至少一个处理器1810,例如CPU,至少一个端口 1820,存储器1830,和至少一个通信总线1840。通信总线1840用于实现这些装置之间的连接通信。处理器1810用于执行存储器1830中存储的可执行模块,例如计算机程序;ISATAP主机可选的包含用户接口 1850,包括但不限于显示器,键盘和点击设备,例如鼠标、轨迹球、触感板或者触感显示屏。存储器1830可能包含高速RAM存储器,也可能还包括非易失性存储器,例如至少一个磁盘存储器。通过至少一个端口 1820实现该ISATAP主机与至少一个网络设备之间的通信连接。
[0240]在一些实施方式中,存储器1830存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
[0241]操作系统1832,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
[0242]应用模块1834,包含各种应用程序,用于实现各种应用业务。
[0243]应用模块1834中包括但不限于发送模块1410、处理模块1420、接收模块1430和建立模块1440。
[0244]应用模块1834中各模块的具体实现参见图14和图15所示实施例中的相应模块,在此不赘述。
[0245]图19是本发明实施例提供的IPv4设备的结构示意图。如图19所示,IPv4设备1900 一般包括至少一个处理器1910,例如CPU,至少一个端口 1920,存储器1930,和至少一个通信总线1940。通信总线1940用于实现这些装置之间的连接通信。处理器1910用于执行存储器1930中存储的可执行模块,例如计算机程序;IPv4设备可选的包含用户接口1950,包括但不限于显示器,键盘和点击设备,例如鼠标、轨迹球、触感板或者触感显示屏。存储器1930可能包含高速RAM存储器,也可能还包括非易失性存储器,例如至少一个磁盘存储器。通过至少一个端口 1920实现该IPv4设备与至少一个网络设备之间的通信连接。
[0246]在一些实施方式中,存储器1930存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
[0247]操作系统1932,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
[0248]应用模块1934,包含各种应用程序,用于实现各种应用业务。
[0249]应用模块1934中包括但不限于接收模块1610、处理模块1620和发送模块1630。
[0250]应用模块1934中各模块的具体实现参见图16所示实施例中的相应模块,在此不赘述。
[0251]应理解,在本发明实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0252]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0253]所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0254]在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
[0255]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
[0256]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0257]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0258]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
【权利要求】
1.一种组播报文转发的方法,其特征在于,包括: 接收自动隧道地址协议ISATAP主机发送的封装在互联网协议第四版IPv4单播报文中的加入互联网协议第六版IPv6组播组的组播监听者发现协议MLD组播组加入报文; 根据所述MLD组播组加入报文维护IPv6组播转发表; 接收IPv6网络设备发送的对应所述IPv6组播组的IPv6组播数据报文; 根据所述IPv6组播转发表,确定所述IPv6组播组的出接口为ISATAP隧道接口 ; 获取IPv6与IPv4的组播组映射关系,根据所述组播组映射关系获取所述IPv6组播组对应的IPv4组播组,将所述IPv6组播数据报文封装在对应所述IPv4组播组的IPv4组播数据报文中,将所述IPv4组播数据报文发送给IPv4设备,以便于所述IPv4设备将所述IPv4组播数据报文转发给所述ISATAP主机。
2.根据权利要求1所述的方法,其特征在于,在所述获取IPv6与IPv4的组播组映射关系之前,所述方法还包括:建立所述组播组映射关系。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括: 向所述ISATAP主机发送封装在IPv4单播报文中的MLD通用组查询报文或MLD特定组查询报文; 所述接收自动隧道地址协议ISATAP主机发送的封装在互联网协议第四版IPv4单播报文中的加入互联网协议第六版IPv6组播组的组播监听者发现协议MLD组播组加入报文,包括: 接收所述ISATAP主机在响应所述MLD通用组查询报文或所述MLD特定组查询报文时发送的所述MLD组播组加入报文。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括: 接收所述ISATAP主机发送的封装在IPv4单播报文中的离开所述IPv6组播组的MLD组播组离开报文; 根据所述MLD组播组离开报文维护所述IPv6组播转发表。
5.一种组播报文转发的方法,其特征在于,包括: 向自动隧道地址协议ISATAP设备发送封装在互联网协议第四版IPv4单播报文中的加入互联网协议第六版IPv6组播组的组播监听者发现协议MLD组播组加入报文,以便于所述ISATAP设备根据所述MLD组播组加入报文维护IPv6组播转发表; 获取IPv6与IPv4的组播组映射关系,根据所述组播组映射关系,生成加入IPv4组播组的因特网组管理协议IGMP组播组加入报文; 向IPv4设备发送所述IGMP组播组加入报文,以便于所述IPv4设备根据所述IGMP组播组加入报文维护IPv4组播转发表;接收所述IPv4设备基于所述IPv4组播转发表转发的所述ISATAP设备发送的IPv4组播数据报文,其中,所述IPv4组播数据报文为所述ISATAP设备在根据所述IPv6组播转发表确定所述IPv6组播组的出接口为ISATAP隧道接口时,根据所述组播组映射关系将对应所述IPv6组播组的 IPv6组播数据报文封装在对应所述IPv4组播组的组播报文中而成的;对所述IPv4组播数据报文进行解封装,获取所述IPv6组播数据报文。
6.根据权利要求5所述的方法,其特征在于,在所述获取IPv6与IPv4的组播组映射关系之前,所述方法还包括:建立所述组播组映射关系。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括: 接收所述ISATAP设备发送的封装在IPv4单播报文中的MLD通用组查询报文或MLD特定组查询报文; 根据加入的所述IPv6组播组,确定响应所述MLD通用组查询报文或所述MLD特定组查询报文; 在响应所述MLD通用组查询报文或所述MLD特定组查询报文时,向所述ISATAP设备发送所述MLD组播组加入报文,以便于所述ISATAP设备根据所述MLD组播组加入报文维护所述IPv6组播转发表。
8.根据权利要求5至7中任一项所述的方法,其特征在于,所述方法还包括: 接收所述IPv4设备发送的IGMP通用组查询报文或IGMP特定组查询报文; 根据加入的所述IPv6组播组和所述组播组映射关系,确定响应所述IGMP通用组查询报文或所述IGMP特定组查询报文; 在响应所述IGMP通用组查询报文或所述IGMP特定组查询报文时,向所述IPv4设备发送所述IGMP组播组加入报文,以便于所述IPv4设备根据所述IGMP组播组加入报文维护所述IPv4组播转发表。
9.根据权利要求5或6所述的方法,其特征在于,所述方法还包括: 接收所述IPv4设备发送的IGMP通用组查询报文或IGMP特定组查询报文; 根据加入的所述IPv6组播组和所述组播组映射关系,确定将所述IGMP通用组查询报文或所述IGMP特定组查询报文转换为MLD通用组查询报文或MLD特定组查询报文; 根据加入的所述IPv6组播组,确定响应所述MLD通用组查询报文或所述MLD特定组查询报文; 在响应所述MLD通用组查询报文或所述MLD特定组查询报文时,向所述IPv4设备发送所述IGMP组播组加入报文,以便于所述IPv4设备根据所述IGMP组播组加入报文维护所述IPv4组播转发表。
10.根据权利要求5至9中任一项所述的方法,其特征在于,所述方法还包括: 向所述ISATAP设备发送封装在IPv4单播报文中的离开所述IPv6组播组的MLD组播组离开报文,以便于所述ISATAP设备根据所述MLD组播组离开报文维护所述IPv6组播转发表。
11.根据权利要求5至10中任一项所述的方法,其特征在于,所述方法还包括: 根据所述组播组映射关系,生成离开所述IPv4组播组的IGMP组播组离开报文; 向所述IPv4设备发送所述IGMP组播组离开报文,以便于所述IPv4设备根据所述IGMP组播组离开报文维护所述IPv4组播转发表。
12.—种组播报文转发的方法,其特征在于,包括: 接收自动隧道地址协议ISATAP主机发送的加入互联网协议第四版IPv4组播组的因特网组管理协议IGMP组播组加入报文,所述IGMP组播组加入报文为所述ISATAP主机根据互联网协议第六版IPv6与IPv4的组播组映射关系和加入的IPv6组播组生成的; 根据所述IGMP组播组加入报文维护IPv4组播转发表; 接收ISATAP设备发送的IPv4组播数据报文,所述IPv4组播数据报文为所述ISATAP设备根据所述组播组映射关系将对应所述IPv6组播组的IPv6组播数据报文封装在对应所述IPv4组播组的组播报文中而成的; 基于所述IPv4组播转发表,将所述IPv4组播数据报文转发给所述ISATAP主机。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括: 向所述ISATAP主机发送IGMP通用组查询报文或IGMP特定组查询报文; 所述接收自动隧道地址协议ISATAP主机发送的加入互联网协议第四版IPv4组播组的因特网组管理协议IGMP组播组加入报文,包括: 接收所述ISATAP主机在响应所述IGMP通用组查询报文或所述IGMP特定组查询报文时发送的所述IGMP组播组加入报文。
14.根据权利要求12或13所述的方法,其特征在于,所述方法还包括: 接收所述ISATAP主机发送的离开所述IPv4组播组的IGMP组播组离开报文; 根据所述IGMP组播组离开报文维护所述IPv4组播转发表。
15.一种自动隧道地址协议ISATAP设备,其特征在于,包括: 接收模块,用于接收ISATAP主机发送的封装在互联网协议第四版IPv4单播报文中的加入互联网协议第六版IPv6组播组的组播监听者发现协议MLD组播组加入报文; 处理模块,用于根据所述MLD组播组加入报文维护IPv6组播转发表; 所述接收模块还用于接收IPv6网络设备发送的对应所述IPv6组播组的IPv6组播数据报文; 所述处理模块还用于根据所述IPv6组播转发表,确定所述IPv6组播组的出接口为ISATAP隧道接口,获取IPv6与IPv4的组播组映射关系,根据所述组播组映射关系获取所述IPv6组播组对应的IPv4组播组,将所述IPv6组播数据报文封装在对应所述IPv4组播组的IPv4组播数据报文中; 发送模块,用于将所述IPv4组播数据报文发送给IPv4设备,以便于所述IPv4设备将所述IPv4组播数据报文转发给所述ISATAP主机。
16.根据权利要求15所述的ISATAP设备,其特征在于,还包括: 建立模块,用于在所述处理模块获取IPv6与IPv4的组播组映射关系之前,建立所述组播组映射关系。
17.根据权利要求15或16所述的ISATAP设备,其特征在于,所述发送模块还用于向所述ISATAP主机发送封装在IPv4单播报文中的MLD通用组查询报文或MLD特定组查询报文; 所述接收模块进一步用于接收所述ISATAP主机在响应所述MLD通用组查询报文或所述MLD特定组查询报文时发送的所述MLD组播组加入报文。
18.根据权利要求15至17中任一项所述的ISATAP设备,其特征在于,所述接收模块还用于接收所述ISATAP主机发送的封装在IPv4单播报文中的离开所述IPv6组播组的MLD组播组离开报文; 所述处理模块还用于根据所述MLD组播组离开报文维护所述IPv6组播转发表。
19.一种自动隧道地址协议ISATAP主机,其特征在于,包括: 发送模块,用于向ISATAP设备发送封装在互联网协议第四版IPv4单播报文中的加入互联网协议第六版IPv6组播组的组播监听者发现协议MLD组播组加入报文,以便于所述ISATAP设备根据所述MLD组播组加入报文维护IPv6组播转发表;处理模块,用于获取IPv6与IPv4的组播组映射关系,根据所述组播组映射关系,生成加入IPv4组播组的因特网组管理协议IGMP组播组加入报文; 所述发送模块还用于向IPv4设备发送所述IGMP组播组加入报文,以便于所述IPv4设备根据所述IGMP组播组加入报文维护IPv4组播转发表; 接收模块,用于接收所述IPv4设备基于所述IPv4组播转发表转发的所述ISATAP设备发送的IPv4组播数据报文,其中,所述IPv4组播数据报文为所述ISATAP设备在根据所述IPv6组播转发表确定所述IPv6组播组的出接口为ISATAP隧道接口时,根据所述组播组映射关系将对应所述IPv6组播组的IPv6组播数据报文封装在对应所述IPv4组播组的组播报文中而成的; 所述处理模块还用于对所述IPv4组播数据报文进行解封装,获取所述IPv6组播数据报文。
20.根据权利要求19所述的ISATAP主机,其特征在于,还包括: 建立模块,用于在所述处理模块获取IPv6与IPv4的组播组映射关系之前,建立所述组播组映射关系。
21.根据权利要求19或20所述的ISATAP主机,其特征在于,所述接收模块还用于接收所述ISATAP设备发送的封装在IPv4单播报文中的MLD通用组查询报文或MLD特定组查询报文; 所述处理模块还用于 根据加入的所述IPv6组播组,确定响应所述MLD通用组查询报文或所述MLD特定组查询报文; 所述发送模块还用于在响应所述MLD通用组查询报文或所述MLD特定组查询报文时,向所述ISATAP设备发送所述MLD组播组加入报文,以便于所述ISATAP设备根据所述MLD组播组加入报文维护所述IPv6组播转发表。
22.根据权利要求19至21中任一项所述的ISATAP主机,其特征在于,所述接收模块还用于接收所述IPv4设备发送的IGMP通用组查询报文或IGMP特定组查询报文; 所述处理模块还用于根据加入的所述IPv6组播组和所述组播组映射关系,确定响应所述IGMP通用组查询报文或所述IGMP特定组查询报文; 所述发送模块还用于在响应所述IGMP通用组查询报文或所述IGMP特定组查询报文时,向所述IPv4设备发送所述IGMP组播组加入报文,以便于所述IPv4设备根据所述IGMP组播组加入报文维护所述IPv4组播转发表。
23.根据权利要求19或20所述的ISATAP主机,其特征在于,所述接收模块还用于接收所述IPv4设备发送的IGMP通用组查询报文或IGMP特定组查询报文; 所述处理模块还用于根据加入的所述IPv6组播组和所述组播组映射关系,确定将所述IGMP通用组查询报文或所述IGMP特定组查询报文转换为MLD通用组查询报文或MLD特定组查询报文,根据加入的所述IPv6组播组,确定响应所述MLD通用组查询报文或所述MLD特定组查询报文; 所述发送模块还用于在响应所述MLD通用组查询报文或所述MLD特定组查询报文时,向所述IPv4设备发送所述IGMP组播组加入报文,以便于所述IPv4设备根据所述IGMP组播组加入报文维护所述IPv4组播转发表。
24.根据权利要求19至23中任一项所述的ISATAP主机,其特征在于,所述发送模块还用于向所述ISATAP设备发送封装在IPv4单播报文中的离开所述IPv6组播组的MLD组播组离开报文,以便于所述ISATAP设备根据所述MLD组播组离开报文维护所述IPv6组播转发表。
25.根据权利要求19至24中任一项所述的ISATAP主机,其特征在于,所述处理模块还用于根据所述组播组映射关系,生成离开所述IPv4组播组的IGMP组播组离开报文; 所述发送模块还用于向所述IPv4设备发送所述IGMP组播组离开报文,以便于所述IPv4设备根据所述IGMP组播组离开报文维护所述IPv4组播转发表。
26.一种互联网协议第四版IPv4设备,其特征在于,包括: 接收模块,用于接收自动隧道地址协议ISATAP主机发送的加入IPv4组播组的因特网组管理协议IGMP组播组加入报文,所述IGMP组播组加入报文为所述ISATAP主机根据互联网协议第六版IPv6与IPv4的组播组映射关系和加入的IPv6组播组生成的; 处理模块,用于根据所述IGMP组播组加入报文维护IPv4组播转发表; 所述接收模块还用于接收ISATAP设备发送的IPv4组播数据报文,所述IPv4组播数据报文为所述ISATAP设备根据所述组播组映射关系将对应所述IPv6组播组的IPv6组播数据报文封装在对应所述IPv4组播组的组播报文中而成的; 发送模块,用于基于所述IPv4组播转发表,将所述IPv4组播数据报文转发给所述ISATAP 主机。
27.根据权利要求26所述的IPv4设备,其特征在于,所述发送模块还用于向所述ISATAP主机发送IGMP通用组查询报文或IGMP特定组查询报文; 所述接收模块进一步用于接收所述ISATAP主机在响应所述IGMP通用组查询报文或所述IGMP特定组查询报文时发送的所述IGMP组播组加入报文。
28.根据权利要求26或27所述的IPv4设备,其特征在于,所述接收模块还用于接收所述ISATAP主机发送的离开所述IPv4组播组的IGMP组播组离开报文; 所述处理模块还用于根据所述IGMP组播组离开报文维护所述IPv4组播转发表。
【文档编号】H04L12/781GK103841037SQ201210474056
【公开日】2014年6月4日 申请日期:2012年11月21日 优先权日:2012年11月21日
【发明者】杨德华 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1