CN101515859B - 一种因特网协议安全隧道传输组播的方法及设备 - Google Patents
一种因特网协议安全隧道传输组播的方法及设备 Download PDFInfo
- Publication number
- CN101515859B CN101515859B CN2009100813928A CN200910081392A CN101515859B CN 101515859 B CN101515859 B CN 101515859B CN 2009100813928 A CN2009100813928 A CN 2009100813928A CN 200910081392 A CN200910081392 A CN 200910081392A CN 101515859 B CN101515859 B CN 101515859B
- Authority
- CN
- China
- Prior art keywords
- pim
- opposite equip
- multicast
- acl rule
- message
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种因特网协议安全隧道传输组播的方法及设备。所述方法包括:IPSec隧道的本端设备自动镜像对端设备配置的目的地址为组播地址的ACL规则,并基于自身和对端设备各自配置的目的地址为PIM协议组播地址的ACL规则,建立自身和对端设备之间的PIM协议报文的IPSEC隧道;本端设备在所述PIM协议报文的IPSEC隧道上接收对端设备发送的PIM协议报文,并在判断出接收到的PIM协议报文为PIM hello报文时,直接将所述对端设备加入到自身的PIM邻居表中,建立本端设备和对端设备之间的PIM邻居关系;本端设备按照PIM协议转发组播组的报文。按照本发明,可以通过IPSec建立两个私网之间的基于IPSec隧道的PIM邻居关系,实现在IPSec隧道中传输组播。
Description
技术领域
本发明涉及数据通信技术领域,具体涉及一种因特网协议安全(IPsec,IPSecurity)隧道传输组播的方法及设备。
背景技术
协议无关组播(PIM,Protocol Independent Multicast)协议是目前应用非常广泛的一种组播路由协议。PIM协议可以利用静态路由或者任意单播路由协议(如RIP、OSPF、IS-IS、BGP等)所生成的单播路由表为IP组播提供路由。PIMv2控制消息有一个103的协议号,由因特网域名分配中心编号管理局(IANA)分配。在PIM协议中,组地址224.0.0.13用于表示标识运行PIM协议的路由器,PIMv2采用PIM协议组播地址224.0.0.13来发送PIM协议报文,实现邻居发现,加入,剪枝等操作。PIM应用邻居发现机制建立PIM邻居关系,为建立这些邻居关系,在每个PIM问候(Hello)报文周期(协议缺省为30秒)内,PIM组播路由器转发PIM Hello报文到所有PIM路由器的组播地址上,以便各个接口能够转发组播信息。
IPsec利用高级的加密和隧道技术,来允许企业网络通过第三方的网络,如Internet,来建立安全的、端到端的专用网络连接。IPsec是由一组RFC文档组成,定义了一个系统来提供安全协议选择、安全算法,确定服务所使用密钥等服务,从而在IP层提供安全保障。它给出了应用于IP层上网络数据安全的一整套体系结构,包括网络安全协议(AH,Authentication Header)和封装安全载荷协议(ESP,Encapsulating Security Payload)、密钥管理协议(IKE,Internet Key Exchange)协议和用于网络验证及加密的一些算法等。IPSec利用访问控制列表(ACL,Access Control List)来决定哪些数据是需要加密的,当有数据报文匹配所定义的ACL时,即建立IPSec加密隧道传输该数据报文。
IPSec VPN在隧道模式下不能支持组播协议,其原因可参考图1,两个私网间虽然建立了IPSec隧道,但由于中间跨广域网(因特网),出接口地址S1和S2往往不在同一网段上,而IPSec协议标准实现中又没有引入虚接口的概念,因此第一路由器和第二路由器无法建立起PIM邻居关系。
因为目前的IPSec方式不能承载组播环境,现有技术中如果需要在两个私网间启用动态组播协议,都是用其他的3层VPN与IPSec进行嵌套封装。譬如GRE over IPSec隧道。由于GRE可以配置虚接口,路由器A和路由器B之间相当于直连,两端的PIM邻居能成功建立。在GRE Over IPsec中,GRE协议用于建立隧道,IPsec协议完成VPN网络的加密。在实现组播在IPsec VPN传输时,都需要先进行一次GRE封装,再将整个GRE报文封装到IPsec VPN中进行加密传输,这样能够保证组播报文在两个节点间正常传输。
上述处理方案中具有以下缺点:
1.配置非常复杂,对于实施和维护人员技术要求很高。并且GRE隧道不支持动态IP地址,如果一端设备的公网IP地址是动态地址,则设备上还要再建立环回口作为GRE隧道的源地址。
2.使用多层隧道封装,添加了不必要的报文头,浪费实际带宽及加密资源。组播数据流需要经过GER和IPsec两次封装与解封装后才能得到最终处理,这对于传输时延比较敏感的业务,如语音业务影响很大,对视频业务也会产生较大延时。
3.部分设备不支持GRE隧道,该方式无法使用。
发明内容
本发明实施例所要解决的技术问题是提供一种IPSec隧道传输组播的方法及设备,通过在PIM邻居关系中增加基于IPSec隧道的PIM邻居关系,使得IPSec节点设备之间可以通过IPSec隧道建立邻居关系,从而实现了组播在IPSec隧道中的传输。
为解决上述技术问题,本发明实施例提供方案如下:
一种因特网协议安全IPSec隧道传输组播的方法,包括:
IPSec隧道的本端设备自动镜像对端设备配置的目的地址为组播地址的ACL规则,并基于自身和对端设备各自配置的目的地址为PIM协议组播地址的ACL规则,建立自身和对端设备之间的PIM协议报文的IPSEC隧道;
本端设备在所述PIM协议报文的IPSEC隧道上接收对端设备发送的PIM协议报文,并在判断出接收到的PIM协议报文为PIM hello报文时,直接将所述对端设备加入到自身的PIM邻居表中,建立本端设备和对端设备之间的PIM邻居关系;
本端设备按照PIM协议转发组播组的报文。
优选地,上述方法中,所述IPSec隧道的本端设备自动镜像对端设备配置的目的地址为组播地址的ACL规则是:本端设备接收到对端设备发送的IKE协商的消息后,根据该消息中携带的触发本次IKE协商的ACL规则的信息,判断该ACL规则的目的地址是否为组播地址,如果是,则在本地自动镜像该ACL规则。
优选地,上述方法中,所述建立自身和对端设备之间的PIM协议报文的IPSEC隧道包括:
本端设备基于自身配置第一ACL规则向对端设备发送携带有第一ACL规则信息的IKE协商的消息,所述第一ACL规则的目的地址为PIM协议组播地址;本端设备根据对端设备在自动镜像所述第一ACL规则后对IKE协商的响应,建立本端设备到对端设备的PIM协议报文的IPSEC隧道;
以及,本端设备接收对端设备基于第二ACL规则发送的携带有第二ACL规则信息的IKE协商的消息,所述第二ACL规则的目的地址为PIM协议组播地址;本端设备在本地自动镜像所述第二ACL规则后对IKE协商进行响应,建立对端设备到本端设备的PIM协议报文的IPSEC隧道。
优选地,上述方法中,所述本端设备按照PIM协议转发组播组的报文包括:
本端设备在所述PIM协议报文的IPSec隧道上接收到对端设备发送加入组播组的PIM加入报文后,将接收到所述PIM加入报文的第一接口添加到所述组播组的出接口中;
本端设备在下发所述组播组的组播报文时,根据所述组播组的出接口,将所述组播报文转发到所述第一接口,并通过本端设备和对端设备之间建立的所述组播组的IPSec隧道将所述组播报文发送到对端设备。
优选地,上述方法中,建立所述组播组的IPSec隧道包括:
本端设备基于自身配置第三ACL规则向对端设备发送携带有第三ACL规则信息的IKE协商的消息,所述第三ACL规则的目的地址为所述组播组的地址;本端设备根据对端设备在自动镜像所述第三ACL规则后对IKE协商的响应,建立本端设备到对端设备的组播组的IPSec隧道。
优选地,上述方法中,本端设备在将所述第一接口添加到所述组播组的出接口后,进一步将所述第一接口与发送所述PIM加入报文的对端设备相关联;
本端设备在将所述组播报文转发到所述第一接口后,进一步查找隧道远端为所述第一接口所关联的对端设备的IPSec隧道,并利用查找到的IPSec隧道将所述组播报文发送出去。
优选地,上述方法中,所述IPSec隧道的本端设备和远端设备在在不同的网段。
本发明实施例还提供了一种IPSec节点设备,包括:
隧道建立单元,用于自动镜像IPSec隧道的对端设备所配置的目的地址为组播地址的ACL规则,并基于本设备和对端设备各自配置的目的地址为PIM协议组播地址的ACL规则,建立本设备和对端设备之间的PIM协议报文的IPSEC隧道;
邻居建立单元,用于在所述PIM协议报文的IPSEC隧道上接收对端设备发送的PIM协议报文,并在判断出接收到的PIM协议报文为PIM hello报文时,直接将所述对端设备加入到自身的PIM邻居表中,建立本端设备和对端设备之间的PIM邻居关系;
组播转发单元,用于按照PIM协议转发组播组的报文。
优选地,上述IPSec节点设备中,所述隧道建立单元,还用于在接收到对端设备发送的IKE协商的消息后,根据该消息中携带的触发本次IKE协商的ACL规则的信息,判断该ACL规则的目的地址是否为组播地址,如果是,则在本地自动镜像该ACL规则。
优选地,上述IPSec节点设备中,所述隧道建立单元,还用于基于本设备配置第一ACL规则向对端设备发送携带有第一ACL规则信息的IKE协商的消息,所述第一ACL规则的目的地址为PIM协议组播地址;根据对端设备在自动镜像所述第一ACL规则后对IKE协商的响应,建立本设备到对端设备的PIM协议报文的IPSEC隧道;以及,用于接收对端设备基于第二ACL规则发送的携带有第二ACL规则信息的IKE协商的消息,所述第二ACL规则的目的地址为PIM协议组播地址;在本地自动镜像所述第二ACL规则后对IKE协商进行响应,建立对端设备到本设备的PIM协议报文的IPSEC隧道。
优选地,上述IPSec节点设备中,还包括:
组播表维护单元,用于在所述PIM协议报文的IPSec隧道上接收到对端设备发送加入组播组的PIM加入报文后,将接收到所述PIM加入报文的第一接口添加到所述组播组的出接口中;
所述组播转发单元,还用于根据所述组播组的出接口,将所述组播报文转发到所述第一接口,并通过本端设备和对端设备之间建立的所述组播组的IPSec隧道将所述组播报文发送到对端设备。
优选地,上述IPSec节点设备中,所述隧道建立单元,还用于基于本设备配置第三ACL规则向对端设备发送携带有第三ACL规则信息的IKE协商的消息,所述第三ACL规则的目的地址为所述组播组的地址;根据对端设备在自动镜像所述第三ACL规则后对IKE协商的响应,建立本设备到对端设备的组播组的IPSec隧道。
优选地,上述IPSec节点设备中,所述组播表维护单元,进一步用于在将所述第一接口添加到所述组播组的出接口后,将所述第一接口与发送所述PIM加入报文的对端设备相关联;
所述组播转发单元,还用于在将所述组播报文转发到所述第一接口后,查找隧道远端为所述第一接口所关联的对端设备的IPSec隧道,并利用查找到的IPSec隧道将所述组播报文发送出去。
优选地,上述IPSec节点设备中,所述对端设备和本设备在在不同的网段。
从以上所述可以看出,本发明实施例提供的IPSec隧道传输组播的方法及设备,通过修改完善现有的PIM协议和IPSec协议,实现了仅使用IPSec隧道就能让两个私网间建立PIM邻居关系并传输组播报文,克服了IPSec隧道不能支持组播的缺点。本发明实施例在路由器在IKE协商过程中,IPSec节点设备在判断出隧道对端配置的ACL规则的目的地址为组播地址时,自动对该ACL规则进行镜像处理生成对应的ACL规则并在本地进行自动配置,从而简化了IPSec隧道两端的ACL规则配置。并且,本发明实施例还通过将组播报文的出接口与发送PIM加入报文的节点设备相关联,在组播报文下发时,查找隧道远端为所述出接口所关联的节点设备的IPSec隧道,并利用查找到的IPSec隧道将所述组播报文发送出去,从而仅将该组播报文发送给已加入组播组的节点设备,避免了产生不必要的数据流量以及对资源的浪费。
附图说明
图1为现有技术的IPSec隧道示意图;
图2为本发明实施例所述IPSec隧道传输组播的方法的流程图;
图3为本发明实施例所述IPSec隧道传输组播的方法应用在主模式中的流程图;
图4为本发明实施例中一对多的IPSec隧道示意图;
图5为本发明实施例的IPSec节点设备的结构示意图。
具体实施方式
首先需要说明的是,本发明中所述的ACL规则特指用于IPSec的ACL规则,本发明中IPsec利用ACL规则来决定哪些数据需要加密。ACL规则匹配(permit)的报文将被IPSec加密,ACL规则不匹配(deny)的报文将不被加密。并且,为了在某一端加密的数据能在对端上被解密,要求在本地和远端路由器上配置的ACL规则是相互对应的(即互为镜像)。
本发明实施例中,对现有的PIM协议修改完善,在PIM邻居关系中增加了基于IPSec隧道的PIM邻居关系,IPSec节点设备之间可以通过IPSec隧道交互PIM hello报文而建立起基于IPSec隧道的PIM邻居关系,使得两个私网之间可以运行PIM协议,进而实现了组播在IPSec隧道中的传输。
根据目前的PIM协议标准,建立邻居关系的节点设备,如路由器,必须在同一个网段中,即目前PIM协议只支持在直连网段中的路由器之间建立起邻居关系。路由器接收到其它路由器发送的hello报文后,首先会判断该其它路由器与自己是否在同一个网段中,如果不是在同一个网段,则不会建立两者之间的邻居关系(可以根据该路由器的IP地址与掩码来判断路由器所属网段)。IPSec隧道两端的节点设备通常不在同一网段,因此IPSec隧道两端的节点设备之间也就无法建立PIM邻居。
本发明实施例对PIM和IPSec协议都进行了改动。
其中,对于PIM协议,在PIM邻居表中新增属性协议(Protocol)用于标注PIM邻居的连接方式(是IPSec隧道连接还是直连),将基于IPSec隧道的PIM邻居关系也记录在此表中,即,当在某一接口上运行了PIM协议,又应用了IPSec策略,该接口上收到的报文经IPSec解密后,对报文IP头做一个简单的判断:如果该报文为PIM hello报文,此时跳过判断该报文的源地址和本设备是否在同一网段的判断步骤,直接将对端设备加入到自身的PIM邻居表中。对于本节点设备在IPSec隧道上接收到的PIM hello报文,即使该报文的源地址与本节点设备不在同一网段,本节点设备仍然认为对端是PIM邻居,从而建立起IPSec隧道节点设备之间的PIM邻居关系。
对于IPSec协议,本实施例添加了组播IPSec策略,如果IKE协商的发起端的ACL规则中有目的地址为组播地址的ACL规则,则IKE协商的响应端自动对该ACL规则进行镜像,然后再协商建立相应的IPSec安全联盟(SA,Security Association),从而在发起端和响应端之间建立相应的组播隧道。
请参照图2,本发明实施例所述的IPSec隧道传输组播的方法,包括:
步骤11,IPSec隧道的本端设备自动镜像对端设备配置的目的地址为组播地址的ACL规则,并基于自身和对端设备各自配置的目的地址为PIM协议组播地址的ACL规则,建立自身和对端设备之间的PIM协议报文的IPSEC隧道。
这里,所述IPSec隧道的本端设备和远端设备在在不同的网段。所述IPSec隧道的本端设备自动镜像对端设备配置的目的地址为组播地址的ACL规则是:本端设备接收到对端设备发送的IKE协商的消息后,根据该消息中携带的触发本次IKE协商的ACL规则的信息,判断该ACL规则的目的地址是否为组播地址,如果是,则在本地自动镜像该ACL规则。
所述建立自身和对端设备之间的PIM协议报文的IPSEC隧道具体包括:
本端设备基于自身配置第一ACL规则向对端设备发送携带有第一ACL规则信息的IKE协商的消息,所述第一ACL规则的目的地址为PIM协议组播地址;本端设备根据对端设备在自动镜像所述第一ACL规则后对IKE协商的响应,建立本端设备到对端设备的PIM协议报文的IPSEC隧道;以及,本端设备接收对端设备基于第二ACL规则发送的携带有第二ACL规则信息的IKE协商的消息,所述第二ACL规则的目的地址为PIM协议组播地址;本端设备在本地自动镜像所述第二ACL规则后对IKE协商进行响应,建立对端设备到本端设备的PIM协议报文的IPSEC隧道。
步骤12,本端设备在所述PIM协议报文的IPSEC隧道上接收对端设备发送的PIM协议报文,并在判断出接收到的PIM协议报文为PIM hello报文时,直接将所述对端设备加入到自身的PIM邻居表中,建立本端设备和对端设备之间的PIM邻居关系。
步骤13,本端设备按照PIM协议转发组播组的报文。
这里,步骤13具体包括:本端设备在所述PIM协议报文的IPSec隧道上接收到对端设备发送加入组播组的PIM加入报文后,将接收到所述PIM加入报文的第一接口添加到所述组播组的出接口中;本端设备在下发所述组播组的组播报文时,根据所述组播组的出接口,将所述组播报文转发到所述第一接口,并通过本端设备和对端设备之间建立的所述组播组的IPSec隧道将所述组播报文发送到对端设备。
其中,所述组播组的IPSec隧道的建立包括以下步骤:本端设备基于自身配置第三ACL规则向对端设备发送携带有第三ACL规则信息的IKE协商的消息,所述第三ACL规则的目的地址为所述组播组的地址;本端设备根据对端设备在自动镜像所述第三ACL规则后对IKE协商的响应,建立本端设备到对端设备的组播组的IPSec隧道。
这里,需要指出的是,本实施例中PIM协议报文和组播组的组播报文都可以在同一个IPSec隧道上发送,只需要在本端设备和对端设备上配置ACL规则时,将该ACL规则的目的地址设置成一个包括多个组播地址的组播地址集合。该组播地址集合中要包括PIM协议组播地址224.0.0.13,还应该包括相应组播组的地址。组播地址集合可以采用反掩码的方式进行指定。因此,可以在步骤11中配置本端设备和对端设备的ACL规则时,将该ACL规则的目的地址设置成包括PIM协议组播地址和组播组地址的集合,然后再基于该ACL规则建立相应的IPSec隧道,从而在步骤13中可以利用该IPSec隧道来将组播组报文转发到对端设备。
在所述第一接口建立了与多个远端设备之间的组播组的IPSec隧道时,其中某些远端设备可能并没有要求点播该组播组,没有发送相应的PIM加入报文,因此,为了避免将组播报文通过IPSec隧道发送到这些远端设备上,在上述步骤13中,本端设备在将所述第一接口添加到所述组播组的出接口后,进一步将所述第一接口与发送所述PIM加入报文的对端设备相关联;然后,本端设备在将所述组播报文转发到所述第一接口后,可以进一步查找隧道远端为所述第一接口所关联的对端设备的IPSec隧道,并利用查找到的IPSec隧道将所述组播报文发送出去,从而避免了不必要的组播报文的发送,减少了带宽资源和设备资源的浪费。
为了更容易理解上述流程,以下将结合IKE协商中的主模式和野蛮模式对上述流程作详细的解释说明。
IKE通过两个阶段为IPsec进行密钥协商并建立SA,其中第一阶段建立一个ISAKMP SA,第二阶段建立用于最终的IP数据安全传输的IPsec SA。第一阶段有主模式(Main Mode)和野蛮模式(Aggressive Mode)两种IKE交换方法。
对应于主模式,仍然以图1所示应用环境为例进行说明。请参考图3,本发明实施例所述IPSec隧道传输组播的方法,包括以下步骤:
步骤201,在第一路由器和第二路由器上分别建立组播IPSec策略并绑定到各自路由器的公网接口上,将第一路由器和第二路由器的公网接口配置为各自IPSec隧道的本地和远端地址,并在第二路由器的公网接口上配置以下ACL规则:
rule 5 permit ip source 10.2.1.0 0.0.0.255 destination 225.0.0.0 0.255.255.255
rule 10 permit ip source 2.1.1.1 0.0.0.255 destination 224.0.0.13 0.0.0.0
在第一路由器的公网接口上配置以下ACL规则:
rule 11 permit ip source 1.1.1.1 0.0.0.255 destination 224.0.0.13 0.0.0.0
其中,rule 5用于组播组的组播报文传输,表示允许来自IP地址10.2.1.0~10.2.1.255(即组播组的源地址属于第二路由器所连接私网的网段所包括的IP地址)的报文向组播地址(225.0.0.0到225.255.255.255)发送;rule 10用于第二路由器的PIM协议报文传输,表示允许来自IP地址2.1.1.1~2.1.1.255的报文向PIM协议组播地址224.0.0.13发送,rule 11用于第一路由器的PIM协议报文传输,分别表示允许来自IP地址1.1.1.1~1.1.1.255的报文向PIM协议组播地址224.0.0.13发送。上述ACL规则中的地址范围通过反掩码进行表示。
步骤202,第一路由器和第二路由器分别根据其公网接口上配置ACL规则,向对端发起IKE协商;第一路由器和第二路由器分别接收对端发出的IKE协商的消息,该消息中包括有对端配置的ACL规则的相关信息,从而可以根据该消息判断出对端配置的ACL规则的目的地址为组播地址(如224.0.0.13、225.0.0.0),则镜像对端的ACL并配置到各自的公网接口上,并响应对端的IKE协商,协商建立相应的IPSec SA,从而建立相应的IPSec隧道。
具体的,第一路由器镜像第二路由器的ACL规则所得到的ACL规则如下:
rule 5 permit ip source 225.0.0.0 0.255.255.255 destination 10.2.1.0 0.0.0.255
rule 10 permit ip source 224.0.0.13 0.0.0.0 destination 2.1.1.1 0.0.0.255
第二路由器镜像第一路由器的ACL规则所得到的ACL规则如下:
rule 11 permit ip source 224.0.0.13 0.0.0.0 destination 1.1.1.1 0.0.0.255
于是,两个路由器的公网接口上都有三个ACL规则,通过IKE协商最终建立起组播组的IPSec SA,第一路由器到第二路由器之间的PIM协议报文的IPSec SA以及第二路由器到第一路由器之间的PIM协议报文的IPSec SA。分别对应于组播组的IPSec隧道,第一路由器到第二路由器之间的PIM协议报文的IPSec隧道以及第二路由器到第一路由器之间的PIM协议报文的IPSec隧道。
当然,也可以预先在第一路由器上配置ACL规则:rule 5 permit ip source225.0.0.0 0.255.255.255 destination 10.2.1.0 0.0.0.255,然后,由第二路由器镜像上述ACL规则后,再协商两个路由器间的组播组的IPSec SA,建立组播组的IPSec隧道。
本实施例中在路由器在IKE协商过程中,路由器在判断出隧道对端配置的ACL规则的目的地址为组播地址时,自动对该ACL规则进行镜像处理生成对应的ACL规则并配置在本地,从而简化了IPSec隧道两端的ACL规则配置。当然也可以预先在隧道两端手动配置相互镜像的ACL规则。
步骤203,第一路由器和第二路由器之间通过PIM协议报文的IPSec隧道交互PIM hello报文,hello报文经PIM协议报文的IPSec SA加密后被传送到对端;对端利用PIM协议报文的IPSec SA对报文解密,然后根据该报文IP头进行相应处理:如果该报文为PIM hello报文,即使该报文的源地址与本端地址不在同一网段,仍将相应信息填入PIM邻居表中(PIM邻居表中增加新属性Protocol)。本实施例中第一路由器上的PIM邻居表的属性可如下所示:
VPN-Instance:public net
Total Number of Neighbors=2
Neighbor Interface Protocol Uptime Expires Dr-Priority
2.1.1.1 S2 IPSec 00:00:04 00:01:41 1
10.1.1.1 E1 Direct 16:31:04 00:01:37 1
上表中,第一个邻居为第二路由器(2.1.1.1),Protocol属性为IPSec,表示第二路由器是通过IPSec隧道连接第一路由器,第二路由器为基于IPSec隧道的PIM邻居。第二个邻居为主机A(10.1.1.1),连接方式为直连(Direct),主机A为第一路由器所连接的私网1中的运行PIM协议的一个主机。
步骤204,第一、第二路由器建立邻居关系后,私网1中的某个主机请求点播私网2中的信息,第一路由器收到该主机发送的请求后,向它的邻居路由器发送加入组播组的PIM加入报文,该组播组的源地址属于所述第二路由器连接的私网的网段。其中向作为邻居路由器的第一路由器发送所述PIM加入报文是通过PIM协议报文的IPSec隧道进行发送;第二路由器在收到所述组播组的PIM加入报文后,在所述组播组的组播转发表中将接收到该报文的公网接口添加到所述组播组的出接口列表,从而在下发所述组播组的组播报文时,通过该公网接口将组播报文下发到第一路由器。
这里,下发所述组播组的组播报文时,第二路由器首先通过查找所述组播组的组播转发表,获取出接口后将所述组播组的组播报文发送到所述公网接口,进而与该公网接口上配置的ACL规则相匹配,发现与上述rule 5 ACL规则相匹配,于是根据该rule 5 ACL规则所对应的IPSec SA,对所述组播组的组播报文签名加密处理,然后再添加上单播报头发送出去,该单播报头的目的地址为第一路由器(S1接口),从而将组播报文下发到第一路由器。本实施例中所述组播报文都是按照IPSec隧道模式进行封装。
在图1所示的主模式中,第二路由器的公网接口S2仅与第一路由器的公网接口S1之间建立有IPSec隧道。在野蛮模式中,IPSec隧道存在一对多的应用环境,如图4所示。当第二路由器为总部路由器时,第二路由器通常会在其公网接口S2上与多个分部路由器(如图4中的第一、第三路由器)分别建立IPSec隧道连接。由于总部、分部之间的IKE对等体采用野蛮模式进行IEK第一阶段协商,因此,总部只知道分部的名称(remote-name),而不知道分部的IP地址(remote-address)。
当第二路由器在S2接口上与第一路由器和第三路由器均建立了某个组播组的IPSec隧道后,但仅有第一路由器加入了该组播组。按照现有的组播转发流程,第二路由器在下发该组播组时,根据该组播组的组播转发表项将组播报文转发到S2接口上,然后将该组播报文与S2接口上配置的rule ACL规则匹配上后,根据rule 5 ACL规则对应的IPSec SA进行签名加密后下发。在一对多的情况下,第二路由器利用rule 5 ACL规则,与第一、第三路由器分别建立了IPSec SA,从而建立了两个IPSec SA隧道。如果按照现有的下发流程,则第二路由器将分别利用两个IPSec SA对组播报文进行处理后,然后分别下发到第一、第三路由器,即,没有加入该组播组的第三路由器也将收到该组播组的组播报文,从而产生了不必要的数据流量,浪费了网络带宽和设备资源,甚至会导致组播泛洪的发生。
本发明另一实施例对上述野蛮模式下的组播报文传输做了进一步改进,以下进行详细说明。
步骤301,第二路由器分别建立与第一路由器和第三路由器之间的邻居关系,并分别建立与第一、第三路由器间的PIM协议报文的IPSec SA(IPSec隧道)、组播组的IPSec SA(IPSec隧道)。具体可以采用上述步骤201~203中相同的处理,此处不再赘述。
步骤302,第一路由器所连接的私网1中的某个主机请求点播私网2中的信息,第一路由器收到该主机发送的请求后,向第二路由器发送加入组播组的PIM加入报文,该组播组的源地址属于所述第二路由器连接的私网的网段;第二路由器在收到所述组播组的PIM加入报文后,在所述组播组的组播转发表中将接收到该报文的公网接口S2添加到所述组播组的出接口列表,并记录下第一路由器的IP地址,将第一路由器的IP地址与出接口S2相关联。
这里,本实施例对组播转发表进行了改动,在出接口列表中,除了接口信息外,新加一个字段与该出接口相关联,该字段用于表明该出接口对端的IP地址。例如,第二路由器的组播组(225.1.1.1)的组播转发表可能包括以下信息:
Multicast Forwarding Table of VPN-Instance:public net
Total 1 entry
Total 1 entry matched
00001.(10.2.1.1,225.1.1.1)
MID:0,Flags:0x100000:0
Uptime:00:00:30,Timeout in:00:03:18
Incoming interface:GigabitEthernet3/0/0
List of 1 outgoing interfaces:
1:S2
peer-address:1.1.1.1
Matched 3154 packets(3392365 bytes),Wrong If 0 packets
Forwarded 3154 packets(3392365 bytes)
上述组播转发表中,表示组播组(225.1.1.1)的出接口(outgoing interfaces)为S2,且出接口S2关联的对端地址(peer-address)为1.1.1.1,即第一路由器。
步骤303,第二路由器下发所述组播组的组播报文时,首先通过查找所述组播组的组播转发表,获取出接口S2以及与S2相关联的第一路由器的IP地址;然后在S2接口所对应的所有IPSec隧道中进行查找,查找到隧道远端为第一路由器的IP地址的IPSec隧道,并利用查找到的IPSec隧道将所述组播报文发送到第一路由器。实施例中所述组播报文都是按照IPSec隧道模式进行封装。
上述流程中,在组播组的组播转发表项中,将组播报文的出接口和已加入组播组的路由器的IP地址相关联,从而在出接口与多个远端路由器建立了组播组的IPSec隧道时,可以根据出接口关联的隧道远端信息,选择出向已加入该组播组的隧道远端进行组播报文的发送,从而避免了将组播报文发送给其它未加入该组播组的路由器,避免了产生不必要的数据流量以及对资源的浪费。
基于以上所述的IPSec隧道传输组播的方法,本发明实施例还提供了用于实现上述方法的IPSec节点设备。
请参照图5,本发明实施例所述的IPSec节点设备包括:
隧道建立单元,用于自动镜像IPSec隧道的对端设备所配置的目的地址为组播地址的ACL规则,并基于本设备和对端设备各自配置的目的地址为PIM协议组播地址的ACL规则,建立本设备和对端设备之间的PIM协议报文的IPSEC隧道;所述对端设备和本设备在在不同的网段;
邻居建立单元,用于在所述PIM协议报文的IPSEC隧道上接收对端设备发送的PIM协议报文,并在判断出接收到的PIM协议报文为PIM hello报文时,直接将所述对端设备加入到自身的PIM邻居表中,建立本端设备和对端设备之间的PIM邻居关系;
组播转发单元,用于按照PIM协议进行组播组报文的转发。
优选地,所述隧道建立单元,还可以用于在接收到对端设备发送的IKE协商的消息后,根据该消息中携带的触发本次IKE协商的ACL规则的信息,判断该ACL规则的目的地址是否为组播地址,如果是,则在本地自动镜像该ACL规则。
优选地,所述隧道建立单元,还可以用于基于本设备配置第一ACL规则向对端设备发送携带有第一ACL规则信息的IKE协商的消息,所述第一ACL规则的目的地址为PIM协议组播地址;根据对端设备在自动镜像所述第一ACL规则后对IKE协商的响应,建立本设备到对端设备的PIM协议报文的IPSEC隧道;以及,用于接收对端设备基于第二ACL规则发送的携带有第二ACL规则信息的IKE协商的消息,所述第二ACL规则的目的地址为PIM协议组播地址;在本地自动镜像所述第二ACL规则后对IKE协商进行响应,建立对端设备到本设备的PIM协议报文的IPSEC隧道。
优选地,图5所示的IPSec节点设备,还可以包括:
组播表维护单元,用于在所述PIM协议报文的IPSec隧道上接收到对端设备发送加入组播组的PIM加入报文后,将接收到所述PIM加入报文的第一接口添加到所述组播组的出接口中;
所述组播转发单元,还可以用于根据所述组播组的出接口,将所述组播报文转发到所述第一接口,并通过本端设备和对端设备之间建立的所述组播组的IPSec隧道将所述组播报文发送到对端设备。
这里,优选地,所述隧道建立单元,还可以用于基于本设备配置第三ACL规则向对端设备发送携带有第三ACL规则信息的IKE协商的消息,所述第三ACL规则的目的地址为所述组播组的地址;根据对端设备在自动镜像所述第三ACL规则后对IKE协商的响应,建立本设备到对端设备的组播组的IPSec隧道。
为了避免不必要的组播报文发送,节约网络带宽和设备资源,所述组播表维护单元,还可以进一步用于在将所述第一接口添加到所述组播组的出接口后,将所述第一接口与发送所述PIM加入报文的对端设备相关联;所述组播转发单元,还用于在将所述组播报文转发到所述第一接口后,查找隧道远端为所述第一接口所关联的对端设备的IPSec隧道,并利用查找到的IPSec隧道将所述组播报文发送出去。
综上所述,本发明实施例通过修改现有的PIM协议和IPSec协议,实现了仅使用IPSec隧道就能让两个私网间建立PIM邻居关系并传输组播报文,克服了IPSec隧道不能支持组播的缺点。
最后应当说明的是,以上实施例仅用以说明本发明的技术方案而非限制,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神范围,其均应涵盖在本发明的权利要求范围当中。
Claims (12)
1.一种因特网协议安全IPSec隧道传输组播的方法,其特征在于,包括:
IPSec隧道的本端设备自动镜像对端设备配置的目的地址为组播地址的访问控制列表ACL规则,并基于自身和对端设备各自配置的目的地址为协议无关组播PIM协议组播地址的ACL规则,建立自身和对端设备之间的PIM协议报文的IPSec隧道;
本端设备在所述PIM协议报文的IPSec隧道上接收对端设备发送的PIM协议报文,并在判断出接收到的PIM协议报文为PIM hello报文时,跳过判断该PIM hello报文的源地址和本设备是否在同一网段的判断步骤,直接将所述对端设备加入到自身的PIM邻居表中,建立本端设备和对端设备之间的PIM邻居关系;
本端设备按照PIM协议转发组播组的报文;
其中,所述IPSec隧道的本端设备和对端设备在不同的网段。
2.如权利要求1所述的方法,其特征在于,所述IPSec隧道的本端设备自动镜像对端设备配置的目的地址为组播地址的ACL规则是:本端设备接收到对端设备发送的密钥管理协议IKE协商的消息后,根据该消息中携带的触发本次IKE协商的ACL规则的信息,判断该ACL规则的目的地址是否为组播地址,如果是,则在本地自动镜像该ACL规则。
3.如权利要求2所述的方法,其特征在于,所述建立自身和对端设备之间的PIM协议报文的IPSec隧道包括:
本端设备基于自身配置第一ACL规则向对端设备发送携带有第一ACL规则信息的IKE协商的消息,所述第一ACL规则的目的地址为PIM协议组播地址;本端设备根据对端设备在自动镜像所述第一ACL规则后对IKE协商的响应,建立本端设备到对端设备的PIM协议报文的IPSec隧道;
以及,本端设备接收对端设备基于第二ACL规则发送的携带有第二ACL规则信息的IKE协商的消息,所述第二ACL规则的目的地址为PIM协议组播地址;本端设备在本地自动镜像所述第二ACL规则后对IKE协商进行响应,建立对端设备到本端设备的PIM协议报文的IPSec隧道。
4.如权利要求1所述的方法,其特征在于,所述本端设备按照PIM协议转发组播组的报文包括:
本端设备在所述PIM协议报文的IPSec隧道上接收到对端设备发送加入组播组的PIM加入报文后,将接收到所述PIM加入报文的第一接口添加到所述组播组的出接口中;
本端设备在下发所述组播组的组播报文时,根据所述组播组的出接口,将所述组播报文转发到所述第一接口,并通过本端设备和对端设备之间建立的所述组播组的IPSec隧道将所述组播报文发送到对端设备。
5.如权利要求4所述的方法,其特征在于,建立所述组播组的IPSec隧道包括:
本端设备基于自身配置第三ACL规则向对端设备发送携带有第三ACL规则信息的IKE协商的消息,所述第三ACL规则的目的地址为所述组播组的地址;本端设备根据对端设备在自动镜像所述第三ACL规则后对IKE协商的响应,建立本端设备到对端设备的组播组的IPSec隧道。
6.如权利要求5所述的方法,其特征在于,
本端设备在将所述第一接口添加到所述组播组的出接口后,进一步将所述第一接口与发送所述PIM加入报文的对端设备相关联;
本端设备在将所述组播报文转发到所述第一接口后,进一步查找隧道远端为所述第一接口所关联的对端设备的IPSec隧道,并利用查找到的IPSec隧道将所述组播报文发送出去。
7.一种IPSec节点设备,其特征在于,包括:
隧道建立单元,用于自动镜像IPSec隧道的对端设备所配置的目的地址为组播地址的访问控制列表ACL规则,并基于本节点设备和对端设备各自配置的目的地址为PIM协议组播地址的ACL规则,建立本节点设备和对端设备之间的PIM协议报文的IPSec隧道,所述对端设备和本节点设备在不同的网段;
邻居建立单元,用于在所述PIM协议报文的IPSec隧道上接收对端设备发送的PIM协议报文,并在判断出接收到的PIM协议报文为PIM hello报文时,跳过判断该PIM hello报文的源地址和本设备是否在同一网段的判断步骤,直接将所述对端设备加入到自身的PIM邻居表中,建立本节点设备和对端设备之间的PIM邻居关系;
组播转发单元,用于按照PIM协议转发组播组的报文。
8.如权利要求7所述的IPSec节点设备,其特征在于,
所述隧道建立单元,还用于在接收到对端设备发送的密钥管理协议IKE协商的消息后,根据该消息中携带的触发本次IKE协商的ACL规则的信息,判断该ACL规则的目的地址是否为组播地址,如果是,则在本地自动镜像该ACL规则。
9.如权利要求8所述的IPSec节点设备,其特征在于,
所述隧道建立单元,还用于基于本设备配置第一ACL规则向对端设备发送携带有第一ACL规则信息的IKE协商的消息,所述第一ACL规则的目的地址为PIM协议组播地址;根据对端设备在自动镜像所述第一ACL规则后对IKE协商的响应,建立本设备到对端设备的PIM协议报文的IPSec隧道;以及,用于接收对端设备基于第二ACL规则发送的携带有第二ACL规则信息的IKE协商的消息,所述第二ACL规则的目的地址为PIM协议组播地址;在本地自动镜像所述第二ACL规则后对IKE协商进行响应,建立对端设备到本设备的PIM协议报文的IPSec隧道。
10.如权利要求7所述的IPSec节点设备,其特征在于,还包括:
组播表维护单元,用于在所述PIM协议报文的IPSec隧道上接收到对端设备发送加入组播组的PIM加入报文后,将接收到所述PIM加入报文的第一接口添加到所述组播组的出接口中;
所述组播转发单元,还用于根据所述组播组的出接口,将所述组播报文转发到所述第一接口,并通过本节点设备和对端设备之间建立的所述组播组的IPSec隧道将所述组播报文发送到对端设备。
11.如权利要求10所述的IPSec节点设备,其特征在于,
所述隧道建立单元,还用于基于本设备配置第三ACL规则向对端设备发送携带有第三ACL规则信息的IKE协商的消息,所述第三ACL规则的目的地址为所述组播组的地址;根据对端设备在自动镜像所述第三ACL规则后对IKE协商的响应,建立本设备到对端设备的组播组的IPSec隧道。
12.如权利要求11所述的IPSec节点设备,其特征在于,
所述组播表维护单元,进一步用于在将所述第一接口添加到所述组播组的出接口后,将所述第一接口与发送所述PIM加入报文的对端设备相关联;
所述组播转发单元,还用于在将所述组播报文转发到所述第一接口后,查找隧道远端为所述第一接口所关联的对端设备的IPSec隧道,并利用查找到的IPSec隧道将所述组播报文发送出去。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100813928A CN101515859B (zh) | 2009-04-02 | 2009-04-02 | 一种因特网协议安全隧道传输组播的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100813928A CN101515859B (zh) | 2009-04-02 | 2009-04-02 | 一种因特网协议安全隧道传输组播的方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101515859A CN101515859A (zh) | 2009-08-26 |
CN101515859B true CN101515859B (zh) | 2011-07-27 |
Family
ID=41040165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100813928A Expired - Fee Related CN101515859B (zh) | 2009-04-02 | 2009-04-02 | 一种因特网协议安全隧道传输组播的方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101515859B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102318287B (zh) * | 2011-06-30 | 2014-09-17 | 华为技术有限公司 | 路由器邻居建立方法和设备 |
CN104253733B (zh) * | 2013-06-26 | 2017-12-19 | 北京思普崚技术有限公司 | 一种基于IPSec的VPN多方连接方法 |
CN104426780B (zh) * | 2013-08-30 | 2018-01-23 | 华为技术有限公司 | 数据转发方法和系统 |
CN103546279B (zh) * | 2013-10-28 | 2017-01-18 | 成都卫士通信息产业股份有限公司 | 一种安全组播密钥管理方法 |
CN104283796B (zh) * | 2014-10-23 | 2018-02-09 | 新华三技术有限公司 | 一种组播分发树建立方法和装置 |
CN104333554B (zh) * | 2014-11-12 | 2018-06-15 | 新华三技术有限公司 | 一种因特网协议安全安全联盟协商方法和装置 |
CN108769292B (zh) * | 2018-06-29 | 2021-04-13 | 北京百悟科技有限公司 | 报文数据处理方法及装置 |
CN110113202B (zh) * | 2019-04-30 | 2022-02-25 | 新华三信息安全技术有限公司 | 一种IPsec诊断方法、装置及本端设备 |
CN111556084B (zh) * | 2020-06-30 | 2022-08-23 | 成都卫士通信息产业股份有限公司 | Vpn设备间的通信方法、装置、系统、介质和电子设备 |
CN113472667B (zh) * | 2021-06-29 | 2022-06-21 | 新华三信息安全技术有限公司 | 一种报文转发方法、装置、节点设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101102253A (zh) * | 2007-08-13 | 2008-01-09 | 杭州华三通信技术有限公司 | 在IPsec隧道中传输组播的方法、分支节点和中心节点 |
-
2009
- 2009-04-02 CN CN2009100813928A patent/CN101515859B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101102253A (zh) * | 2007-08-13 | 2008-01-09 | 杭州华三通信技术有限公司 | 在IPsec隧道中传输组播的方法、分支节点和中心节点 |
Also Published As
Publication number | Publication date |
---|---|
CN101515859A (zh) | 2009-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101515859B (zh) | 一种因特网协议安全隧道传输组播的方法及设备 | |
US11165604B2 (en) | Method and system used by terminal to connect to virtual private network, and related device | |
US7917948B2 (en) | Method and apparatus for dynamically securing voice and other delay-sensitive network traffic | |
US7373660B1 (en) | Methods and apparatus to distribute policy information | |
CA2543097C (en) | System and method for grouping multiple vlans into a single 802.11 ip multicast domain | |
RU2438254C2 (ru) | Способ динамического соединения для виртуальных сетей частного пользования | |
CN100502345C (zh) | 在IPsec隧道中传输组播的方法、分支节点和中心节点 | |
CN104023022B (zh) | 一种IPSec SA的获取方法和装置 | |
KR20080087863A (ko) | 멀티-홉 무선 네트워크에서의 무선 라우터 보조 보안핸드오프(wrash) | |
CN101163088B (zh) | 组播数据的传输方法和设备 | |
CN101515896B (zh) | 安全套接字层协议报文转发方法、装置、系统及交换机 | |
CN101499972A (zh) | Ip安全报文转发方法及装置 | |
US20100303072A1 (en) | Multicast Source Mobility | |
Liyanage et al. | A scalable and secure VPLS architecture for provider provisioned networks | |
Liyanage et al. | Securing virtual private LAN service by efficient key management | |
CN100415034C (zh) | 一种使移动节点实现自代理功能的方法 | |
Liyanage et al. | Secure hierarchical virtual private LAN services for provider provisioned networks | |
CN102857918A (zh) | 一种车载通信系统 | |
KR100728292B1 (ko) | 가상 랜 네트워크 및 그 서비스 제공 방법 | |
CN115941389A (zh) | 一种实现IPSec VPN二层组网的方法及IPSec VPN网关 | |
CN112235318B (zh) | 实现量子安全加密的城域网系统 | |
CN112910791B (zh) | 导流系统及其方法 | |
CN115473729A (zh) | 数据传输方法、网关、sdn控制器及存储介质 | |
CN108259292B (zh) | 建立隧道的方法及装置 | |
CN115296988B (zh) | 一种实现IPSec网关动态组网的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CP03 | Change of name, title or address | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110727 Termination date: 20200402 |
|
CF01 | Termination of patent right due to non-payment of annual fee |