专利名称:在虚拟专用局域网业务中实现组播数据流转发的方法
技术领域:
本发明涉及通信领域,尤其涉及一种在虚拟专用局域网业务中实现组播数据流转发的方法。
背景技术:
VPLS(Virtual Private LAN Service;虚拟专用LAN业务)是在MPLS(Multi-Protocol Label Switch;多协议标签交换)/IP网络提供点到多点的L2VPN(L2 Virtual Private Networks;二层虚拟专用网)技术,也称做透明局域网业务(TLS)。越来越多的运营商采用VPLS技术为企业用户提供VPN业务。VPLS可以看作是一组虚拟交换实例(VSI),VSI通过EoMPLS(Ethernet over MPLS;Ethernet承载于MPLS的一种技术)虚拟电路连接起来,形成一个逻辑的以太网交换机。
VPLS的VSI的工作原理与以太网交换机相似,如进行MAC地址学习,基于MAC地址进行以太帧的转发等等。如果以太帧的目的MAC地址为未知地址单播,或者是组播或广播地址,那么以太帧将被洪泛(flood)到VSI内的所有接口,包括物理接口和虚拟链路接口(也称作VC pseudowire)。连接到同一VPLS虚拟交换实例(VSI)的所有CE(Customer Equipment;用户设备),就如同连接到一台以太网交换机上一样。
PIM-SM(Protocol Independent Multicast-Sparse Mode;单播路由协议不相关组播协议-稀疏模式)是一种与单播路由选择协议无关的组播路由协议,它不依赖于特定的单播路由协议,通过使用现存的单播路由表能够实现RPF(逆向路径转发)检查。
PIM-SM通过PIM(Protocol Independent Multicast;单播路由协议不相关组播协议)路由器的显式发送加入或剪枝(Join/Prune)消息建立起基于RP的共享树(RPT)或基于源的源路径树(SPT),组播数据流沿着RPT或SPT被发送到该组播组成员所在的网段。
与本发明相关的现有技术的方案是在以VPLS网络为核心网络,汇聚PIM-SM路由器的组网环境中,基于VPLS的VSI的工作原理实现组播包的转发。
如图1所示的组网结构中,其包括CE-1、CE-2、CE-3客户边缘路由器和VPLS网络的VSI。其中,CE-1连接组播源,CE-2连接组播接收者,CE-2连接非组播接收者。
当CE-1发送组播包到VPLS网络之后,VPLS网络中的VSI将该组播包向VSI内的所有端口洪泛,也就是说组播包被转发到VSI内的所有接口,CE-2和CE-3路由器均能够接收到所述组播包。CE-2将所述接收到的组播包转发给该组播组的接收者;而CE-3则将所述接收到的组播包直接丢弃。
由上述现有技术方案可以看出,虽然CE-3没有连接该组播组的接收者,组播包还是会发送给它。这种粗放的组播流转发方式,使VPLS网络内的PE设备到VSI内的虚拟链路(VC pseudowire)进行组播复制的压力加大;而且在传输过程中也浪费了网络的带宽资源。
发明内容
本发明的目的是提供一种在虚拟专用局域网中实现组播数据流转发的方法,通过本发明,能够在VPLS的VSI内实现PIM Snooping(PIM监听)功能,从而能够在VSI内实现组播包的精确转发,进而有效地节约MPLS/IP网络的带宽,并且能够减少VPLS网络内的PE(供应商边缘路由器)设备到VSI内的虚拟链路(VC pseudowire)进行组播复制的压力。
本发明的目的是通过以下技术方案实现的本发明提供的一种在虚拟专用局域网中实现组播数据流转发的方法,包括A、VPLS网络的VSI监听其内所有端口接收到的PIM协议报文,并根据所述报文中的信息配置二层组播的路由信息;B、根据所述配置的路由信息实现组播数据流的转发。
其中,所述步骤A具体包括A1、VPLS网络的VSI监听其内所有端口接收到的PIM协议报文;A2、分析所述监听到的PIM协议报文,当确认获取到PIM JOIN消息时,则根据所述消息中携带的加入的IP组播组地址,得到对应的组播MAC地址;A3、根据所述得到的组播MAC地址配置二层组播的路由信息。
其中,所述步骤A3具体包括A31、检查VSI系统中的二层组播路由信息中是否已经存在所述获取到的组播MAC地址,若不存在,则执行步骤A32;若已经存在,则执行步骤A33;A32、根据所述获取到的组播MAC地址建立二层组播转发表项,并在所述转发表项中的出接口信息中添加所述PIM JOIN消息的接收接口;A33、检查所述二层组播路由信息中的出接口信息中是否包含接收到所述PIM JOIN消息的接口,当确认没有包含时,则在所述出接口信息中添加所述PIM JOIN消息的接收接口信息。
其中,步骤A32或步骤A33中,在所述在所述出接口信息中添加所述PIMJOIN消息的接收接口信息的过程之后还包括A34、设置所述出接口的生存时间。
其中,所述步骤A33还包括
当确认所述二层组播路由信息中的出接口信息中包含接收所述PIM JOIN消息的接口时,重置所述出接口的生存时间。
其中,所述步骤A3还包括A35、当所述设置的生存时间到达时,则将所述出接口从所述二层组播路由信息中的出接口信息中删除。
其中,所述步骤A具体包括A4、VPLS网络的VSI监听其内所有端口接收到的PIM协议报文;A5、分析所述监听到的PIM协议报文,当确认获取到PIM PRUNE消息时,则根据所述消息中的剪枝的IP组播组地址,得到对应的组播MAC地址;A6、根据所述得到的组播MAC地址配置二层组播的路由信息。
其中,所述步骤A6具体包括A61、在二层组播路由信息中查找所述得到的组播MAC地址对应的二层组播转发表项,当查找到对应的匹配项时,则将接收到所述PRUNE消息的接口从出接口信息中删除。
其中,所述步骤A35或步骤A6还包括A62、当确认所述二层组播转发表项中的出接口信息为空时,则将所述二层组播转发表项从二层组播路由信息中删除。
其中,所述步骤B具体包括B1、当所述VSI接收到组播包时,根据所述组播包中携带的目的MAC地址查找其内的二层组播路由信息中是否存在对应所述MAC地址的表项;B2、当确认存在匹配项时,则将所述组播包从匹配表项中出接口信息所包含的所有出接口转发出去。
其中,所述步骤B还包括B3、当所述VSI确认没有找到匹配项时,转发所述组播包给所有与所述VSI连接的接口。
其中,所述步骤B还包括B4、所述VSI将PIM协议组播包在VSI内洪泛,并拷贝到业务处理系统进行处理。
由上述本发明提供的技术方案可以看出,本发明所述的方法首先通过VPLS网络的VSI监听其内所有端口接收到的PIM协议报文,并根据所述报文中的信息配置二层组播的路由信息;然后根据所述配置的路由信息实现数据流的转发。通过本发明,能够在VPLS的VSI内实现PIM Snooping(PIM监听)功能,从而能够在VSI内实现组播包的精确转发,进而有效地节约MPLS/IP网络的带宽,并且能够减少VPLS网络内的PE设备到VSI内的虚拟链路(VC pseudowire)进行组播复制的压力。
图1为现有技术中在VPLS中实现组播流转发的示意图;图2为本发明提供的实施例的流程图;图3为本发明中根据PIM协议报文中的信息配置组播路由信息的流程图;图4为为本发明中组播流在使能PIM-SNOOPING的VPLS网络的VSI中精确转发的示意图;图5为本发明中PIM协议报文在VSI内洪泛并上送CPU一份拷贝的示意图。
具体实施例方式
本发明提供一种在虚拟专用局域网中实现组播数据流转发的方法,其核心是首先VPLS网络的VSI监听其内所有端口接收到的PIM协议报文,并根据所述报文中的信息配置二层组播的路由信息;然后根据所述配置的路由信息实现数据流的转发。
本发明提供的实施例,通过在VPLS内实现PIM-SNOOPING,达到组播包在VPLS内的精确转发,节约MPLS/IP网络的带宽资源。具体实施过程如图2所示,包括步骤100、VPLS网络的VSI监听其内所有端口接收到的PIM协议报文,并根据所述报文中的信息配置二层组播的路由信息。具体实施过程如图3所示,包括步骤101、VPLS网络的VSI监听其内所有端口接收到的PIM协议报文;步骤102、分析所述监听到的PIM协议报文。
VSI的PIM-SNOOPING模块侦听该VSI内所有端口(包括物理端口和虚拟链路(VC pseudowire))接收到的PIM协议报文,分析所述PIM协议报文,根据所述报文为PIM JOIN消息或PRUNE消息的具体情况,建立、更新或删除二层组播转发表项。具体实现过程如下当确认获取到PIM JOIN消息时,则执行步骤103,即根据所述消息中的加入的IP组播组地址,得到对应的组播MAC地址;步骤104、检查VSI系统中的二层组播路由信息中是否已经存在所述获取到的组播MAC地址对应的转发表项,若不存在,则执行步骤105;若已经存在,则执行步骤107;步骤105、根据所述获取到的组播MAC地址建立二层组播转发表项,并在所述转发表项中的出接口信息中添加接收到所述PIM JOIN消息的接口;然后执行步骤106,即设置所述出接口的生存时间计数器。
步骤107、检查所述二层组播转发表项中的出接口信息中是否包含接收到所述PIM JOIN消息的接口,当确认没有包含时,则执行步骤108,即在所述出接口信息中添加该接口,然后执行步骤106,即设置所述出接口的生存时间计数器。
步骤109、当确认所述二层组播转发表项的出接口信息中包含接收到所述PIM JOIN消息的接口时,重置所述出接口的生存时间计数器。
步骤110、当所述设置的生存时间计数器到期时,则将所述出接口从所述二层组播转发表项的出接口信息中删除。该步骤执行完毕之后,跳到步骤114。
由上述步骤可以看出,使能了PIM-SNOOPING功能的VSI根据JOIN消息中加入的组播组地址,建立该IP组播组地址对应的组播MAC地址的二层组播转发表项,在出接口信息中添加接收到该PIM JOIN消息的接口,并设置该出接口的生存时间计数器为初始值。如果该IP组播组地址对应的组播MAC地址在二层组播路由信息中已经存在,那么进一步检查该表项的出接口信息中是否包含接收到该PIM JOIN消息的接口,如果没有包含,那么添加该接口,并设置该出接口的生存时间计数器为初始值;如果该接口已经被包含,那么重置生存时间计数器。
当确认获取到PIM PRUNE消息时,则执行步骤111,即根据所述消息中的剪枝的IP组播组地址,得到对应的组播MAC地址;步骤112、在二层组播路由信息中查找所述得到的组播MAC地址对应的二层组播转发表项,当查找到对应的匹配项时,则执行步骤113,即将接收到所述PRUNE消息中的接口从出接口信息中删除。
步骤114、检查所述二层组播转发表项中的出接口信息是否为空,当确认为空时,则执行步骤115,即将所述二层组播转发表项从二层组播路由信息中删除。
通过步骤111至步骤115的处理过程,使能了PIM SNOOPING功能的VSI根据PRUNE消息中剪枝的组播组地址,将该组播组地址对应MAC地址作为索引,在二层组播路由信息中查找对应转发表项,如果找到匹配项,将接收到该PRUNE消息的接口从出接口信息中删除。
如果某个二层组播转发表项的出接口信息中的某个出接口的生存时间计数器到期,那么就将该接口从出接口信息中删除。
如果某个二层组播转发表项的出接口信息变为空,那么就将该组播转发表项从组播路由信息中删除。
经过上述步骤之后,本发明在VSI中已经配置好相应的二层组播路由信息,之后,所述VSI根据接收到组播包中携带的目的MAC地址查找其内的二层组播路由信息中对应所述MAC地址的转发表项,将所述接收到的组播包从所述查找到的转发表项的出接口信息中所列的所有接口转发出去。具体实施过程包括步骤200、当所述VSI接收到组播包时,根据所述组播包中携带的目的MAC地址查找其内的二层组播路由信息中是否存在对应所述MAC地址的转发表项;步骤300、当确认存在匹配项时,则将所述组播包从所述转发表项的出接口信息对应的出接口中转发出去。其组播包的转发路径如图4所示。
在如图4所示的组网结构中,CE-1、CE-2和CE-3三台CE路由器连接到VPLS网络的同一个VSI中。其中,CE-1连接组播源,CE-2连接组播接收者,CE-2连接非组播接收者。
使能PIM SNOOPING的VSI侦听CE-2发送的PIM JOIN报文,得知CE-2已经加入到组播组G,于是建立组播转发表项G,并在出接口信息中添加接收到该PIM JOIN报文的接口。
当VPLS网络收到CE-1发送的组播组地址为G的组播包时,将根据所述组播包携带的目的MAC地址查找二层组播路由信息,得到所述组播组地址G匹配的转发表项,然后将所述组播包从出接口信息中所列的所有接口转发出去。这样组播组地址为G的组播包就只有CE-2才会收到。
步骤400、当所述VSI确认没有找到匹配项时,转发所述组播包给所有与所述VSI连接的接口。
另外本发明中,所述VSI将PIM协议组播包在VSI内洪泛的同时,拷贝一份到业务处理系统,如CPU。
如图5所示,对于匹配到PIM JOIN/PRUNE组播地址对应的表项(VSI内启动PIM SNOOPING之后,该表项自动生成)的PIM JOIN/PRUNE报文,除了在VSI内洪泛之外,拷贝一份到CPU,以便VSI通过PIM SNOOPING功能模块进行协议处理。
由上述本发明提供的实施例的具体实施过程可以看出,通过在VPLS的VSI内使能PIM SNOOPING,能够实现VSI内组播包的精确转发,从而在MPLS/IP网络中能够有效地节约带宽,并且能够减小VPLS PE设备到VSI内的虚拟链路(VC pseudowire)进行组播复制的压力。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种在虚拟专用局域网中实现组播数据流转发的方法,其特征在于A、虚拟专用局域网VPLS的虚拟交换实例VSI监听其内端口接收到的单播路由协议不相关组播协议PIM报文,并根据所述报文中的信息配置二层组播的路由信息;B、根据所述配置的路由信息实现组播数据流的转发。
2.根据权利要求1所述的方法,其特征在于,所述步骤A具体包括A1、VPLS网络的VSI监听其内端口接收到的PIM协议报文;A2、分析所述监听到的PIM协议报文,当确认获取到PIM JOIN消息时,则根据所述消息中携带的加入的IP组播组地址,得到对应的组播MAC地址;A3、根据所述得到的组播MAC地址配置二层组播的路由信息。
3.根据权利要求2所述的方法,其特征在于,所述步骤A3具体包括A31、检查VSI系统中的二层组播路由信息中是否已经存在所述已获取到的组播MAC地址,若不存在,则执行步骤A32;若已经存在,则执行步骤A33;A32、根据所述已获取到的组播MAC地址建立二层组播转发表项,并在所述转发表项中的出接口信息中添加所述PIM JOIN消息的接收接口信息;A33、检查所述二层组播路由信息中的出接口信息中是否包含接收所述PIM JOIN消息的接口,当确认没有包含时,则在所述出接口信息中添加所述PIM JOIN消息的接收接口信息。
4.根据权利要求3所述的方法,其特征在于,步骤A32或步骤A33中,在所述在所述出接口信息中添加所述PIM JOIN消息的接收接口信息的过程之后,还包括A34、设置所述出接口的生存时间。
5.根据权利要求4所述的方法,其特征在于,所述步骤A33还包括当确认所述二层组播路由信息中的出接口信息中包含接收所述PIM JOIN消息的接口时,重置所述出接口的生存时间。
6.根据权利要求5所述的方法,其特征在于,所述步骤A3还包括A35、当所述设置的生存时间到达时,则将所述出接口从所述二层组播路由信息中的出接口信息中删除。
7.根据权利要求2所述的方法,其特征在于,所述步骤A具体包括A4、VPLS网络的VSI监听其内所有端口接收到的PIM协议报文;A5、分析所述监听到的PIM协议报文,当确认获取到PIM PRUNE消息时,则根据所述消息中的剪枝的IP组播组地址,得到对应的组播MAC地址;A6、根据所述得到的组播MAC地址配置二层组播的路由信息。
8.根据权利要求7所述的方法,其特征在于,所述步骤A6具体包括A61、在二层组播路由信息中查找所述得到的组播MAC地址对应的二层组播转发表项,当查找到对应的匹配项时,则将接收到所述PRUNE消息的接口从出接口信息中删除。
9.根据权利要求6或8所述的方法,其特征在于,所述步骤A6或步骤A35还包括A62、当确认所述二层组播转发表项中的出接口信息为空时,则将所述二层组播转发表项从二层组播路由信息中删除。
10.根据权利要求9所述的方法,其特征在于,所述步骤B具体包括B1、当所述VSI接收到组播包时,根据所述组播包中携带的目的MAC地址查找其内的二层组播路由信息中是否存在对应所述MAC地址的表项;B2、当确认存在匹配项时,则将所述组播包从匹配表项中出接口信息所包含的所有出接口转发出去。
11.根据权利要求10所述的方法,其特征在于,所述步骤B还包括B3、当所述VSI确认没有找到匹配项时,转发所述组播包给所有与所述VSI连接的接口。
12.根据权利要求11所述的方法,其特征在于,所述步骤B还包括B4、所述VSI将PIM协议组播包在VSI内洪泛,并拷贝到业务处理系统进行处理。
全文摘要
本发明涉及一种在虚拟专用局域网中实现组播数据流转发的方法,其核心是首先虚拟专用局域网VPLS中的虚拟交换实例VSI监听其内端口接收到的单播路由协议不相关组播协议PIM报文,并根据所述报文中的信息配置二层组播的路由信息;然后根据所述配置的路由信息实现组播数据流的转发。通过本发明,能够在VPLS的VSI内实现PIM Snooping功能,从而能够在VSI内实现组播包的精确转发,进而有效地节约MPLS/IP网络的带宽,并且能够减少VPLS网络内的PE设备到VSI内的虚拟链路进行组播复制的压力。
文档编号H04L29/06GK1863147SQ200510098649
公开日2006年11月15日 申请日期2005年9月7日 优先权日2005年9月7日
发明者徐小虎 申请人:华为技术有限公司