三层交换环境防止组播源侧流扩散的方法及其装置的制作方法

文档序号:7621883阅读:95来源:国知局
专利名称:三层交换环境防止组播源侧流扩散的方法及其装置的制作方法
技术领域
本发明涉及IP组播在交换环境下,在组播源和与其直连的交换设备间防止组播流扩散的方法及其装置。
背景技术
IP组播技术有效地解决了单点发送多点接收的问题,实现了IP网络中点到多点的高效数据传送,能够大量节约网络带宽、降低网络负载。作为一种与单播和广播并列的通信方式,组播的意义不仅在于此。更重要的是,可以利用网络的组播特性方便地提供一些新的增值业务,包括在线直播、网络电视、远程教育、远程医疗、网络电台、实时视频会议等互联网的信息服务领域。由于IP组播的上述特性使其在有线网络和无线有线领域都有巨大的应用前景。
由于组播的巨大应用前景,使得目前的IP交换网络产品都提出组播的支持需求。由于三层交换设备基于链路层转发,这就区别于路由设备的基于IP层转发。传统的组播协议直接应用于交换环境会导致组播数据在链路层的扩散,这显然会浪费大量的装置资源。为有效抑制这种情况的发生,引入了二层组播协议,如IGMP snooping(IGMP监听),GMRP以及RGMP等PIMsnooping协议。二层组播协议是采用监听IP层的组播协议报文或构造自己的协议报文,在交换设备上维护一个动态组播链路层转发表,并将组播数据转发给该组播组成员相关的物理端口,以实现在Vlan内的二层组播。IGMPsnooping、GMRP等二层组播协议解决了交换设备和接收端间的组播流扩散问题。PIM snooping、RGMP解决的是交换设备和交换设备以及路由设备间的组播流扩散问题。这些链路层组播协议解决组播流扩散的实质是对接收设备与交换设备,交换设备间以及交换设备和路由设备间的逆向转发接口和组播转发物理出接口的动态管理。
在交换环境的组播应用中,还存在一个二层组播流转发问题,即组播源与第一跳三层交换设备间的组播流扩散和抑制问题。为防止组播数据流转发形成环流,组播采用逆向路径转发(RPFReversepath forwarding)机制,该机制要检查收到组播数据报文的接口是否是指向组播源的接口,以下称为逆向转发接口,如果组播报文是从该接口接收的,则RPF检查通过,报文向下游接口转发,否则丢弃该报文。
图1A和图1B分别示出了交换环境和路由环境下组播路由的组成原理。如图所示,交换环境和路由环境下组播路由组成的区别主要在于用于转发的路由接口。在路由环境中,组播路由的入接口和出接口仅仅需要逻辑接口,而在交换环境中,组播路由的入接口和出接口不仅需要逻辑接口,而且需要物理端口(即链路层接口),如图1A所示。在交换环境中,组播数据报文的转发需要路由在提供逻辑接口的前提下,提供具体的物理端口。其中物理出端口用于组播的转发,物理入端口用于组播的RPF检查。
在交换环境下,如果在源与交换设备直接相连的虚拟局域网(Vlan)中还存在另外的物理端口,三层交换设备依据目前的组播协议不能判断哪一个物理端口是正确的逆向转发接口,这样就会造成RPF机制失效,最终会存在形成组播环流的隐患。
如果三层交换机上启动了二层组播协议,由于交换机不能够区分与组播源直连的Vlan中哪一个物理端口是与自己相连的物理端口。那么它只能将Vlan下所有的物理端口认为与自己直连。对于与源在同一Vlan不同物理端口的接收者,此时会产生两种不同的处理方法一是本Vlan所有物理端口转发,此时会造成组播流扩算;二是不能向本Vlan任何端口转发,此时会造成断流。
为防止以上情况的产生,目前在源与直连交换设备间的Vlan中只能存在一条二层链路,从而限制了组播的应用。

发明内容
本发明要解决的技术问题是提出一种在三层交换环境下防止组播源流扩散的方法,可以防止源与直连三层交换设备间的组播流扩散。本发明还要提供一种可以实现该方法的装置。
为了解决上述技术问题,本发明提供了一种三层交换环境防止组播源侧流扩散的方法,包括以下步骤(a)在三层交换环境中配置一个组播源入接口的管理模块,并在该模块内创建一个管理表,该管理表中包含记录了组播数据报文的源地址和接收该报文的物理端口号的对应关系的多条记录;(b)组播转发层将没有组播转发路由的组播数据报文上送所述管理模块,该模块根据报文中的源地址在所述管理表查找相应记录,如果没找到,为来自直连源的组播数据报文创建一个新记录,如果找到,则使相应记录中的物理端口号与当前接收该报文的物理端口号保持相同;(c)所述管理模块将所述组播数据报文继续上送到组播协议层处理,并接收组播协议层生成的组播路由条目;(d)所述管理模块根据所述路由条目中的源地址检索所述管理表中的相应记录,如果检索到,将该记录中的物理端口号填入到该路由条目的入接口物理端口位置,继续向组播转发层同步所述组播路由条目。
进一步地,上述方法还可包括以下步骤当直连源组播路由被删除,根据删除的直连组播路由的源地址和/或三层逻辑入端口号查询所述管理表,如果找到包含该源地址和三层逻辑入端口号的记录,则将其删除。
进一步地,上述方法还可具有以下特点所述步骤(b)中,如果没找到相应记录,对于不来自直连源的组播数据报文则丢弃。
进一步地,上述方法还可具有以下特点所述管理表的记录中还包含有接收报文的三层逻辑入端口号,所述步骤(b)中,如果找到相应记录,则还要使该记录中的三层逻辑入端口号与当前接收该报文的三层逻辑入端口号保持一致。
进一步地,上述方法还可具有以下特点所述步骤(d)中,所述管理模块接收到所述路由条目后,先判断其三层逻辑入端口号与其源地址是否同一网段,如果是,再查找所述管理表,否则,出错返回,结束。
进一步地,上述方法还可具有以下特点所述步骤(d)中,所述管理模块接收到所述路由条目后,除条目中的源地址外,还将条目中的三层逻辑入端口号与该源地址组成二元组来检索所述管理表,如果检索到相应记录,将该记录中的物理端口号填入到该路由条目的入接口物理端口位置,否则,出错返回,结束。
本发明提供的三层交换环境防止组播源侧流扩散的装置包括组播转发层和三层组播协议层,其特征在于,还包括组播源入接口管理模块,该管理模块进一步包括组播源入接口管理表单元、入接口记录转发单元和物理端口填充单元,其中所述组播源入接口管理表单元用于创建和存储组播源入接口管理表,该管理表中包含记录了组播数据报文的源地址和接收该报文的物理端口号的对应关系的多条记录;所述入接口记录转发单元用于在收到所述组播转发层上送的组播数据报文后,根据报文中的源地址在所述组播源入接口管理表中建立或更新直连组播源发送的该数据报文的物理端口号,再将该报文转发到所述三层组播协议层;所述物理端口填充单元用于在收到组播路由条目后,根据条目中的源地址找到所述组播源入接口管理表对应记录中的物理端口号,将表中的该物理端口号填入到所述路由条目的入接口物理端口位置,然后继续向所述组播转发层同步所述路由条目。
进一步地,上述装置还可具有以下特点所述组播源入接口管理模块还包括存活期管理单元,用于在直连源组播路由被删除时,根据删除的直连组播路由的源地址和/或三层逻辑入端口号查询所述组播源入接口管理表,将找到的包含该源地址和/或三层逻辑入端口号的记录删除。
进一步地,上述装置还可具有以下特点还包括二层组播协议层和交换组播路由管理模块,所述交换组播路由管理模块用于将该二层组播协议层形成的组播路由和所述三层组播协议层形成的组播路由融合形成适用于三层交换环境下的组播转发表。
进一步地,上述装置还可具有以下特点所述组播源入接口管理表单元创建和存储的组播源入接口管理表的记录中,还包含了与所述源地址和物理端口号对应的三层逻辑入端口号,所述入接口记录转发单元在收到上送的组播数据报文后,还根据报文中的源地址在所述组播源入接口管理表中建立或更新直连组播源发送的该数据报文的三层逻辑入端口号。
由上可知,与现有技术相比较,本发明使得与源直连的三层交换设备可以知道组播源同直连的交换设备间各组播数据流的正确的逆向转发接口,解决了源与直连交换设备间的组播流管理问题,可以避免RPF机制失效,避免在组播源与直连三层交换设备间的组播流扩散而形成组播环流。


图1A是交换环境下组播路由的组成原理图。
图1B是路由环境下组播路由的组成原理图。
图2是本发明实施例三层交换环境下组播路由装置的示意图。
图3是本发明实施例的组播源入接口管理表的示意图。
图4是本发明实施例转发组播报文的流程图,包含了对组播路由表的处理过程。
具体实施例方式
下面结合附图对本发明方法进行具体的说明。
图2示出了本实施例方法所基于的组播路由装置,其第三层上包括一个三层(Layer3)组播协议层,第二层上包括组播转发层、二层(Layer2)组播协议层、交换组播路由管理模块和组播源入接口管理模块。
该实施例的三层交换环境下已经采用了一个Layer2组播协议层,因而需要一个交换组播路由管理模块将Layer2组播协议层形成的组播路由和Layer3组播协议层形成的组播路由融合形成适用于Layer3交换环境下的组播转发表。
该组播源入接口管理模块是本发明新增的一个模块,进一步包括组播源入接口管理表单元、入接口记录转发单元、物理端口填充单元和存活期管理单元,其中组播源入接口管理表单元用于创建和存储组播源入接口管理表,该管理表中包含记录了组播数据报文的源地址和接收该报文的物理端口号的对应关系的多条记录;入接口记录转发单元用于在收到组播转发层上送的组播数据报文后,根据报文中的源地址在组播源入接口管理表中建立或更新直连组播源发送的该数据报文的三层逻辑入端口号(即接收该报文的Vlan端口号)和物理端口号,再将该报文转发到Layer3组播协议层。
图3是本实施例组播源入接口管理表的示意图。该表以曾经接收到的直连组播源发送的组播数据报文的源地址为关键字。每一个组播源地址对应一个最新收到的该组播源发送的数据报文的Vlan号和物理端口号。通过该表,与源直连的三层交换设备就可以知道组播报文对应的逆向转发接口(即表中的物理端口),防止源与直连三层交换设备间的组播流扩散。
物理端口填充单元用于在收到Layer2组播协议层生成的组播路由条目后,根据条目中的源地址S和三层逻辑入端口号找到组播源入接口管理表对应记录中的物理端口号,并将其填入路由条目的入接口物理端口位置,再经交换组播路由管理模块向组播转发层同步组播路由条目。
存活期管理单元用于动态维护组播入接口信息的存活期,在直连源组播路由被删除时,删除组播源入接口管理表中与该直连源相关的记录,以防止已经无效的组播入接口信息长期占用组播源入接口管理表。
删除组播入接口信息的处理过程是当直连源组播路由被删除,根据删除的直连组播路由的源地址和三层逻辑入端口号查询组播源入接口管理表,如果检索到包含该源地址和三层逻辑入端口号的记录,则将其删除,结束。
本实施例转发组播报文的流程如图5所示,该流程可以在三层交换环境下获得组播路由的入接口物理端口,从而防止组播源侧的流扩散,如图所示,该流程包括以下步骤步骤110,组播转发层接收到含带有源地址等信息的组播数据报文P;步骤120,组播转发层以组播的源地址和组地址为关键字检索组播转发表,如果查到相应的组播转发路由,转正常组播数据报文处理流程,结束;否则,将该组播数据报文上送到组播源入接口管理模块(步骤120a);步骤130,组播源入接口管理模块根据该组播数据报文的源地址检索组播源入接口管理表,如果检索到相应记录,执行步骤140,否则,执行步骤160;步骤140,判断收到组播数据报文P的物理端口号和三层逻辑入端口号是否与记录中的相同,如果是,执行步骤180,否则,执行步骤150;步骤150,将收到该组播数据报文的物理端口号和三层逻辑入端口号替代入接口管理表对应记录中的物理端口号和三层逻辑入端口号,执行步骤180;步骤160,根据接收该报文的Vlan端口号(即三层逻辑入端口号)获得该Vlan的IP地址,将此IP地址与组播数据报文的源IP地址比较,判断组播数据报文P是否是从此Vlan的直连网络中接收的,如果是,执行步骤170,否则,丢弃该报文,结束;步骤170,将组播数据报文P的源地址、三层逻辑入端口号和接收该报文的物理端口号写入组播源入接口管理表作为一条记录;步骤180,将该组播数据报文P上送组播协议层处理;步骤190,组播协议层收到上送的组播数据报文后,依据协议生成组播路由条目(S,G)同步到组播源入接口管理模块;该步生成的路由条目是Layer3和Layer2组播协议层共同作用的结果,该路由的接口信息不仅包含了三层端口(vlan逻辑端口,其中入接口的逻辑端口号是接收到该组播数据报文的vlan端口号),而且包含了通过igmpsnooping或pimsnooping等二层组播协议获得的与该组播路由相关的二层的端口信息,但该二层端口是通过管理人员静态配置,不能实时更新;步骤200,组播源入接口管理模块接收到该组播路由条目后,判断其三层逻辑入端口与其源地址是否同一网段,如果是,执行步骤210,否则,出错返回,结束;步骤210,根据组播路由条目的源地址S和三层逻辑入端口号二元组检索组播源入接口管理表,如果检索到相应记录,执行步骤220;否则,出错返回,结束;步骤220,组播源入接口管理模块从组播源入接口管理表取出对应记录中的物理端口号填入该组播路由条目的入接口物理端口位置;步骤230,组播源入接口管理模块经交换组播路由管理模块向组播转发层同步组播路由条目,结束。
本发明在上述实施例的基础上还可以做多种变换,例如,在另一实施例中,三层交换环境下没有Layer2组播协议层,进而也不需要图2中的交换组播路由管理模块,当然,在流程中同样需要取消与Layer2组播协议层相关的操作。
又如,上述步骤200和210是一种冗余的防止出错的措施,在另一实施例中,也可以不包含这些步骤。
权利要求
1.一种三层交换环境防止组播源侧流扩散的方法,包括以下步骤(a)在三层交换环境中配置一个组播源入接口的管理模块,并在该模块内创建一个管理表,该管理表中包含记录了组播数据报文的源地址和接收该报文的物理端口号的对应关系的多条记录;(b)组播转发层将没有组播转发路由的组播数据报文上送所述管理模块,该模块根据报文中的源地址在所述管理表查找相应记录,如果没找到,为来自直连源的组播数据报文创建一个新记录,如果找到,则使相应记录中的物理端口号与当前接收该报文的物理端口号保持相同;(c)所述管理模块将所述组播数据报文继续上送到组播协议层处理,并接收组播协议层生成的组播路由条目;(d)所述管理模块根据所述路由条目中的源地址检索所述管理表中的相应记录,如果检索到,将该记录中的物理端口号填入到该路由条目的入接口物理端口位置,继续向组播转发层同步所述组播路由条目。
2.如权利要求1所述的方法,其特征在于,还包括以下步骤当直连源组播路由被删除,根据删除的直连组播路由的源地址和/或三层逻辑入端口号查询所述管理表,如果找到包含该源地址和三层逻辑入端口号的记录,则将其删除。
3.如权利要求1所述的方法,其特征在于,所述步骤(b)中,如果没找到相应记录,对于不来自直连源的组播数据报文则丢弃。
4.如权利要求1所述的方法,其特征在于,所述管理表的记录中还包含有接收报文的三层逻辑入端口号,所述步骤(b)中,如果找到相应记录,则还要使该记录中的三层逻辑入端口号与当前接收该报文的三层逻辑入端口号保持一致。
5.如权利要求4所述的方法,其特征在于,所述步骤(d)中,所述管理模块接收到所述路由条目后,先判断其三层逻辑入端口号与其源地址是否同一网段,如果是,再查找所述管理表,否则,出错返回,结束。
6.如权利要求4所述的方法,其特征在于,所述步骤(d)中,所述管理模块接收到所述路由条目后,除条目中的源地址外,还将条目中的三层逻辑入端口号与该源地址组成二元组来检索所述管理表,如果检索到相应记录,将该记录中的物理端口号填入到该路由条目的入接口物理端口位置,否则,出错返回,结束。
7.一种三层交换环境防止组播源侧流扩散的装置,包括组播转发层和三层组播协议层,其特征在于,还包括组播源入接口管理模块,该管理模块进一步包括组播源入接口管理表单元、入接口记录转发单元和物理端口填充单元,其中所述组播源入接口管理表单元用于创建和存储组播源入接口管理表,该管理表中包含记录了组播数据报文的源地址和接收该报文的物理端口号的对应关系的多条记录;所述入接口记录转发单元用于在收到所述组播转发层上送的组播数据报文后,根据报文中的源地址在所述组播源入接口管理表中建立或更新直连组播源发送的该数据报文的物理端口号,再将该报文转发到所述三层组播协议层;所述物理端口填充单元用于在收到组播路由条目后,根据条目中的源地址找到所述组播源入接口管理表对应记录中的物理端口号,将表中的该物理端口号填入到所述路由条目的入接口物理端口位置,然后继续向所述组播转发层同步所述路由条目。
8.如权利要求7所述的装置,其特征在于,所述组播源入接口管理模块还包括存活期管理单元,用于在直连源组播路由被删除时,根据删除的直连组播路由的源地址和/或三层逻辑入端口号查询所述组播源入接口管理表,将找到的包含该源地址和/或三层逻辑入端口号的记录删除。
9.如权利要求7所述的装置,其特征在于,还包括二层组播协议层和交换组播路由管理模块,所述交换组播路由管理模块用于将该二层组播协议层形成的组播路由和所述三层组播协议层形成的组播路由融合形成适用于三层交换环境下的组播转发表。
10.如权利要求7所述的装置,其特征在于,所述组播源入接口管理表单元创建和存储的组播源入接口管理表的记录中,还包含了与所述源地址和物理端口号对应的三层逻辑入端口号,所述入接口记录转发单元在收到上送的组播数据报文后,还根据报文中的源地址在所述组播源入接口管理表中建立或更新直连组播源发送的该数据报文的三层逻辑入端口号。
全文摘要
本发明公开一种三层交换环境防止组播源侧流扩散的方法,先配置组播源入接口的管理模块,并创建一个记录了组播数据报文的源地址和接收该报文的物理端口号的管理表;组播转发层将组播数据报文上送管理模块后,该模块根据报文中的源地址在管理表查找相应记录,如果没找到则创建一个新记录,如果找到,则使记录的物理端口号与当前接收该报文的物理端口号相同;然后,管理模块将报文上送到组播协议层处理,并接收下发的组播路由条目,然后根据条目中的源地址检索到管理表检索相应记录,则将找到的记录中的物理端口号填入到路由条目的入接口物理端口位置。本发明解决了源与直连交换设备间的组播流管理问题,可以避免RPF机制失效。
文档编号H04L12/28GK1913487SQ20051009020
公开日2007年2月14日 申请日期2005年8月10日 优先权日2005年8月10日
发明者黄进宏 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1