组播流量恢复方法及接入设备转让专利

申请号 : CN200710177212.7

文献号 : CN101150524B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 沈岭

申请人 : 杭州华三通信技术有限公司

摘要 :

本发明公开了一种组播流量恢复方法及一种接入设备。方法包括:预先将接入设备上与上游设备相连的所有端口都配置为静态路由器端口,当接入设备检测到组播流量中断时,向自身VLAN内的所有端口广播IGMP Query报文,并在接收到组播接收者发来的IGMP Report报文后,将IGMP Report报文通过自身的所有静态路由器端口透传给上游设备,以用于上游设备将接收IGMP Report报文的端口添加为组播流量出接口,并将组播流量从该出接口转发出去。本发明使得在组播流量中断时,接入设备可以主动发送IGMPQuery报文,而无需被动等待IGMP Querier发来的IGMP Query报文,从而使得组播接收者能够快速回应IGMP Report报文,加快了三层组播转发表项的更新,从而加快了组播流量的恢复。

权利要求 :

1.一种组播流量恢复方法,其特征在于,预先将接入设备上与上游设备相连的所有端口都配置为静态路由器端口,该方法包括:接入设备检测到组播流量中断,向自身虚拟局域网VLAN内的所有端口广播因特网组管理协议IGMP查询报文,并在接收到组播接收者发来的IGMP报告报文后,将IGMP报告报文通过自身的所有静态路由器端口透传给上游设备,以使得上游设备将接收IGMP报告报文的端口添加为组播流量出接口,并将组播流量从该出接口转发出去。

2.如权利要求1所述的方法,其特征在于,所述接入设备检测到组播流量中断为:接入设备检测到接入设备的端口失效,或者检测到组播网络链路的状态发生切换,或者,检测到接入设备的端口状态发生切换。

3.如权利要求1所述的方法,其特征在于,预先设定组播网络物理链路恢复时长;

所述接入设备向自身VLAN内的所有端口广播IGMP查询报文为:从检测到组播流量中断开始,等待所述组播网络物理链路恢复时长后,向自身VLAN内的所有端口广播IGMP查询报文。

4.如权利要求1所述的方法,其特征在于,所述接入设备为二层设备。

5.如权利要求1所述的方法,其特征在于,所述上游设备为三层设备。

6.一种接入设备,其特征在于,所述接入设备上与上游设备相连的所有端口都被预先配置为静态路由器端口,包括:组播流量检测模块和IGMP侦听模块,其中:组播流量检测模块,用于在检测到组播流量中断时,向IGMP侦听模块发送流量中断指示;

IGMP侦听模块,接收组播流量检测模块发来的流量中断指示,向接入设备的VLAN内的所有端口广播IGMP查询报文,并在接收到组播接收者发来的IGMP报告报文后,将IGMP报告报文通过接入设备的所有静态路由器端口透传给上游设备,以使得上游设备将接收IGMP报告报文的端口添加为组播流量出接口,并将组播流量从该出接口转发出去。

7.如权利要求6所述的接入设备,其特征在于,所述IGMP侦听模块包括:物理链路恢复定时器和侦听模块,其中:物理链路恢复定时器,用于在接收到组播流量检测模块发来的流量中断指示时开始计时,并在计时时长等于预设的组播网络物理链路恢复时长后,向侦听模块发送查询指示;

侦听模块,接收物理链路恢复定时器发来的查询指示,向接入设备的VLAN内的所有端口广播IGMP查询报文,并在接收到组播接收者发来的IGMP报告报文后,将IGMP报告报文通过接入设备的所有静态路由器端口透传给上游设备。

说明书 :

组播流量恢复方法及接入设备

技术领域

[0001] 本发明涉及组播技术领域,具体涉及一种组播流量恢复方法及一种接入设备。

背景技术

[0002] 在一般的企业网组网环境下,会采用二层设备与用户端相连,当整个网络需要运行组播路由协议时,二层设备可以通过因特网组管理协议(IGMP,Internet Group Management Protocol)-侦听(Snooping)功能来维护二层组播转发表,从而避免二层设备上组播报文的广播现象,使二层设备的组播流也能根据实际需要的端口进行转发。IGMP-Snooping的应用在企业网相当广泛。
[0003] 二层组播的二层环境一般都通过生成树协议(STP,Spanning-TreeProtocol)来避免环路,图1为典型的采用稀疏式协议无关组播(PIM-SM,Protocol Independent Multicast-Sparse Mode)协议的二层组播组网环境,如图1所示,其中,L2为二层设备,L3-0、L3-1、L3-2为三层设备,且L3-1为指定路由器(DR,Designated Router),L3-2为IGMP查询器(Querier),组播流量转发的具体过程如下:
[0004] 01:L2 设 备 在 虚 拟 局 域 网 (VLAN,Virtual Local Network)400开 启IGMP-Snooping功能,L3-1、L3-2、L2设备构成一个L2环境。
[0005] 为了避免环路,在VLAN 400中开启STP。实际应用中,一般设置L3-1为根桥,这样Link 3是被丢弃(discarding)的链路,不转发流量。
[0006] 02:L3-2设备周期性发送IGMP查询(Query)报文,L2设备的Port 1收到上游设备L3-1发来的IGMP Query报文,Port 1被选为IGMP-SnoopingGroup的动态路由器端口。
[0007] Port 1被选为IGMP-Snooping Group的动态路由器端口后,L2设备通过Port 1向组播接收者透传来自上游设备的IGMP Query报文,以及向上游设备透传组播接收者发送的IGMP报告(Report)报文。
[0008] 03:L2设备根据IGMP Query和IGMP Report报文,维护一张二层组播转发表项:IGMP-Snooping Group,通过该表项转发组播报文。
[0009] 04:L3-1设备作为DR,处理L2设备转发来的组播接收者的IGMP Report报文,根据IGMP Report报文建立三层组播转发表项,在三层组播转发表项中将Port 3设置为组播流量出接口,通过Port 3向下游转发组播报文。
[0010] 当组播网络发生故障时如:Link 1断掉(Down)了,会引起组播流量的中断,但随着STP切换的完成如:Link 3的状态由断掉(Discarding)变为透传(Forwarding),组播流量会得到恢复。组播流量的恢复过程如下:
[0011] 01:L2设备从Port 2收到L3-2设备发送的IGMP Query报文或PIM hello报文,确定Port 2可用,将Port 2选为动态路由器端口,并通过Port 5向下游组播接收者透传IGMP Query报文。
[0012] 当Link 3的状态由Discarding变为Forwarding后,L3-2设备周期性发送的IGMP Query报文会通过Port 2到达L2设备。
[0013] 02:组播接收者接收到IGMP Query报文,向L2设备回应IGMP Report报文。
[0014] 03:L2设备收到组播接收者回应的IGMP Report报文,将IGMP Report报文通过Port 2透传出去。
[0015] 04:L3-2设备接收到L2设备发来的IGMP Report报文,将IGMP Report报文发送给L3-1设备。
[0016] 05:L3-1设备从Port 4收到IGMP Report报文,建立新的三层组播转发表项,将Port 4作为组播流量出接口添加到三层组播转发表项中。
[0017] 此后,L3-1设备就可通过Port 4将组播源发来的组播报文转发出去,组播流量恢复。
[0018] 从上述过程可以看出,当由于组播网络发生故障等而导致组播流量中断时,L2设备只能被动地等待上游IGMP Querier发来IGMP Query报文,以将该IGMP Query报文透传给组播接收者,触发组播转发表项的重建。若组播网络故障恰好发生在上一个IGMP Query报文发出时刻,则即使组播网络的物理链路已经快速更新完成,也需要等待近1分钟的时间组播流量才能恢复,这就使得组播流量的中断时间较长,降低了组播转发效率。

发明内容

[0019] 本发明提供一种组播流量恢复方法及一种接入设备,以在组播流量中断时,加快组播流量的恢复。
[0020] 本发明的技术方案是这样实现的:
[0021] 一种组播流量恢复方法,该方法预先将接入设备上与上游设备相连的所有端口都配置为静态路由器端口,包括:
[0022] 接入设备检测到组播流量中断,向自身VLAN内的所有端口广播IGMPQuery报文,并在接收到组播接收者发来的IGMP Report报文后,将IGMP Report报文通过自身的所有静态路由器端口透传给上游设备,以使得上游设备将接收IGMP Report报文的端口添加为组播流量出接口,并将组播流量从该出接口转发出去。
[0023] 所述接入设备检测到组播流量中断为:
[0024] 接入设备检测到接入设备的端口失效,或者检测到组播网络链路的状态发生切换,或者,检测到接入设备的端口状态发生切换。
[0025] 预先设定组播网络物理链路恢复时长;
[0026] 所述接入设备向自身VLAN内的所有端口广播IGMP Query报文为:从检测到组播流量中断开始,等待所述组播网络物理链路恢复时长后,向自身VLAN内的所有端口广播IGMP Query报文。
[0027] 所述接入设备为二层设备。
[0028] 所述上游设备为三层设备。
[0029] 一种接入设备,所述接入设备上与上游设备相连的所有端口都被预先配置为静态路由器端口,包括:组播流量检测模块和IGMP-Snooping模块,其中:
[0030] 组播流量检测模块,用于在检测到组播流量中断时,向IGMP-Snooping模块发送流量中断指示;
[0031] IGMP-Snooping模块,接收组播流量检测模块发来的流量中断指示,向接入设备的VLAN内的所有端口广播IGMP Query报文,并在接收到组播接收者发来的IGMP Report报文后,将IGMP Report报文通过接入设备的所有静态路由器端口透传给上游设备,以使得上游设备将接收IGMP Report报文的端口添加为组播流量出接口,并将组播流量从该出接口转发出去。
[0032] 所述IGMP-Snooping模块包括:物理链路恢复定时器和Snooping模块,其中:
[0033] 物理链路恢复定时器,用于在接收到组播流量检测模块发来的流量中断指示时开始计时,并在计时时长等于预设的组播网络物理链路恢复时长后,向Snooping模块发送查询指示;
[0034] Snooping模块,接收物理链路恢复定时器发来的查询指示,向接入设备的VLAN内的所有端口广播IGMP Query报文,并在接收到组播接收者发来的IGMP Report报文后,将IGMP Report报文通过接入设备的所有静态路由器端口透传给上游设备。
[0035] 与现有技术相比,本发明预先将接入设备上与上游设备相连的所有端口都配置为静态路由器端口,并在接入设备检测到组播流量中断时,主动向接入设备VLAN内的所有端口广播IGMP Query报文,然后将组播接收者回应的IGMP Report报文通过接入设备的所有静态路由器端口透传给上游设备,使得在组播流量中断时,接入设备可以立即主动向组播接收者发送IGMPQuery报文,而无需被动等待IGMP Querier发来的IGMP Query报文,从而使得组播接收者能够快速回应IGMP Report报文,加快了三层组播转发表项的更新,从而加快了组播流量的恢复。
[0036] 另外,本发明只需对原有协议作很小改动,实现容易。

附图说明

[0037] 图1为现有的典型的二层组播网络示意图;
[0038] 图2为本发明实施例提供的恢复组播流量的流程图;
[0039] 图3为本发明实施例提供的接入设备的组成示意图。

具体实施方式

[0040] 下面结合附图及具体实施例对本发明再作进一步详细的说明。
[0041] 图2为本发明实施例提供的恢复组播流量的流程图,如图2所示,其具体步骤如下:
[0042] 步骤201:预先在组播网络中的接入设备的IGMP-Snooping模块上开启IGMP-Snooping Querier功能,并将组播网络中的接入设备上与上游三层设备相连的所有端口都配置为静态路由端口,预先设置组播网络物理链路恢复时长。
[0043] 在接入设备的IGMP-Snooping模块上开启IGMP-Snooping Querier功能,则接入设备的IGMP-Snooping模块就可以发送IGMP Query报文了。
[0044] 静态路由器端口的作用与动态路由器端口相同,都是向上游透传IGMPReport报文。由于当组播网络发生故障等而引起组播流量中断时,动态路由器端口将会Down,此时若不将接入设备的其它端口配置为静态路由器端口,则接入设备即使收到了组播接收者发来的IGMP Report报文,也无法透传给上游设备。而,将接入设备与上游三层设备相连的所有端口都配置为静态路由器端口,则可及时将IGMP Report报文透传给上游三层设备,加快组播流量的恢复。
[0045] 步骤202:接入设备检测到组播流量中断,等待预定物理链路恢复时长后,向自身VLAN内的所有端口广播IGMP Query报文。
[0046] 由于在组播网络发生故障而导致组播流量中断时,组播网络的物理链路需要一段时间(通常为毫秒级)才能恢复正常。为了保证IGMP Query报文不被丢失,接入设备应该在组播网络的物理链路恢复正常后,再广播IGMPQuery报文。物理链路恢复时长根据不同的网络环境而不同,可以根据经验预先确定。
[0047] 组播流量中断主要由以下原因引起:
[0048] 原因一、接入设备的路由器端口失效(Down)。此时,接入设备可通过路由器端口Down事件检测到。
[0049] 原因二、组播链路Down。此时,会触发组播网络中的STP切换,接入设备可通过自身的STP模块检测到该STP切换,从而确认组播流量中断。例如:图1中的Link 1 Down后,会触发Link 3的STP状态由Discarding转为Forwarding,L2设备的STP模块会检测到该STP切换。
[0050] 原因三、组播链路由Down变为恢复(Up)。此时,也会触发组播网络中的STP切换,同样,接入设备可通过自身的STP模块检测到该STP切换,从而确认组播流量中断。例如:图1中的Link 1在Down后又Up,此时会触发Link 3的STP状态由Forwarding变回为Discarding,L2设备的STP模块会检测到该STP切换。
[0051] 原因四、端口的STP状态发生切换。此时,接入设备也可通过自身的STP模块检测到该STP切换,从而确定组播流量中断。例如:图1中的Port3的STP状态由Forwarding变为Discarding,此时,也会触发Link 3的STP状态由Discarding变为Forwarding,L2设备的STP模块会检测到该STP切换。
[0052] 本步骤中提到的VLAN内的所有端口,不仅包括接入设备与上游三层设备相连的端口,也包括接入设备与组播接收者相连的端口。
[0053] 步骤203:组播接收者收到IGMP Query报文,向接入设备回应IGMPReport报文。
[0054] 步骤204:接入设备收到组播接收者回应的IGMP Report报文,通过自身所有静态路由器端口向上游三层设备透传该IGMP Report报文。
[0055] 步骤205:作为DR的三层设备收到该IGMP Report报文,将接收IGMPReport报文的端口确定为组播流量出接口,将该出接口添加到三层组播转发表项中。
[0056] 步骤206:作为DR的三层设备收到组播源发来的组播报文,通过三层组播转发表项中的组播流量出接口,将组播报文转发出去。
[0057] 以下给出一个应用本发明实施例提供的方法恢复组播流量的例子:
[0058] 以图1所示的组播网络为例,在L2设备上开启IGMP-Snooping Querier功能,并将Port 1和Port 2都配置为静态路由器端口。当Link 1 Down后,会触发STP切换:Link3由Discarding转为Forwarding,L2设备的STP模块会立即检测到该STP切换,并上报给IGMP-Snooping模块,IGMP-Snooping模块立刻在VLAN 400内的所有端口:Port1、Port2、Port5主动发送IGMPQuery报文,组播接收者收到该IGMP Query报文后,回应IGMP Report报文到L2设备,L2设备的IGMP-Snooping模块再将IGMP Report报文从Port2透传出去,L3-1设备从Port 4收到IGMP Report报文,迅速建立新的三层组播转发表项:将Port 4作为新的组播流量出接口添加到三层组播转发表项中,组播流量重新恢复。此时,组播流量将沿Link 2->Link 3发送到L2设备上,进而发送到组播接收者。
[0059] 图3是本发明实施例提供的恢复组播流量的接入设备的组成示意图,如图3所示,接入设备主要包括:组播流量检测模块31和IGMP-Snooping模块32,其中,接入设备上与组播网络中的上游三层设备相连的所有端口都被预先配置为静态路由器端口,各模块的功能如下:
[0060] 组播流量检测模块31:用于在检测到组播流量中断时,向IGMP-Snooping模块32发送流量中断指示。
[0061] IGMP-Snooping模块32:接收组播流量检测模块31发来的流量中断指示,等待预定组播网络物理链路恢复时长后,向接入设备的VLAN内的所有端口广播IGMP Query报文;接收组播接收者发来的IGMP Report报文,向接入设备的所有静态路由器端口透传该IGMP Report报文。
[0062] 如图3所示,IGMP-Snooping模块32主要包括:物理链路恢复定时器321和Snooping模块322,其中:
[0063] 物理链路恢复定时器321:用于在接收到组播流量检测模块31发来的流量中断指示时开始计时,并在计时时长等于预设的组播网络物理链路恢复时长后,向Snooping模块322发送查询指示。
[0064] Snooping模块322:接收物理链路恢复定时器321发来的查询指示,向接入设备的VLAN内的所有端口广播IGMP Query报文,并在接收到组播接收者发来的IGMP Report报文后,向接入设备的所有静态路由器端口透传该IGMPReport报文。
[0065] 本发明实施例中提到的接入设备可以是二层设备也可以是三层设备。
[0066] 需要指出的是,本发明实施例中的避免环路协议采用的是STP,在实际应用中也可以采用快速环网保护协议(RRPP,Rapid Ring ProtectionProtocol)、灵活链路(Smart Link)等。
[0067] 以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。