一种链路保护方法及其设备的制作方法

文档序号:7633503阅读:251来源:国知局
专利名称:一种链路保护方法及其设备的制作方法
技术领域
本发明涉及通信技术领域中的IP组播技术,尤其涉及一种链路保护方法及其设备。
背景技术
在组播模型中,IP报文的目的地址字段为组播组地址,组播源向以此目的地址所 标识的主机群组传送信息。因此,转发路径上的组播路由器为了将组播报文传送到各个方 位的接收站点,往往需要将从一个入接口收到的组播报文转发到多个出接口。为了保证组播报文在网络中的传输,需要依靠单播路由表或者单独提供给组播使 用的路由表(如MBGP路由表,其中MBGP表示多协议边界网关协议)来指导转发。为了处 理同一设备在不同接口上收到来自不同对端的相同组播信息,需要对组播报文的入接口进 行RPF(ReVerSe Path forwarding,反向路径转发)检查,以决定转发还是丢弃该报文。RPF 检查机制是大部分组播路由协议进行组播转发的基础。在IP组播网络中,组播源发出的组播流按照既定的SPTGhortest PathTree,最 短路径树)进行报文转发,当SPT路径上的某个链路出现故障时,必须通过重建SPT树来转 发组播报文。如图1所示,在正常情况下,组播流(以(Si,Gl)为例)的SPT树为Rl-R2--R4(其 中Rl、R2和R4分别为路由设备),报文从Rl进入后将从与R2连接的接口转发出去,R2的 入接口接收到组播流时会先执行RPF检查,若其报文的源地址的出接口不是该入接口则丢 弃该报文,若RPF检查通过则将报文转发到R4,R4也会执行RPF检查。当R2与R4之间的链路故障时,R4会触发SPT树创建,其间,R4向其组播源地 址的新下一跳R3发送Join消息,R3接收到Join消息后创建组播表项(Si,Gl)并沿着 RP (Rendezvous Point,组播汇聚点)方向向上游发送Join消息,R2接收到该消息后将R3 出接口加入到组播表项(Si,Gl)的出接口列表中,这样根据组播表项(Si,Gl)上游过来的 组播流将被转发到R3,并由R3转发到R4,从而完成了一个新的SPT树的建立。当R2与R4之间的链路恢复时,从R4到Rl的单播路径再次发生变化,组播流(Si, Gl)的RPF接口变成R4-R2之间的接口,此时R4重新触发SPT树建立向RP的上游方向发 送Join消息,同时向R3设备发送Prime (剪枝)消息,R2接收该Join消息后将R2-R4之间 的接口加入到组播表项(S1,G1)出接口列表中并向R4转发组播流,同时R3接收R4发送的 Prune消息后停止向R4发送组播流并向上游设备R2发送Prime消息,R2接收到该消息后 将R2-R3之间的接口从组播表项(Si,Gl)的出接口列表中删除,停止向R3转发该组播流, 从而完成了 SPT树的更新。发明人在实现本发明的过程中,发现在现有技术中,SPT树的重建速度依赖于单播 路由的重建速度,在单播路由收敛之前组播流量一直无法正常转发,出现较长时间的丢包。 对于一些对丢包延时要求较高的组播环境,现有技术无法满足要求。

发明内容
本发明提供了一种链路保护方法及其设备,用以解决现有技术中在转发树重建完 成之前组播流一直无法正常转发的问题。本发明提供的链路保护方法中,第一路由设备和其下游的第二路由设备之间配置 有主链路和对应的保护链路,其中,主链路在第一路由设备上的主出接口和保护链路在第 一路由设备上的保护出接口相关联,主链路在第二路由设备上的主入接口和保护链路在第 二路由设备上的保护入接口相关联;当第一路由设备和第二路由设备之间的主链路故障 时,该方法包括第一路由设备将发生故障的主链路对应的组播转发表项出接口列表中的所述主 链路的主出接口替换为与该主出接口关联的保护出接口,并当接收到所述主链路对应的组 播流时根据更新后的组播转发表项使用保护链路转发所述组播流;第二路由设备将所述主链路的主入接口上的所有组播流的URPF接口修改为与其 关联的保护入接口,并当从所述保护链路接收到组播流后,根据修改后的uRPF接口进行 RPF检测,并在检测通过后向下游路由设备转发所述组播流;第二路由设备触发路径树重建并在路径树重建成功后,第一路由设备在接收到所 述组播流后根据路径树重建过程所更新的组播转发表项转发所述组播流,并根据第二路由 设备发起的剪枝过程从所述组播转发表项中删除所述保护出接口。上述方法中,第一路由设备和第二路由设备之间的保护链路为直连链路或非直连 链路。上述方法中,所述保护链路为非直连链路时,当所述保护链路上的中间路由设备 接收到组播流时,不执行uRPF检查,并将接收到的组播流从除所述组播流的入接口以外的 所有保护接口转发。上述方法中,当第一路由设备和第二路由设备之间的主链路故障时,还包括第一路由设备开启定时器,所述定时器的定时时长不小于路径树重建所需的时 长;若定时器超时时,路径树还未重建成功,则第一路由设备从所述组播转发表项中 删除所述保护出接口。上述方法中,当定时器超时,但路径树还未重建成功,还包括第一路由设备向上 游发起PIM剪枝协议报文,用以通知上游路由设备删除与第一路由设备连接的出接口。上述方法中,所述路径树重建的过程,包括第二路由设备向第一路由设备的出接口发送Join消息;第一路由设备根据所述Join消息将与第二路由设备之间的出接口添加到所述组 播转发表项出接口列表中。上述方法中,第一路由设备根据第二路由设备发起的剪枝过程从所述组播转发表 项中删除所述保护出接口,包括第一路由设备在根据路径树重建过程中添加到所述组播转发表项出接口列表中 的出接口转发组播流到第二路由设备后,第二路由设备通过所述保护链路发送I^ime消 息;第一路由设备接收到所述I^rime消息后,将所述保护链路的出接口从所述组播转发表项出接口列表中删除。上述方法中,第一路由设备和第二路由设备之间的保护链路为直连链路时,还包 括在第一路由设备和第二路由设备之间的接口上使能双向转发检测协议BFD检测;或/ 禾口第一路由设备和第二路由设备之间的保护链路为非直连链路时,还包括在第一路由设备和第二路由设备的环回口上使能BFD检测;或者,在第一路由设 备和所述保护链路上的中间路由设备的接口之间使能BFD检测,在所述保护链路上的中间 路由设备和第二路由设备之间的接口上使能BFD检测。本发明提供的路由设备路由设备作为上游路由设备时,与其下游路由设备之间配 置有主链路和对应的保护链路,所述主链路在所述路由设备上的主出接口和保护链路在该 路由设备上的保护出接口相关联;所述路由设备作为下游路由设备时,与其上游路由设备 之间配置有主链路和对应的保护链路,所述主链路在所述路由设备上的主入接口和保护链 路在所述路由设备上的保护入接口相关联;该路由设备包括检测模块和组播模块;所述检测模块,用于检测本端路由设备与对端路由设备之间的主链路的连通性;在本端路由设备作为上游路由设备的情况下,所述组播模块用于当所述检测模 块检测到主链路故障时,将发生故障的主链路对应的组播转发表项出接口列表中的所述主 链路的主出接口替换为与该主出接口关联的保护出接口,并当接收到所述主链路对应的组 播流时根据更新后的组播转发表项使用保护链路转发所述组播流;以及,进行路径树重建 并在重建成功后,当接收到所述组播流后根据路径树重建过程所更新的组播转发表项转发 所述组播流,并根据下游路由设备发起的剪枝过程从所述组播转发表项中删除所述保护出 接口 ;在本端路由设备作为下游路由设备的情况下,所述组播模块用于当所述检测模 块检测到主链路故障时,将所述主链路的主入接口上的所有组播流的uRPF接口修改为与 其关联的保护入接口,当从所述保护链路接收到组播流后,根据修改后的uRPF接口进行 RPF检测,并在检测通过后向下游路由设备转发所述组播流;以及,发起并执行路径树重建。上述路由设备中,在本端路由设备作为上游路由设备的情况下,所述组播模块还 用于,当所述检测模块检测到主链路故障时开启定时器,所述定时器的定时时长不小于路 径树重建所需的时长;若定时器超时时,路径树还未重建成功,则从所述组播转发表项中删 除所述保护出接口。上述路由设备中,所述组播模块还用于,当定时器超时,但路径树还未重建成功,
则向上游发起PIM剪枝协议报文,用以通知上游路由设备删除与第一路由设备连接的出接□。上述路由设备中,在本端路由设备作为下游路由设备的情况下,所述组播模块具 体用于,向上游路由设备的出接口发送Join消息;在本端路由设备作为上游路由设备的情况下,所述组播模块具体用于,根据下游 路由设备发送的Join消息将与下游路由设备之间的出接口添加到所述组播转发表项出接 口列表中。上述路由设备中,在本端路由设备作为上游路由设备的情况下,所述组播模块具体用于,根据路径树重建过程中添加到所述组播转发表项出接口列表中的出接口转发组播 流;以及,在接收到下游路由设备通过保护链路发送的Prime消息后,将所述保护链路的出 接口从所述组播转发表项出接口列表中删除;在本端路由设备作为下游路由设备的情况下,所述组播模块具体用于,接收到上 游路由设备在路径树重建后发送的组播流后,通过所述保护链路发送Prime消息。上述路由设备中,所述检测模块为BFD检测模块,用于通过BFD方式进行链路检 测。本发明的有益技术效果包括通过在第一路由设备与其下游的第二路由设备之间建立与主链路对应的保护链 路,当第一路由设备和第二路由设备之间的主链路故障时,第一路由设备将发生故障的主 链路对应的组播转发表项出接口列表中的所述主链路的主出接口替换为与该主出接口关 联的保护出接口,第二路由设备将所述主链路的主入接口上的所有组播流的uRPF接口修 改为与其关联的保护入接口,从而当第一路由设备接收到主链路对应的组播流时,可根据 更新后的组播转发表项使用保护链路转发所述组播流,第二路由设备从所述保护链路接收 到组播流后,根据修改后的uRPF接口进行RPF检测,并在检测通过后向下游路由设备转发 所述组播流,从而在主链路故障但转发树还未重建成功时,能够通过保护链路转发组播流, 保证组播业务的连续性。在路径树重建成功后,第一路由设备在接收到所述组播流后根据 路径树重建过程所更新的组播转发表项转发所述组播流,并根据第二路由设备发起的剪枝 过程从所述组播转发表项中删除所述保护出接口,从而在路径树重建成功,可通过重建的 路径树转发组播流的情况下,停止从保护链路转发组播流,保证了系统的可靠性。


图1为现有技术中基于STP树的组播流转发的示意图;图2为本发明实施例提供的链路保护和切换流程示意图;图3为本发明实施例中两台路由设备之间的主链路和保护链路均为直连链路场 景下的链路保护和切换流程示意图;图4为本发明实施例中两台路由设备之间的主链路为直连链路,保护链路为非直 连链路场景下的链路保护和切换流程示意图;图5为本发明实施例中两台路由设备之间的主链路为非直连链路,保护链路为直 连链路场景下的链路保护和切换流程示意图;图6为本发明实施例中两台路由设备之间的主链路和保护链路均为非直连链路 场景下的链路保护和切换流程示意图;图7为本发明实施例提供的路由设备的结构示意图。
具体实施例方式针对现有技术存在的问题,本发明实施例提供了一种IP组播网络中的链路保护 和切换机制,以实现对组播流量的有效保护。下面结合附图对本发明实施例进行详细描述。参见图2,为本发明实施例提供的链路保护和切换流程示意图,其中,路由设备A和其下游的路由设备B之间配置有主链路和对应的保护链路,其中,主链路在路由设备A上 的主出接口和保护链路在路由设备A上的保护出接口相关联,主链路在路由设备B上的主 入接口和保护链路在路由设备B上的保护入接口相关联。正常情况下,路由设备A和路由 设备B之间通过主链路转发组播流。当路由设备A和路由设备B之间的主链路故障时,该 方法包括步骤201,路由设备A将主链路对应的组播转发表项(即出接口列表中包含有主出 接口的组播转发表项)的出接口列表中的主链路的主出接口替换为与该主出接口关联的 保护出接口,并在接收到组播流时根据更新后的组播转发表项转发该组播流;步骤202,路由设备B将主链路的主入接口上的所有组播流的 uRPF(unicastReverse Path forwarding,单播反向路径转发)接口修改为与其关联的保护 入接口,并当从所述保护链路接收到组播流后,根据修改后的uRPF接口进行RPF检测,并在 检测通过后向下游路由设备转发所述组播流;步骤203,路由设备B触发路径树重建,在路径树重建成功后,路由设备A根据路由 设备B发起的剪枝过程从该主链路对应的组播转发表项中删除所述保护出接口,并当接收 到组播流时根据当前更新后的组播转发表项转发组播流。以上流程中的各步骤没有严格的时序要求,例如,在路由设备A和路由设备B之间 的主链路发生故障时,即可触发路径树重建。路由设备A和路由设备B之间的主链路可以是直连链路也可以是非直连链路,同 样,该两台路由设备之间的保护链路可以是直连链路也可以是非直连链路。直连链路是指 转发路径上没有其他中间路由设备,组播流从路由设备A转发到路由设备B;非直连链路是 指组播流从路由设备A到路由设备B的过程中会经过中间路由设备转发。根据两台路由设 备之间的主链路和保护链路的4种不同形式的组合情况,本发明实施例分别结合图3、图4、 图5和图6,对这4种情况下的链路保护和链路切换流程进行了详细描述。参见图3,为本发明实施例中两台路由设备之间的主链路和保护链路均为直连链 路场景下的链路保护和切换流程。如图3所示,Rl、R2和R3分别为路由设备。R2和R3之间的主链路为R2_INTM1—R3_ INTM1,该链路为R2和R3之间的直连链路,正常情况下,组播流通过主链路转发。R2和R3 之间配置有保护链路R2_INTP1-R3_INTP1,该链路为R2和R3之间的直连链路,可通过静态 配置方式进行配置。在R2上建立有主出接口 R2_INTM1与保护出接口 R2_INTP1的关联关 系,在R3上建立有主入接口 R3_INTM1和保护入接口 R3_INTP1的关联关系,该关联关系可 通过静态配置方式配置在相应路由设备上。以正常情况下组播流(S1,G1)从主链路R2_INTM1—R3_INTM1转发为例,当检测到 R2和R3之间的主链路R2_INTM1—R3_INTM1发生故障时,R2和R3之间的链路保护和切换 流程可包括R2将组播组(S1,G1)转发表项的出接口列表中的R2_INTM1接口删除,将与该接口 关联的R2_INTP1接口加入到该出接口列表中,即,将接口 R2_INTM1替换为与其关联的接口 R2_INTP1 ;R3 修改组播组(S1,G1)的 uRPF 接口,S卩,将(S1,G1)的 Nexthop (下一跳)中的 入接口 R3_INTM1修改为与其关联的保护接口 R3_INTP1。在具体实现时,可在R3上预先静 态配置保护链路事件,R3检测到与R2之间的链路故障时触发该保护链路事件,R3通过上述修改组播组(Si,Gl)的uRPF接口的方式响应该链路保护事件。当有组播流(S1,G1)流入R2后,根据组播组(S1,G1)转发表项,该组播流从R2的 保护出接口 R2_INTP1转发到R3的保护入接口 R3_INTP1 ;R3_INTP1对接收到的组播流(Si, Gl)执行RPF检查,并在RPF检查通过后,继续向下游转发该组播流。由于先前主入接口 R3_ INTMl上的所有组播流的uRPF接口已经修改为保护入接口 R3_INTP1,因此此时从R3_INTP1 接收到的组播流(Si,Gl)不会被丢弃,而是直接正常转发到下行。发生了主接口到保护接口的切换后,R2和R3会重新进行组播出接口的运算,即触 发SPT树重建。在SPT重建过程中,R3向RP (组播汇聚点)上游方向R2的出接口发送Join 消息;R2将R2-R3方向的新的出接口添加到组播(Si,Gl)表项的出接口列表中,SPT重建 完成,此时组播流(Si,Gl)会从新的出接口转发。当R3从R2的新的出接口接收到该组播 流后,会通过保护链路R3_INTP1-R2_INTP1之间的保护接口 R3_INTP1发送I^rime消息通 告已经成功建立了新的SPT树,要求剪除保护链路上的流量;R2接收到保护链路上的feline 消息后,将保护链路R2_INTP1—R3_INTP1的出接口 R2_INTP1从组播组(Si,Gl)转发表项 的出接口列表中删除,从而不再向该保护链路转发该组播流。为了避免在较长时间内未成功重建SPT的情况下,长时间使用保护链路转发组播 流,从而降低系统可靠性,本发明实施例中,R2在将组播组(S1,G1)转发表项的出接口列表 中的主链路出R2_INTM1替换为与其关联的保护链路出接口 R2_INTP1时,还启动老化定时 器。根据通常情况下SPT树重建所需的时间长度,该老化定时器的定时时长设为不小于SPT 树重建所需的时间长度,并可适当大于SPT树重建所需的时间长度。如果该老化定时器超 时,SPT树还未重建完成,则R2从组播组(Si,Gl)转发表项的出接口列表中删除保护链路 出接口 R2_INTP1,从而停止从保护链路转发组播流。为了及时发现链路故障从而采用上述方式实现快速链路切换,可以在R2和R3的 主接口 R2_INTM1 和 R3_INTM1 之间使能 BFD(Bi-DirectionalForwarding Detection,双向 转发检测协议)检测,这样,R2可通过BFD检测对R2-R3之间的三层接口进行快速链路检 测,当链路发生故障时BFD会检测到会话DOWN,从而及时通知组播模块将从主接口转发出 去的流量切换到与其相关联的保护接口上转发;R3也可通过BFD检测对R2-R3之间的三层 接口进行快速链路检测,当BFD检测到链路故障时将触发保护链路事件,R3通过上述方式 响应该事件。参见图4,为本发明实施例中两台路由设备之间的主链路为直连链路,保护链路为 非直连链路场景下的链路保护和切换流程。如图4所示,RU R2、R3和R4分别为路由设备,R2和R4之间的主链路为R2_ INTM1-R4_INTM1,该主链路为R2和R4之间的直连链路,正常情况下,组播流通过主链路转 发。在R2和R4之间的链路上使能IPMC接口保护,即在R2和R4之间配置有保护链路R2_ INTP1—R3_INTP1—R3_INTP2—R4_INTP1,该保护链路为R2和R4之间的非直连链路,可通 过静态配置方式进行配置;在R2上建立有主出接口 R2_INTM1与保护出接口 R2_INTP1之间 的关联关系,在R4上建立有主入接口 R4_INTM1与保护入接口 R4_INTP1之间的关联关系, 所述关联关系可通过静态方式配置在相应路由设备上。R3上静态配置了保护链路接口 R2_R3之间的接口 R3_INTP1,以及R3-R4之间的 接口 R3_INTP2。R3上进行如下约定从R3_INTP1进入的所有组播流都会从除该组播流的入接口以外的其他保护接口出去,且不进行uRPF检查和TTL(Time To Live,生存时间)修 改,组播流原封不动的从保护链路出接口转发出去。以正常情况下组播流(S1,G1)从主链路R2_INTM1—R4_INTM1转发为例,当检测到 R2和R4之间的主链路发生故障时,R2和R4之间的链路保护和切换流程可包括R2将组播组(Si,Gl)转发表项的出接口列表中的R2_INTM1接口删除,将与该接 口关联的R2_INTP1接口加入到该出接口列表中,即,将接口 R2_INTM1替换为与其关联的接 口 R2_INTP1 ;R4 修改组播组(S1,G1)的 uRPF 接口,将(S1,G1)的 Nexthop (下一跳)中的 入接口 R4_INTM1修改为与其关联的保护接口 R4_INTP1。在具体实现时,可在R4上预先静 态配置保护链路事件,R4检测到与R2之间的链路故障时触发该保护链路事件,R4通过上述 修改组播组(Si,Gl)的uRPF接口的方式响应该链路保护事件。当有组播流(S1,G1)流入R2后,根据组播组(S1,G1)转发表项,该组播流从R2的 保护出接口 R2_INTP1转发到R3的入接口 R3_INTP1,该入接口不执行uRPF检查,并将进入 的所有组播流向R3的除R3_INTP1以外的所有保护接口转发,其中一份会通过R3-R4之间 的出接口 R3_INTP2转发出去;R4的保护入接口 R4_INTP1对接收到的组播流(S1,G1)执行 RPF检查,并在RPF检查通过后,继续向下游转发该组播流。由于先前主入接口 R4_INTM1上 的所有组播流的uRPF接口已经修改为保护入接口 R4_INTP1,因此此时从R4_INTP1接收到 的组播流(Si,Gl)不会被丢弃,而是直接正常转发到下行。 发生了主接口到保护接口的切换后,R2和R4会重新进行组播出接口的运算,即触 发SPT树重建。在SPT重建过程中,R4向RP上游方向R3的出接口发送Join消息;R3接 收该消息后创建(S1,G1)转发表项并向R2发送Join消息;R2将R2-R3之间的新的出接口 添加到组播(S1,G1)表项的出接口列表中,SPT重建完成,此时组播流(S1,G1)会向新的出 接口转发。R4从R3的新的出接口接收到组播流后会通过R3-R4之间的保护接口 R4_INTP1 发送Prime消息通告已经成功建立了新的SPT树,要求剪除保护链路上的流量;R3从R3_ INTP2接口接收到该Prime消息后停止向该接口发送组播流,并向R2-R3之间的保护链路上 发送I^ime消息;R2接收到保护链路上的I^ime消息后将保护链路从组播组(S1,G1)转发 表项的出接口列表中删除,不再向保护链路转发该流量。为了避免在较长时间内未成功重建SPT的情况下,长时间使用保护链路转发组播 流,从而降低系统可靠性,本发明实施例中,R2将组播组(S1,G1)转发表项的出接口列表中 的主链路出R2_INTM1替换为与其关联的保护链路出接口 R2_INTP1时,还启动老化定时器。 根据通常情况下SPT树重建所需的时间长度,该老化定时器的定时时长设为不小于SPT树 重建所需的时间长度,并可适当大于SPT树重建所需的时间长度。如果该老化定时器超时, 组播组(Si,Gl)表项仍然没有重建,即SPT树还未重建完成,则R2从组播组(Si,Gl)转发 表项的出接口列表中删除保护链路出接口 R2_INTP1,从而不再从保护链路转发组播流,并 可进一步向上游发起PIM(ftx)tocol Independent Multicast,协议无关组播)剪枝协议报 文通知上游设备删除与之连接的出接口以中断组播流量。为了及时发现链路故障从而采用上述方式实现快速链路切换,可以在R2和R4的 主接口 R2_INTM1和R4_INTM1上使能BFD检测,这样,R2可通过BFD检测对R2-R3之间的 三层接口进行快速链路检测,当链路发生故障时BFD会检测到会话DOWN,从而及时通知组 播模块将从主接口转发出去的流量切换到与其相关联的保护接口上转发;R4也可通过BFD检测对三层接口进行快速链路检测,当BFD检测到链路故障时将触发保护链路事件,R4通 过上述方式响应该事件。若IP组播链路上的某个节点发生故障而无法工作,组播流需要跨越该节点。为了 实现节点保护,需要在该节点的上游和下游节点上配置保护链路。根据保护链路的特点分 为直连链路保护链路和非直连链路保护链路,二者和前面的链路保护类似,下面分别通过 图5和图6对两种形式的保护链路下的链路保护和切换流程进行详细描述。参见图5,为本发明实施例中两台路由设备之间的主链路为非直连链路,保护链路 为直连链路场景下的链路保护和切换流程。如图5所示,RU R2、R3和R4分别为路由设备。R2和R4之间的主链路为R2_ INTM1--R3_INTM1—R3_INTM2—R4_INTM1,该主链路为R2和R4间的非直连链路。在R2和 R3之间的链路上使能IPMC接口保护,在R3和R4之间的接口链路上使能IPMC接口保护, 即R2和R4之间配置有保护链路R2_INTP1—R4_INTP1,该保护链路为R2和R4间的直连 链路,可通过静态配置方式进行配置,在R2上建立有主出接口 R2_INTM1和保护出接口 R2_ INTPl之间的关联关系,在R4上建立有主入接口 R4_INTM1和保护入接口 R4_INTP1之间的 关联关系,所述关联关系可通过静态方式配置在相应路由设备上。以正常情况下组播流(S1,G1)从主链路R2_INTM1—R4_INTM1转发为例,当检测到 R2 和 R4 之间的主链路 R2_INTM1—R3_INTM1—R3_INTM2—R4_INTM1 发生故障时,R2 和 R4 之间的链路保护和切换流程可包括R2将组播组(Si,Gl)转发表项的出接口列表中的R2_INTM1接口删除,将与该接 口关联的R2_INTP1接口加入到该出接口列表中,即,将接口 R2_INTM1替换为与其关联的接 口 R2_INTP1 ;R4 修改组播组(S1,G1)的 uRPF 接口,将(S1,G1)的 Nexthop (下一跳)中的 入接口 R4_INTM1修改为与其关联的保护接口 R4_INTP1。在具体实现时,可在R4上预先静 态配置保护链路事件,R4检测到与R2之间的链路故障时触发该保护链路事件,R4通过上述 修改组播组(Si,Gl)的uRPF接口的方式响应该链路保护事件。当有组播流(S1,G1)流入R2后,根据组播组(S1,G1)转发表项,该组播流从R2的 保护出接口 R2_INTP1转发到R4的保护入接口 R4_INTP1 ;R4的保护入接口 R4_INTP1对接 收到的组播流(S1,G1)执行RPF检查,并在RPF检查通过后,继续向下游转发该组播流。由 于先前主入接口 R4_INTM1上的所有组播流的uRPF接口已经修改为保护入接口 R4_INTP1, 因此此时从R4_INTP1接收到的组播流(Si,Gl)不会被丢弃,而是直接正常转发到下行。发生了主接口到保护接口的切换后,R2和R4会重新进行组播出接口的运算,即触 发SPT树重建。在SPT重建过程中,R4向RP上游方向R2的出接口发送Join消息;R2将 R2-R4的新出接口添加到组播(Si,Gl)表项的出接口列表中,SPT重建完成,此时组播流会 向新的出接口转发。R4从R2接收到组播流后会通过R4-R2之间的保护链路接口发送I^une 消息通告已经成功建立了新的SPT树,要求剪除保护链路上的流量;R2接收到保护链路上 的I^une消息后将保护链路的出接口 R2_INTP1从组播组(Si,Gl)转发表项的出接口列表 中删除,不再向保护链路转发该流量。为了避免在较长时间内未成功重建SPT的情况下,长时间使用保护链路转发组播 流,从而降低系统可靠性,本发明实施例中,R2在将组播组(Si,Gl)转发表项的出接口列 表中的主链路出R2_INTM1替换为与其关联的保护链路出接口 R2_INTP1时,还启动老化定时器。根据通常情况下SPT树重建所需的时间长度,该老化定时器的定时时长设为不小于 SPT树重建所需的时间长度,并可适当大于SPT树重建所需的时间长度。如果该老化定时 器超时,组播组(Si,Gl)表项仍然没有重建,即SPT树还未重建完成,则R2从组播组(Si, Gl)转发表项的出接口列表中删除保护链路出接口 R2_INTP1,从而不再从保护链路转发组 播流,并可进一步向上游发起PIM剪枝协议报文通知上游设备删除与之连接的出接口以中 断组播流量。为了及时发现链路故障从而采用上述方式实现快速链路切换,可以在R2-R4的环 回口上使能BFD检测,以便通过BFD对R2和R4之间的三层接口进行快速链路检测。也可以 在R2-R3主接口之间使能BFD检测,并在R3-R4主接口之间使能BFD检测。当R3故障时, R2和R4都会检测到会话DOWN,从而触发执行上述链路保护和切换流程。参见图6,为本发明实施例中两台路由设备之间的主链路和保护链路均为非直连 链路场景下的链路保护和切换流程。如图6所示,Rl、R2、R3、R4和R5分别为路由设备,R2和R4之间的主链路为R2_ INTM1—R3_INTM1—R3_INTM2—R4_INTM1,该主链路为R2和R4间的非直连链路,正常情 况下,组播流通过主链路转发。在R2和R3之间的链路上使能IPMC接口保护,在R3和R4 之间的接口链路上使能IPMC接口保护,即R2和R4之间配置有保护链路R2_INTP1-R5_ INTP1—R5_INTP2—R4_INTP1,该保护链路为R2和R4间的非直连链路,可通过静态配置方 式进行配置;在R2上建立有主出接口 R2_INTM1和保护出接口 R2_INTP1之间的关联关系, 在R4上建立有主入接口 R4_INTM1和保护入接口 R4_INTP1之间的关联关系,所述关联关系 可通过静态方式配置在相应路由设备上。R5上静态配置了保护链路接口 R2_R5之间的接口为R5_INTP1,以及R5-R4之间 的接口 R5_INTP2。在R5上进行如下约定R5_INTPX,X为1,2..,为保护链路接口,进入的 所有组播流都会从所有保护链路接口出去,且不进行uRpf检查和TTL修改,报文原封不动 从保护链路接口转发出去。以正常情况下组播流(S1,G1)从主链路R2_INTM1—R4_INTM1转发为例,当检测到 R2 和 R4 之间的主链路 R2_INTM1—R3_INTM1—R3_INTM2—R4_INTM1 发生故障时,R2 和 R4 之间的链路保护和切换流程可包括R2将组播组(Si,Gl)转发表项的出接口列表中的R2_INTM1接口删除,将与该接 口关联的R2_INTP1接口加入到该出接口列表中,即,将接口 R2_INTM1替换为与其关联的接 口 R2_INTP1 ;R4 修改组播组(S1,G1)的 uRPF 接口,将(S1,G1)的 Nexthop (下一跳)中的 入接口 R4_INTM1切换到与其关联的保护接口 R4_INTP1上。在具体实现时,可在R4上预先 静态配置保护链路事件,R4检测到与R2之间的链路故障时触发该保护链路事件,R4通过上 述修改组播组(Si,Gl)的uRPF接口的方式响应该链路保护事件。当有组播流(S1,G1)流入R2后,根据组播组(S1,G1)转发表项,该组播流从R2的 保护出接口 R2_INTP1转发到R3的入接口 R5_INTP1,该入接口不执行uRPF检查,并将进入 的所有组播流向R5的除R5_INTP1以外的所有保护接口转发,其中一份会通过R5-R4之间 的出接口 R5_INTP2转发出去;R4的保护入接口 R4_INTP1对接收到的组播流(S1,G1)执行 RPF检查,并在RPF检查通过后,继续向下游转发该组播流。由于先前主入接口 R4_INTM1上 的所有组播流的uRPF接口已经修改为保护入接口 R4_INTP1,因此此时从R4_INTP1接收到的组播流(Si,Gl)不会被丢弃,而是直接正常转发到下行。发生了主接口到保护接口的切换后,R2和R4会重新进行组播出接口的运算,即触 发SPT树重建。在SPT重建过程中,R4向RP上游方向R5的出接口(不是保护链路接口 R4_INTP1)发送Join消息;R5接收该消息后创建(Si,Gl)转发表项并向R2发送Join消 息;R2将R2-R5之间的出接口添加到组播(S1,G1)表项的出接口列表中,SPT重建完成,此 时组播流会向新的出接口转发。R4从R5接收到组播流后会通过R4-R5之间的保护链路发 送Prime消息通告已经成功建立了新的SPT树,要求剪除保护链路上的流量;R5接收到该 Prune消息后停止向该接口发送组播流,并向R5-R2之间的保护链路上发送I^ime消息;R2 接收到保护链路上的I^rime消息后将保护链路的出接口从组播组(S1,G1)转发表项的出接 口列表中删除,不再向保护链路转发该流量。为了避免在较长时间内未成功重建SPT的情况下,长时间使用保护链路转发组播 流,从而降低系统可靠性,本发明实施例中,R2将组播组(S1,G1)转发表项的出接口列表中 的主链路出R2_INTM1替换为与其关联的保护链路出接口 R2_INTP1时,还启动老化定时器。 根据通常情况下SPT树重建所需的时间长度,该老化定时器的定时时长设为不小于SPT树 重建所需的时间长度,并可适当大于SPT树重建所需的时间长度。如果该老化定时器超时, 组播组(Si,Gl)表项仍然没有重建,即SPT树还未重建完成,则R2从组播组(Si,Gl)转发 表项的出接口列表中删除保护链路出接口 R2_INTP1,从而不再从保护链路转发组播流,并 可进一步向上游发起PIM剪枝协议报文通知上游设备删除与之连接的出接口以中断组播 流量。为了及时发现链路故障从而采用上述方式实现快速链路切换,可以在R2和R4的 环回口上使能BFD检测,以便通过BFD对R2和R4之间的三层接口进行快速链路检测。也 可以在R2-R3主接口之间使能BFD检测,并在R3-R4主接口之间使能BFD检测。当R3故障 时,R2和R4都会检测到会话DOWN,从而触发执行上述链路保护和切换流程。需要说明的是,以上实施例中针对保护链路为非直连链路的情况,仅以该非直连 链路上包含有一个中间路由器为例描述,本领域技术人员应该能够理解,在该非直连链路 上存在多个中间路由器的情况下,其链路保护和切换处理流程与中间路由器为一个的情况 类似。综上所述,本发明实施例实现了 IP组播转发链路上的链路保护和接口保护,实现 了组播流量的快速保护和平稳切换,使得组播流量在其SPT链路故障时尽可能的减少丢 包,为基于Q0S的组播流提供可靠性依据。基于相同的技术构思,本发明实施例还提供了一种可应用于上述流程的路由设 备。参见图7,为本发明实施例提供的路由设备的结构示意图。所述路由设备作为上游路由设备时,与其下游路由设备之间配置有主链路和对应 的保护链路,该主链路在所述路由设备上的主出接口和保护链路在该路由设备上的保护出 接口相关联;该路由设备作为下游路由设备时,与其上游路由设备之间配置有主链路和对 应的保护链路,该主链路在所述路由设备上的主入接口和保护链路在所述路由设备上的保 护入接口相关联。该路由设备可包括检测模块701和组播模块702 ;其中检测模块701,用于检测本端路由设备与对端路由设备之间的主链路的连通性;
在本端路由设备作为上游路由设备的情况下,组播模块702用于当检测模块701 检测到主链路故障时,将发生故障的主链路对应的组播转发表项出接口列表中的所述主链 路的主出接口替换为与该主出接口关联的保护出接口,并当接收到所述主链路对应的组播 流时根据更新后的组播转发表项使用保护链路转发所述组播流;以及,进行路径树重建并 在重建成功后,当接收到所述组播流后根据路径树重建过程所更新的组播转发表项转发所 述组播流,并根据下游路由设备发起的剪枝过程从所述组播转发表项中删除所述保护出接 Π ;在本端路由设备作为下游路由设备的情况下,组播模块702用于当检测模块701 检测到主链路故障时,将所述主链路的主入接口上的所有组播流的uRPF接口修改为与其 关联的保护入接口,当从所述保护链路接收到组播流后,根据修改后的uRPF接口进行RPF 检测,并在检测通过后向下游路由设备转发所述组播流;以及,发起并执行路径树重建。在本端路由设备作为上游路由设备的情况下,组播模块702还可用于,当所述检 测模块检测到主链路故障时开启定时器,所述定时器的定时时长不小于路径树重建所需的 时长;若定时器超时时,路径树还未重建成功,则从所述组播转发表项中删除所述保护出接 口。进一步的,组播模块702还可用于,当定时器超时,但路径树还未重建成功,则向上游发 起PIM剪枝协议报文,用以通知上游路由设备删除与第一路由设备连接的出接口。在本端路由设备作为下游路由设备的情况下,组播模块702具体用于,向上游路 由设备的出接口发送Join消息;在本端路由设备作为上游路由设备的情况下,组播模块 702具体用于,根据下游路由设备发送的Join消息将与下游路由设备之间的出接口添加到 所述组播转发表项出接口列表中。在本端路由设备作为上游路由设备的情况下,组播模块702具体用于,根据路径 树重建过程中添加到所述组播转发表项出接口列表中的出接口转发组播流;以及,在接收 到下游路由设备通过保护链路发送的Prime消息后,将所述保护链路的出接口从所述组播 转发表项出接口列表中删除;在本端路由设备作为下游路由设备的情况下,组播模块702 具体用于,接收到上游路由设备在路径树重建后发送的组播流后,通过所述保护链路发送 Prune消息。上述路由设备中,检测模块701可以是BFD检测模块,用于通过BFD方式进行链路 检测。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助 软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更 佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的 部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若 干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行 本发明各个实施例所述的方法。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视本发明的保护范围。
权利要求
1.一种链路保护方法,其特征在于,第一路由设备和其下游的第二路由设备之间配置 有主链路和对应的保护链路,其中,主链路在第一路由设备上的主出接口和保护链路在第 一路由设备上的保护出接口相关联,主链路在第二路由设备上的主入接口和保护链路在第 二路由设备上的保护入接口相关联;当第一路由设备和第二路由设备之间的主链路故障 时,该方法包括第一路由设备将发生故障的主链路对应的组播转发表项出接口列表中的所述主链路 的主出接口替换为与该主出接口关联的保护出接口,并当接收到所述主链路对应的组播流 时根据更新后的组播转发表项使用保护链路转发所述组播流;第二路由设备将所述主链路的主入接口上的所有组播流的单播反向路径转发uRPF 接口修改为与其关联的保护入接口,并当从所述保护链路接收到组播流后,根据修改后的 uRPF接口进行反向路径转发RPF检测,并在检测通过后向下游路由设备转发所述组播流;第二路由设备触发路径树重建并在路径树重建成功后,第一路由设备在接收到所述组 播流后根据路径树重建过程所更新的组播转发表项转发所述组播流,并根据第二路由设备 发起的剪枝过程从所述组播转发表项中删除所述保护出接口。
2.如权利要求1所述的方法,其特征在于,第一路由设备和第二路由设备之间的保护 链路为直连链路或非直连链路。
3.如权利要求2所述的方法,其特征在于,所述保护链路为非直连链路时,当所述保护 链路上的中间路由设备接收到组播流时,不执行uRPF检查,并将接收到的组播流从除所述 组播流的入接口以外的所有保护接口转发。
4.如权利要求1所述的方法,其特征在于,当第一路由设备和第二路由设备之间的主 链路故障时,还包括第一路由设备开启定时器,所述定时器的定时时长不小于路径树重建所需的时长;若定时器超时时,路径树还未重建成功,则第一路由设备从所述组播转发表项中删除 所述保护出接口。
5.如权利要求4所述的方法,其特征在于,当定时器超时,但路径树还未重建成功,还 包括第一路由设备向上游发起协议无关组播PIM剪枝协议报文,用以通知上游路由设备删 除与第一路由设备连接的出接口。
6.如权利要求1所述的方法,其特征在于,所述路径树重建的过程,包括第二路由设备向第一路由设备的出接口发送Join消息;第一路由设备根据所述Join消息将与第二路由设备之间的出接口添加到所述组播转 发表项出接口列表中。
7.如权利要求1所述的方法,其特征在于,第一路由设备根据第二路由设备发起的剪 枝过程从所述组播转发表项中删除所述保护出接口,包括第一路由设备在根据路径树重建过程中添加到所述组播转发表项出接口列表中的出 接口转发组播流到第二路由设备后,第二路由设备通过所述保护链路发送I^rime消息;第一路由设备接收到所述I^rime消息后,将所述保护链路的出接口从所述组播转发表 项出接口列表中删除。
8.如权利要求1-6任一项所述的方法,其特征在于,第一路由设备和第二路由设备之间的保护链路为直连链路时,还包括在第一路由设备和第二路由设备之间的接口上使能 双向转发检测协议BFD检测;或/和第一路由设备和第二路由设备之间的保护链路为非直连链路时,还包括在第一路由设备和第二路由设备的环回口上使能BFD检测;或者,在第一路由设备和 所述保护链路上的中间路由设备的接口之间使能BFD检测,在所述保护链路上的中间路由 设备和第二路由设备之间的接口上使能BFD检测。
9.一种路由设备,其特征在于,所述路由设备作为上游路由设备时,与其下游路由设 备之间配置有主链路和对应的保护链路,所述主链路在所述路由设备上的主出接口和保护 链路在该路由设备上的保护出接口相关联;所述路由设备作为下游路由设备时,与其上游 路由设备之间配置有主链路和对应的保护链路,所述主链路在所述路由设备上的主入接口 和保护链路在所述路由设备上的保护入接口相关联;该路由设备包括检测模块和组播模 块;所述检测模块,用于检测本端路由设备与对端路由设备之间的主链路的连通性;在本端路由设备作为上游路由设备的情况下,所述组播模块用于当所述检测模块检 测到主链路故障时,将发生故障的主链路对应的组播转发表项出接口列表中的所述主链路 的主出接口替换为与该主出接口关联的保护出接口,并当接收到所述主链路对应的组播流 时根据更新后的组播转发表项使用保护链路转发所述组播流;以及,进行路径树重建并在 重建成功后,当接收到所述组播流后根据路径树重建过程所更新的组播转发表项转发所述 组播流,并根据下游路由设备发起的剪枝过程从所述组播转发表项中删除所述保护出接 Π ;在本端路由设备作为下游路由设备的情况下,所述组播模块用于当所述检测模块检 测到主链路故障时,将所述主链路的主入接口上的所有组播流的uRPF接口修改为与其关 联的保护入接口,当从所述保护链路接收到组播流后,根据修改后的uRPF接口进行RPF检 测,并在检测通过后向下游路由设备转发所述组播流;以及,发起并执行路径树重建。
10.如权利要求9所述的路由设备,其特征在于,在本端路由设备作为上游路由设备的 情况下,所述组播模块还用于,当所述检测模块检测到主链路故障时开启定时器,所述定时 器的定时时长不小于路径树重建所需的时长;若定时器超时时,路径树还未重建成功,则从 所述组播转发表项中删除所述保护出接口。
11.如权利要求10所述的路由设备,其特征在于,所述组播模块还用于,当定时器超 时,但路径树还未重建成功,则向上游发起PIM剪枝协议报文,用以通知上游路由设备删除 与第一路由设备连接的出接口。
12.如权利要求9所述的路由设备,其特征在于,在本端路由设备作为下游路由设备的 情况下,所述组播模块具体用于,向上游路由设备的出接口发送Join消息;在本端路由设备作为上游路由设备的情况下,所述组播模块具体用于,根据下游路由 设备发送的Join消息将与下游路由设备之间的出接口添加到所述组播转发表项出接口列 表中。
13.如权利要求9所述的路由设备,其特征在于,在本端路由设备作为上游路由设备的 情况下,所述组播模块具体用于,根据路径树重建过程中添加到所述组播转发表项出接口 列表中的出接口转发组播流;以及,在接收到下游路由设备通过保护链路发送的I^rime消息后,将所述保护链路的出接口从所述组播转发表项出接口列表中删除;在本端路由设备作为下游路由设备的情况下,所述组播模块具体用于,接收到上游路 由设备在路径树重建后发送的组播流后,通过所述保护链路发送Prime消息。
14.如权利要求9-13任一项所述的路由设备,其特征在于,所述检测模块为BFD检测模 块,用于通过BFD方式进行链路检测。
全文摘要
本发明公开了一种链路保护方法及其设备,用以解决现有技术中在转发树重建完成之前组播流一直无法正常转发的问题。该方法中,第一路由设备和其下游的第二路由设备之间配置有主链路和对应的保护链路;当主链路故障时,第一路由设备将该主链路对应的组播转发表项出接口列表中的该主链路的主出接口替换为关联的保护出接口,并根据更新后的组播转发表项转发组播流;第二路由设备将该主链路的主入接口上的所有组播流的uRPF接口修改为与其关联的保护入接口;在路径树重建成功后,第一路由设备在接收到所述组播流后根据路径树重建过程所更新的组播转发表项转发所述组播流,并根据第二路由设备发起的剪枝过程从所述组播转发表项中删除所述保护出接口。
文档编号H04L12/56GK102111342SQ20111008622
公开日2011年6月29日 申请日期2011年4月7日 优先权日2011年4月7日
发明者宋小恒, 汪洪远, 龚铁柱 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1