CN101610203A - 实现组播重路由的方法、装置及系统 - Google Patents
实现组播重路由的方法、装置及系统 Download PDFInfo
- Publication number
- CN101610203A CN101610203A CNA2008101252305A CN200810125230A CN101610203A CN 101610203 A CN101610203 A CN 101610203A CN A2008101252305 A CNA2008101252305 A CN A2008101252305A CN 200810125230 A CN200810125230 A CN 200810125230A CN 101610203 A CN101610203 A CN 101610203A
- Authority
- CN
- China
- Prior art keywords
- node
- upstream node
- router
- lsp
- forwarding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种实现组播重路由的方法、装置及系统。本发明技术方案采用当主标签交换路径LSP上的上游节点和下游节点之间的链路发生故障时,该上游节点通过硬件快速感知并切换流量到预先建立的连接该上游节点和下游节点的备用LSP上,从而实现快速重路由,减少流量丢失。
Description
技术领域
本发明涉及通信技术领域,具体涉及实现组播快速重路由的方法、装置及系统。
背景技术
随着通信技术的发展,人们对组播的需求越来越多,通过对LDP(LabelDistribution Protocol,标签分发协议)的扩展,支持创建具有唯一根节点,一个或多个叶子节点的LDP P2MP LSP(LDP Point To Multi-point Label SwitchedPath,LDP点对多点标签交换路径)是一种很好的实现组播的方案,然而网络链路故障在所难免,这将导致流量的丢失,从而可能会引起业务的错误或中断,于是,就出现了重路由技术。
FRR(Fast Reroute,快速重路由)是一种实现MPLS(Multi-Protocol LabelSwitching)网络局部保护的技术,这种技术借助MPLS流量工程的能力,为LSP(Label Switched Path,标签交换路径)提供快速保护倒换能力,但是这种技术一般只应用在P2P(点对点),即单播中。对于组播的重路由方式目前主要是LDP P2MP Reroute(LDP点对多点重路由)。
LDP P2MP Reroute技术主要是扩展了两个主要的协议报文:path check(路径检查),path modify(路径修改)。由根节点沿着已经建好的P2MP LSP(点对多点标签交换路径)周期性地发送path check消息给所有的下游节点,下游节点收到之后根据单播路由查找到达根节点的出接口是否与接收path check消息的接口一致,若不一致则表明下一跳节点发生改变,然后置path check消息中的字段ps为1,向该节点的所有下游节点发送path check消息,由这些节点透传到末端的叶子节点,从而由叶子反向沿着到达根节点的最优路径发送pathmodify消息,接收到path modify消息的节点都检查目前到达根节点的下一跳节点是否与本地的点对多点转发表项中的入接口一致,不一致则重新发送Mapping消息给最优下一跳节点,从而完成新的LSP的建立。
目前的方法在下一跳节点接收到path check消息,且本地的路由表已经更新的情况下,才能判断出下一跳节点发生改变,即检测路由改变的时间点只能定在路由收敛之后,所以对于故障的检测不够快速;而且,目前的方法需要在某个节点接收到path check消息,检察出路由变化之后,才发送path modify消息尝试建立新的LSP,建路是需要耗时的,这样会延误流量的切换,导致流量的丢失。
发明内容
本发明实施例提供一种实现组播重路由的方法、装置及系统,能够快速检测出故障,快速切换流量。
一种实现组播重路由的方法,主要包括:
当主标签交换路径LSP上的下游节点和上游节点之间的链路发生故障,所述上游节点切换流量到连接所述下游节点和上游节点的备用LSP上,
其中,所述备用LSP是在所述主LSP上的下游节点和上游节点之间的链路发生故障之前建立的。
一种路由器,作为主LSP上的上游节点,主要包括判断单元和切换单元;
第一判断单元,主要用于判断主LSP上的下游节点和上游节点之间的链路是否发生故障;
切换单元,主要用于当第一判断单元判断出主LSP的下游节点和上游节点之间的链路发生故障,切换流量到连接所述下游节点和上游节点的备用LSP上,
其中,所述备用LSP是在所述主LSP上的下游节点和上游节点之间的链路发生故障之前建立的。
一种路由器,作为主LSP上的下游节点,主要包括查询单元和建立单元;
查询单元,主要用于查找是否存在到上游节点的备用路由;
建立单元,主要用于在查询单元查找到存在到所述上游节点的备用路由时,通过所述备用路由在所述下游节点和上游节点之间建立备用LSP。
一种通信系统,主要包括作为下游节点的路由器A,作为上游节点的路由器B;
所述路由器A和路由器B位于同一主LSP上;
路由器B,主要用于当主LSP上的下游节点和上游节点之间的链路发生故障,切换流量到连接所述下游节点和上游节点的备用LSP上,
路由器A,主要用于路由器B切换流量到连接所述下游节点和上游节点的备用LSP上后,通过所述备用LSP接收所述流量。
本发明实施例采用当主LSP上的上游节点和下游节点之间的链路发生故障时,该上游节点通过硬件快速感知并切换流量到预先建立的连接该上游节点和下游节点的备用LSP上,从而实现快速重路由,减少流量丢失。
附图说明
图1是本发明提供的实施例一的方法流程图;
图2是本发明提供的实施例二的方法的示意图;
图3是本发明提供的实施例三的方法的示意图;
图4是本发明提供的实施例四的方法的示意图;
图5是本发明提供的实施例五中作为上游节点的路由器的示意图;
图6是本发明提供的实施例五中作为下游节点的路由器的示意图;
图7是本发明提供的通信系统的示意图;
图8为本发明提供的SNHR Mapping消息的报文格式的示意图。
具体实施方式
本发明实施例提供一种实现组播重路由的方法,能够快速检测出故障,快速切换流量。本发明实施例还提供相应的装置及系统。以下分别进行详细说明。
实施例一、
一种实现组播重路由的方法,当主LSP上的下游节点和上游节点之间的链路发生故障时,该上游节点通过硬件快速感知并切换流量到连接该上游节点和下游节点的备用LSP上,其中,该备用LSP是在所述主LSP上的下游节点和上游节点之间的链路发生故障之前建立的。需说明的是,所述上游节点(upstream)与下游节点(downstream)是针对流量而言的,流量先到达的节点相对于流量后到达的节点而言,即为上游节点,同理,流量后到达的节点相对于流量先到达的节点而言,即为下游节点。
如图1所示,其具体流程可以如下:
101、主LSP上的上游节点判断主LSP上的下游节点和上游节点之间的链路是否发生故障;
102、当主LSP上的下游节点和上游节点之间的链路发生故障时,该上游节点切换流量到预先建立的连接该上游节点和下游节点的备用LSP上。
由上可知,本发明实施例采用当该主LSP上的下游节点和上游节点之间的链路发生故障时,该上游节点通过硬件快速感知并切换流量到预先建立的连接该上游节点和下游节点的备用LSP上,避免在故障之后才重新建立LSP,导致在重建LSP期间流量丢失,实现快速重路由。
实施例二、
根据实施例一所描述的方法,在主LSP上的上游节点确定主LSP上的下游节点和上游节点之间的链路发生故障之前还包括:在所述下游节点和上游节点之间建立备用LSP。
在该备用LSP建立好之后,当该主LSP上的下游节点和上游节点之间的链路发生故障时,该上游节点切换流量到该备用LSP上;路由经过一段时间收敛之后,该主LSP上的下游节点可以通过make-before-break(先建后删)技术将流量切换到路由收敛后的新的主LSP上。
下面将举例说明,如图2所示,S为一个组播源,D1,D2,D3为三个接受者,运营商通过部署,配置组播能力后,建立LSP:以S为根节点;B1、B2为中间节点;D1、D2、D3为叶子节点,其中B1为D1和D2到达根节点的下一跳节点;B2为D3到达根节点的下一跳节点,且B2到B1的路径不会形成环路,若采用IPFRR Framework(IP快速重路由体系)中的缩略语表示即为:B2满足不等式:
Dis_Opt(B2,B1)<Dis_Opt(B2,D2)+Dis_Opt(D2,B1)
如图2实线箭头所示,假设到达D2的主LSP为(S→B1→D2),B1为上游节点,D2为下游节点,在B1和D2之间建立备用LSP(B1→B2→D2),参见图2虚线箭头部分。那么,当B1和D2之间的链路发生故障时,上游节点B1通过硬件快速感应,并通过硬件将流量切换到备用LSP(B1→B2→D2)上,即此时根节点S的流量将沿着路径(S→B1→B2→D2)转发给叶子节点。路由收敛之后,D2作为故障链路的下游节点,发起make-before-break,将流量切换到路由收敛后的新的主LSP上。
make-before-break是目前针对网络路由重新收敛导致丢包的问题的解决办法之一,下面就make-before-break的功能原理给予简单介绍:
如图2所示,D2原来到达根节点的下一跳节点为B1,这时由于网络拓扑变化,包括链路度量的改变,或者链路故障等等,D2接收到路由通知得知自身到达根节点的下一跳节点由原来的B1更改为B2,于是,D2发起make-before-break,其步骤如下:
D2尝试建立经过新的下一跳B2的LSP,则D2申请标签,发送携带有该申请的标签的Mapping(映射)消息给B2,并将该申请的标签作为入标签,添加到转发表项中。
B2接收到D2发送的Mapping消息后,判断自身是否为同一条LSP上的节点;
若是,则以接收到的Mapping消息中携带的标签为出标签,以接收Mapping消息的接口为出接口,添加到转发表项中,回复LDP Notification Message(LDP通知消息)给D2;
若否,则B2以接收到的Mapping消息中携带的标签为出标签,以接收Mapping消息的接口为出接口,添加到转发表项中,然后,B2申请标签,发送携带有该申请的标签的Mapping消息到达根节点的下一跳节点,本例中就是根节点S,根节点S接收到该B2发送的Mapping消息后,确定自身是根节点,则以该B2发送的Mapping消息中携带的标签为出标签,以接收该B2发送的Mapping消息的接口为出接口,添加到转发表项中,并回复LDP Notification Message给B2,B2接收到该LDP Notification Message后,再发送LDP Notification Message给D2。
D2接收到该LDP Notification Message后,得知到达根节点S的最新的LSP已经建立成功,于是,发起旧的LSP的删除,即发送label withdraw(标签撤消消息)消息给B1,等待B1回复release(标签释放)消息后,释放原来为B1分配的标签,并删除对应的转发表项。
当然,在本发明提供的实施例的基础上,在此,即为把旧的主LSP删除,同时,还可以把旧的主LSP的备用LSP删除掉,以释放资源。
由上可以看出,由于本发明实施例采用在主LSP上的上游节点和下游节点之间建立备用LSP,所以,当该主LSP上的上游节点和下游节点之间的链路发生故障时,该上游节点通过硬件快速感知并切换流量到该备用LSP上,从而实现快速重路由,减少流量丢失。
实施例三、
根据实施例二描述的方法,下面将以P2MP中D发起建立链路(B1→D)的备用LSP为例对本发明提供的重路由方法进行详细说明。
如图3所示,D和B1为同一P2MP LSP中的节点,并且D到达根节点的下一跳节点就是B1,Bn是相对于B1来说D到达根节点的次优路由,在此,我们把Bn作为D到达根节点的备用路由,为了对链路(B1→D)进行保护,当链路(B1→D)故障时,可以快速感知并快速切换流量,D尝试沿着备用路由建立备用LSP。建设这条备用LSP就是如图中虚线箭头所示的(B1→B2→......Bn→D),其中,D为主LSP上的下游节点,B1为主LSP上的上游节点,Bn为备用LSP上的第一个节点,B2为备用LSP上的末端节点。
首先,对映射消息,即Mapping消息进行扩展,形成特殊映射消息,假设此特殊映射消息命名为SNHR Mapping消息,它携带标签和所述上游节点的回环地址,以及下游节点到达所述上游节点的出接口地址,其报文的格式如图8所示。
其中,SNHR MAPPING TBD由国际互联网代理成员管理局分配;
Message Length为值域的长度,单位为字节;
Message ID为标识一个LDP消息的ID,在Peer(对等体)回复Notification(通知)中携带使用该Message ID以确定是对哪一个消息的回复;
P2MP FEC TLV为和普通的P2MP FEC TLV相同,其中,FEC为ForwardingEquivalence Class(转发等价类),TLV为Type(类型)、Length(长度)和Value(值);
SOURCE LSR TLV为下游节点到达所述上游节点的出接口地址;
DESTINATION LSR TLV为所述上游节点的参与路由计算的loopback(回环)地址,即所述上游节点的回环地址。
接收者对SNHR Mapping消息的处理:
接收到SNHR Mapping消息后,解析报文,提取DESTINATION LSR,即上游节点的回环地址,根据所述DESTINATION LSR判断自己是否为Destination LSR,即所述上游节点,根据判断结果的不同可以分以下两种情况:
(1)如果接收者不是Destination LSR:申请标签,提取接收到的SNHRMapping消息中携带的Source LSR、Destination LSR以及P2MP FEC,并将其与该申请的标签封装成一个SNHR Mapping消息,发送给下一跳节点;添加该申请到的标签以及到达下一跳节点的出接口到转发表项中;如果该节点也是同一条P2MP LSP中的节点,那么区别对待其他的转发表项,这个分配给下一跳节点的标签,和接收到的SNHR Mapping消息中携带的标签进行交换操作。
(2)如果接收者就是Destination LSR:解析报文,保持报文中携带的标签为自由标签,根据该自由标签建立非活跃转发表项,作为原转发表项的备份项,即备用转发表项,从报文中提取Source LSR,即下游节点到达所述上游节点的出接口地址,查找以该地址为下一跳地址的出接口索引,根据这个出接口索引匹配原转发表项,并将备用转发表项关联到原转发表项,这样,在感知同主LSP上的上游节点与下游节点之间的链路故障时,硬件可以快速感知并进行切换。其中,根据该出接口索引匹配原转发表项,并将备用转发表项关联到原转发表项。具体可以如下所示:
假设查找到的出接口索引为出接口索引2,而原转发表项为:
备用转发表项为(自由标签,备用路由上的下一跳地址2,新的出接口索引);
则接受者根据出接口索引2在原转发表项中找到需要保护的链路的转发表项(出标签2,下一跳地址2,出接口索引2),并将备用转发表项(自由标签,备用路由上的下一跳地址2,新的出接口索引)关联到原转发表项中的(出标签2,下一跳地址2,出接口索引2),建立了关联关系后的完整的转发表项为:
需说明的是,文中所说的第一映射消息与第二映射消息均为此类型特殊映射消息,即它们的格式相同,只是第一映射消息中的SOURCE LSR TLV和DESTINATION LSR TLV的内容与第二映射消息中的内容刚好相反,即第一映射中的SOURCE LSR TLV的内容和第二映射中的DESTINATION LSRTLV的内容相同,第一映射中的DESTINATION LSR TLV的内容与第二映射中的SOURCE LSR TLV的内容相同。
其次,建立链路(B1→D)的备用LSP。若运营商通过部署,配置了P2MP组播能力,则各节点的动作如下:
301、D建立好LDP P2MP LSP后,即成功地向B1发送了Mapping消息,建立了转发表项之后,D根据IGP(Interior Gateway Protocol,内部网关协议)发布的路由信息,查找本地单播路由表,依赖IP FRR(IP快速重路由)等技术查找是否存在到达所述上游节点的备用路由,即查找是否存在到达B1的LFA(Loop-Free-Alternate,非环路替换)邻居,若不存在,则表示创建备用LSP失败,可以过段时间再尝试;若存在,且该备用路由B2到达所述上游节点B1的路径不会形成环路,则获取备用路由B2,申请标签,将该成功申请到的标签、B1的回环地址以及D到达B1的出接口地址封装成第一映射消息,即一个SNHRMapping消息,然后发送给Bn,把该成功申请到的标签作为入标签,添加到原转发表项中。
302、Bn通过出接口interface[Bn→D]接收D发送的SNHR Mapping消息,对其进行报文解析,提取其中携带的Destination LSR,即主LSP上的上游节点B1的回环地址,根据该回环地址判断自己是否为上游节点B1;
若是,则提取SNHR Mapping消息中携带的标签,保持为自由标签,根据该自由标签建立非活跃转发表项,作为原转发表项的备份项,即备用转发表项,然后提取SNHR Mapping消息中SOURCE LSR,即下游节点D到达所述上游节点B1的出接口地址,查找以该地址为下一跳地址的出接口索引,然后根据该出接口索引匹配原转发表项,并将备用转发表项关联到原转发表项;
若否,则提取SNHR Mapping消息中携带的Destination LSR,即上游节点B1的回环地址,察看本地单播路由表,确定本地单播路由表中是否存在到达B1的路由,如果没有,则发送提示消息给D,表示创建备用LSP失败,可以过段时间再尝试,或者尝试通过其他节点建立备用LSP;如果存在到达B1的路由,则Bn申请标签,并将所述申请的标签、B1的回环地址以及D到达B1的出接口地址封装成第一映射消息,即一个SNHR Mapping消息发送给到达B1的路由上的下一跳节点,并把该成功申请到的标签作为入标签,添加到转发表项中。
假设如图3所示,Bn并不是B1,而且Bn存在到达B1的路由,于是,Bn申请标签,将该成功申请到的标签、上游节点B1的回环地址以及D到达B1的出接口地址封装成第一映射消息,即一个SNHR Mapping消息,发送给到达B1的路由上的下一跳节点,并将该成功申请到的标签作为入标签,添加到转发表项中。
303、所述下一跳节点的操作与第一个节点Bn的操作相同,直至到达主LSP上的上游节点B1。即如图3中,B1与Bn之间的节点,包括B2的操作都是与Bn的操作一样的,直至到B1。
304、B1通过出接口interface[B1→B2]接收到来自B2的SNHR Mapping消息,解析报文后,提取其中携带的Destination LSR,即主LSP上的上游节点B1的回环地址,根据该回环地址确定自己就是上游节点B1,于是,B1提取SNHRMapping消息中携带的标签,保持为自由标签,创建非活跃转发表项作为原转发表项的备份项,即备用转发表项,提取SNHR Mapping消息中携带的SOURCELSR,即下游节点D到达所述上游节点B1的出接口地址,查找以该地址为下一跳地址的出接口索引,根据该出接口索引匹配原转发表项,将备用转发表项关联到原转发表项,并下发给硬件转发层面,以完成备用LSP的建立。
最后,当B1至D2之间的链路link(B1→D)故障发生时,B1由硬件感知链路故障,触发硬件转发引擎快速地切换流量到备用LSP上,从而实现快速重路由,减少流量丢失。
路由收敛之后,D作为故障链路的下游节点,发起make-before-break。根据当前的路由信息,如果到达根节点的最优下一跳节点刚好就是Bn,则发送通知消息更新对应的转发控制块及转发层面的转发表项,将其转化为正常的控制,指导流量的转发,即把备用LSP作为主LSP以转发流量;如果到达根节点的最优下一跳节点不是Bn,则叶子节点发送Mapping消息,创建新的主LSP,收到点对点的回复后,切换流量到新的主LSP上;之后,可以发起旧的主LSP的删除,需要注意的是,上游节点删除旧的LSP时,将旧的主LSP自身的备用LSP删除掉,以释放资源。
实施例四、
根据实施例二描述的方法,下面将以MP2MP中D发起建立链路(B1→D)的备用LSP为例对本发明提供的重路由方法进行详细说明。
运营商通过部署,配置了MP2MP组播能力后,如图4所示,D和B1为同一棵MP2MP LSP中的节点,并且D到达目的节点的最优下一跳节点就是B1,Bn是相对于B1来说D到达目的节点的次优路由,在此,我们把Bn作为D到达目的节点的备用路由,为了对链路(B1→D)进行保护,使当链路(B1→D)故障时,可以快速感知并快速切换流量,D尝试沿着备用路由建立备用LSP。建设这条备用LSP就是如图中虚线箭头所示的(B1→B2→......Bn→D),当然,由于是在MP2MP中,故存在并行的方向相反的两条主LSP,这两条主LSP是在MP2MP建立正向主LSP的同时通过反向回复Mapping建立起来的,同理,在建立正向的备用LSP的同时,也会建立反向的备用LSP,即同时也建立了链路(D→B1)的保护路径,即备用LSP(D→Bn→......B2→B1),参见图中虚线箭头;假设,此时流量是由B1流向D的,那么此时D为主LSP上的下游节点,B1为主LSP上的上游节点,Bn为备用LSP上的第一个节点,B2为备用LSP上的末端节点。其各个节点的动作如下:
401、D建立好LDP MP2MP LSP后,即成功地向B1发送了Mapping消息,B1建立了下游转发表项,并创建一个Mapping回复给D,D建立了上游转发表项之后,D根据IGP发布的路由信息,查找本地单播路由表,依赖IP FRR等技术查找是否存在到达B1的备用路由,即查找是否存在到达B1的LFA邻居,若不存在,则表示创建备用LSP失败,可以过段时间再尝试;若存在,且该备用路由Bn到达上游节点B1的路径不会形成环路,则获取备用路由Bn,申请标签,将该成功申请到的标签、B1的回环地址以及D到达B1的出接口地址,封装成第一映射消息,即一个SNHR Mapping消息,然后发送给Bn,把该标签作为入标签,添加到上游转发表项中。
D接收到备LSP路由反向发送过来的第二映射消息,即一个SNHR Mapping消息,解析报文后,提取该SNHR Mapping消息中携带的标签,将其保持为自由标签,以该自由标签为出标签,接收SNHR Mapping消息的接口为出接口,建立新的下游转发表项,并将该新的下游转发表项添加到转发引擎,用该新的下游转发表项作为原转发表项的一个备份,即备用下游转发表项,提取其中的Source LSR,即D到达B1的出接口地址,查找以该地址为下一跳地址的出接口索引,根据该出接口索引匹配原下游转发表项,并将备用下游转发表项关联到原下游转发表项,作为D与B1之间链路的备用LSP。
402、Bn通过出接口interface[Bn→D]接收D发送的第一映射消息,即一个SNHR Mapping消息后,对该SNHR Mapping消息进行报文解析,提取该SNHRMapping消息中携带的Destination LSR,即主LSP上的上游节点B 1的回环地址,根据该回环地址判断自己是否为上游节点B1;
若是,则提取该SNHR Mapping消息中携带的的标签,保持为自由标签,根据该自由标签非活跃转发表项,作为原转发表项的备份项,即备用下游转发表项,提取SNHR Mapping消息中SOURCE LSR,即D到达B1的出接口地址,查找以该地址为下一跳地址的出接口索引,然后该出接口索引匹配原下游转发表项,并将备用该下游转发表项关联到原下游转发表项;Bn创建第二映射消息,即一个SNHR Mapping消息回复给D;
若否,则提取该SNHR Mapping消息携带的标签,把该标签作为出标签,interface[Bn→D]接口为出接口,建立下游转发表项;并创建第二映射消息,即一个SNHR Mapping消息回复给D;提取SNHR Mapping消息中携带的上游节点B1的回环地址,查找本地单播路由表,确定本地单播路由表中是否存在到达B1的路由,如果没有,则发送提示消息给D,表示创建备用LSP失败,可以过段时间再尝试,或者尝试通过其他节点建立备用LSP;如果存在到达B1的路由,则Bn申请标签,并将该成功申请到的标签、B1的回环地址封以及D到达B1的出接口地址装成一个SNHR Mapping消息发送给到达B1的路由上的下一跳节点,并把该成功申请到的标签作为入标签添加到上游转发表项中。
假设如图4所示,Bn的并不是B1,而且Bn存在到达B1的路由,于是,Bn提取该SNHR Mapping消息携带的标签,把该标签作为出标签,interface[Bn→D]接口为出接口,建立下游转发表项;并创建第二映射消息,即一个SNHRMapping消息回复给D;然后Bn申请标签,将该成功申请到的标签、上游节点B1的回环地址以及D到达B1的出接口地址封装成一个第一映射消息,即一个SNHR Mapping消息发送给到达B1的路由上的下一跳节点,并把该成功申请到的标签作为入标签添加到上游转发表项中。
403、下一跳节点的操作与第一个节点Bn的操作相同,直至到所述主LSP上的上游节点B1。即如图4中,B1与Bn之间的节点,包括B2的操作都是与Bn的操作一样的,直至到B1。
404、B1通过出接口interface[B1→B2]接收到来自B2的SNHR Mapping消息,解析报文后,提取该SNHR Mapping消息中携带的Destination LSR,即主LSP上的上游节点B1的回环地址,根据该回环地址确定自己就是上游节点B1,于是,B1提取SNHR Mapping消息中携带的标签,保持为自由标签,创建非活跃转发表项,作为原转发表项的备份项,即备用下游转发表项,提取SNHRMapping消息中SOURCE LSR,即D到达B1的出接口地址,查找以该地址为下一跳地址的出接口索引,然后根据该出接口索引匹配原下游转发表项,将备用下游转发表项关联到原下游转发表项,并下发给硬件转发层面;B1创建第二映射消息,即一个SNHR Mapping消息回复给上一跳节点,以完成备用LSP的建立。
最后,当B1至D之间的链路故障发生时,B1和D由硬件感知链路故障,触发硬件转发引擎快速地同时切换流量到该备用LSP上。具体可以为,假设原来D到B1的主LSP为LSP1,原来B1到D的主LSP为LSP2,D到B1的备用LSP为LSP3,B1到D的备用LSP为LSP4;则链路故障时,D从LSP1切换流量到LSP3上,B1从LSP2切换流量到LSP4上,从而实现快速重路由,减少流量丢失。
路由收敛之后,D作为故障链路的下游节点,发起make-before-break。根据当前的路由信息,如果到达根节点的最优下一跳节点刚好就是Bn,则发送通知消息更新对应的转发控制块及转发层面的转发表项,将其转化为正常的控制,指导流量的转发,即把备用LSP作为主LSP以转发流量;如果到达根节点的最优下一跳节点不是Bn,则叶子节点发送Mapping消息,创建新的主LSP,收到点对点的回复后,切换流量到新的主LSP上。之后,可以发起旧的主LSP的删除,需要注意的是,上游节点删除旧的LSP时,将旧的主LSP自身的备用LSP删除掉,以释放资源。
实施例五、
为了更好地实施以上方法,本发明相应地还提供了一种路由器,作为主LSP上的上游节点,主要包括第一判断单元501和切换单元502,还可以包括接收单元503、第二判断单元504、创建单元505和关联单元508,当然,还可以包括查询单元506和匹配单元507;参见图5:
第一判断单元501,主要用于判断主LSP上的下游节点和上游节点之间的链路是否发生故障;
切换单元502,主要用于当第一判断单元501判断出主LSP的下游节点和上游节点之间的链路发生故障时,切换流量到预先建立的连接所述下游节点和上游节点的备用LSP上;
接收单元503,主要用于接收所述上游节点的上一跳节点发送的携带所述上游节点的上一跳节点申请的标签、所述上游节点的回环地址和所述下游节点到达所述上游节点的出接口地址的第一映射消息;
第二判断单元504,主要用于根据接收单元503接收到的所述上游节点的回环地址判断自己是否为所述上游节点;
创建单元505,用主要于在第二判断单元504判断出自己为所述上游节点时,将接收单元503接收到的所述上游节点的上一跳节点申请的标签保持为自由标签,并根据该自由标签创建备用转发表项;
查询单元506,主要用于查找以接收单元503接收到的所述下游节点到达所述上游节点的出接口地址为下一跳地址的出接口索引;
匹配单元507,主要用于根据查询单元506查找出的出接口索引匹配原转发表项;
关联单元508,主要用于将创建单元505创建的备用转发表项关联到原转发表项。该关联单元还用于将创建单元505创建的备用转发表项关联到匹配单元507匹配到的原转发表项。
一种路由器,作为主LSP上的下游节点,主要包括查询单元601和建立单元602;如图6所示,其各单元的功能如下:
查询单元601,主要用于查找是否存在到所述上游节点的备用路由;
建立单元602,主要用于在查询单元601查找到存在到所述上游节点的备用路由时,通过所述备用路由在所述下游节点和上游节点之间建立备用LSP。
其中,如图6所示,建立单元还包括构造单元6021和发送单元6022;
构造单元6021,主要用于构造第一映射消息,该第一映射消息携带自身申请的标签、所述上游节点的回环地址以及下游节点到达所述上游节点的出接口地址;
发送单元6022,用于将构造单元6021构造的第一映射消息发送给备用路由上的节点。
由上可以看出,由于本发明实施例提供的路由器,可以在主LSP上的上游节点和下游节点之间建立备用LSP,所以,当该主LSP上的上游节点和下游节点之间的链路发生故障时,作为上游节点的路由器能通过硬件快速感知并切换流量到该备用LSP上,从而实现快速重路由,减少流量丢失。
实施例六、
相应的,本发明还提供一种通信系统,至少包括作为下游节点的路由器A,作为上游节点的路由器B,该路由器A和路由器B位于同一主LSP上;
路由器B,主要用于当主LSP上的下游节点和上游节点之间的链路发生故障时,切换流量到预置的连接所述下游节点和上游节点的备用LSP上;
路由器A,主要用于在所述路由器B切换流量到连接所述下游节点和上游节点的备用LSP上后,通过所述备用LSP接收所述流量。
进一步的,该路由器A,还用于发送携带自身申请的标签、所述路由器B的回环地址和路由器A到达路由器B的出接口地址的第一映射消息给路由器B;
路由器B,还用于接收路由器A发送的第一映射消息,根据该第一映射消息中携带的回环地址判断自己是路由器B时,将该第一映射消息中携带的路由器A申请的标签保持为自由标签,并根据该自由标签创建备用转发表项,查找以所述第一映射消息中携带的路由器A到达路由器B的出接口地址为下一跳地址的出接口索引,根据所述出接口索引匹配原转发表项,并将备用转发表项关联到该原转发表项。
其中,路由器A主要包括查询单元601和建立单元602,其中,建立单元还包括构造单元6021和发送单元6022;路由器B主要包括第一判断单元501和切换单元502,还包括接收单元503、第二判断单元504、创建单元505和关联单元508,还可以包括查询单元506和匹配单元507。
下面,将举例进行说明,如图7所示,假定该通信系统包括路由器A701,路由器B702,以及备用路由上的路由器703;其中,路由器A701和路由器B702位于同一主LSP上,路由器A701作为下游节点,路由器B702作为上游节点;备用路由上的路由器703,可以由1个以上的路由器组成,如图5所示,可以包括路由器C、路由器D等等。
若运营商通过部署,配置了P2MP组播能力,则建立备用LSP时各路由器的动作如下:
(1)路由器A701:
建立好LDP P2MP LSP后,即路由器A701成功地向路由器B702发送了Mapping消息,路由器B702建立了转发表项之后,路由器A701的查询单元601根据IGP发布的路由信息,查找本地单播路由表,依赖IP FRR等技术查找是否存在到达路由器B702的备用路由,若不存在,则表示创建备用LSP失败,可以过段时间再尝试;若存在,且该备用路由到达所述路由器B702的路径不会形成环路,则获取备用路由,路由器A701的构造单元6021申请标签,将该成功申请到的标签、路由器B702的回环地址以及路由器A701到达路由器B702的出接口地址封装成第一映射消息,即一个SNHR Mapping消息,然后通过路由器A701的发送单元6022发送给备用路由上的路由器703,路由器A701把该成功申请到的标签作为入标签,添加到原转发表项中。
(2)备用路由上的路由器703:
备用路由上的路由器703通过出接口接收路由器A701发送的SNHRMapping消息,对其进行报文解析,根据其中携带的路由器B702的回环地址判断自己是否为路由器B702;
若是,则提取SNHR Mapping消息中携带的上一跳节点申请的标签,保持为自由标签,根据该自由标签建立非活跃转发表项,作为原转发表项的备份项,即备用转发表项,提取SNHR Mapping消息中SOURCE LSR,即路由器A701到达路由器B702的出接口地址,查找以该地址为下一跳地址的出接口索引,然后根据该出接口索引匹配原转发表项,将该备用转发表项关联到原转发表项;
若否,则提取路由器B702的回环地址,察看本地单播路由表,确定本地单播路由表中是否存在到达路由器B702的路由,如果没有,则创建失败的提示消息,发送给路由器A701,表示创建备用LSP失败,可以过段时间再尝试,或者尝试通过其他节点建立备用LSP;如果存在到达路由器B702的路由,则申请标签,并将该成功申请到的标签、路由器B702的回环地址以及路由器A701到达路由器B702的出接口地址封装成第一映射消息,即一个SNHR Mapping消息,发送给备用路由上的下一跳路由器,并把该成功申请到的标签作为入标签,添加到转发表项中。
(3)路由器B702:
路由器B702的接收单元503通过出接口接收到来自备用路由上的路由器703的第一映射消息,即SNHR Mapping消息,解析报文后,第二判断单元504根据SNHR Mapping消息中携带的路由器B702的回环地址确定自己就是路由器B702,于是,创建单元505提取SNHR Mapping消息中携带的标签,保持为自由标签,创建非活跃转发表项,作为原转发表项的备份项,即备用转发表项,查询单元506根据SNHR Mapping消息中的SOURCE LSR,即路由器A701到达路由器B702的出接口地址,查找以该地址为下一跳地址的出接口索引,然后匹配单元507根据该出接口索引匹配原转发表项,关联单元508将该备用转发表项关联到原转发表项,并下发给硬件转发层面,以完成备用LSP的建立。
最后,当路由器A701至路由器B702之间的链路link(路由器A→路由器B)故障发生时,路由器B702的第一判断单元501由硬件感知,判断链路发生故障,触发硬件转发引擎由切换单元502快速地切换流量到该备用LSP上,从而实现快速重路由,减少流量丢失。
综上可知,本发明提供的实施例具有如下有益效果:
通过在主LSP上的上游节点和下游节点之间建立备用LSP,即由主LSP上的下游节点发起建立到达上游节点的备用LSP,从而,使当该主LSP上的上游节点和下游节点之间的链路发生故障时,该上游节点可以通过硬件快速感知并切换流量到该备用LSP上,以此来实现快速重路由,减少流量丢失。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的实现组播重路由的方法、装置及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (13)
1、一种实现组播重路由的方法,其特征在于,包括:
当主标签交换路径LSP上的下游节点和上游节点之间的链路发生故障时,所述上游节点切换流量到连接所述下游节点和上游节点的备用LSP上,
其中,所述备用LSP是在所述主LSP上的下游节点和上游节点之间的链路发生故障之前建立的。
2、根据权利要求1所述的实现组播重路由的方法,其特征在于,还包括:
所述下游节点查找是否存在到达所述上游节点的备用路由;
若存在,通过所述备用路由在所述下游节点和上游节点之间建立备用LSP。
3、根据权利要求2所述的实现组播重路由的方法,其特征在于,
所述下游节点查找是否存在到达所述上游节点的备用路由,具体包括:
所述下游节点根据内部网关协议IGP发布的路由信息,查找是否存在到达所述上游节点的非环路替换LFA邻居;
所述通过所述备用路由在所述下游节点和上游节点之间建立备用LSP,具体包括:
所述下游节点发送携带自身申请的标签、所述上游节点的回环地址和所述下游节点到达所述上游节点的出接口地址的第一映射消息给所述备用路由上的节点;
若所述备用路由上的节点根据所述上游节点的回环地址判断自己是上游节点,则建立备用转发表项,并关联到自身的原转发表项。
4、根据权利要求3所述的实现组播重路由的方法,其特征在于,
所述建立备用转发表项,具体包括:
将所述备用路由上的节点接收到的第一映射消息中携带的标签保持为自由标签;
根据所述自由标签创建非活跃转发表项作为备用转发表项;
所述关联到原转发表项,具体包括:
查找以所述下游节点到达所述上游节点的出接口地址为下一跳地址的出接口索引;
根据所述出接口索引匹配原转发表项;
将备用转发表项关联到原转发表项。
5、根据权利要求4所述的实现组播重路由的方法,其特征在于,还包括:
若所述备用路由上的节点根据所述上游节点的回环地址判断自己不是上游节点,则根据所述上游节点的回环地址查找本地单播路由表;
当确定本地单播路由表中存在到达所述上游节点的路由时,继续发送携带自身申请的标签、所述上游节点的回环地址和下游节点到达所述上游节点的出接口地址的第一映射消息给所述备用路由上的该备用路由上的节点的下一跳节点。
6、一种路由器,作为主标签交换路径LSP上的上游节点,其特征在于,包括判断单元和切换单元;
所述第一判断单元,用于判断主LSP上的下游节点和上游节点之间的链路是否发生故障;
所述切换单元,用于当所述第一判断单元判断出主LSP的下游节点和上游节点之间的链路发生故障时,切换流量到连接所述下游节点和上游节点的备用LSP上,
其中,所述备用LSP是在所述主LSP上的下游节点和上游节点之间的链路发生故障之前建立的。
7、根据权利要求6所述的路由器,其特征在于,还包括接收单元、第二判断单元、创建单元和关联单元;
所述接收单元,用于接收所述上游节点的上一跳节点发送的携带所述上游节点的上一跳节点申请的标签、所述上游节点的回环地址和所述下游节点到达所述上游节点的出接口地址的第一映射消息;
所述第二判断单元,用于根据所述接收单元接收到的所述上游节点的回环地址判断自己是否为所述上游节点;
所述创建单元,用于在所述第二判断单元判断自己为所述上游节点时,将所述接收单元接收到的所述上游节点的上一跳节点申请的标签保持为自由标签,并根据所述自由标签创建备用转发表项;
所述关联单元,用于将所述创建单元创建的备用转发表项关联到原转发表项。
8、根据权利要求7所述的路由器,其特征在于,还包括查询单元和匹配单元;
所述查询单元,用于查找以所述接收单元接收到的所述下游节点到达所述上游节点的出接口地址为下一跳地址的出接口索引;
所述匹配单元,用于根据所述查询单元查找出的出接口索引匹配原转发表项;
所述关联单元,用于将所述创建单元创建的备用转发表项关联到所述匹配单元匹配到的原转发表项。
9、一种路由器,作为主标签交换路径LSP上的下游节点,其特征在于,包括查询单元和建立单元;
所述查询单元,用于查找是否存在到上游节点的备用路由;
所述建立单元,用于在所述查询单元查找到存在到所述上游节点的备用路由时,通过所述备用路由在所述下游节点和上游节点之间建立备用LSP。
10、根据权利要求9所述的路由器,其特征在于,所述建立单元包括构造单元和发送单元;
所述构造单元,用于构造第一映射消息,所述第一映射消息携带自身申请的标签、所述上游节点的回环地址以及下游节点到达所述上游节点的出接口地址;
所述发送单元,用于将所述构造单元构造的第一映射消息发送给备用路由上的节点。
11、一种通信系统,其特征在于,包括作为下游节点的路由器A,作为上游节点的路由器B;
所述路由器A和路由器B位于同一主标签交换路径LSP上;
所述路由器B,用于当主LSP上的下游节点和上游节点之间的链路发生故障时,切换流量到连接所述下游节点和上游节点的备用LSP;
所述路由器A,用于所述路由器B切换流量到连接所述下游节点和上游节点的备用LSP上后,通过所述备用LSP接收所述流量。
12、根据权利要求11所述的通信系统,其特征在于,包括:
所述路由器A,还用于发送携带自身申请的标签、所述路由器B的回环地址和路由器A到达路由器B的出接口地址的第一映射消息给所述路由器B;
所述路由器B,还用于接收路由器A发送的第一映射消息,根据所述第一映射消息中携带的回环地址判断自己是所述路由器B时,将所述第一映射消息中携带的路由器A申请的标签保持为自由标签,并根据所述自由标签创建备用转发表项,将所述备用转发表项关联到原转发表项。
13、根据权利要求12所述的通信系统,其特征在于,包括:
所述路由器B,还用于查找以所述第一映射消息中携带的路由器A到达路由器B的出接口地址为下一跳地址的出接口索引,根据所述出接口索引匹配原转发表项,并将备用转发表项关联到所述原转发表项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101252305A CN101610203A (zh) | 2008-06-16 | 2008-06-16 | 实现组播重路由的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101252305A CN101610203A (zh) | 2008-06-16 | 2008-06-16 | 实现组播重路由的方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101610203A true CN101610203A (zh) | 2009-12-23 |
Family
ID=41483799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101252305A Pending CN101610203A (zh) | 2008-06-16 | 2008-06-16 | 实现组播重路由的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101610203A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012122817A1 (zh) * | 2011-03-15 | 2012-09-20 | 中兴通讯股份有限公司 | 一种p2mp组播隧道的保护切换方法和系统 |
CN103179032A (zh) * | 2011-12-20 | 2013-06-26 | 华为技术有限公司 | 一种路由备份方法及装置 |
WO2015014197A1 (zh) * | 2013-07-31 | 2015-02-05 | 华为技术有限公司 | 组播负载场景下选路的方法和路由器 |
CN106161246A (zh) * | 2016-06-15 | 2016-11-23 | 杭州华三通信技术有限公司 | 备用路由的实现方法及装置 |
CN106411751A (zh) * | 2016-09-26 | 2017-02-15 | 杭州华三通信技术有限公司 | 一种路径优化方法及装置 |
CN109495320A (zh) * | 2018-12-24 | 2019-03-19 | 新华三技术有限公司 | 一种数据报文的传输方法和装置 |
CN109644122A (zh) * | 2016-09-22 | 2019-04-16 | 华为技术有限公司 | 资源共享方法、网络节点及相关设备 |
US10530158B2 (en) | 2016-04-28 | 2020-01-07 | Lsis Co., Ltd. | Control device for static var compensator and control method thereof |
-
2008
- 2008-06-16 CN CNA2008101252305A patent/CN101610203A/zh active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012122817A1 (zh) * | 2011-03-15 | 2012-09-20 | 中兴通讯股份有限公司 | 一种p2mp组播隧道的保护切换方法和系统 |
CN103179032A (zh) * | 2011-12-20 | 2013-06-26 | 华为技术有限公司 | 一种路由备份方法及装置 |
CN103179032B (zh) * | 2011-12-20 | 2016-03-30 | 华为技术有限公司 | 一种路由备份方法及装置 |
WO2015014197A1 (zh) * | 2013-07-31 | 2015-02-05 | 华为技术有限公司 | 组播负载场景下选路的方法和路由器 |
US10530158B2 (en) | 2016-04-28 | 2020-01-07 | Lsis Co., Ltd. | Control device for static var compensator and control method thereof |
CN106161246A (zh) * | 2016-06-15 | 2016-11-23 | 杭州华三通信技术有限公司 | 备用路由的实现方法及装置 |
CN106161246B (zh) * | 2016-06-15 | 2019-09-06 | 新华三技术有限公司 | 备用路由的实现方法及装置 |
CN109644122A (zh) * | 2016-09-22 | 2019-04-16 | 华为技术有限公司 | 资源共享方法、网络节点及相关设备 |
CN106411751A (zh) * | 2016-09-26 | 2017-02-15 | 杭州华三通信技术有限公司 | 一种路径优化方法及装置 |
CN106411751B (zh) * | 2016-09-26 | 2020-02-11 | 新华三技术有限公司 | 一种路径优化方法及装置 |
CN109495320A (zh) * | 2018-12-24 | 2019-03-19 | 新华三技术有限公司 | 一种数据报文的传输方法和装置 |
CN109495320B (zh) * | 2018-12-24 | 2021-12-24 | 新华三技术有限公司 | 一种数据报文的传输方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101094175B (zh) | 一种组播流量保护方法、装置及系统 | |
US8218429B2 (en) | Method and device for multicast traffic redundancy protection | |
US7826348B2 (en) | Multicast fast reroute | |
US8773978B2 (en) | System and method for protecting ingress and egress of a point-to-multipoint label switched path | |
US7317731B2 (en) | System and method for distributed resource reservation protocol-traffic engineering (RSVP-TE) hitless restart in multi-protocol label switching (MPLS) network | |
US7684316B2 (en) | Multicast fast reroute for network topologies | |
CN101656679B (zh) | 一种组播快速收敛方法、路由器和通信系统 | |
JP5899305B2 (ja) | ネットワークノードを動作させる技術 | |
CN101610203A (zh) | 实现组播重路由的方法、装置及系统 | |
CN101335695B (zh) | 点到多点标签交换路径的头节点保护方法、装置和设备 | |
US6654371B1 (en) | Method and apparatus for forwarding multicast data by relaying IGMP group membership | |
US9036642B2 (en) | Point-to point based multicast label distribution protocol local protection solution | |
US20190028285A1 (en) | Service message multicast method and device | |
CN101005442B (zh) | 一种重路由方法 | |
CN102638389A (zh) | 一种trill网络的冗余备份方法及系统 | |
CN101610200B (zh) | 组播路由的切换方法及装置 | |
JP4728209B2 (ja) | マルチキャストネットワーク冗長化システム | |
CN101453414B (zh) | 点到多点标签交换路径的头节点保护方法、系统和设备 | |
US9509557B2 (en) | Reconnection in a transmission tree | |
CN114785732A (zh) | 用于p2mp组播隧道路径保护的方法与系统 | |
WO2012136062A1 (zh) | 组播路径切换方法及路由器 | |
EP4037255A1 (en) | Upstream multicast hop (umh) extensions for anycast deployments | |
CN101340350A (zh) | 组播流的保护方法、系统和设备 | |
Salvador et al. | Supporting IP dense mode multicast routing protocols in WDM all-optical networks | |
Tao et al. | Design and realization of recovery from failure in MPLS multicast based on LDP |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20091223 |