一种组播业务实现方法及其设备的制作方法

文档序号:7861743阅读:109来源:国知局
专利名称:一种组播业务实现方法及其设备的制作方法
技术领域
本发明涉及通信领域的组播技术,尤其涉及一种组播业务实现方法及其设备。
背景技术
视频点播业务中的实况点播业务存在多方点播者同时观看某一摄像机场景的需求。显然,IP组播是解决这一需求的很好途径。图I示出了一种典型的组网,其中的路由器上启用了 PIM(Protocol IndependentMulticast,协议无关组播)协议。如果两台监控主机(点播客户端)和电视墙要同时点播同 一个业务终端的视频流,那么,摄像机只需要出一路组播流,路由器Rtr-I复制出两份组播流,路由器Rtr-3复制出两份组播流。如此,相对于单播的实况点播,摄像机的压力就小了很多,不用负责流的复制,网络设备根据接收者的需求在合适的节点复制组播流,网络流量压力也小了很多。业务终端的安全等级相对较高,需要有一定权限的客户端才能点播业务终端的视频流,而权限级别低的客户端不能点播对应的业务终端的视频流。在视频点播的组播业务实现过程中,虽然可以通过管理服务器在监控业务关系建立时,通过比较业务终端和客户端的权限等级信息,限制低权限的客户端点播高安全等级的业务终端,但是,低权限的客户端可以通过侦听高权限客户端发送的IGMP (InternetGroup Management Protocol,互联网组管理协议)报文,获取到高安全等级的业务终端对应的组播组,从而自身构造对应组播组的IGMP成员报告报文,实现接收高安全等级的业务终端的非法目的。

发明内容
本发明实施例提供了一种组播业务实现方法及其设备,用以提高组播业务的安全性。本发明实施例提供的组播业务实现方法,包括
组播接收侧指定路由器DR在接收到Internet组管理协议IGMP成员报告报文后,获取其中携带的组播接收客户端的权限等级信息,并将其设置在相应组播相关路由表项中的对应出接口上,所述对应出接口为收到所述IGMP成员报告报文的接口 ;
所述组播接收侧DR接收到相应组播数据报文后,若查询到相应组播转发表项,则根据相应的组播转发表项转发所述组播数据报文,若未查询到相应组播转发表项,则根据相应的组播相关路由表项生成相应的出接口设置有组播接收客户端的权限等级信息的组播路由表项,根据该组播路由表项生成相应的组播转发表项,并根据生成的相应的组播转发表项转发所述组播数据报文;其中,生成相应的组播转发表项的过程包括获取所述组播数据报文中携带的组播组的业务等级信息并将其设置在相应的组播路由表项中,比较所述业务等级信息和相应组播路由表项中出接口上设置的权限等级信息,并将权限等级不低于业务等级的出接口添加到相应组播转发表项的出接口列表中。
本发明实施例提供的路由交换设备,用于组播接收侧DR,该路由交换设备包括表处理模块、转发处理模块,其中
表处理模块,用于在本设备接收到Internet组管理协议IGMP成员报告报文后,获取其中携带的组播接收客户端的权限等级信息,并将其设置在相应组播相关路由表项中的对应出接口上,所述对应出接口为收到所述IGMP成员报告报文的接口 ;以及,根据所述转发处理模块的指示,生成相应的出接口设置有组播接收客户端的权限等级信息的组播路由表项,以及根据该组播路由表项生成相应的组播转发表项,其中,生成相应的组播转发表项的过程包括获取组播数据报文中携带的组播组的业务等级信息并将其设置在相应的组播路由表项中,比较所述业务等级信息和相应组播路由表项中出接口上设置的权限等级信息,并将权限等级不低于业务等级的出接口添加到相应组播转发表项的出接口列表中;
转发处理模块,用于在接收到相应组播数据报文后,若查询到相应组播转发表项,则根据相应的组播转发表项转发所述组播数据报文,若未查询到相应组播转发表项,则指示所 述表处理模块根据相应的组播相关路由表项生成相应的出接口设置有组播接收客户端的权限等级信息的组播路由表项,根据该组播路由表项生成相应的组播转发表项,并根据生成的相应的组播转发表项转发所述组播数据报文。本发明实施例提供的二层交换设备,用于组播接收客户端和组播接收侧DR之间,与组播接收客户端直连并使能了 IGMP-Snooping,该二层交换设备包括
IGMP-Snooping表处理模块,用于在本设备侦听到组播接收客户端的互联网组管理协议IGMP成员报告报文后,执行
获取其中携带的组播接收客户端的权限等级信息;
根据所述IGMP成员报告报文的组播地址和接收端口匹配相应的IGMP-Snooping表项;若匹配到相应IGMP-Snooping表项,则比较所述IGMP成员报告报文的发包序列号与相应IGMP-Snooping表项中的发包序列号,若前者不大于后者,则丢弃所述IGMP成员报告报文,否则,将相应IGMP-Snooping表项中的发包序列号更新为所述IGMP成员报告报文的发包序列号;若未匹配到相应IGMP-Snooping表项,则根据所述IGMP成员报告报文的组播地址、接收端口、发包序列号以及所述IGMP成员报告报文中携带的组播接收客户端的权限等级信息生成相应IGMP-Snooping表项;
转发处理模块,用于在本设备从组播接收侧DR接收到组播数据报文后,获取其中携带的业务等级信息,根据所述组播数据报文的组播组查询相应IGMP-Snooping表项,若所述相应IGMP-Snooping表项中没有设置有业务等级信息,则比较该业务等级信息与该相应IGMP-Snooping表项的成员端口的权限等级信息,若前者不高于后者,则在该相应IGMP-Snooping表项中设置该业务等级信息,并从该相应IGMP-Snooping表项的成员端口转发该组播数据报文,若前者高于后者,则删除该相应IGMP-Snooping表项;若所述相应IGMP-Snooping表项中设置有业务等级信息,则根据所述相应IGMP-Snooping表项转发所述组播数据报文。本发明的上述实施例,一方面,在IGMP成员报告中添加了组播接收客户端的权限等级信息,以使组播接收侧DR在相应组播相关路由表项中设置出接口的权限等级;另一方面,在组播数据报文中添加了组播业务的业务等级信息,进而可使组播接收侧DR根据组播业务等级和客户端权限等级,仅将组播数据报文从权限等级不低于相应业务等级的出接口转发,即,将组播数据报文转发给其权限等级不低于相应业务等级的客户端,保证了组播业务的安全性。


图I为现有技术中视频点播业务组网不意 图2为本发 明实施例一中组播接收客户端与组播源建立组播业务关系的流程示意图; 图3为本发明实施例一中组播数据报文转发流程示意 图4为本发明实施例二中组播接收客户端与组播源建立组播业务关系的流程示意图; 图5为本发明实施例二中组播数据报文转发流程示意 图6为本发明实施例中的组播业务系统组网示意 图7为本发明实施例提供的路由交换设备的结构示意 图8为本发明实施例提供的二层交换设备的结构示意图。
具体实施例方式针对现有技术存在的上述问题,本发明实施例提供了一种提高组播业务安全性的组播业务实现方案。下面结合附图对本发明实施例进行详细描述。实施例一
本实施例描述了组播业务实现流程,应用于采用了组播路由协议的系统架构。该系统架构中的路由器上启用了 P頂协议,组播接收客户端设备与组播接收侧DR (DesignatedRouter,指定路由器)上启用了 IGMP协议。组播接收客户端设备上配置有权限等级(即组播业务的权限等级,以下同),组播源上配置有业务等级(即组播业务的业务等级,以下同)。当组播接收客户端欲建立与组播源的组播业务关系时,如图2所述,其组播业务建立流程可包括
步骤201,组播接收客户端发送IGMP成员报告报文以请求加入组播组,该报文中携带该组播接收客户端的权限等级信息。具体实施时,当组播接收客户端欲建立与组播源的组播业务关系时,首先从该业务系统架构中的管理服务器获取组播源的组播地址(或组播组),然后发送对应组播地址的IGMP成员报告报文,并在报文中携带该客户端的权限等级信息。步骤202,组播接收侧DR收到携带有客户端权限等级信息的IGMP成员报告报文后,在所请求加入的组播组对应的PM (*,G)表项的出接口中,设置相应出接口的权限等级为该客户端权限等级,所述相应出接口是指接收该IGMP成员报告报文的接口。具体实施时,组播接收侧DR收到IGMP成员报告报文后,若判断针对所请求加入的组播组还未建立有PM (*,G)表项,则首先生成PM (*,G)表项,其中G表示所请求加入的组播组,*表示任意组播源,该表项的出接口为该组播接收侧DR接收该IGMP成员报告报文的接口,该组播接收侧DR在该表项中的该出接口上添加该客户端的权限等级信息;若判断针对所请求加入的组播组已经建立有P頂(*,G)表项,则将接收该IGMP成员报告报文的接口添加到该表项的出接口中,并在该出接口上添加该客户端的权限等级信息。步骤203,组播接收侧DR通过向组播源方向发送PM (*,G)加入报文,建立组播接收侧DR到组播源侧之间的组播转发路径。具体实施时,可采用现有方式实现该组播转发路径的建立过程。例如,组播接收侧DR逐跳向组播源方向发送PM (*,G)加入报文,从该组播接收侧DR到RP所经过的路由器就形成了 RPT (Rendezvous Point Tree,共享树或汇集树)分支(RPT以RP为根,以DR为叶子),这些路由器都在其组播转发表中生成了(*,G)表项;RP接收到该PM (*,G)加入报文后,向组播源方向发送PM (S,G)加入报文,从RP到组播源所经过的路由器就形成了 SPT(Shortest Path Tree,最短路径树)分支,这 些路由器都在其组播转发表中生成(S,G)表项。组播数据报文可从组播源经STP达到RP,再经RPT到达组播接收侧DR。当然,还可以采用其它方式建立组播源到组播接收侧DR的组播转发路径,本发明实施例对此不做限制。进一步的,若组播接收侧DR的同一个接口下收到多个客户端发送的IGMP成员报告报文,则以收到的权限等级最高的信息作为PIM (*,G)表项中该出接口的权限等级信息。具体的,当组播接收侧DR从接口 I接收到IGMP成员报告报文后,将该报文中携带的权限等级4作为PIM (*,G)表项中出接口 I的权限等级,后续从接口 I再次接收到IGMP成员报告报文,若该报文中携带的权限等级为5,则将PM (*,G)表项的出接口 I的业务权限等级更新为5 ;若再次接收到的IGMP成员报告报文中携带的权限等级为3,则不更新PIM (*,G)表项中出接口I的权限等级。本实施例给出了组播接收侧DR收到IGMP成员报告报文后的一种具体实现过程,该过程可包括
组播接收侧DR从接收到的IGMP成员报告报文中获取组播接收客户端的权限等级后,根据该IGMP成员报告报文的组播地址、接收接口,匹配相应的IGMP表项;
若未匹配到相应IGMP表项,说明该接口第一次接收到该组播组的IGMP成员报告报文,则根据该IGMP成员报告报文对应的组播组、接收接口、源IP地址和发包序列号及权限等级信息生成相应IGMP表项;当存在对应PM (*,G)表项时,在该PM (*,G)表项中添加对应的出接口并设置组播接收客户端的权限等级并同步到相应组播路由表项中,对已生成的相应组播转发表项进行刷新(刷新过程可包括比较该组播路由表项中的业务等级信息和所添加的出接口上设置的权限等级信息,若该权限等级不低于该业务等级,则将该出接口添加到相应组播转发表项的出接口列表中。其中,组播转发表项的生成过程以及组播路由表项中的业务等级的设置过程,请见后续描述);当不存在对应P頂(*,G)表项时,生成相应的PIM (*,G)表项并添加对应出接口及设置组播接收客户端的权限等级;
若匹配到相应IGMP表项,说明该接口不是第一次接收到该组播组的IGMP成员报告报文,则比较该IGMP表项的源IP地址与IGMP成员报告报文的源IP地址是否相同,如果该两个源IP地址不相同,则比较从IGMP成员报告报文中获取的组播接收客户端的权限等级/[目息与匹配到的IGMP表项中的权限等级彳目息,并在如者闻于后者时,将_■者权限等级闻者所对应的源IP地址和权限等级更新到该IGMP表项中,并将高的权限等级更新到相应PIM(*,G)表项中对应的出接口上,以使相应PM (*,G)表项中的对应出接口的组播接收客户端的权限等级信息与该IGMP表项中的权限等级信息保持一致,并同步到组播路由表项;如果该两个源IP地址相同,则比较IGMP成员报告报文发包序列号与相应IGMP表项中的发包序列号,若前者不大于后者,则丢弃该IGMP成员报告报文,否则,将相应IGMP表项中的发包序列号更新为该IGMP成员报告报文的发包序列号,并更新该IGMP表项的老化时间,这样,可以防止他人伪造报文的攻击。当组播源发送组播数据报文时,将业务等级信息携带于组播数据报文,以使组播接收侧DR在生成组播转发表项时,仅将权限等级高于或等于相应业务等级的出接口添加到组播路由转发表项中,从而避免将组播数据报文转发给业务权限等级低的组播接收客户端。本发明实施例中,组播数据报文转发流程的一种具体实现可如图3所示,包括 步骤301,组播源发送组播数据报文,在组播数据报文中携带该组播源的业务等级信
肩、O
具体实施时,可以将业务等级信息配置到组播数据报文的DSCP (DifferentiatedServices Code Point,差分服务代码点)字段。此种情况下,需要在组播组网中的路由器上,配置组播数据报文DSCP权限映射(即定义DSCP值所对应的PHB(Per-Hop-Behavior,每下一跳行为)),以防止组播数据报文与其他报文在出端口拥塞时抢占高优先队列,或者被网络设备配置的QoS (Quality of Service,服务质量)策略更改DSCP值。优选的,可以在组播IP报文头中增加自定义选项,用来表示业务等级。步骤302,组播数据报文沿组播转发路径到达组播接收侧DR后,接收侧DR查询组播转发表,若未查询到相应组播转发表项,则转入步骤303 ;若查询到相应组播转发表项,则转入步骤304。步骤303,组播接收侧DR生成组播转发表项,然后转入步骤304。具体实施时,组播接收侧DR若未匹配到相应组播转发表项,则先根据相应PIM(*,G)表项生成对应组播路由表项,在对应的组播路由表项中,添加该业务等级信息(如可在组播路由表项中设置一标识,用于表明相应组播源S的业务等级),并同步相同组的PIM(*,G)表项的客户端的权限等级信息的出接口信息到组播路由表项,然后根据该组播路由表项生成组播转发表项。在生成组播转发表项时,组播接收侧DR比较该组播路由表项的业务等级信息和该表项出接口中设置的组播接收客户端的权限等级信息,若客户端权限等级不低于业务等级,则将对应出接口添加到组播转发表中,否则不添加对应出接口到组播转发表项中。步骤304,组播接收侧DR根据组播转发表项进行组播数据报文转发处理。具体实施时,组播接收侧DR按照现有方式,根据组播转发表项中的出接口,将组播数据报文复制到各出接口处转发。通过以上流程可以看出,一方面,组播接收客户端在IGMP成员报告中添加了该客户端的权限等级,以使组播接收侧DR在相应组播路由表项中设置出接口的权限等级;另一方面,组播源在组播数据报文中添加了业务等级;进而可使组播接收侧DR在生成组播转发表项时,仅将相应组播路由表项中权限等级不低于相应业务等级的出接口添加到相应组播转发表项中,从而仅将组播数据报文转发给不低于相应业务等级的客户端,保证了组播业务的安全性。在组播系统架构中,组播接收侧DR可连接二层交换设备,如二层交换机(以下以二层交换机为例进行说明),通过该二层交换机连接多个组播接收客户端,以便将组播数据报文转发给多个组播接收客户端。在该系统架构下,该二层交换机既可以通过二层广播方式将组播数据报文转发给其所连接的所有组播接收客户端,也可以通过IGMP-Snooping(互联网管理协议窥探)方式将组播转发报文转发给指定组播接收客户端。针对上述系统架构,本发明实施例优选的,在二层交换机上使能IGMP-Snooping,并进一步对IGMP-Snooping进行升级。具体的当二层交换机侦听到客户端发送的IGMP成员报告报文后,获取报文中携带的客户端权限等级信息,然后,根据该IGMP成员报告报文的组播地址和接收端口匹配相应的IGMP-Snooping表项;若匹配到相应IGMP-Snooping表项,则比较该IGMP成员报告报文的发包序列号与相应IGMP-Snooping表项中的发包序列号,若前者不大于后者,则丢弃该IGMP成员报告报文,否则,将相应IGMP-Snooping表项中的发包序列号更新为所述IGMP成员报告报文的发包序列号;若未匹配到相应IGMP-Snooping表项,则根据该IGMP成员报告报文的组播地址、接收端口、发包序列号以及所述IGMP成员报告报文中携带的组播接收客户端的权限等级信息生成相应 IGMP-Snooping表项。当二层交换机从其路由器端口(即连接组播接收侧DR的端口)接收到组播数据报文后,获取组播数据报文中携带的业务等级信息,根据该组播数据报文的组播组查询相应IGMP-Snooping表项,若相应IGMP-Snooping表项中没有设置有业务等级信息,则比较该业务等级信息与该相应IGMP-Snooping表项的成员端口的权限等级信息,若前者不高于后者,则在该相应IGMP-Snooping表项中设置该业务等级信息,并从该相应IGMP-Snooping表项的成员端口转发该组播数据报文,若前者高于后者,则删除该相应IGMP-Snooping表项;若相应IGMP-Snooping表项中设置有业务等级信息,则根据相应IGMP-Snooping表项转发该组播数据报文。具体实现时,二层交换机在获取组播数据报文中携带的业务等级信息后,可将其添加到相应IGMP-Snooping表项中,以便进行比较。考虑到组播接收客户端在构造IGMP成员报告报文时,可能会携带高等级的权限等级信息,低权限等级的客户端在侦听高权限等级的客户端发送的IGMP成员报告报文时,可能会复制报文中的权限等级信息,甚至直接置为最高位,因此为了提高安全性,本发明实施例可对IGMP成员报告报文中携带的权限等级信息进行加密处理。下面结合实施例二,对采用加密权限等级信息的技术方案进行详细描述。实施例二
本实施例描述了组播业务实现流程,应用于采用了组播路由协议的系统架构。该系统架构中的路由器上启用了 P頂协议,组播接收客户端设备与组播接收侧DR上启用了 IGMP协议。组播接收客户端设备上配置有权限等级,组播源上配置有业务等级。组播接收客户端设备上还配置有与组播地址(或组播组)对应的密钥,具体的,当管理服务器为组播接收客户端分配组播地址时,生成相应密钥,并连同组播地址传递给组播接收客户端。当组播接收客户端欲建立与组播源的组播业务关系时,如图4所述,其组播业务建立流程可包括
步骤401,组播接收客户端发送IGMP成员报告报文以请求加入组播组,该报文中携带该组播接收客户端的权限等级信息和该报文的发包序列号,该权限等级信息和报文发包序列号使用相应组播组对应的密钥进行了加密处理。具体实施时,当组播接收客户端欲建立与组播源的组播业务关系时,首先从该业务系统架构中的管理服务器获取组播源的组播地址和对应该组播地址的密钥,利用该密钥加密客户端的权限等级信息和该IGMP成员报告报文的发包序列号,然后将加密信息携带于给对应组播地址的IGMP成员报告报文中发送。其中,客户端发送IGMP成员报告报文时,需要递增报文发包序列号。步骤402,组播接收侧DR收到携带有客户端权限等级信息的IGMP成员报告报文后,若还未获取到组播地址对应的密钥,则转入步骤403 ;若已获取到组播地址对应的密钥,则转入步骤404。步骤403,组播接收侧DR生成相应组播路由表项,记录该加密信息,然后转入步骤405。具体实施时,组播接收侧DR由于目前还没有客户端所请求加入的组播组对应的密钥,无法解密出报文中携带的客户端权限等级信息,因此执行以下步骤根据该IGMP成员报告报文的组播地址、接收接口匹配相应的IGMP表项,若未匹配到相应IGMP表项,则生成相应IGMP表项,其中记录有组播地址、源IP地址、以及接口地址等信息,对应于该IGMP成员报告报文的组播组、源IP地址和接收接口,记录加密的权限等级信息和发包序列号,并生成PM (*,G)表项(其中包括所请求加入的组播组(组播地址)以及接收到该IGMP成员 报告报文的接口),或在PIM (*,G)表项中添加对应的出接口(在存在对应组播的PIM (*,G)表项时)。若匹配到相应IGMP表项,则用该IGMP成员报告报文中携带的加密的权限等级信息和发包序列号更新所记录的相应的加密的权限等级信息和发包序列号。步骤404,组播接收侧DR利用对应密钥解密得到IGMP成员报告报文中携带的组播接收客户端的权限等级信息和报文发包序列号,并根据报文发包序列号判断该IGMP成员报告报文合法后,生成PM (*,G)表项,并设置表项中的出接口权限等级为本次接收到的IGMP成员报文中携带的客户端权限等级。然后转入步骤405。具体实施时,组播接收侧DR在收到IGMP成员报告报文后通常会生成或更新IGMP表项,该表项中记录组播地址、源IP地址、对应的IP地址以及接口地址等信息。本实施例中,组播接收侧DR还可在IGMP表项中添加发包序列号,以用于根据发包序列号判断IGMP成员报告报文的合法性。还可以在IGMP表项中增加客户端权限等级。具体的,组播接收侧DR利用对应密钥解密得到IGMP成员报告报文中携带的组播接收客户端的权限等级信息和报文发包序列号后,根据该IGMP成员报告报文的组播地址、接收接口匹配相应的IGMP表项查询相应IGMP表项,查询结果以及后续处理可能存在几种情况之一
情况一匹配到相应IGMP表项
此种情况下,比较该IGMP表项的源IP地址与IGMP成员报告报文的源IP地址是否相同,如果不相同,则比较解密得到的权限等级信息与匹配到的IGMP表项中的权限等级信息,将二者权限等级高者所对应的源IP地址和权限等级更新到该IGMP表项中,将相应PIM(*,G)表项中的对应出接口的组播接收客户端的权限等级信息与该IGMP表项中的权限等级信息保持一致并同步到组播路由表项;如果相同,则比较解密得到的报文发包序列号与相应IGMP表项中的发包序列号,若前者不大于后者,则丢弃所述IGMP成员报告报文,否则,将相应IGMP表项中的发包序列号更新为解密得到的发包序列号,并更新老化时间。情况二 未匹配到相应IGMP表项
此种情况下,根据该IGMP成员报告报文对应的组播组、接收接口、源IP地址和解密得到的发包序列号及权限等级生成相应IGMP表项;在PM (*,G)表项中添加对应的出接口,设置组播接收客户端的权限等级并同步到组播路由表项,并对已生成的相应组播转发表项进行刷新(包括比较所述组播路由表项中的业务等级信息和所添加的出接口上设置的权限等级信息,若该权限等级不低于该业务等级,则将该出接口添加到相应组播转发表项的出接口列表中),或者生成相应的PM (*,G)表项并添加对应出接口及设置组播接收客户端的权限等级信息。为了进一步提高安全性,优选的,组播接收客户端在发送IGMP成员报告报文时,将自己的IP地址用相应组播组对应的密钥加密后携带于报文的载荷部分,当接收侧DR收到IGMP成员报告报文后,首先解密得到载荷部分的IP地址,再将其与报文头中的源IP地址比较,若相同,则认为该报文合法,然后按照上述操作进行处理;若不相同,则认为非法,并丢弃该报文。在IGMP成员报告报文被非法客户端截获后由非法客户端发送该IGMP成员报告报文的情况下,该IGMP成员报告报文头部的源IP地址与报文载荷部分的源IP地址通常不会相同(载荷部分的源IP地址经过加密,无法被非法客户端获知),因此通过上述方式可以一定程度上识别客户端的合法性。步骤405,组播接收侧DR向上游发送PM (*,G)加入报文。其中,在步骤403之·后,组播接收侧DR通过向组播源方向发送PM (*,G)加入报文,建立组播接收侧DR到组播源侧之间的组播转发路径,该步骤的具体实现同图2中的步骤203,在此不再赘述;在步骤404之后,组播接收侧DR通过向组播源方向发送PM (*,G)加入报文,刷新转发路径上相应表项的老化时间。当组播源发送组播数据报文时,将业务等级信息和对应组播地址的密钥携带于组播数据报文,以使组播接收侧DR根据该密钥解密之前接收到的客户端权限等级信息,并在生成组播转发表项时,仅将权限等级高于或等于相应业务等级的出接口添加到组播转发表项中,从而避免将组播数据报文转发给业务权限等级低的组播接收客户端。本发明实施例中,组播数据报文转发流程的一种具体实现可如图5所示,包括 步骤501,组播源发送组播数据报文,在组播数据报文中携带该组播源的业务等级信息
和对应组播地址的密钥信息。具体实施时,组播源可以将业务等级信息和对应组播地址的密钥信息携带于IP头中自定义的选项中。步骤502,组播数据报文沿组播转发路径到达组播接收侧DR后,接收侧DR查询组播转发表,若未查询到相应组播转发表项,则转入步骤503 ;若查询到相应组播转发表项,则转入步骤505。步骤503 504,组播接收侧DR生成组播转发表项,然后转入步骤505。具体实施时,组播接收侧DR收到组播源发送过来的组播数据报文后,获取组播数据报文中携带的业务等级信息和密钥,查询相应PM (*,G)表项,若该表项中的对应出接口的客户端权限等级和相应发包序列号还未解密,则利用该密钥对该权限等级和发包序列号进行解密,并将解密得到的权限等级添加到相应PM (*,G)表项的对应出接口上并同步到组播路由表项,将解密得到的发包序列号添加到相应IGMP表项中;并进一步将该业务等级信息作为相应组播路由表项的业务等级信息添加到相应组播路由表项中,并根据组播路由表项刷新相应组播转发表项或生成相应组播转发表项。组播接收侧DR在根据组播路由表项生成组播转发表项时,比较组播路由表项的业务等级信息和出接口的权限等级信息,在生成的组播转发表中,只有权限等级高于或等于业务等级的出接口才会被添加到对应表项的出接口中。步骤505,组播接收侧DR根据组播转发表项进行组播数据报文转发处理。具体实施时,组播接收侧DR按照现有方式,根据组播转发表项中的出接口,将组播数据报文复制到各出接口处转发。通过以上流程可以看出,组播接收客户端在IGMP成员报告中添加了该客户端的权限等级并进行了加密处理,密钥信息随同组播数据报文发送到组播接收侧DR,从而使组播接收侧DR解密得到客户端权限等级信息后,根据组播业务的等级和客户端的权限等级进行组播数据报文转发控制,提高了组播业务的安全性。另外,通过将IGMP成员报告报文的发包序列号连同客户端的权限等级信息一起加密,使组播接收侧进一步可根据发包序列号识别合法与非法组播客户端,从而进一步提高组播业务的安全性。在组播系统架构中,组播接收侧DR可连接二层交换机,通过该二层交换机连接多个组播接收客户端。针对上述系统架构,本发明实施例优选的,在二层交换机上使能 当二层交换机侦听到客户端发送的IGMP成员报告报文后,与组播接收侧DR类似,二层交换机可生成IGMP表项或类似表项,以记录组播组、接口、源IP地址、发包序列号、客户端权限等级等信息。具体的,二层交换机侦听到组播接收客户端的IGMP成员报告报文后,在已从组播数据报文中获取到相应组播组对应的密钥的情况下执行以下步骤
使用相应密钥解密得到该IGMP成员报告报文中携带的组播接收客户端的权限等级信息和该报文的发包序列号;然后,根据所述IGMP成员报告报文的组播地址和接收端口匹配相应的IGMP -Snooping表项;若匹配到相应IGMP-Snooping表项,则比较所述IGMP成员报告报文的发包序列号与相应IGMP-Snooping表项中的发包序列号,若前者不大于后者,则丢弃所述IGMP成员报告报文,否则,将相应IGMP-Snooping表项中的发包序列号更新为所述IGMP成员报告报文的发包序列号;若未匹配到相应IGMP-Snooping表项,则根据所述IGMP成员报告报文的组播地址、接收端口、发包序列号以及所述IGMP成员报告报文中携带的组播接收客户端的权限等级信息生成相应IGMP-Snooping表项。二层交换机在获取到加密的权限等级信息和发包序列号后,在还未从组播数据报文中获取到相应组播组对应的密钥的情况下,执行以下步骤
根据该IGMP成员报告报文的组播地址和接收端口匹配相应的IGMP -Snooping表项;若未匹配到相应IGMP-Snooping表项,则根据该IGMP成员报告报文的组播地址、接收端口生成相应IGMP-Snooping表项,并对应于所述IGMP成员报告报文的组播地址和接收端口,记录加密的权限等级信息和发包序列号;若匹配到相应IGMP-Snooping表项,则用该IGMP成员报告报文中携带的加密的权限等级信息和发包序列号更新所记录的相应的加密的权限等级信息和发包序列号。当二层交换机从组播接收侧DR接收到组播数据报文后,获取其中携带的业务等级信息和相应组播组对应的密钥,根据该组播数据报文的组播组查询相应IGMP-Snooping表项,若相应IGMP-Snooping表项中没有设置有业务等级信息,则比较该业务等级信息与该相应IGMP-Snooping表项的成员端口的权限等级信息,若前者不高于后者,则在该相应IGMP-Snooping表项中设置该业务等级信息,并从该相应IGMP-Snooping表项的成员端口转发该组播数据报文,若前者高于后者,则删除该相应IGMP-Snooping表项,若相应IGMP-Snooping表项中设置有业务等级信息,则根据相应IGMP-Snooping表项转发该组播数据报文。其中,若查询到的相应IGMP-Snooping表项的成员端口上的权限等级信息还未解密,则首先使用从所述组播数据报文中获取到的密钥解密相应IGMP-Snooping表项的成员端口上的权限等级信息和发包序列号,将解密得到的权限等级信息设置到相应IGMP-Snooping表项的相应成员端口上和相应IGMP-Snooping表项中,将解密得到的发包序列号设置在相应IGMP-Snooping表项中。为了更清楚的描述本发明实施例,下面以图6所示的系统架构为例,描述本发明实施例的具体实现过程。如图6所示,业务终端是组播源,路由器R1 R3上启用了 PM 协议。R2是客户端I直连的DR,R3是客户端2连接的DR,R3通过二层交换机SI连接客户端2和客户端3,Rl是业务终端I直连的DR。管理服务器为业务终端I配置权限5,为客户端I配置权限6,为客户端2配置权限5,为客户端3配置权限4 ;管理服务器为业务终端I分配组播地址Gl。客户端I建立与业务终端I的业务关系时,从管理服务器端获取到业务终端的组播地址G1,发送关于Gl的IGMP成员报告报文,其中携带了客户端的权限等级信息6。R2收到携带客户端I权限6的关于Gl的IGMP成员报告报文后,在PIM(*,Gl)表项的出接口中添加客户端I的权限等级信息6。业务终端I根据管理服务器的请求,发送组播数据(SI,Gl),该组播数据报文的IP头中增加有自定义选项,对应业务终端I的权限5。R2收到业务终端I发送过来的组播数据后,根据相应的PM(*,G)表项生成相应的出接口设置有组播接收客户端的权限等级信息的组播路由表项,获取组播数据报文中的业务等级信息5,在对应的组播路由表项中,添加表项的业务等级信息5 ;然后比较组播路由表项的业务等级信息5和出接口的权限等级信息6,将连接客户端I的接口添加到相应组播转发表项的出接口列表中,组播数据根据组播转发表项进行转发。组播接收侧DR (R3)收到客户端3发送的关于Gl的IGMP成员报告报文后按照前述方式处理,在建立组播转发表项时,发现出接口的权限等级信息4低于业务等级信息5,则不添加对应出接口到组播转发表项中。组播接收侧DR(R3)的同一个接口收到客户端2和客户端3发送的关于Gl的IGMP成员报告报文后,R3选取权限等级最高的客户端2的权限等级信息5作为PIM (*,G1)表项的出接口权限等级信息。交换机SI侦听到客户端2和3发送IGMP成员报告报文后,获取报文中的权限等级信息,添加到IGMP-Snooping表项的成员端口上,连接客户端2的成员端口权限等级信息为5,连接客户端3的成员端口权限等级信息为4,同时在接收到组播数据时,根据组播数据的IP头携带的自定义选项,获取组播数据报文中的业务等级信息5,添加到IGMP-Snooping表项上,交换机比较表项的业务等级信息和成员端口的权限等级信息,选择向成员端口的权限等级信息高于或等于业务等级的连接客户端2的成员端口转发组播数据。以上描述的流程中,组播接收客户端发送的IGMP成员报告报文中携带的客户端权限等级信息均未加密。下面描述的流程中,组播接收客户端在对客户端权限等级信息进行加密处理后携带于IGMP成员报告报文发送。其中,管理服务器为业务终端I分配组播地址Gl时,生成密钥PW1,连同组播地址传递给业务终端I。
当客户端I建立与业务终端I的业务关系时,从管理服务器端获取到业务终端的组播地址Gl和对应该组播组的密钥PW1,利用该密钥PWl加密客户端的权限等级信息6和报文发包序列号(假设初始为1),将加密后的权限等级信息和发包序列号携带于IGMP成员报告报文发送。客户端继续发送IGMP成员报告报文时,需要递增报文发包序列号(递增后为2)。组播接收侧DR (R2)收到携带客户端I权限等级信息6的关于Gl的IGMP成员报告报文后,由于没有密钥信息,先生成普通的PIM (*,Gl)表项(其中包括所请求加入的组播组(组播地址)以及接收到该IGMP成员报告报文的接口),向上游发起PIM加入报文,同时记录加密后的权限等级信息和报文发包序列号。组播接收侧DR (R2)收到业务终端I发送过来的组播数据后,获取组播数据报文 中的业务等级信息5和密钥PWl,刷新对应PIM表项,在对应的PIM表项中,添加业务等级信息5 ;然后利用获取到的密钥PW1,解密客户端I的权限等级信息和报文发包序列号,记录报文发包序列号和IGMP成员报告报文的源IP地址(IP_C1)到IGMP表项中,刷新PM (*,Gl)表项和组播路由表项,将客户端I的权限等级信息6添加到PIM (*,Gl)表项和组播路由表项的出接口中,比较组播路由表项的业务等级信息和出接口的权限等级信息,在生成的组播转发表中,只有权限高于或等于业务等级的出接口才会被添加到对应组播转发表项的出接口中,组播数据根据组播转发表项进行转发。基于相同的技术构思,本发明实施例还提供了一种路由交换设备和二层交换设备(如二层交换机)。参见图7,为本发明实施例提供的路由交换设备的结构示意图,该设备作为指定路由器应用于组播接收侧,该设备可包括表处理模块701、转发处理模块702,其中
表处理模块701,用于在本设备接收到IGMP成员报告报文后,获取其中携带的组播接收客户端的权限等级信息,并将其设置在相应组播相关路由表项(如PM (*,G)表项)中的对应出接口上,所述对应出接口为收到所述IGMP成员报告报文的接口 ;以及,根据转发处理模块702的指示,生成相应的出接口设置有组播接收客户端的权限等级信息的组播路由表项,以及根据该组播路由表项生成相应的组播转发表项,其中,生成相应的组播转发表项的过程包括获取组播数据报文中携带的组播组的业务等级信息并将其设置在相应的组播路由表项中,比较所述业务等级信息和相应组播路由表项中出接口上设置的权限等级信息,并将权限等级不低于业务等级的出接口添加到相应组播转发表项的出接口列表中;转发处理模块702,用于在接收到相应组播数据报文后,若查询到相应组播转发表项,则根据相应的组播转发表项转发所述组播数据报文,若未查询到相应组播转发表项,则指示表处理模块701根据相应的组播相关路由表项生成相应的出接口设置有组播接收客户端的权限等级信息的组播路由表项,根据该组播路由表项生成相应的组播转发表项,并根据表处理模块701生成的相应的组播转发表项转发所述组播数据报文。具体的,表处理模块701的处理过程可包括从接收到的IGMP成员报告报文中获取组播接收客户端的权限等级信息;根据所述IGMP成员报告报文的组播地址、接收接口匹配相应的IGMP表项;
若未匹配到相应IGMP表项,则根据所述IGMP成员报告报文对应的组播组、接收接口、源IP地址和发包序列号及权限等级信息生成相应IGMP表项;在组播相关路由表项中添加对应的出接口,设置组播接收客户端的权限等级信息并同步到组播路由表项,对已生成的相应组播转发表项进行刷新,或者生成相应的组播相关路由表项并添加对应出接口及设置组播接收客户端的权限等级信息;其中,对相应组播转发表项进行刷新具体包括比较所述组播路由表项中的业务等级信息和所添加的出接口上设置的权限等级信息,若该权限等级不低于该业务等级,则将该出接口添加到相应组播转发表项的出接口列表中;
若匹配到相应IGMP表项,则比较该IGMP表项的源IP地址与IGMP成员报告报文的源IP地址是否相同,如果不相同,则比较从IGMP成员报告报文中获取的组播接收客户端的权限等级信息与匹配到的IGMP表项中的权限等级信息,将二者权限等级高者所对应的源IP地址和权限等级更新到该IGMP表项中,将相应组播相关路由表项中的对应出接口的组播接收客户端的权限等级信息与该IGMP表项中的权限等级信息保持一致并同步到组播路由表项;如果相同,则比较IGMP成员报告报文发包序列号与相应IGMP表项中的发包序列号,若前者不大于后者,则丢弃所述IGMP成员报告报文,否则,将相应IGMP表项中的发包序列号更新为新得到的发包序列号,并更新老化时间。 具体的,所述IGMP成员报告报文中所携带的组播接收客户端的权限等级信息是经过相应组播组对应的密钥加密处理的,与权限等级信息一同加密的还有所述IGMP成员报告报文的发包序列号;组播数据报文中还携带有相应组播组对应的密钥,相应的
表处理模块701可在本设备从所述IGMP成员报告报文获取到加密的权限等级信息和发包序列号后,在已经从组播数据报文中获取到相应组播组对应的密钥的情况下,执行以下步骤使用相应密钥解密得到所述IGMP成员报告报文中携带的权限等级信息和发包序列号;根据所述IGMP成员报告报文的组播地址、接收接口匹配相应的IGMP表项;若未匹配到相应IGMP表项,则根据所述IGMP成员报告报文对应的组播组、接收接口、源IP地址和解密得到的发包序列号及权限等级信息生成相应IGMP表项;在组播相关路由表项中添加对应的出接口,设置组播接收客户端的权限等级信息并同步到组播路由表项,对已生成的相应组播转发表项进行刷新,或者生成相应的组播相关路由表项并添加对应出接口及设置组播接收客户端的权限等级信息;其中,对已生成的相应组播转发表项进行刷新具体为,比较所述组播路由表项中的业务等级信息和所添加的出接口上设置的权限等级信息,若该权限等级不低于该业务等级,则将该出接口添加到相应组播转发表项的出接口列表中;
若匹配到相应IGMP表项,则比较该IGMP表项的源IP地址与IGMP成员报告报文的源IP地址是否相同,如果不相同,则比较解密得到的权限等级信息与匹配到的IGMP表项中的权限等级信息,将二者权限等级高者所对应的源IP地址和权限等级更新到该IGMP表项中,将相应组播相关路由表项中的对应出接口的组播接收客户端的权限等级信息与该IGMP表项中的权限等级信息保持一致并同步到组播路由表项;如果相同,则比较解密得到的报文发包序列号与相应IGMP表项中的发包序列号,若前者不大于后者,则丢弃所述IGMP成员报告报文,否则,将相应IGMP表项中的发包序列号更新为解密得到的发包序列号,并更新老化时间。或者,表处理模块701可在本设备获取到加密的权限等级信息和发包序列号后,在还未从组播数据报文中获取到相应组播组对应的密钥的情况下,执行以下步骤根据所述IGMP成员报告报文的组播地址、接收接口匹配相应的IGMP表项;若未匹配到相应IGMP表项,则根据所述IGMP成员报告报文对应的组播组、接收接口、源IP地址生成相应IGMP表项,在组播相关路由表项中添加对应的出接口或者生成相应的组播相关路由表项并添加对应的出接口,并对应于所述IGMP成员报告报文的组播组、源IP地址和接收接口,记录加密的权限等级信息和发包序列号;若匹配到相应IGMP表项,则用所述IGMP成员报告报文中携带的加密的权限等级信息和发包序列号更新所记录的相应的加密的权限等级信息和发包序列号;
表处理模块701还用于在本设备接收到相应组播数据报文后,获取所述组播数据报文中携带的密钥,使用获取到的密钥解密得到相应组播组、接收接口和源IP地址对应的权限等级信息和发包序列号,并将解密后的权限等级信息设置在相应组播相关路由表项的对应出接口上并同步到组播路由表项,将解密得到的发包序列号添加到相应IGMP表项中,刷新相应组播转发表项或生成相应组播转发表项。
进一步的,表处理模块701还用于在根据所述IGMP成员报告报文对应的组播组、接收接口匹配相应的IGMP表项之前,使用相应组播组对应的密钥解密得到所述IGMP成员报告报文载荷部分携带的IP地址,并比较解密得到的IP地址与所述IGMP成员报告报文头部中的源IP地址是否相同;若两者不相同,则丢弃本次接收到的IGMP成员报告报文;其中,所述IGMP成员报告报文载荷部分的IP地址是组播接收客户端将自己的IP地址用相应组播组对应的密钥加密后携带于IGMP成员报告报文中的。具体的,所述业务等级信息携带于组播数据报文的组播IP报文头中的DSCP字段;或者,所述业务等级信息携带于组播数据报文的组播IP报文头中的扩展选项。参见图8,为本发明实施例提供的一种二层交换机,该交换机连接于组播接收客户端和上述作为组播接收侧DR的路由交换设备之间,且该二层交换机与组播接收客户端直连并使能了 IGMP-Snooping,该交换机可应用于前述未采用加密方案的组播转发过程。该交换机可包括=IGMP-Snooping表处理模块801和转发处理模块802,其中
IGMP-Snooping表处理模块801,用于在本设备侦听到组播接收客户端的IGMP成员报告报文后,执行
获取其中携带的组播接收客户端的权限等级信息;
根据所述IGMP成员报告报文的组播地址和接收端口匹配相应的IGMP-Snooping表项;若匹配到相应IGMP-Snooping表项,则比较所述IGMP成员报告报文的发包序列号与相应IGMP-Snooping表项中的发包序列号,若前者不大于后者,则丢弃所述IGMP成员报告报文,否则,将相应IGMP-Snooping表项中的发包序列号更新为所述IGMP成员报告报文的发包序列号;若未匹配到相应IGMP-Snooping表项,则根据所述IGMP成员报告报文的组播地址、接收端口、发包序列号以及所述IGMP成员报告报文中携带的组播接收客户端的权限等级信息生成相应IGMP-Snooping表项;
转发处理模块802,用于在本设备从组播接收侧DR接收到组播数据报文后,获取其中携带的业务等级信息,根据所述组播数据报文的组播组查询相应IGMP-Snooping表项,若所述相应IGMP-Snooping表项中没有设置有业务等级信息,则比较该业务等级信息与该相应IGMP-Snooping表项的成员端口的权限等级信息,若前者不高于后者,则在该相应IGMP-Snooping表项中设置该业务等级信息,并从该相应IGMP-Snooping表项的成员端口转发该组播数据报文,若前者高于后者,则删除该相应IGMP-Snooping表项;若所述相应IGMP-Snooping表项中设置有业务等级信息,则根据所述相应IGMP-Snooping表项转发所述组播数据报文。进一步的,该二层交换机还可以应用于前述实施例二的流程,此种情况下 IGMP-Snooping表处理模块801在本设备侦听到携带加密的组播接收客户端的权限等
级信息和发包序列号的组播接收客户端的IGMP成员报告报文后,在已从组播数据报文中获取到相应组播组对应的密钥的情况下,通过以下方式获取其中携带的组播接收客户端的权限等级信息使用相应密钥解密得到所述IGMP成员报告报文中携带的组播接收客户端的权限等级信息,并进一步使用相应密钥解密得到所述IGMP成员报告报文中携带的报文的发包序列号。或者,IGMP-Snooping表处理模块801在本设备侦听到组播接收客户端的IGMP成员报告报文,并获取到加密的权限等级信息和发包序列号后,在还未从组播数据报文中获取到相应组播组对应的密钥的情况下,根据所述IGMP成员报告报文的组播地址和接收端口匹配相应的IGMP -Snooping表项;若未匹配到相应IGMP-Snooping表项,则根据所述IGMP成员报告报文的组播地址、接收端口生成相应IGMP-Snooping表项,对应于所述IGMP成员报告报文的组播地址和接收端口,记录加密的权限等级信息和发包序列号;若匹 配到相应IGMP-Snooping表项,则用所述IGMP成员报告报文中携带的加密的权限等级信息和发包序列号更新所记录的相应的加密的权限等级信息和发包序列号。相应的,转发处理模块802在本设备从组播接收侧DR接收到组播数据报文后,获取其中携带的相应组播组对应的密钥;以及,若查询到的相应IGMP-Snooping表项的成员端口上的权限等级信息还未解密,则首先指示所述IGMP-Snooping表处理模块使用从所述组播数据报文中获取到的密钥解密相应IGMP-Snoop ing表项的成员端口上的权限等级信息和发包序列号,将解密得到的权限等级信息设置到相应IGMP-Snooping表项的相应成员端口上和相应IGMP-Snoop ing表项中,将解密得到的发包序列号设置在相应IGMP-Snooping 表项中。需要说明的是,在IPV6体系中,本发明实施例中的IGMP协议可由MUXMulticastListener Discover,组播侦听发现)协议代替,即,组播接收端可通过MLD协议发送请求加入组播组的报文,但实现原理与本发明实施例的实现原理相同。还需要说明的是,本发明的上述实施例是以组播路由协议的系统架构采用PIM协议为例描述的,相应的协议表项称为PM表项,但本领域技术人员可以理解,还可以采用类似PM协议的其它组播相关路由协议,为了与组播路由表项、组播转发表项相区别,可以将该其它组播相关协议的表项称为组播相关路由表项。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
权利要求
1.一种组播业务实现方法,其特征在于,该方法包括 组播接收侧指定路由器DR在接收到Internet组管理协议IGMP成员报告报文后,获取其中携带的组播接收客户端的权限等级信息,并将其设置在相应组播相关路由表项中的对应出接口上,所述对应出接口为收到所述IGMP成员报告报文的接口 ; 所述组播接收侧DR接收到相应组播数据报文后,若查询到相应组播转发表项,则根据相应的组播转发表项转发所述组播数据报文,若未查询到相应组播转发表项,则根据相应的组播相关路由表项生成相应的出接口设置有组播接收客户端的权限等级信息的组播路由表项,根据该组播路由表项生成相应的组播转发表项,并根据生成的相应的组播转发表项转发所述组播数据报文;其中,生成相应的组播转发表项的过程包括获取所述组播数据报文中携带的组播组的业务等级信息并将其设置在相应的组播路由表项中,比较所述业务等级信息和相应组播路由表项中出接口上设置的权限等级信息,并将权限等级不低于业务等级的出接口添加到相应组播转发表项的出接口列表中。
2.如权利要求I所述的方法,其特征在于,所述获取其中携带的组播接收客户端的权限等级信息,并将其设置在相应组播相关路由表项中的对应出接口上,具体包括 所述组播接收侧DR从接收到的IGMP成员报告报文中获取组播接收客户端的权限等级信息; 根据所述IGMP成员报告报文的组播地址、接收接口匹配相应的IGMP表项; 若未匹配到相应IGMP表项,则根据所述IGMP成员报告报文对应的组播组、接收接口、源IP地址和发包序列号及权限等级信息生成相应IGMP表项;在组播相关路由表项中添加对应的出接口,设置组播接收客户端的权限等级信息并同步到组播路由表项,对已生成的相应组播转发表项进行刷新,或者生成相应的组播相关路由表项并添加对应出接口及设置组播接收客户端的权限等级信息;其中,对相应组播转发表项进行刷新具体包括比较所述组播路由表项中的业务等级信息和所添加的出接口上设置的权限等级信息,若该权限等级不低于该业务等级,则将该出接口添加到相应组播转发表项的出接口列表中; 若匹配到相应IGMP表项,则比较该IGMP表项的源IP地址与IGMP成员报告报文的源IP地址是否相同,如果不相同,则比较从IGMP成员报告报文中获取的组播接收客户端的权限等级信息与匹配到的IGMP表项中的权限等级信息,将二者权限等级高者所对应的源IP地址和权限等级更新到该IGMP表项中,将相应组播相关路由表项中的对应出接口的组播接收客户端的权限等级信息与该IGMP表项中的权限等级信息保持一致并同步到组播路由表项;如果相同,则比较IGMP成员报告报文发包序列号与相应IGMP表项中的发包序列号,若前者不大于后者,则丢弃所述IGMP成员报告报文,否则,将相应IGMP表项中的发包序列号更新为新得到的发包序列号,并更新老化时间。
3.如权利要求I所述的方法,其特征在于,组播接收侧DR与组播接收客户端之间还连接有二层交换机,且该二层交换机与组播接收客户端直连并使能了 IGMP-Snooping,该方法还包括 所述二层交换机侦听到组播接收客户端的IGMP成员报告报文后,获取其中携带的组播接收客户端的权限等级信息; 根据所述IGMP成员报告报文的组播地址和接收端口匹配相应的IGMP-Snooping表项;若匹配到相应IGMP-Snooping表项,则比较所述IGMP成员报告报文的发包序列号与相应IGMP-Snooping表项中的发包序列号,若前者不大于后者,则丢弃所述IGMP成员报告报文,否则,将相应IGMP-Snooping表项中的发包序列号更新为所述IGMP成员报告报文的发包序列号;若未匹配到相应IGMP-Snooping表项,则根据所述IGMP成员报告报文的组播地址、接收端口、发包序列号以及所述IGMP成员报告报文中携带的组播接收客户端的权限等级信息生成相应IGMP-Snooping表项; 所述二层交换机从组播接收侧DR接收到组播数据报文后,获取其中携带的业务等级信息,根据所述组播数据报文的组播组查询相应IGMP-Snooping表项,若所述相应IGMP-Snooping表项中没有设置有业务等级信息,则比较该业务等级信息与该相应IGMP-Snooping表项的成员端口的权限等级信息,若前者不高于后者,则在该相应IGMP-Snooping表项中设置该业务等级信息,并从该相应IGMP-Snooping表项的成员端口转发该组播数据报文,若前者高于后者,则删除该相应IGMP-Snooping表项;若所述相应IGMP-Snooping表项中设置有业务等级信息,则根据所述相应IGMP-Snooping表项转发所述组播数据报文。
4.如权利要求I所述的方法,其特征在于,IGMP成员报告报文中所携带的组播接收客户端的权限等级信息是经过相应组播组对应的密钥加密处理的,与权限等级信息一同加密的还有所述IGMP成员报告报文的发包序列号;组播数据报文中还携带有相应组播组对应的密钥; 所述获取其中携带的组播接收客户端的权限等级信息,并将其设置在相应组播相关路由表项中的对应出接口上,具体包括 所述组播接收侧DR在从所述IGMP成员报告报文获取到加密的权限等级信息和发包序列号后,在已经从组播数据报文中获取到相应组播组对应的密钥的情况下,执行以下步骤 使用相应密钥解密得到所述IGMP成员报告报文中携带的权限等级信息和发包序列号; 根据所述IGMP成员报告报文的组播地址、接收接口匹配相应的IGMP表项; 若未匹配到相应IGMP表项,则根据所述IGMP成员报告报文对应的组播组、接收接口、源IP地址和解密得到的发包序列号及权限等级信息生成相应IGMP表项;在组播相关路由表项中添加对应的出接口,设置组播接收客户端的权限等级信息并同步到组播路由表项,对已生成的相应组播转发表项进行刷新,或者生成相应的组播相关路由表项并添加对应出接口及设置组播接收客户端的权限等级信息;其中,对相应组播转发表项进行刷新具体包括比较所述组播路由表项中的业务等级信息和所添加的出接口上设置的权限等级信息,若该权限等级不低于该业务等级,则将该出接口添加到相应组播转发表项的出接口列表中; 若匹配到相应IGMP表项,则比较该IGMP表项的源IP地址与IGMP成员报告报文的源IP地址是否相同,如果不相同,则比较解密得到的权限等级信息与匹配到的IGMP表项中的权限等级信息,将二者权限等级高者所对应的源IP地址和权限等级更新到该IGMP表项中,将相应组播相关路由表项中的对应出接口的组播接收客户端的权限等级信息与该IGMP表项中的权限等级信息保持一致并同步到组播路由表项;如果相同,则比较解密得到的报文发包序列号与相应IGMP表项中的发包序列号,若前者不大于后者,则丢弃所述IGMP成员报告报文,否则,将相应IGMP表项中的发包序列号更新为解密得到的发包序列号,并更新老化时间; 所述组播接收侧DR在获取到加密的权限等级信息和发包序列号后,在还未从组播数据报文中获取到相应组播组对应的密钥的情况下,执行以下步骤 根据所述IGMP成员报告报文的组播地址、接收接口匹配相应的IGMP表项;若未匹配到相应IGMP表项,则根据所述IGMP成员报告报文对应的组播组、接收接口、源IP地址生成相应IGMP表项,在组播相关路由表项中添加对应的出接口或者生成相应的组播相关路由表项并添加对应的出接口,并对应于所述IGMP成员报告报文的组播组、源IP地址和接收接口,记录加密的权限等级信息和发包序列号;若匹配到相应IGMP表项,则用所述IGMP成员报告报文中携带的加密的权限等级信息和发包序列号更新所记录的相应的加密的权限等级信息和发包序列号; 所述组播接收侧DR在接收到相应组播数据报文后,还包括 获取所述组播数据报文中携带的密钥,使用获取到的密钥解密得到相应组播组、接收接口和源IP地址对应的权限等级信息和发包序列号,并将解密后的权限等级信息设置在相应组播相关路由表项的对应出接口上并同步到组播路由表项,将解密得到的发包序列号添加到相应IGMP表项中,刷新相应组播转发表项或生成相应组播转发表项。
5.如权利要求4所述的方法,其特征在于,所述组播接收侧DR根据所述IGMP成员报告报文对应的组播组、接收接口匹配相应的IGMP表项之前,还包括 所述组播接收侧DR使用相应组播组对应的密钥解密得到所述IGMP成员报告报文载荷部分携带的IP地址,并比较解密得到的IP地址与所述IGMP成员报告报文头部中的源IP地址是否相同;若两者不相同,则丢弃本次接收到的IGMP成员报告报文;其中,所述IGMP成员报告报文载荷部分的IP地址是组播接收客户端将自己的IP地址用相应组播组对应的密钥加密后携带于IGMP成员报告报文中的。
6.如权利要求4所述的方法,其特征在于,组播接收侧DR与组播接收客户端之间还连接有二层交换机,且该二层交换机与组播接收客户端直连并使能了 IGMP-Snooping,该方法还包括 所述二层交换机侦听到组播接收客户端的IGMP成员报告报文后,在已从组播数据报文中获取到相应组播组对应的密钥的情况下执行以下步骤 使用相应密钥解密得到所述IGMP成员报告报文中携带的组播接收客户端的权限等级信息和该报文的发包序列号; 根据所述IGMP成员报告报文的组播地址和接收端口匹配相应的IGMP -Snooping表项;若匹配到相应IGMP-Snooping表项,则比较所述IGMP成员报告报文的发包序列号与相应IGMP-Snooping表项中的发包序列号,若前者不大于后者,则丢弃所述IGMP成员报告报文,否则,将相应IGMP-Snooping表项中的发包序列号更新为所述IGMP成员报告报文的发包序列号;若未匹配到相应IGMP-Snooping表项,则根据所述IGMP成员报告报文的组播地址、接收端口、发包序列号以及所述IGMP成员报告报文中携带的组播接收客户端的权限等级信息生成相应IGMP-Snooping表项; 所述二层交换机在获取到加密的权限等级信息和发包序列号后,在还未从组播数据报文中获取到相应组播组对应的密钥的情况下,执行以下步骤根据所述IGMP成员报告报文的组播地址和接收端口匹配相应的IGMP -Snooping表项;若未匹配到相应IGMP-Snooping表项,则根据所述IGMP成员报告报文的组播地址、接收端口生成相应IGMP-Snooping表项,并对应于所述IGMP成员报告报文的组播地址和接收端口,记录加密的权限等级信息和发包序列号;若匹配到相应IGMP-Snooping表项,则用所述IGMP成员报告报文中携带的加密的权限等级信息和发包序列号更新所记录的相应的加密的权限等级信息和发包序列号; 所述二层交换机从组播接收侧DR接收到组播数据报文后,获取其中携带的业务等级信息和相应组播组对应的密钥,根据所述组播数据报文的组播组查询相应IGMP-Snooping表项,若所述相应IGMP-Snooping表项中没有设置有业务等级信息,则比较该业务等级信息与该相应IGMP-Snooping表项的成员端口的权限等级信息,若前者不高于后者,则在该相应IGMP-Snooping表项中设置该业务等级信息,并从该相应IGMP-Snooping表项的成员端口转发该组播数据报文,若前者高于后者,则删除该相应IGMP-Snooping表项;若所述相应IGMP-Snooping表项中设置有业务等级信息,则根据所述相应IGMP-Snooping表项转发所述组播数据报文;其中,若查询到的相应IGMP-Snooping表项的成员端口上的权限等级信息还未解密,则首先使用从所述组播数据报文中获取到的密钥解密相应IGMP-Snooping表项的成员端口上的权限等级信息和发包序列号,将解密得到的权限等级信息设置到相应IGMP-Snooping表项的相应成员端口上和相应IGMP-Snooping表项中,将解密得到的发包序列号设置在相应IGMP-Snooping表项中。
7.如权利要求1-6之一所述的方法,其特征在于,所述业务等级信息携带于组播数据报文的组播IP报文头中的差分服务代码点DSCP字段;或者,所述业务等级信息携带于组播数据报文的组播IP报文头中的扩展选项。
8.—种路由交换设备,用于组播接收侧指定路由器DR,其特征在于,包括表处理模块、转发处理模块,其中 表处理模块,用于在本设备接收到Internet组管理协议IGMP成员报告报文后,获取其中携带的组播接收客户端的权限等级信息,并将其设置在相应组播相关路由表项中的对应出接口上,所述对应出接口为收到所述IGMP成员报告报文的接口 ;以及,根据所述转发处理模块的指示,生成相应的出接口设置有组播接收客户端的权限等级信息的组播路由表项,以及根据该组播路由表项生成相应的组播转发表项,其中,生成相应的组播转发表项的过程包括获取组播数据报文中携带的组播组的业务等级信息并将其设置在相应的组播路由表项中,比较所述业务等级信息和相应组播路由表项中出接口上设置的权限等级信息,并将权限等级不低于业务等级的出接口添加到相应组播转发表项的出接口列表中; 转发处理模块,用于在接收到相应组播数据报文后,若查询到相应组播转发表项,则根据相应的组播转发表项转发所述组播数据报文,若未查询到相应组播转发表项,则指示所述表处理模块根据相应的组播相关路由表项生成相应的出接口设置有组播接收客户端的权限等级信息的组播路由表项,根据该组播路由表项生成相应的组播转发表项,并根据生成的相应的组播转发表项转发所述组播数据报文。
9.如权利要求8所述的设备,其特征在于,所述表处理模块具体用于 从接收到的IGMP成员报告报文中获取组播接收客户端的权限等级信息; 根据所述IGMP成员报告报文的组播地址、接收接口匹配相应的IGMP表项;若未匹配到相应IGMP表项,则根据所述IGMP成员报告报文对应的组播组、接收接口、源IP地址和发包 序列号及权限等级信息生成相应IGMP表项;在组播相关路由表项中添加对应的出接口,设置组播接收客户端的权限等级信息并同步到组播路由表项,对已生成的相应组播转发表项进行刷新,或者生成相应的组播相关路由表项并添加对应出接口及设置组播接收客户端的权限等级信息;其中,对相应组播转发表项进行刷新具体包括比较所述组播路由表项中的业务等级信息 和所添加的出接口上设置的权限等级信息,若该权限等级不低于该业务等级,则将该出接口添加到相应组播转发表项的出接口列表中; 若匹配到相应IGMP表项,则比较该IGMP表项的源IP地址与IGMP成员报告报文的源IP地址是否相同,如果不相同,则比较从IGMP成员报告报文中获取的组播接收客户端的权限等级信息与匹配到的IGMP表项中的权限等级信息,将二者权限等级高者所对应的源IP地址和权限等级更新到该IGMP表项中,将相应组播相关路由表项中的对应出接口的组播接收客户端的权限等级信息与该IGMP表项中的权限等级信息保持一致并同步到组播路由表项;如果相同,则比较IGMP成员报告报文发包序列号与相应IGMP表项中的发包序列号,若前者不大于后者,则丢弃所述IGMP成员报告报文,否则,将相应IGMP表项中的发包序列号更新为新得到的发包序列号,并更新老化时间。
10.如权利要求8所述的设备,其特征在于,IGMP成员报告报文中所携带的组播接收客户端的权限等级信息是经过相应组播组对应的密钥加密处理的,与权限等级信息一同加密的还有所述IGMP成员报告报文的发包序列号;组播数据报文中还携带有相应组播组对应的密钥; 所述表处理模块具体用于,在本设备从所述IGMP成员报告报文获取到加密的权限等级信息和发包序列号后,在已经从组播数据报文中获取到相应组播组对应的密钥的情况下,执行以下步骤 使用相应密钥解密得到所述IGMP成员报告报文中携带的权限等级信息和发包序列号; 根据所述IGMP成员报告报文的组播地址、接收接口匹配相应的IGMP表项; 若未匹配到相应IGMP表项,则根据所述IGMP成员报告报文对应的组播组、接收接口、源IP地址和解密得到的发包序列号及权限等级信息生成相应IGMP表项;在组播相关路由表项中添加对应的出接口,设置组播接收客户端的权限等级信息并同步到组播路由表项,对已生成的相应组播转发表项进行刷新,或者生成相应的组播相关路由表项并添加对应出接口及设置组播接收客户端的权限等级信息;其中,对相应组播转发表项进行刷新具体包括比较所述组播路由表项中的业务等级信息和所添加的出接口上设置的权限等级信息,若该权限等级不低于该业务等级,则将该出接口添加到相应组播转发表项的出接口列表中; 若匹配到相应IGMP表项,则比较该IGMP表项的源IP地址与IGMP成员报告报文的源IP地址是否相同,如果不相同,则比较解密得到的权限等级信息与匹配到的IGMP表项中的权限等级信息,将二者权限等级高者所对应的源IP地址和权限等级更新到该IGMP表项中,将相应组播相关路由表项中的对应出接口的组播接收客户端的权限等级信息与该IGMP表项中的权限等级信息保持一致并同步到组播路由表项;如果相同,则比较解密得到的报文发包序列号与相应IGMP表项中的发包序列号,若前者不大于后者,则丢弃所述IGMP成员报告报文,否则,将相应IGMP表项中的发包序列号更新为解密得到的发包序列号,并更新老化时间; 或者,所述表处理模块具体用于,在本设备获取到加密的权限等级信息和发包序列号后,在还未从组播数据报文中获取到相应组播组对应的密钥的情况下,执行以下步骤 根据所述IGMP成员报告报文的组播地址、接收接口匹配相应的IGMP表项;若未匹配到相应IGMP表项,则根据所述IGMP成员报告报文对应的组播组、接收接口、源IP地址生成相应IGMP表项,在组播相关路由表项中添加对应的出接口或者生成相应的组播相关路由表项并添加对应的出接口,并对应于所述IGMP成员报告报文的组播组、源IP地址和接收接口,记录加密的权限等级信息和发包序列号;若匹配到相应IGMP表项,则用所述IGMP成员报告报文中携带的加密的权限等级信息和发包序列号更新所记录的相应的加密的权限等级信息和发包序列号; 所述表处理模块还用于,在本设备接收到相应组播数据报文后,获取所述组播数据报文中携带的密钥,使用获取到的密钥解密得到相应组播组、接收接口和源IP地址对应的权限等级信息和发包序列号,并将解密后的权限等级信息设置在相应组播相关路由表项的对应出接口上并同步到组播路由表项,将解密得到的发包序列号添加到相应IGMP表项中,刷新相应组播转发表项或生成相应组播转发表项。
11.如权利要求10所述的设备,其特征在于,所述表处理模块还用于,在根据所述IGMP成员报告报文对应的组播组、接收接口匹配相应的IGMP表项之前,使用相应组播组对应的密钥解密得到所述IGMP成员报告报文载荷部分携带的IP地址,并比较解密得到的IP地址与所述IGMP成员报告报文头部中的源IP地址是否相同;若两者不相同,则丢弃本次接收到的IGMP成员报告报文;其中,所述IGMP成员报告报文载荷部分的IP地址是组播接收客户端将自己的IP地址用相应组播组对应的密钥加密后携带于IGMP成员报告报文中的。
12.如权利要求8-11之一所述的设备,其特征在于,所述业务等级信息携带于组播数据报文的组播IP报文头中的差分服务代码点DSCP字段;或者,所述业务等级信息携带于组播数据报文的组播IP报文头中的扩展选项。
13.—种二层交换设备,用于组播接收客户端和组播接收侧指定路由器DR之间,与组播接收客户端直连并使能了互联网组管理协议窥探IGMP-Snooping,其特征在于,该二层交换设备包括 IGMP-Snooping表处理模块,用于在本设备侦听到组播接收客户端的互联网组管理协议IGMP成员报告报文后,执行 获取其中携带的组播接收客户端的权限等级信息; 根据所述IGMP成员报告报文的组播地址和接收端口匹配相应的IGMP-Snooping表项;若匹配到相应IGMP-Snooping表项,则比较所述IGMP成员报告报文的发包序列号与相应IGMP-Snooping表项中的发包序列号,若前者不大于后者,则丢弃所述IGMP成员报告报文,否则,将相应IGMP-Snooping表项中的发包序列号更新为所述IGMP成员报告报文的发包序列号;若未匹配到相应IGMP-Snooping表项,则根据所述IGMP成员报告报文的组播地址、接收端口、发包序列号以及所述IGMP成员报告报文中携带的组播接收客户端的权限等级信息生成相应IGMP-Snooping表项; 转发处理模块,用于在本设备从组播接收侧DR接收到组播数据报文后,获取其中携带的业务等级信息,根据所述组播数据报文的组播组查询相应IGMP-Snooping表项,若所述相应IGMP-Snooping表项中没有设置有业务等级信息,则比较该业务等级信息与该相应IGMP-Snooping表项的成员端口的权限等级信息,若前者不高于后者,则在该相应IGMP-Snooping表项中设置该业务等级信息,并从该相应IGMP-Snooping表项的成员端口转发该组播数据报文,若前者高于后者,则删除该相应IGMP-Snooping表项;若所述相应IGMP-Snooping表项中设置有业务等级信息,则根据所述相应IGMP-Snooping表项转发所述组播数据报文。
14.如权利要求13所述的二层交换设备,其特征在于,所述IGMP-Snooping表处理模块进一步用于 在本设备侦听到携带加密的组播接收客户端的权限等级信息和发包序列号的组播接收客户端的互联网组管理协议IGMP成员报告报文后,在已从组播数据报文中获取到相应组播组对应的密钥的情况下,通过以下方式获取其中携带的组播接收客户端的权限等级信息使用相应密钥解密得到所述IGMP成员报告报文中携带的组播接收客户端的权限等级信息,并进一步使用相应密钥解密得到所述IGMP成员报告报文中携带的报文的发包序列号; 或者,在本设备侦听到组播接收客户端的IGMP成员报告报文,并获取到加密的权限等级信息和发包序列号后,在还未从组播数据报文中获取到相应组播组对应的密钥的情况下,根据所述IGMP成员报告报文的组播地址和接收端口匹配相应的IGMP -Snooping表项;若未匹配到相应IGMP-Snooping表项,则根据所述IGMP成员报告报文的组播地址、接收端口生成相应IGMP-Snooping表项,对应于所述IGMP成员报告报文的组播地址和接收端口,记录加密的权限等级信息和发包序列号;若匹配到相应IGMP-Snooping表项,则用所述IGMP成员报告报文中携带的加密的权限等级信息和发包序列号更新所记录的相应的加密的权限等级信息和发包序列号; 转发处理模块进一步用于,在本设备从组播接收侧DR接收到组播数据报文后,获取其中携带的相应组播组对应的密钥;以及,若查询到的相应IGMP-Snooping表项的成员端口上的权限等级信息还未解密,则首先指示所述IGMP-Snooping表处理模块使用从所述组播数据报文中获取到的密钥解密相应IGMP-Snooping表项的成员端口上的权限等级信息和发包序列号,将解密得到的权限等级信息设置到相应IGMP-Snooping表项的相应成员端口上和相应IGMP-Snooping表项中,将解密得到的发包序列号设置在相应IGMP-Snooping表项中。
全文摘要
本发明公开了一种组播业务实现方法及其设备,本发明中,一方面,在IGMP成员报告中添加了组播接收客户端的权限等级信息,以使组播接收侧DR在相应PIM表项中设置出接口的权限等级;另一方面,在组播数据报文中添加了组播业务的业务等级信息,进而可使组播接收侧DR根据组播业务等级和客户端权限等级,仅将组播数据报文从权限等级不低于相应业务等级的出接口转发,即,将组播数据报文转发给其权限等级不低于相应业务等级的客户端,保证了组播业务的安全性。
文档编号H04N21/647GK102905199SQ20121036834
公开日2013年1月30日 申请日期2012年9月28日 优先权日2012年9月28日
发明者林鹏程, 周迪 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1