一种组播业务的实现方法和网络设备的制作方法

文档序号:7959551阅读:153来源:国知局
专利名称:一种组播业务的实现方法和网络设备的制作方法
技术领域
本发明涉及网络通讯技术领域,具体涉及一种组播业务的实现方法和实现组播业务的网络设备。
背景技术
目前,因特网(Internet)的组播有两种业务模型,即ASM(Any-SourceMulticast,源无关组播)业务模型和SSM(Source-Specific Multicast,源特定组播)业务模型。
传统的组播业务通常采用ASM业务模型,ASM业务模型的特点是只使用组播组地址G来标识一个组播频道。当一个主机加入某个组播频道时,该主机会接收所有以该组播频道为目的组播地址的数据包,不管该数据包是由哪个组播源发送的,如主机加入的组播频道的组播组地址为G0,此时,主机将接收所有目的组播地址为G0的数据包。在ASM业务模型中,主机可采用IGMPv1/v2/v3来加入组播频道,主机需要在IGMP(Internet Group Management Protocol,因特网组管理协议)报文中指明需要加入的组播组地址。
SSM业务模型是一种区别于传统组播业务的新的业务模型,SSM业务模型同时使用组播组地址G和组播源地址S来标识一个组播频道。当一个主机加入某个组播频道(S0,G0)时,该主机只接收由组播源S0发送的目的地址为G0的数据包,其他组播源发送的数据包将不被主机接收。在SSM业务模型中,主机采用IGMP v3加入组播频道。
在IGMP v3的组报告报文中,主机除了指明其要加入的组播组地址,还要指明加入的是哪些组播源发送的组播组,这里指定的组播源可以为一个或多个,而且,可以以主机需要加入的组播源方式来指定组播源,也可以以主机接收除了指定的组播源之外的其他组播源发送的数据包方式来指定组播源,这样,其他组播源发送的同一组播组的数据包不被该主机接受。
实现组播业务的网络设备的逻辑结构如附图1所示。
图1中,实现组播业务的网络设备可以分为控制平面和转发平面,控制平面完成对网络设备的控制,并控制报文的处理,控制平面负责组播转发表的维护和处理,因此,来自用户的IGMP报文都需要交给控制平面处理。转发平面利用组播转发表来完成用户数据帧的复制和转发。
目前,网络上应用的大量网络设备中的转发平面只支持ASM转发,也就是说,目前的网络只能根据数据包的目的组播地址G来进行转发,例如以太网交换设备中原有组播转发机制是基于DMAC(目的组播MAC地址)进行转发的,其中,DMAC由路由器从组播IP地址G映射得到。
目前,以太网交换设备等网络设备的工作原理如下网络设备捕获用户的IGMP报文,网络设备中的控制平面根据IGMP报文生成ASM业务模型的组播转发表。典型的ASM业务模型的组播转发表如表1所示。
表1

表1中,G1、G2为组播IP地址或组播MAC地址,用于标识一个ASM组播组。
控制平面将上述组播转发表下发到转发平面,网络设备的转发平面从上行接口接收到一个组播报文后,将该组播报文的目的组播地址,如目的组播IP地址或目的组播MAC地址等与组播转发表进行匹配,并根据匹配结果将该组播报文拷贝到匹配记录中所有的输出端口。例如,对应表1时,对于目的组播地址为G1的组播报文,转发平面就应该将该组播报文复制到Port1、Port3、Port10、Port24。
上述网络设备的转发机制不能实现基于(S,G)的转发控制,无法区分同一个组播组地址下不同S之间不同的转发主机群,无法支持SSM业务模型。
为了使网络中的网络设备支持SSM业务模型,目前采用的方法为对网络设备中的组播转发表进行改进,使转发平面能够基于(S,G)进行转发。对组播转发表改进后,网络设备的工作原理如下网络设备捕获用户的IGMP报文,网络设备中的控制平面根据IGMP报文生成SSM业务模型的组播转发表。典型的SSM业务模型的组播转发表如表2所示。
表2

表2中,G1、G2、G3等为组播IP地址或组播MAC地址,S1、S2、S3等为发送组播流的源,一个(S,G)用于标识一个SSM业务模型中的组播频道。
控制平面将上述组播转发表下发到转发平面,转发平面在从上行接口接收到一个组播报文后,将该组播报文的源地址和目的组播地址如目的组播IP地址或目的组播MAC地址等与组播转发表进行匹配,并根据匹配结果将该组播报文拷贝匹配记录中所有的输出端口。例如,对应表2时,对于源地址和目的组播地址为(S1,G1)的组播报文,转发平面就应该将该组播报文复制到Port 1和Port 3。
上述改进组播转发表后的转发机制可以很好地支持SSM业务模型,但是,在支持ASM业务模型时,存在如下缺点对于某个组播组,当用户需要接收所有组播源发送的该组播组的组播报文时,或者当用户需要接收除了指定的一个或一组组播源之外的其他组播源发送的该组播组的组播报文时,组播转发表的生成比较困难。因为,在这种情况下,控制平面需要知道发送这个组播组的组播报文的组播源都有哪些,并为每一个组播源生成一个转发表项。这样,由于每个网络设备上均需要做相应的配置,增加了组播转发表的维护工作量,给组播业务的运营管理带来了困难,而且,当某个组播组对应的组播源的数量很多时,组播转发表将变得非常庞大,使网络的可扩展性差。

发明内容
本发明的目的在于,提供一种组播业务的实现方法和网络设备,本发明能够使现有的转发平面只支持ASM转发的网络设备能够方便地同时支持ASM和SSM转发,在低成本改造现有网络设备的情况下,实现了方便组播业务的运营管理,提高网络可扩展性的目的。
为达到上述目的,本发明提供的一种组播业务的实现方法,所述方法包括负责实现组播业务的网络设备根据用户的组播请求设置基于(G)的组播转发表;所述网络设备为组播转发表中的输出端口设置基于(S,G)的转发规则;所述网络设备在接收到网络侧发送来的组播报文时,确定组播转发表中与该组播报文的目的组播地址匹配的记录;所述网络设备查找所述匹配记录的各输出端口对应的转发规则,并在查找到的转发规则中确定组播报文的目的组播地址、组播源地址对应的基于(S,G)的转发规则,将该组播报文通过所述对应的转发规则对应的输出端口传输。
所述方法具体包括a、网络设备控制平面根据用户的组播请求设置基于(G)的组播转发表;b、控制平面为组播转发表中的输出端口设置基于(S,G)的转发规则;c、网络设备中的转发平面在接收到网络侧发送来的组播报文时,确定组播转发表中与该组播报文的目的组播地址匹配的记录;d、转发平面查找所述匹配记录的各输出端口对应的转发规则,并在查找到的转发规则中确定组播报文的目的组播地址、组播源地址对应的基于(S,G)的转发规则,将该组播报文通过所述对应的转发规则对应的输出端口传输。
所述步骤b中的基于(S,G)的转发规则包括下述类型的转发规则Permit(S,G)类型转发规则输出端口允许接收由组播源S发送的组播组G;Deny(S,G)类型转发规则除了由组播源S之外的其他组播源发送的组播组G,输出端口都允许接收;Permit(any S,G)类型的转发规则所有的组播源发送的组播组G,输出端口都允许接收的。
所述步骤b包括b1、网络设备的控制平面根据用户的组播请求为组播转发表中的输出端口设置基于(S,G)的转发规则。
所述步骤b1包括b11、控制平面为用户的基于ASM业务模型的组加入/离开请求设置Permit(any S,G)类型的转发规则;b12、控制平面为用户的基于SSM业务模型的组报告设置Permit(S,G)类型或Deny(S,G)类型的转发规则。
基于ASM业务模型的组加入/离开请求包括基于IGMPv1/v2的组加入/离开请求;基于SSM业务模型的组报告包括基于IGMPv3的组报告。
所述步骤b12包括下述步骤中的一个或多个控制平面在确定用户的基于SSM业务模型的组报告需要设置Permit(S,G)类型的转发规则、且该输出端口当前对应的转发规则中存在Permit(S,G)类型的转发规则时,结合该端口已有的Permit(S,G)生成新的Permit(S,G)转发规则;控制平面在确定用户的基于SSM业务模型的组报告需要设置Permit(S,G)类型的转发规则、且该输出端口当前对应的转发规则中不存在Permit(S,G)类型的转发规则时,仅根据用户的基于SSM业务模型的组报告生成Permit(S,G)类型的转发规则;控制平面在确定用户的基于SSM业务模型的组报告需要生成Deny(S,G)类型的转发规则、且该输出端口当前对应的转发规则中存在Deny(S,G)类型的转发规则时,结合该端口已有的Deny(S,G)生成新的Deny(S,G)类型的转发规则;控制平面在确定用户的基于SSM业务模型的组加入请求需要生成Deny(S,G)类型的转发规则、且该输出端口当前对应的转发规则中不存在Deny(S,G)类型的转发规则时,仅根据用户的基于SSM业务模型的组报告生成新的Deny(S,G)转发规则。
所述匹配记录中的各输出端口统称为输出端口列表,且所述步骤d包括d1、转发平面查找输出端口列表中的各输出端口对应的转发规则;d2、当输出端口对应的转发规则中存在Permit(S,G)类型的转发规则、且Permit(S,G)类型的转发规则中不存在组播报文中的目的组播地址和组播源地址时,从输出端口列表中删除该输出端口;d3、当输出端口对应的转发规则中存在Deny(S,G)类型的转发规则、且Deny(S,G)类型的转发规则中存在组播报文中的目的组播地址和组播源地址时,从输出端口列表中删除该输出端口;d4、转发平面将该组播报文通过输出端口列表中的输出端口传输。
本发明还提供一种网络设备,所述网络设备中设置有捕获模块、生成组播转发表模块、转发规则模块、确定模块和传输模块;捕获模块用于捕获用户的组播请求,并传输至生成模块;
生成组播转发表模块用于根据接收的组播请求设置基于(G)的组播转发表;转发规则模块用于为生成组播转发模块中的组播转发表的输出端口设置基于(S,G)的转发规则;确定模块用于在接收到网络侧发送来的组播报文时,确定生成组播转发表模块的组播转发表中与该组播报文的目的组播地址匹配的记录;传输模块用于查找所述匹配记录的各输出端口对应的转发规则,并在查找到的转发规则中确定组播报文的目的组播地址、组播源地址对应的基于(S,G)的转发规则,将该组播报文通过所述对应的转发规则对应的输出端口传输。
所述转发规则模块中存储的基于(S,G)的转发规则包括Permit(S,G)类型转发规则输出端口允许接收由组播源S发送的组播组G;Deny(S,G)类型转发规则除了由组播源S之外的其他组播源发送的组播组G,输出端口都允许接收;Permit(any S,G)类型的转发规则所有的组播源发送的组播组G,输出端口都允许接收;且所述转发规则模块包括转发规则子模块一用于为用户的基于ASM业务模型的组播请求设置Permit(any S,G)类型的转发规则;转发规则子模块二用于为用户的基于SSM业务模型的组播请求设置Permit(S,G)类型或Deny(S,G)类型的转发规则。
所述传输模块包括输出端口列表存储模块将匹配记录中的各输出端口以输出端口列表的形式存储;判断子模块查找输出端口列表中的各输出端口对应的转发规则,当输出端口对应的转发规则中存在Permit(S,G)类型的转发规则、且Permit(S,G)类型的转发规则中不存在组播报文中的目的组播地址和组播源地址时,从输出端口列表存储模块存储的输出端口列表中删除该输出端口,当输出端口对应的转发规则中存在Deny(S,G)类型的转发规则、且Deny(S,G)类型的转发规则中存在组播报文中的目的组播地址和组播源地址时,从输出端口列表存储模块存储的输出端口列表中删除该输出端口,在对输出端口列表中的所有输出端口均进行了上述判断处理后,通知传输子模块;传输子模块接收到判断子模块的通知后,将该组播报文通过输出端口列表存储模块的输出端口列表中的输出端口传输。
通过上述技术方案的描述可知,本发明通过将基于(G)的组播转发表与基于(S,G)的转发规则相结合,使网络设备能够同时支持ASM业务模型和SSM业务模型;本发明中的基于(G)的组播转发表和为组播转发表中的各输出端口设置的转发规则可通过组播请求来维护,且转发规则可以根据用户的需要灵活设置为Permit(S,G)类型、Deny(S,G)类型、Permit(any S,G)类型的转发规则,避免了组播转发表和转发规则占用大量的存储空间的现象,而且,使组播转发表和转发规则便于维护,使网络的可扩展性好;本发明对现有的网络设备仅进行了简单的改造,就能够使转发平面只支持ASM转发的网络设备实现SSM转发,有效的利用了现有的网络资源;从而通过本发明提供的技术方案实现了降低组播业务的实现成本、方便组播业务的运营管理、提高网络可扩展性的目的。


图1是实现组播业务的网络设备的逻辑结构示意图;图2是本发明实施例的网络设备生成Permit(S,G)、Deny(S,G)类型的转发规则的方法流程图;
图3是本发明实施例的网络设备转发组播报文的方法流程图。
具体实施例方式
由于网络中现有的大量网络设备的转发平面不能支持SSM业务模型的组播报文的转发,所以,当网络需要支持SSM业务模型时,大量的网络设备将面临升级换代的问题。本发明提供了一种简单可行的组播业务实现方案,使网络设备可以同时兼容ASM业务模型和SSM业务模型,而且,本发明提供的技术方案便于对现有的老网络设备进行改造,使目前网络设备的原有的、只支持ASM业务模型的转发平面能够方便的支持SSM业务模型。
本发明中的网络设备的控制平面首先需要根据用户的组播请求来设置基于(G)的组播转发表,如根据用户的组加入请求、组离开请求来维护基于(G)的组播转发表,该组播转发表记录了组播组与输出端口的对应关系。组播转发表中的组播组可以为组播IP地址,也可以为组播MAC地址。一个组播组可以对应一个或多个输出端口。
控制平面设置组播转发表的过程可以采用现有的技术方案,如网络设备在捕获到用户的组播请求如基于IGMPv1/v2/的组加入请求、基于IGMPv3的组报告等时,为组播转发表增加一条新的记录,该新记录中的输出端口为用户的组加入请求的输入端口,该新记录中的组播组为组加入请求中指明的需要加入的组播组地址;再如网络设备在捕获到用户的组播请求如基于IGMPv1/v2的组离开请求、基于IGMPv3的请求离开某组播组的组报告等时,删除组播转发表中的相应记录。
在设置了组播转发表后,网络设备中的控制平面需要为组播转发表中的各输出端口设置基于(S,G)的转发规则。这里的基于(S,G)的转发规则可以包括如下三种类型1、Permit(S,G)类型转发规则,Permit(S,G)的含义为输出端口允许接收由组播源S发送的组播组G。
2、Deny(S,G)类型转发规则,Deny(S,G)的含义为对于组播组G,除了由组播源S发送的之外,其他组播源发送的组播组G输出端口都允许接收。
3、Permit(any S,G)类型的转发规则,Permit(any S,G)的含义为对于组播组G,输出端口允许接收所有的组播源发送的组播组G。
上述基于(S,G)的转发规则可以由网络设备中的控制平面根据捕获的用户的组加入请求、组离开请求等动态设置,当然,也可以采用其他方式来设置,如静态设置等。
上述基于(G)的组播转发表和基于(S,G)的转发规则和起来可以称为基于(S,G)的组播转发表。
当控制平面根据用户的组加入请求、组离开请求动态设置基于(S,G)的转发规则时,本发明中的网络设备实现支持ASM业务模型的方式为网络设备的控制平面为ASM业务模型的组加入请求生成Permit(any S,G)类型的转发规则,如控制平面为用户的基于IGMPv1/v2的组加入请求生成Permit(anyS,G)类型的转发规则;网络设备的控制平面为ASM业务模型的组离开请求删除Permit(any S,G)类型的转发规则,如控制平面为用户的基于IGMPv1/v2的组离开请求删除相应的Permit(any S,G)类型的转发规则。本发明中的网络设备实现支持SSM业务模型的方式为网络设备的控制平面为SSM业务模型的组播请求设置Permit(S,G)类型或Deny(S,G)类型的转发规则,这里的设置Permit(S,G)类型或Deny(S,G)类型的转发规则包括生成新的Permit(S,G)类型或Deny(S,G)类型的转发规则,和删除已有的Permit(S,G)类型或Deny(S,G)类型的转发规则。
控制平面为用户的基于IGMPv3的组报告生成新的Permit(S,G)类型的转发规则的方法包括如下两种方法一、控制平面在确定用户的基于IGMPv3的请求加入某组播组的组报告需要生成Permit(S,G)类型的转发规则时,判断该输出端口当前对应的转发规则中是否存在Permit(S,G)类型的转发规则,根据判断结果的不同可以进行如下两种不同的处理方式1、如果输出端口当前对应的转发规则中已存在Permit(S,G)类型的转发规则,则控制平面结合该端口已有的Permit(S,G)生成新的Permit(S,G)转发规则,如当该端口已有的Permit(S,G)中的S和G与基于IGMPv3的组报告中的S、G相同时,不改变该端口已有的Permit(S,G);对这种情况可举例说明如下设定端口已有的转发规则为Permit(S1,G1),组报告中的S、G也为S1、G1、且该组报告希望生成Permit(S,G)类型的转发规则,此时,可以不改变端口已有的转发规则。再如当该端口已有的Permit(S,G)中的S和G与基于IGMPv3的组报告中的S、G不相同时,在该端口已有的Permit(S,G)中增加基于IGMPv3的组报告中的S、G;对这种情况可举例说明如下设定端口已有的转发规则为Permit(S1,G1),组报告中的S、G为S2、G2、且该组报告希望生成Permit(S,G)类型的转发规则,此时,需要将端口已有的转发规则更新为Permit(S1,G1)&(S2、G2)。
2、如果该输出端口当前对应的转发规则中不存在Permit(S,G)类型的转发规则,控制平面仅根据用户的基于IGMPv3的组报告生成新的Permit(S,G)类型的转发规则,对这种情况可举例说明如下设定端口已有的转发规则为Deny(S,G),组报告中的S、G为S2、G2、且该组报告希望生成Permit(S,G)类型的转发规则,此时,需要在该端口已有的转发规则中新增加Permit(S2、G2)。
方法二、控制平面在确定用户的基于IGMPv3的请求加入某组播组的组报告需要生成Deny(S,G)类型的转发规则时,判断该输出端口当前对应的转发规则中是否存在Deny(S,G)类型的转发规则,根据判断结果的不同可以进行如下两种不同的处理方式1、如果输出端口当前对应的转发规则中已存在Deny(S,G)类型的转发规则,则控制平面结合该端口已有的Deny(S,G)生成新的Deny(S,G)转发规则,如当该端口已有的Deny(S,G)中的S和G与基于IGMPv3的组报告中的S、G相同时,不改变该端口已有的Deny(S,G);对这种情况可举例说明如下设定端口已有的转发规则为Deny(S1,G1),组报告中的S、G也为S1、G1、且该组报告希望生成Deny(S,G)类型的转发规则,此时,可以不改变该端口已有的转发规则。再如当该端口已有的Deny(S,G)中的S和G与基于IGMPv3的组报告中的S、G不相同时,在该端口已有的Deny(S,G)中增加基于IGMPv3的组报告中的S、G;对这种情况可举例说明如下设定端口已有的转发规则为Deny(S1,G1),组报告中的S、G为S2、G2、且该组报告希望生成Deny(S,G)类型的转发规则,此时,需要将端口已有的转发规则更新为Deny(S1,G2)&(S2、G2)。
2、如果该输出端口当前对应的转发规则中不存在Deny(S,G)类型的转发规则,控制平面仅根据用户的基于IGMPv3的组报告生成新的Deny(S,G)类型的转发规则,对这种情况可举例说明如下设定端口已有的转发规则为Permit(S,G),组报告中的S、G为S2、G2、且该组报告希望生成Deny(S,G)类型的转发规则,此时,需要在该端口已有的转发规则中新增加Deny(S2,G2)。
在通过上述方法设置了组播转发表中的输出端口的转发规则,或者通过其他方法设置了组播转发表中的输出端口的转发规则后,网络设备中的转发平面在接收到网络侧发送来的组播报文时,需要确定组播转发表中与该组播报文的目的组播地址匹配的记录,也就是说,从组播转发表中查找组播报文的目的组播地址G的记录。
在从组播转发表中查找到组播报文的目的组播地址G的记录后,转发平面可以获得该记录中的输出端口,由于一条记录中会存在一个或多个输出端口,所以,可以将这个记录中的输出端口称为输出端口列表。
然后,网络设备中的转发平面需要查找输出端口列表中的每个输出端口对应的转发规则,并判断这些转发规则与组播报文中的目的组播地址和组播源地址的关系,如果一个输出端口对应的Permit(S,G)类型的转发规则与组播报文相关,转发平面可以将该组播报文通过该输出端口传输,如输出端口列表中的其中一个输出端口对应的转发规则为Permit(S1,G1)&(S2、G2),而组播报文中的S,G为S2、G2,此时,转发平面需要将该组播报文通过该输出端口传输。如果一个输出端口对应的Permit(S,G)类型的转发规则与组播报文无关,则转发平面不将该组播报文通过该输出端口传输,如输出端口列表中的其中一个输出端口对应的转发规则为Permit(S1,G1)&(S2、G2),而组播报文中的S,G为S1、G2,此时,转发平面不会将该组播报文通过该输出端口传输。如果一个输出端口对应的Deny(S,G)类型的转发规则与组播报文无关,则转发平面可以将该组播报文通过该输出端口传输,如输出端口列表中的其中一个输出端口对应的转发规则为Deny(S1,G1)&(S2、G2),而组播报文中的S,G为S1、G2,此时,转发平面需要将该组播报文通过该输出端口传输。如果一个输出端口对应的Deny(S,G)类型的转发规则与组播报文有关,则转发平面不将该组播报文通过该输出端口传输,如输出端口列表中的其中一个输出端口对应的转发规则为Deny(S1,G1)&(S2、G2),而组播报文中的S,G为S2、G2,此时,转发平面不将该组播报文通过该输出端口传输。
转发平面将其接收到的组播报文通过输出端口传输的具体实现过程,可以如下面的描述首先,转发平面获得组播报文的目的组播地址,设定该组播报文的目的组播地址为G2、组播源地址为S2,转发平面利用该目的组播地址G2来查找组播转发表,以获得G2对应的输出端口列表。
然后,转发平面对输出端口列表中的各输出端口进行转发规则查询,如果查找到某个输出端口对应的转发规则中的Permit(S,G)类型的转发规则与(S2、G2)无关,即Permit(S,G)类型的转发规则中不存在Permit(S2,G2),则转发平面将该输出端口从输出端口列表中删除。如果转发平面查找到某个输出端口对应的转发规则中存在Deny(S,G)类型转发规则与(S2、G2)有关、即Deny(S,G)类型转发规则中存在Deny(S2,G2),则转发平面将该输出端口从输出端口列表中删除。
在对输出端口列表中的各个输出端口都进行了上述转发规则查询处理后,转发平面将该组播报文通过输出端口列表中存在的输出端口传输。
本发明所指的网络设备包括目前能够实现组播业务、且在转发平面上只支持ASM业务模型的网络设备,如以太网交换机、DSLAM等网络设备,通过对这样的网络设备进行简单的升级改造,使目前仅支持ASM业务模型的网络能够同时支持SSM业务模型。当然,本发明的组播业务实现方法也能够应用于其他需要实现组播业务的网络设备中。
下面结合表和附图对本发明的组播业务的实现方法进行详细说明。
本发明中的基于SSM业务模型的组播转发表由两部分构成,即组播组输出端口表和输出端口过滤规则表。组播组输出端口表就是基于ASM业务模型的组播转发表即基于(G)的组播转发表,输出端口过滤规则表存储有基于(S,G)的转发规则,典型的组播组输出端口表可以如表1所示。
表1

典型的输出端口过滤规则表如表2所示。
表2


表2中,每个输出端口可以对应多条转发规则,其中,Permit(S,G)的含义为Include,即该输出端口允许接收指定的组播源S发送的组播组G,这里的S可以为0个或多个,0个表示不接收组播组G的任何内容;Deny(S,G)的意义为Exclude,即对于组播组G,除了由源S发送的之外,该输出端口都允许接收,这里的S可以为0个或多个,0个表示可以接收来自任何组播源的该组播组G的内容;Permit(any S,G)的含义为该输出端口允许接收所有组播源发送的组播组G。
组播组输出端口表的维护包括如下过程1、网络设备从Port 1接收到用户的组播请求,如通过IGMPv3接收到用户要求加入组播组(S1,G1)的组报告。
2、网络设备监听或捕获到该组播请求后,为组播组输出端口表生成如表3所示的新的表项。
表3

同时,网络设备为输出端口过滤规则表生成如表4所示的新的表项。
表4

表4中的过滤规则即转发规则。网络设备根据组播请求生成过滤规则的方法简单描述如下1、对于ASM业务模型,通常采用IGMPv1/v2完成组播请求,如组加入请求、组离开请求。针对IGMPv1/v2的组加入请求需要生成Permit(all S,G)类型的过滤规则,针对IGMPv1/v2的组离开请求需要删除相应的Permit(all S,G)类型的过滤规则。
2、对于SSM业务模型,通常采用IGMPv3完成组播请求,如组播源地址为空的组报告、组播源地址不为空的组报告。针对IGMPv3的请求加入某组播组的组报告可以生成Permit(S,G)类型的过滤规则或者生成Deny(S,G)类型的过滤规则。针对IGMPv3的请求离开某组播组的组报告可以删除已有的Permit(S,G)的过滤规则或者删除相应的Deny(S,G)类型的过滤规则。
网络设备生成Permit(S,G)、Deny(S,G)类型的过滤规则的方法如附图2所示。
图2中,在步骤200,网络设备捕获到基于IGMP的组播请求。
到步骤210,网络设备的控制平面判断需要为该组播请求设置的过滤规则的类型,如果需要为组播请求设置Include类型的过滤规则,到步骤220。
在步骤220,判断需要生成的过滤规则与组播请求输入端口目前对应的过滤规则的类型是否一致,如果不一致,到步骤221,根据该组播请求中指定的(S,G)生成全新的Permit(S,G),到步骤240,将生成的Permit(S,G)应用到相应的输出端口的输出队列中,以指导该输出端口输出队列中网络侧传输来的组播报文的传输;如果一致,到步骤222,根据该组播请求中指定的(S,G)、结合该端口已有的Permit(S,G)过滤规则生成新的Permit(S,G),到步骤240,将生成的Permit(S,G)应用到相应的输出端口的输出队列中,以指导该输出端口输出队列中网络侧传输来的组播报文的传输。
在步骤210,如果需要为组播请求生成Exclude类型的过滤规则,到步骤230,判断需要生成的过滤规则与组加入请求输入端口目前对应的过滤规则的类型是否一致,如果一致,到步骤231,根据该组播请求中指定的(S,G)、结合该端口已有的Deny(S,G)过滤规则生成新的Deny(S,G),到步骤240,将生成的Deny(S,G)应用到相应的输出端口的输出队列中,以指导该输出端口输出队列中网络侧传输来的组播报文的传输。
在步骤230,如果不一致,到步骤232,根据该组播请求中指定的(S,G)为生成全新的Deny(S,G),到步骤240,将生成的Deny(S,G)应用到相应的输出端口的输出队列中,以指导该输出端口输出队列中网络侧传输来的组播报文的传输。
网络设备的转发平面确定网络侧传输来的组播流的传输端口的方法如附图3所示。
图3中,在步骤300,网络设备的转发平面从网络侧接收到组播流(S,G)。
到步骤310,网络设备的转发平面使用组播流中的G去查找组播转发表,获得该组播流对应的输出端口列表。
到步骤320,开始查找输出端口列表中的每个端口对应的转发规则。
到步骤330,判断一个端口是否存在关于组播流中的G的转发规则,如果不存在,到步骤360,从输出端口列表中删除该端口,到步骤370,选择下一个输出端口,到步骤330。
在步骤330,如果存在关于组播流中的G的转发规则,到步骤340,判断输出端口的Permit(S,G)类型的转发规则中是否存在关于组播流中的G的转发规则,如果存在,到步骤370,选择下一个输出端口,到步骤330。
在步骤340,如果不存在,到步骤350,判断输出端口的Deny(S,G)类型的转发规则中是否存在关于组播流中的G的转发规则,如果存在,到步骤360,从输出端口列表中删除该端口,到步骤370,选择下一个输出端口,到步骤330。
在步骤350,如果不存在,到步骤370,选择下一个输出端口,到步骤330。
依照上述流程,当输出端口列表中的输出端口都判断完毕后,网络设备的转发平面将组播流(S,G)通过输出端口列表中未被删除的输出端口传输。
下面以一个具体的例子来说明组播转发表和输出端口过滤规则表的设置。
设定网络设备从端口Port 1接收到组播请求,要求加入组播组(S1,G1);网络设备从端口Port 2接收到组播请求,要求加入组播组(S2,G1)。设定网络设备当前的组播转发表和组播输出端口表如上面的表3和表4。
网络设备监听或捕获到该组播请求后,更新表3的组播转发表为如下表5所示的内容。
表5

同时,网络设备的控制平面更新表4的输出端口过滤规则表为如下表6所示的内容。
表6

这样,网络设备的转发平面可以根据组播转发表,将组播流(S1,G1)和(S2,G1)转发到Port 1和Port 2的输出队列。在Port 1的输出队列中,转发平面进行过滤规则匹配,即根据当前表6所示的过滤规则,允许组播流(S1,G1)通过Port 1正常输出,组播流(S2,G1)被丢弃。在Port 2的输出队列中,转发平面进行过滤规则匹配,即根据当前表6所示的过滤规则,允许组播流(S2,G1)通过Port 2正常输出,组播流(S1,G2)被丢弃。
在上述对方法的描述中,是以网络设备的转发平面和控制平面为例对网络设备实现组播业务的过程进行描述的,网络设备在实现组播业务时,也可以不基于转发平面和控制平面,但是,其基本实现原理与上述描述相同,在此不再详细描述。
下面对本发明提供的实现组播业务的网络设备进行说明。
本发明提供的网络设备能够同时实现ASM业务模型和SSM业务模型。本发明中的网络设备包括捕获模块、生成组播转发表模块、转发规则模块、确定模块和传输模块。
捕获模块主要用于捕获用户的组播请求,并传输至生成模块和转发规则模块。这里的组播请求可以为要求加入的组播请求,也可以为要求离开的组播请求。要求加入的组播请求包括基于IGMPv1/v2的组加入请求和基于IGMPv3的组报告;要求离开的组播请求包括基于IGMPv1/v2的组离开请求和基于IGMPv3的组报告。
生成组播转发表模块主要用于根据捕获模块传输来的组播请求设置基于(G)的组播转发表。生成组播转发表模块可以采用现有的方法生成基于(G)的组播转发表。
转发规则模块主要用于根据其接收到的组播请求为生成组播转发表模块的组播转发表中的输出端口设置基于(S,G)的转发规则。
转发规则模块中存储的基于(S,G)的转发规则包括下述三种类型的转发规则Permit(S,G)类型转发规则输出端口允许接收由组播源S发送的组播组G。
Deny(S,G)类型转发规则除了由组播源S之外的其他组播源发送的组播组G,输出端口都允许接收。
Permit(any S,G)类型的转发规则所有的组播源发送的组播组G,输出端口都允许接收的。
转发规则模块的功能由转发规则子模块一和转发规则子模块二来实现。
转发规则子模块一主要用于为用户的基于ASM业务模型的组播请求设置Permit(any S,G)类型的转发规则,即根据用户的基于ASM业务模型的组加入请求生成相应的Permit(any S,G)类型的转发规则,根据用户的基于SSM业务模型的组离开请求删除相应的Permit(any S,G)类型的转发规则;如转发规则子模块一为用户的基于IGMPv1/v2的组加入请求生成Permit(anyS,G)类型的转发规则;如转发规则子模块一为用户的基于IGMPv1/v2的组离开请求删除相应的Permit(any S,G)类型的转发规则。具体如上述方法中的描述。
转发规则子模块二主要用于为用户的基于SSM业务模型的组播请求设置Permit(S,G)类型或Deny(S,G)类型的转发规则,即根据用户的基于SSM业务模型的组加入请求生成相应的Permit(S,G)类型或Deny(S,G)类型的转发规则,根据用户的基于SSM业务模型的组离开请求删除相应的Permit(S,G)类型或Deny(S,G)类型的转发规则;如转发规则子模块二为用户的基于IGMPv3的请求加入某组播组的组播报告生成Permit(S,G)类型或Deny(S,G)类型的转发规则;再如生成组播转发表模块为用户的基于IGMPv3的请求离开某个组播组的组播报告删除相应的Permit(S,G)类型或Deny(S,G)类型的转发规则。转发规则子模块二为用户的基于IGMPv3的请求加入某个组播组的组报告生成Permit(S,G)类型的转发规则的方法包括两种,具体如上述方法中的描述。
确定模块主要用于在接收到网络侧发送来的组播报文时,确定生成组播转发表模块的组播转发表中与该组播报文的目的组播地址匹配的记录,并将匹配记录中的输出端口发送至传输模块;也就是说,确定模块根据网络侧发送来的组播报文中的G去查找组播转发表,以获得输出端口列表,并将输出端口列表发送至传输模块。输出端口列表中包含一个或多个输出端口。
传输模块主要用于查找确定模块传输来的各输出端口对应的转发规则,并在查找到的转发规则中确定网络侧传输来的组播报文的目的组播地址、组播源地址对应的基于(S,G)的转发规则,将该组播报文通过上述对应的基于(S,G)的转发规则对应的输出端口传输。
传输模块由输出端口列表存储模块、判断子模块和传输子模块组成。
输出端口列表存储模块主要用于存储匹配记录中的各输出端口,即存储确定模块传输来的输出端口列表。
判断子模块主要用于查找输出端口列表中的各输出端口对应的转发规则,当输出端口对应的转发规则中存在Permit(S,G)类型的转发规则、且Permit(S,G)类型的转发规则中不存在组播报文中的目的组播地址和组播源地址时,从输出端口列表存储模块存储的输出端口列表中删除该输出端口,当输出端口对应的转发规则中存在Deny(S,G)类型的转发规则、且Deny(S,G)类型的转发规则中存在组播报文中的目的组播地址和组播源地址时,从输出端口列表存储模块存储的输出端口列表中删除该输出端口。判断子模块在对输出端口列表中所有的输出端口都完成判断、删除过程后,通知传输子模块。判断子模块的删除输出端口列表中输出端口的方法如上述方法中的描述。
传输子模块主要用于在接收到判断子模块的通知后,将网络侧传输来的组播报文通过输出端口列表存储模块中存储的输出端口列表中的输出端口传输。具体如上述方法中的描述。
从上述实施例的描述可以看出,本发明通过将基于(G)的组播转发表与基于(S,G)的转发规则相结合,使网络设备能够同时支持ASM业务模型和SSM业务模型,本发明对现有的网络设备仅进行了简单改造,有效的利用了现有的网络资源,降低了组播业务的实现成本。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,本发明的申请文件的权利要求包括这些变形和变化。
权利要求
1.一种组播业务的实现方法,其特征在于,所述方法包括负责实现组播业务的网络设备根据用户的组播请求设置基于(G)的组播转发表;所述网络设备为组播转发表中的输出端口设置基于(S,G)的转发规则;所述网络设备在接收到网络侧发送来的组播报文时,确定组播转发表中与该组播报文的目的组播地址匹配的记录;所述网络设备查找所述匹配记录的各输出端口对应的转发规则,并在查找到的转发规则中确定组播报文的目的组播地址、组播源地址对应的基于(S,G)的转发规则,将该组播报文通过所述对应的转发规则对应的输出端口传输。
2.一种组播业务的实现方法,其特征在于,所述方法具体包括a、网络设备控制平面根据用户的组播请求设置基于(G)的组播转发表;b、控制平面为组播转发表中的输出端口设置基于(S,G)的转发规则;c、网络设备中的转发平面在接收到网络侧发送来的组播报文时,确定组播转发表中与该组播报文的目的组播地址匹配的记录;d、转发平面查找所述匹配记录的各输出端口对应的转发规则,并在查找到的转发规则中确定组播报文的目的组播地址、组播源地址对应的基于(S,G)的转发规则,将该组播报文通过所述对应的转发规则对应的输出端口传输。
3.如权利要求2所述的一种组播业务的实现方法,其特征在于,所述步骤b中的基于(S,G)的转发规则包括下述类型的转发规则Permit(S,G)类型转发规则输出端口允许接收由组播源S发送的组播组G;Deny(S,G)类型转发规则除了由组播源S之外的其他组播源发送的组播组G,输出端口都允许接收;Permit(any S,G)类型的转发规则所有的组播源发送的组播组G,输出端口都允许接收的。
4.如权利要求2或3所述的一种组播业务的实现方法,其特征在于,所述步骤b包括b1、网络设备的控制平面根据用户的组播请求为组播转发表中的输出端口设置基于(S,G)的转发规则。
5.如权利要求4所述的一种组播业务的实现方法,其特征在于,所述步骤b1包括b11、控制平面为用户的基于ASM业务模型的组加入/离开请求设置Permit(any S,G)类型的转发规则;b12、控制平面为用户的基于SSM业务模型的组报告设置Permit(S,G)类型或Deny(S,G)类型的转发规则。
6.如权利要求5所述的一种组播业务的实现方法,其特征在于基于ASM业务模型的组加入/离开请求包括基于IGMPv1/v2的组加入/离开请求;基于SSM业务模型的组报告包括基于IGMPv3的组报告。
7.如权利要求5所述的一种组播业务的实现方法,其特征在于,所述步骤b12包括下述步骤中的一个或多个控制平面在确定用户的基于SSM业务模型的组报告需要设置Permit(S,G)类型的转发规则、且该输出端口当前对应的转发规则中存在Permit(S,G)类型的转发规则时,结合该端口已有的Permit(S,G)生成新的Permit(S,G)转发规则;控制平面在确定用户的基于SSM业务模型的组报告需要设置Permit(S,G)类型的转发规则、且该输出端口当前对应的转发规则中不存在Permit(S,G)类型的转发规则时,仅根据用户的基于SSM业务模型的组报告生成Permit(S,G)类型的转发规则;控制平面在确定用户的基于SSM业务模型的组报告需要生成Deny(S,G)类型的转发规则、且该输出端口当前对应的转发规则中存在Deny(S,G)类型的转发规则时,结合该端口已有的Deny(S,G)生成新的Deny(S,G)类型的转发规则;控制平面在确定用户的基于SSM业务模型的组加入请求需要生成Deny(S,G)类型的转发规则、且该输出端口当前对应的转发规则中不存在Deny(S,G)类型的转发规则时,仅根据用户的基于SSM业务模型的组报告生成新的Deny(S,G)转发规则。
8.如权利要求3所述的一种组播业务的实现方法,其特征在于,所述匹配记录中的各输出端口统称为输出端口列表,且所述步骤d包括d1、转发平面查找输出端口列表中的各输出端口对应的转发规则;d2、当输出端口对应的转发规则中存在Permit(S,G)类型的转发规则、且Permit(S,G)类型的转发规则中不存在组播报文中的目的组播地址和组播源地址时,从输出端口列表中删除该输出端口;d3、当输出端口对应的转发规则中存在Deny(S,G)类型的转发规则、且Deny(S,G)类型的转发规则中存在组播报文中的目的组播地址和组播源地址时,从输出端口列表中删除该输出端口;d4、转发平面将该组播报文通过输出端口列表中的输出端口传输。
9.一种实现组播业务的网络设备,其特征在于,所述网络设备中设置有捕获模块、生成组播转发表模块、转发规则模块、确定模块和传输模块;捕获模块用于捕获用户的组播请求,并传输至生成模块;生成组播转发表模块用于根据接收的组播请求设置基于(G)的组播转发表;转发规则模块用于为生成组播转发模块中的组播转发表的输出端口设置基于(S,G)的转发规则;确定模块用于在接收到网络侧发送来的组播报文时,确定生成组播转发表模块的组播转发表中与该组播报文的目的组播地址匹配的记录;传输模块用于查找所述匹配记录的各输出端口对应的转发规则,并在查找到的转发规则中确定组播报文的目的组播地址、组播源地址对应的基于(S,G)的转发规则,将该组播报文通过所述对应的转发规则对应的输出端口传输。
10.如权利要求9所述的一种实现组播业务的网络设备,其特征在于,所述转发规则模块中存储的基于(S,G)的转发规则包括Permit(S,G)类型转发规则输出端口允许接收由组播源S发送的组播组G;Deny(S,G)类型转发规则除了由组播源S之外的其他组播源发送的组播组G,输出端口都允许接收;Permit(any S,G)类型的转发规则所有的组播源发送的组播组G,输出端口都允许接收;且所述转发规则模块包括转发规则子模块一用于为用户的基于ASM业务模型的组播请求设置Permit(any S,G)类型的转发规则;转发规则子模块二用于为用户的基于SSM业务模型的组播请求设置Permit(S,G)类型或Deny(S,G)类型的转发规则。
11.如权利要求9或10所述的一种实现组播业务的网络设备,其特征在于,所述传输模块包括输出端口列表存储模块将匹配记录中的各输出端口以输出端口列表的形式存储;判断子模块查找输出端口列表中的各输出端口对应的转发规则,当输出端口对应的转发规则中存在Permit(S,G)类型的转发规则、且Permit(S,G)类型的转发规则中不存在组播报文中的目的组播地址和组播源地址时,从输出端口列表存储模块存储的输出端口列表中删除该输出端口,当输出端口对应的转发规则中存在Deny(S,G)类型的转发规则、且Deny(S,G)类型的转发规则中存在组播报文中的目的组播地址和组播源地址时,从输出端口列表存储模块存储的输出端口列表中删除该输出端口,在对输出端口列表中的所有输出端口均进行了上述判断处理后,通知传输子模块;传输子模块接收到判断子模块的通知后,将该组播报文通过输出端口列表存储模块的输出端口列表中的输出端口传输。
全文摘要
本发明提供一种组播业务的实现方法和实现组播业务的网络设备,通过将基于(G)的组播转发表与基于(S,G)的转发规则相结合,使网络设备在接收到网络侧发送来的组播报文时,能够确定组播转发表中与该组播报文的目的组播地址匹配的记录,这样,网络设备通过查找匹配记录的各输出端口对应的转发规则,并在查找到的转发规则中确定组播报文的目的组播地址、组播源地址对应的基于(S,G)的转发规则,就可以将该组播报文通过上述对应的转发规则对应的输出端口传输。本发明对现有的网络设备仅进行了简单的改造,就能够使转发平面只支持ASM转发的网络设备实现SSM转发。从而实现了降低组播业务的实现成本、方便组播业务的运营管理、提高网络可扩展性的目的。
文档编号H04L12/18GK101051920SQ20061007267
公开日2007年10月10日 申请日期2006年4月7日 优先权日2006年4月7日
发明者李军, 陈武茂 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1