CN105991434B - 一种环网中mpls报文转发的方法及网络节点 - Google Patents
一种环网中mpls报文转发的方法及网络节点 Download PDFInfo
- Publication number
- CN105991434B CN105991434B CN201510060726.9A CN201510060726A CN105991434B CN 105991434 B CN105991434 B CN 105991434B CN 201510060726 A CN201510060726 A CN 201510060726A CN 105991434 B CN105991434 B CN 105991434B
- Authority
- CN
- China
- Prior art keywords
- node
- label
- lfib
- mpls packet
- mpls
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000001052 transient effect Effects 0.000 abstract description 6
- 238000003825 pressing Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000011144 upstream manufacturing Methods 0.000 description 8
- 239000002699 waste material Substances 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000011022 operating instruction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种环网中MPLS报文转发的方法及网络节点,所述方法包括:第一节点获得第一MPLS报文;获得与所述第一MPLS报文的栈顶标签匹配的LFIB表项,所述LFIB表项包含备用的第一上下文标签;当确定主用下一跳不可达时,将所述第一上下文标签压入进行了标签替换的所述第一MPLS报文的标签栈,以生成第二MPLS报文;向备用下一跳发送所述第二MPLS报文。可见,本发明实施例中在进行了标签替换的所述第一MPLS报文的标签栈中压入所述第一上下文标签,所述第一上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第一节点后的转发方向,从而避免了所述第一节点转发所述MPLS报文时,当所述主用下一跳不可达时在所述第一节点和第二节点之间可能出现的瞬间环路问题。
Description
技术领域
本发明涉及通信领域,尤其是涉及一种环网中多协议标签交换(英文: Multi-Protocol Label Switch,简称:MPLS)报文转发的方法及网络节点。
背景技术
环网(英文:ring network)是一种常见的拓扑结构。在环网中,通常利用MPLS技术实现MPLS报文的转发。
目前MPLS报文在环网中的转发方式是,网络节点接收到MPLS报文后,会从所述网络节点的标签转发信息库(英文:Label Forwarding Information Base,简称:LFIB)中获得匹配的LFIB表项,根据所述LFIB表项确定主用下一跳和备用下一跳。当所述网络节点确定所述主用下一跳不可达时,将所述MPLS报文转发至所述备用下一跳,并且所述网络节点还会向所述备用下一跳发送所述主用下一跳不可达的信息,以使得所述备用下一跳根据该不可达信息收敛路由。
然而,由于该不可达信息从所述网络节点发送至所述备用下一跳,以及所述备用下一跳根据该不可达信息进行路由收敛都需要花费一定的时间,因此可能会导致,当所述备用下一跳接收到所述网络节点转发的所述MPLS报文时,所述备用下一跳还未完成路由收敛,因此所述备用下一跳很有可能会将所述MPLS报文又发送至所述网络节点,导致所述MPLS报文在所述网络节点和所述备用下一跳之间来回转发,造成了瞬间环路的技术问题。
发明内容
本发明实施例解决的技术问题在于提供一种环网中报文转发的方法及网络节点,以解决环网中出现的瞬间环路的技术问题。
为此,本发明实施例解决技术问题的技术方案是:
第一方面,本发明实施例提供了一种环网中MPLS报文转发的方法,所述环网中包括第一节点,所述方法包括:
所述第一节点获得第一MPLS报文;
所述第一节点获得与所述第一MPLS报文的栈顶标签匹配的标签转发信息库LFIB表项,所述LFIB表项包含主用下一跳信息、备用下一跳信息、备用出标签和备用的第一上下文标签,所述第一上下文标签用于指示所述第一 MPLS报文在所述环网中经过所述第一节点后的转发方向;
当所述第一节点确定所述主用下一跳信息对应的主用下一跳不可达时,所述第一节点将所述第一MPLS报文的栈顶标签替换为所述备用出标签,并将所述第一上下文标签压入进行了标签替换的所述第一MPLS报文的标签栈,以生成第二MPLS报文;
所述第一节点向所述备用下一跳信息对应的备用下一跳发送所述第二 MPLS报文。
在第一方面的第一种可能的实现方式中,所述第一节点获得所述第一 MPLS报文包括:
所述第一节点获得第二节点向所述第一节点发送的所述第一MPLS报文。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述第一节点获得与所述第一MPLS报文的栈顶标签匹配的所述 LFIB表项包括:
所述第一节点在第一LFIB中,获得与所述第一MPLS报文的栈顶标签匹配的所述LFIB表项,所述第一LFIB基于所述第一节点上的最佳路由生成。
在第一方面的第三种可能的实现方式中,所述第一节点获得所述第一 MPLS报文包括:
所述第一节点接收第二节点发送的第三MPLS报文,所述第三MPLS报文的栈顶标签为第二上下文标签;
所述第一节点将所述第三MPLS报文的所述第二上下文标签弹出,以生成所述第一MPLS报文,所述第二上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第二节点后的转发方向,所述第二上下文标签所指示的报文转发方向与所述第一上下文标签所指示的报文转发方向相反。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述第一节点获得与所述第一MPLS报文的栈顶标签匹配的所述 LFIB表项包括:
所述第一节点在所述第二上下文标签对应的LFIB中,获得与所述第一 MPLS报文的栈顶标签匹配的所述LFIB表项。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,还包括:
所述第一节点在第二LFIB或者第三LFIB中,获得与所述第二上下文标签对应的LFIB,其中,所述第二LFIB基于所述第一节点在顺时针方向上的路由生成,所述第三LFIB基于所述第一节点在逆时针方向上的路由生成。
第二方面,本发明实施例提供了一种环网中MPLS报文转发的方法,所述环网中包括第一节点和第二节点,所述方法包括:
所述第二节点接收所述第一节点发送的第一MPLS报文,所述第一MPLS 报文的栈顶标签为第一上下文标签,所述第一上下文标签用于指示所述第一 MPLS报文在所述环网中经过所述第一节点后的转发方向;
所述第二节点将所述第一MPLS报文的所述第一上下文标签弹出,以生成第二MPLS报文;
所述第二节点在所述第一上下文标签对应的标签转发信息库LFIB中获得与所述第二MPLS报文的栈顶标签匹配的第一LFIB表项,所述第一LFIB表项包含:所述第二MPLS报文的栈顶标签、第一下一跳信息、第一出标签和第二上下文标签,所述第二上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第二节点后的转发方向,所述第二上下文标签所指示的报文转发方向与所述第一上下文标签所指示的报文转发方向相同;
所述第二节点将所述第二MPLS报文的栈顶标签替换为所述第一出标签,并将所述第二上下文标签压入进行了标签替换的所述第二MPLS报文的标签栈,以生成第三MPLS报文;
所述第二节点向所述第一下一跳信息对应的第一下一跳发送所述第三 MPLS报文。
在第二方面的第一种可能的实现方式中,还包括:
所述第二节点在第二LFIB或者第三LFIB中,获得与所述第一上下文标签对应的LFIB,其中,所述第二LFIB基于所述第二节点在顺时针方向上的路由生成,所述第三LFIB基于所述第二节点在逆时针方向上的路由生成。
结合第二方面或者第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,在所述第二节点接收所述第一节点发送的所述第一 MPLS报文之前所述方法还包括:
所述第二节点从第三节点接收第四MPLS报文,所述第三节点为所述环网外与所述环网连接的节点;
所述第二节点在第一LFIB中获得与所述第四MPLS报文的栈顶标签匹配的第二LFIB表项,所述第二LFIB表项包括:所述第四MPLS报文的栈顶标签、第二下一跳信息、第二出标签和第三上下文标签;所述第三上下文标签用于指示所述第四MPLS报文在所述环网中经过所述第二节点后的转发方向;
所述第二节点将所述第四MPLS报文的栈顶标签替换为所述第二出标签,并将所述第三上下文标签压入进行了标签替换的所述第四MPLS报文的标签栈,以生成第五MPLS报文;
所述第二节点向所述第二下一跳信息对应的第二下一跳发送所述第五 MPLS报文。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述第一LFIB基于所述第二节点上的最佳路由生成。
第三方面,本发明实施例提供了一种网络节点,所述网络节点为第一节点,所述第一节点位于环网中,所述第一节点包括:处理单元和发送单元;其中,
所述处理单元,用于获得第一多协议标签交换MPLS报文和获得与所述第一MPLS报文的栈顶标签匹配的标签转发信息库LFIB表项,所述LFIB表项包含主用下一跳信息、备用下一跳信息、备用出标签和备用的第一上下文标签,所述第一上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第一节点后的转发方向;
所述处理单元,还用于当确定所述主用下一跳信息对应的主用下一跳不可达时,将所述第一MPLS报文的栈顶标签替换为所述备用出标签,并将所述第一上下文标签压入进行了标签替换的所述第一MPLS报文的标签栈,以生成第二MPLS报文;
所述发送单元,用于向所述备用下一跳信息对应的备用下一跳发送所述第二MPLS报文。
在第三方面的第一种可能的实现方式中,所述第一节点还包括:接收单元;
当所述处理单元获得所述第一MPLS报文时,所述处理单元,用于通过所述接收单元获得第二节点向所述第一节点发送的所述第一MPLS报文。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,当所述处理单元获得与所述第一MPLS报文的栈顶标签匹配的所述LFIB表项时,所述处理单元,用于在第一LFIB中,获得与所述第一MPLS 报文的栈顶标签匹配的所述LFIB表项,所述第一LFIB基于所述第一节点上的最佳路由生成。
在第三方面的第三种可能的实现方式中,所述第一节点还包括:接收单元;
当所述处理单元获得所述第一MPLS报文时,所述处理单元,用于通过所述接收单元接收第二节点发送的第三MPLS报文,所述第三MPLS报文的栈顶标签为第二上下文标签,以及将所述第三MPLS报文的所述第二上下文标签弹出,以生成所述第一MPLS报文,所述第二上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第二节点后的转发方向,所述第二上下文标签所指示的报文转发方向与所述第一上下文标签所指示的报文转发方向相反。
结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,当所述处理单元获得与所述第一MPLS报文的栈顶标签匹配的所述LFIB表项时,所述处理单元,用于在所述第二上下文标签对应的LFIB中,获得与所述第一MPLS报文的栈顶标签匹配的所述LFIB表项。
结合第三方面的第四种可能的实现方式,在第三方面的第五种可能的实现方式中,所述处理单元,还用于在第二LFIB或者第三LFIB中,获得与所述第二上下文标签对应的LFIB,其中,所述第二LFIB基于所述第一节点在顺时针方向上的路由生成,所述第三LFIB基于所述第一节点在逆时针方向上的路由生成。
第四方面,本发明实施例提供了一种网络节点,所述网络节点为第二节点,环网中包括第一节点和所述第二节点,所述第二节点包括:接收单元、处理单元和发送单元;其中,
所述接收单元,用于接收所述第一节点发送的第一多协议标签交换MPLS 报文,所述第一MPLS报文的栈顶标签为第一上下文标签,所述第一上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第一节点后的转发方向;
所述处理单元,用于将所述第一MPLS报文的所述第一上下文标签弹出, 以生成第二MPLS报文,以及在所述第一上下文标签对应的标签转发信息库 LFIB中获得与所述第二MPLS报文的栈顶标签匹配的第一LFIB表项,所述第一LFIB表项包含:所述第二MPLS报文的栈顶标签、第一下一跳信息、第一出标签和第二上下文标签,所述第二上下文标签用于指示所述第一MPLS 报文在所述环网中经过所述第二节点后的转发方向,所述第二上下文标签所指示的报文转发方向与所述第一上下文标签所指示的报文转发方向相同;
所述处理单元,还用于将所述第二MPLS报文的栈顶标签替换为所述第一出标签,并将所述第二上下文标签压入进行了标签替换的所述第二MPLS 报文的标签栈,以生成第三MPLS报文;
所述发送单元,用于向所述第一下一跳信息对应的第一下一跳发送所述第三MPLS报文。
在第四方面的第一种可能的实现方式中,所述处理单元,还用于在第二 LFIB或者第三LFIB中,获得与所述第一上下文标签对应的LFIB,其中,所述第二LFIB基于所述第二节点在顺时针方向上的路由生成,所述第三LFIB 基于所述第二节点在逆时针方向上的路由生成。
结合第四方面或者第四方面的第一种可能的实现方式,在第四方面的第三种可能的实现方式中,在所述接收单元接收所述第一节点发送的所述第一 MPLS报文之前,所述处理单元还用于从第三节点接收第四MPLS报文、以及在第一LFIB中获得与所述第四MPLS报文的栈顶标签匹配的第二LFIB表项,所述第三节点为所述环网外与所述环网连接的节点,所述第二LFIB表项包括:所述第四MPLS报文的栈顶标签、第二下一跳信息、第二出标签和第三上下文标签;所述第三上下文标签用于指示所述第四MPLS报文在所述环网中经过所述第二节点后的转发方向;
所述处理单元,还用于将所述第四MPLS报文的栈顶标签替换为所述第二出标签,并将所述第三上下文标签压入进行了标签替换的所述第四MPLS 报文的标签栈,以生成第五MPLS报文;
所述发送单元,还用于向所述第二下一跳信息对应的第二下一跳发送所述第五MPLS报文。
结合第四方面的第三种可能的实现方式,在第四方面的第四种可能的实现方式中,所述第一LFIB基于所述第二节点上的最佳路由生成。
通过上述技术方案可知,本发明实施例中当环网上的第一节点转发MPLS 报文时,在确定主用下一跳不可达时,所述第一节点在所述MPLS报文的标签栈中压入上下文标签,所述上下文标签用于指示所述MPLS报文在所述环网中经过所述第一节点后的转发方向,从而使得所述环网上的第二节点接收到所述第一节点转发的所述MPLS报文后,能够根据所述上下文标签所指示的转发方向转发所述MPLS报文,因此所述第二节点不会再将所述MPLS报文发送至所述第一节点,从而避免了所述第一节点转发所述MPLS报文时,当所述主用下一跳不可达时,所述第一节点和所述第二节点之间可能出现的瞬间环路的技术问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为环网的一种可能的拓扑结构;
图2为本发明实施例提供的一种方法实施例的流程示意图;
图3为本发明实施例提供的另一种方法实施例的流程示意图;
图4为本发明实施例提供的另一种方法实施例的流程示意图;
图5为本发明实施例提供的一种网络节点的结构示意图;
图6为本发明实施例提供的另一种网络节点的结构示意图;
图7为本发明实施例提供的另一种网络节点的结构示意图;
图8为本发明实施例提供的另一种网络节点的结构示意图。
具体实施方式
为了更好的理解本发明实施例,下面通过图1介绍MPLS报文在环网中的转发方式。需要说明的是,图1仅为一种示例性的说明,其具体拓扑并不会对本发明实施例起到限制作用。
图1所示的环网中包括网络节点R1、网络节点R2、网络节点R3和网络节点R4,其中每个网络节点上都有对应的LFIB,以用于实现报文转发。下面首先以网络节点R1为例说明网络节点R1的LFIB的生成方式。
针对某一个前缀(英文:prefix)转发等价类(英文:Forwarding EquivalenceClass,简称:FEC),网络节点R2会向所述prefix FEC分配标签,例如网络节点R2向1.1.1.5/32分配标签52,并将分配的标签52通过标签分发协议(英文:Label DistributionProtocol,简称:LDP)、最短路径优先(英文:Open Shortest Path First,简称:OSPF)或中间系统-中间系统(英文:Intermediate System to Intermediate System,简称:ISIS)协议等方式通告,使得网络节点R2的所有邻居,即网络节点R1、网络节点R3 和网络节点R6都能获得网络节点R2分配的标签,同样网络节点R4会向所述prefix FEC分配标签,例如网络节点R4向1.1.1.5/32分配标签54,并将分配的标签54通过LDP、OSPF或ISIS协议等方式通告,使得网络节点 R4的所有邻居,即网络节点R1、网络节点R3和网络节点R5都能获得网络节点R4分配的标签。其中1.1.1.5/32对应网络节点R5。
因此,网络节点R1会获得网络节点R1的两个邻居节点,网络节点R2 和网络节点R4分别为1.1.1.5/32分配的标签52和标签54。由于网络节点 R1的LFIB基于网络节点R1上的最佳路由生成,因此网络节点R1在接收到标签52和标签54之后,会确定出在网络节点R1上所述prefix FEC对应的最佳路由的下一跳,并将所述下一跳对应的下一跳信息和所述下一跳所分配的标签保存到网络节点R1的LFIB中。例如,在网络节点R1上,1.1.1.5/32对应的最佳路由的下一跳是网络节点R4,则网络节点R1将网络节点R4的信息和网络节点R4为1.1.1.5/32所分配的标签54保存到网络节点R1的LFIB 中。其中所述下一跳信息指的是下一跳的互联网协议(英文:Internet Protocol,简称:IP)地址或者标识等信息。
其中需要说明的是,网络节点R1实际上是将网络节点R4作为主用下一跳,并将网络节点R4所分配的标签作为主用出标签。当主用下一跳不可达时,为了利用快速重路由(英文:Fast ReRoute,简称:FRR)等方式向备用路由转发报文,网络节点的LFIB中还会指示出备用下一跳和备用出标签,例如表1显示出了网络节点R1的LFIB中1.1.1.5/32对应的LFIB表项。其中入标签为网络节点R1为1.1.1.5/32分配的标签。
表1
下面以网络节点R1为例,说明环网中的一个网络节点对MPLS报文的转发方式:网络节点R1接收到网络节点R2发送的MPLS报文后,根据所述MPLS报文的栈顶标签51匹配到表1所示的LFIB表项,根据所述LFIB 表项确定主用下一跳为网络节点R4,当网络节点R1确定出网络节点R4不可达时,例如当网络节点R1至网络节点R4的链路失效或者网络节点R4失效时,网络节点R1根据备用下一跳,即网络节点R2进行转发,具体地,网络节点R1将所述MPLS报文的栈顶标签替换为备用出标签即标签52后,将进行了标签替换的所述MPLS报文发送到网络节点R2。并且,网络节点R1 还会向网络节点R2发送网络节点R4不可达的信息,从而使得网络节点R2 根据该不可达信息收敛路由。
然而,由于该不可达信息从网络节点R1发送至网络节点R2,以及网络节点R2根据该不可达信息进行路由收敛都需要花费一定的时间,因此可能会导致,当网络节点R2接收到网络节点R1发送的所述MPLS报文时,网络节点R2还未完成路由收敛,由于目前网络节点R2的LFIB基于网络节点 R2上的最佳路由生成,也就是说网络节点R2在接收到所述MPLS报文后,向网络节点R2上的最佳路由的下一跳转发报文,因此网络节点R2很有可能会将所述MPLS报文发送至网络节点R1,例如当网络节点R2上的最佳路由的下一跳为网络节点R1时。此时将导致所述MPLS报文在网络节点R2和网络节点R1之间来回转发,造成了瞬间环路的技术问题,进一步导致由瞬间环路的技术问题引起的资源浪费和报文时延等技术问题。
而在本发明实施例中,提供了一种环网中报文转发的方法及网络节点,以解决环网中出现的瞬间环路的技术问题。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”或“第四”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图2,本发明实施例提供了环网中MPLS报文转发的方法的一种方法实施例。在本实施例中,所述环网中包括第一节点。例如在图1中,所述第一节点为网络节点R1。
本实施例的所述方法包括:
201:所述第一节点获得第一MPLS报文。
所述第一节点可以将其他节点发送的MPLS报文直接作为所述第一 MPLS报文,也可以将其他节点发送的MPLS报文进行一定的处理后,作为所述第一MPLS报文。
202:所述第一节点获得与所述第一MPLS报文的栈顶标签匹配的LFIB 表项。
其中,所述第一MPLS报文的栈顶标签用于指导所述第一MPLS报文的转发,通过将所述第一MPLS报文的栈顶标签与所述第一节点的LFIB中的 LFIB表项进行匹配,能够在所述第一节点的LFIB中获得与所述第一MPLS 报文的栈顶标签匹配的所述LFIB表项。其中在进行匹配时,所述第一节点一般是将所述第一节点的LFIB中的各个LFIB表项与所述第一MPLS报文的栈顶标签匹配,当所述第一节点的LFIB中的某个表项的入标签与所述第一MPLS报文的栈顶标签相同时,将该表项作为与所述第一MPLS报文的栈顶标签匹配的所述LFIB表项,并获得所述LFIB表项。
在本发明实施例中,所述LFIB表项包含主用下一跳信息、备用下一跳信息、备用出标签和备用的第一上下文标签。除了上述信息之外,所述LFIB表项一般还包含入标签、主用出标签和所述表项对应的prefix FEC,所述prefix FEC用于指示所述第一MPLS报文的目的端。例如在图1中所示的环网中,所述第一MPLS报文的栈顶标签为标签51,网络节点R1将标签51与网络节点R1的LFIB匹配,可以获得如表2所示的LFIB表项。其中1.1.1.5/32 对应网络节点R5,也就是说所述第一MPLS报文的目的端为网络节点R5。
表2
在本发明实施例中,为了解决瞬间环路的技术问题,所述LFIB表项中包含了备用的所述第一上下文标签,其中所述第一上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第一节点后的转发方向,从而能够使得所述第一MPLS报文在所述环网中经过所述第一节点后,一直按照所述第一上下文标签所指示的所述转发方向转发,直至所述第一MPLS报文下所述环网或者掉头。其中所述第一上下文标签可以用于指示顺时针转发方向或者逆时针转发方向,例如具体为顺时针方向转发指示标签(英文:Clock-Wise ForwardingIndication Label,简称:CWFIL),或者逆时针方向转发指示标签(英文:Counter-Clock-Wise Forwarding Indication Label,简称:CCWFIL),从而所述第一上下文标签指示所述第一MPLS报文在经过所述第一节点后,一直按照顺时针方向或者逆时针方向转发。例如表2所示的所述LFIB表项中,所述第一上下文标签为CWFIL,用于指示所述第一MPLS报文在经过所述第一节点后,一直按照顺时针方向转发。其中所述第一上下文标签为备用的标签,即表示所述第一上下文标签在所述第一MPLS报文需要向所述备用下一跳转发时使用。
203:当所述第一节点确定所述主用下一跳信息对应的主用下一跳不可达时,所述第一节点将所述第一MPLS报文的栈顶标签替换为所述备用出标签,并将所述第一上下文标签压入进行了标签替换的所述第一MPLS报文的标签栈,以生成第二MPLS报文。
在本发明实施例中,当所述第一节点确定所述主用下一跳不可达时,除了将所述第一MPLS报文的栈顶标签替换为所述备用出标签外,还会将所述第一上下文标签压入进行了标签替换的所述第一MPLS报文的标签栈,以生成第二MPLS报文,从而实现了在所述第二MPLS报文的栈顶标签中指示出,所述第一MPLS报文在所述环网中经过所述第一节点后的所述转发方向,使得所述备用下一跳在接收到所述第二MPLS报文后,能够按照所述第一上下文标签指示的转发方向转发所述第二MPLS报文,而不会再将所述第二MPLS 报文发送至所述第一节点。
需要说明的是,本发明实施例在获得所述第一MPLS报文后,会将所述第一MPLS报文转换为所述第二MPLS报文后再进行转发,因此,所述第一上下文标签所指示的,所述第一MPLS报文在所述环网中经过所述第一节点后的转发方向,实际上也可以认为是基于所述第一MPLS报文生成的所述第二MPLS报文在所述环网中经过所述第一节点后的转发方向。
本发明实施例还可以包括,当所述第一节点确定所述主用下一跳可达时,所述第一节点将所述第一MPLS报文的栈顶标签替换为所述主用出标签,并向所述主用下一跳发送进行了标签替换的所述第一MPLS报文。
204:所述第一节点向所述备用下一跳信息对应的备用下一跳发送所述第二MPLS报文。
由于所述第二MPLS报文的栈顶标签为所述第一上下文标签,从而能够指示所述备用下一跳按照所述第一上下文标签所指示的转发方向转发所述第二MPLS报文。
通过上述技术方案可知,本发明实施例中,所述第一节点获得的所述LFIB 表项中,包含了备用的第一上下文标签,所述第一上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第一节点后的转发方向。因此当所述第一节点转发所述第一MPLS报文时,在确定所述主用下一跳不可达时,除了将所述第一MPLS报文的栈顶标签替换为所述备用出标签之外,还将所述第一上下文标签压入进行了标签替换的所述第一MPLS报文的标签栈,以生成第二MPLS报文并发送至所述备用下一跳,从而使得所述备用下一跳接收到所述第二MPLS报文后,能够按照所述第一上下文标签指示的所述转发方向转发所述第二MPLS报文,从而使得所述第一MPLS报文在经过所述第一节点和所述备用下一跳时都沿着同一方向转发,因此所述备用下一跳不会再将所述第二MPLS报文发送至所述第一节点,从而避免了所述第一节点转发所述第一MPLS报文时,当所述主用下一跳不可达时,所述第一节点和所述备用下一跳之间可能出现的瞬间环路的技术问题。进一步解决了由瞬间环路的技术问题导致的资源浪费和报文延时等问题。
例如在图1中,当网络节点R1确定网络节点R4不可达时,向网络节点 R2发送所述第二MPLS报文,所述第二MPLS报文的栈顶标签具体为 CWFIL,用于指示所述第二MPLS报文按照顺时针方向转发,因此网络节点 R2按照顺时针方向即向网络节点R3转发所述第二MPLS报文,而不会再将所述第二MPLS报文发送至网络节点R1,从而解决了网络节点R1和网络节点R2之间可能出现的瞬间环路的技术问题。
在本实施例中,所述第一上下文标签可以为特殊用途标签(英文:SpecialPurpose Label,简称:SPL)或者扩展的特殊用途标签(英文:Extended Special PurposeLabel,简称:ESPL),也可以是由所述第一节点分配并且通过LDP、ISIS或者OSPF协议等方式通告的标签。
在本发明实施例中,所述第一节点可以将其他节点发送的MPLS报文直接作为所述第一MPLS报文,也可以将其他节点发送的MPLS报文进行一定的处理后,作为所述第一MPLS报文。其中,所述第一节点还可以根据其他节点发送的MPLS报文的栈顶标签,从对应的LFIB中获得所述LFIB表项。下面分两种情况进行说明。
(一)在本发明实施例中,所述第一节点可以将其他节点发送的MPLS 报文直接作为所述第一MPLS报文,具体实现时,本实施例的步骤 201包括所述第一节点获得第二节点向所述第一节点发送的所述第一MPLS报文。其中,所述第二节点可以是所述环网中的节点,例如图1所示,网络节点R1获得网络节点R2发送的所述第一MPLS报文;所述第二节点也可以是所述环网外与所述环网连接的节点。
若所述第一节点将其他节点发送的MPLS报文直接作为所述第一MPLS 报文,本发明实施例中可以在目前基于最佳路由生成的LFIB中,添加所述第一上下文标签,由所述第一节点在所述基于最佳路由生成的LFIB中获得所述 LFIB表项。具体地,本实施例的步骤202包括:所述第一节点在第一LFIB中,获得与所述第一MPLS报文的栈顶标签匹配的所述LFIB表项。其中,所述第一LFIB基于所述第一节点上的最佳路由生成,即,所述第一LFIB中任意表项的主用下一跳为对于所述第一节点来说,该表项中的prefix FEC所对应的最佳路由的下一跳。例如在表2所示的表项中,主用下一跳为对于网络节点R1 来说,1.1.1.5/32所对应的最佳路由的下一跳,即网络节点R4。
(二)在本发明实施例中,其他节点发送至所述第一节点的MPLS报文的标签栈中,可能压入了上下文标签,所述第一节点需要将其他节点发送的 MPLS报文进行一定的处理,比如弹出所述上下文标签,以获得所述第一MPLS报文。具体实现时,本实施例的步骤 201可以包括:所述第一节点接收所述第二节点发送的第三MPLS报文,所述第三MPLS报文的栈顶标签为第二上下文标签;所述第一节点将所述第三MPLS报文的所述第二上下文标签弹出,以生成所述第一MPLS报文。其中,所述第二上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第二节点后的转发方向,所述第二上下文标签所指示的报文转发方向与所述第一上下文标签所指示的报文转发方向相反。例如在图1中,所述第二上下文标签可以为CCWFIL,用于指示所述第一MPLS报文在所述环网中经过网络节点R2后按照逆时针方向转发,而所述第一上下文标签可以为CWFIL,用于指示所述第一MPLS报文在所述环网中经过网络节点R1后按照顺时针方向转发。在本实施例中,所述第二上下文标签可以为SPL或者ESPL,也可以是由所述第二节点分配并且通过 LDP、ISIS或者OSPF协议等方式通告的标签。
若所述第一节点接收到的所述第三MPLS报文的栈顶标签为所述第二上下文标签,本发明实施例中还可以设置与所述第二上下文标签对应的LFIB,在与所述第二上下文标签对应的LFIB中添加所述第一上下文标签。具体实现时,本实施例的步骤 202包括:所述第一节点在所述第二上下文标签对应的LFIB 中,获得与所述第一MPLS报文的栈顶标签匹配的所述LFIB表项。其中,所述第二上下文标签对应的LFIB基于所述第一节点在所述第二上下文标签所指示的转发方向上的路由生成,即,所述第二上下文标签对应的LFIB中任意表项的主用下一跳为,所述第一节点在所述第二上下文标签所指示的转发方向上的下一跳,实际上即为,所述第一节点在所述环网上的所述第二上下文标签所指示的转发方向上的邻居节点,显然其不同于基于所述第一节点上的最佳路由生成的所述第一LFIB。而任意表项的主用出标签与该表项的主用下一跳对应,即为该表项的主用下一跳为该表项的prefix FEC分配的标签。
由于所述第二上下文标签可以用于指示顺时针转发方向或者逆时针转发方向,例如具体为CWFIL或者CCWFIL。因此可以分别设置对应顺时针转发方向的第二LFIB和对应逆时针转发方向的第三LFIB,本实施例还可以包括:所述第一节点从所述第二LFIB或者所述第三LFIB中,获得与所述第二上下文标签对应的LFIB。例如,若所述第二上下文标签用于指示顺时针转发方向,则将所述第二LFIB作为所述第二上下文标签对应的LFIB。
其中所述第二LFIB基于所述第一节点在顺时针方向上的路由生成,即所述第二LFIB中的任意表项的主用下一跳为,所述第一节点在顺时针方向上的下一跳,实际上即为,所述第一节点在所述环网上的顺时针方向上的邻居节点。而任意表项的主用出标签与该表项的主用下一跳对应,即为该表项的主用下一跳为该表项的prefix FEC分配的标签。例如在图1所示的环网中,所述第二LFIB中与所述第一MPLS报文的栈顶标签匹配的LFIB表项可以如表 3所示。
表3
在表3所示的LFIB表项中,主用下一跳为网络节点R1在顺时针方向上的路由的下一跳,即网络节点R2,主用出标签为网络节点R2为1.1.1.5/32 分配的标签。该表项中,还包含主用的上下文标签CWFIL,以及备用的上下文标签CCWFIL。
其中所述第三LFIB基于所述第一节点在逆时针方向上的路由生成,即所述第三LFIB中的任意表项的主用下一跳为所述第一节点在逆时针方向上的下一跳,实际上即为所述第一节点在所述环网上的逆时针方向上的邻居节点,而任意表项的主用出标签与该表项的主用下一跳对应,即为该表项的主用下一跳为该表项的prefix FEC分配的标签。例如在图1所示的环网中,所述第三LFIB中与所述第一MPLS报文的栈顶标签匹配的LFIB表项可以如表4所示。
表4
在表4所示的LFIB表项中,主用下一跳为网络节点R1在逆时针方向上的路由的下一跳,即网络节点R4,主用出标签为网络节点R4为1.1.1.5/32 分配的标签。该表项中,还包含主用的上下文标签CCWFIL,以及备用的上下文标签CWFIL。
在一种较优的实施方式中,可以在所述第一节点上保存所述第一LFIB、所述第二LFIB和所述第三LFIB,根据接收到的MPLS报文的栈顶标签,获得对应的LFIB,并从所述对应的LFIB中获取与所述第一MPLS报文的栈顶标签匹配的LFIB表项。具体地,当接收到所述第一MPLS报文,也就是说接收到的MPLS报文的栈顶标签不为上下文标签时,从所述第一LFIB中获得所述LFIB表项;当接收到所述第三MPLS报文,其中所述第三MPLS报文的栈顶标签为所述第二上下文标签,则根据所述第二上下文标签从所述第二 LFIB或所述第三LFIB中获得对应的LFIB,具体地,当所述第二上下文标签指示顺时针转发方向时,从所述第二LFIB中获得所述LFIB表项,当所述第二上下文标签指示逆时针转发方向时,从所述第三LFIB中获得所述LFIB表项。例如在图1所示的环网中,网络节点R1接收到网络节点R2发送的所述第三MPLS报文,其中所述第三MPLS报文的栈顶标签为CCWFIL,网络节点R1从CCWFIL对应的所述第三LFIB中获得如表4所示的LFIB表项。
在本发明实施例中,所述第一节点也可以不根据所述第二上下文标签获得所述对应的LFIB,例如,所述第一节点接收到所述第二节点发送的所述第一MPLS报文,当所述第一节点确定所述第二节点是所述环网外的节点时,从所述第一LFIB中获得所述LFIB表项;当所述第一节点确定所述第二节点是所述环网上顺时针方向的上游节点时,说明此时所述第一MPLS报文按照顺时针方向转发,所述第一节点从所述第二LFIB中获得所述LFIB表项;当所述第一节点确定所述第二节点是所述环网上逆时针方向的上游节点时,说明此时所述第一MPLS报文按照逆时针方向转发,所述第一节点从所述第三 LFIB中获得所述LFIB表项。
需要说明的是,在本发明实施例中,所述第一LFIB、所述第二LFIB和所述第三LFIB可以分别对应三种不同的转发表,例如所述第一LFIB对应转发表1,所述第二LFIB对应转发表2,所述第三LFIB对应转发表3,当然,所述第一LFIB、所述第二LFIB和所述第三LFIB也可以对应同一张表,例如所述第一LFIB、所述第二LFIB和所述第三LFIB都对应转发表4,其中可以在转发表4中设置LFIB标识,用于区分上述三个LFIB。
在本发明实施例中,在生成所述第一LFIB、所述第二LFIB和所述第三 LFIB时,需要在所述环网上规定出顺时针方向和逆时针方向。具体实现时,可以通过手动或者机器自动生成等方式,在所述第一节点上配置出顺时针方向的下一跳和逆时针方向的下一跳,从而使得所述第一节点能够根据该配置,生成所述第一LFIB、所述第二LFIB和所述第三LFIB。
在上述方法实施例中,主要从所述第一节点的角度,介绍了当所述主用下一跳不可达时,所述第一节点如何在所述第一MPLS报文的标签栈中压入所述第一上下文标签以指示转发方向,而下面将从第二节点的角度,介绍当接收到栈顶标签为所述第一上下文标签的MPLS报文后,如何根据所述第一上下文标签进行转发。
请参阅图3,本发明实施例提供了环网中MPLS报文转发的方法的另一种方法实施例。在本实施例中,所述环网中包括第一节点和第二节点。例如在图1中,所述第一节点为网络节点R1,所述第二节点为网络节点R2。
本实施例的所述方法包括:
301:所述第二节点接收所述第一节点发送的第一MPLS报文,所述第一 MPLS报文的栈顶标签为第一上下文标签。
其中,所述第一上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第一节点后的转发方向。
在本发明实施例中一种较优的实施方式中,所述第一MPLS报文,是当所述第一节点确定所述第一节点的主用下一跳不可达时,生成并向所述第二节点发送的。
302:所述第二节点将所述第一MPLS报文的所述第一上下文标签弹出, 以生成第二MPLS报文。
303:所述第二节点在所述第一上下文标签对应的LFIB中获得与所述第二MPLS报文的栈顶标签匹配的第一LFIB表项。
具体在进行匹配时,所述第二节点一般是将所述第一上下文标签对应的 LFIB中的各个LFIB表项与所述第二MPLS报文的栈顶标签匹配,当所述第一上下文标签对应的LFIB中的某个表项的入标签与所述第二MPLS报文的栈顶标签相同时,将该表项作为与所述第二MPLS报文的栈顶标签匹配的所述 LFIB表项,并获得所述LFIB表项。
在本发明实施例中,所述第一上下文标签对应的LFIB基于所述第二节点在所述第一上下文标签所指示的转发方向上的路由生成,即,所述第一上下文标签对应的LFIB中任意表项的主用下一跳为,所述第二节点在所述第一上下文标签所指示的转发方向上的下一跳,实际上即为,所述第二节点在所述环网上的所述第一上下文标签所指示的转发方向上的邻居节点,显然其不同于基于所述第二节点上的最佳路由生成的LFIB。
其中,在所述第一上下文标签对应的LFIB中获得的所述第一LFIB表项包含:所述第二MPLS报文的栈顶标签、第一下一跳信息、第一出标签和第二上下文标签,所述第二上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第二节点后的转发方向,所述第二上下文标签所指示的转发方向与所述第一上下文标签所指示的转发方向相同,也就是说,所述第一MPLS 报文在经过所述第一节点和所述第二节点时,沿着相同的转发方向转发。从而使得所述第二节点不会再将所述第一MPLS报文发送至所述第一节点。例如在图1中,网络节点R2接收到网络节点R1发送的所述第一MPLS报文,所述第一MPLS报文的栈顶标签为CWFIL,用于指示所述第一MPLS报文按照顺时针方向转发,因此网络节点R2获得所述第二上下文标签CWFIL,并且按照顺时针方向即向网络节点R3转发所述第一MPLS报文,而不会再将所述第一MPLS报文发送至网络节点R1,从而解决了网络节点R1和网络节点R2之间可能出现的瞬间环路的技术问题。
其中,由于所述第二节点沿着所述第一上下文标签指示的转发方向转发所述第一MPLS报文,因此所述第一下一跳具体为在所述第二节点在所述第一上下文标签指示的方向上的下一跳,即所述第二节点在所述环网上的所述第一上下文标签指示的方向上的邻居节点。所述第一出标签与所述第一下一跳对应,即为所述第一下一跳为所述LFIB表项对应的prefix FEC分配的标签。其中所述prefix FEC用于指示所述第一MPLS报文的目的端。例如在图1中所示的环网中,所述第一MPLS报文的栈顶标签为CWFIL,所述第二MPLS 报文的栈顶标签为标签52,网络节点R2将标签52与所述第一上下文标签对应的LFIB匹配,获得如表5所示的LFIB表项。其中1.1.1.5/32对应网络节点R5,也就是说所述第一MPLS报文的目的端为网络节点R5。
表5
入标签 | prefix FEC | 第一出标签 | 第一下一跳信息 |
52 | 1.1.1.5/32 | 53/CWFIL | R3的IP地址 |
在表5所示的LFIB表项中,第一下一跳为网络节点R2在顺时针方向上的路由的下一跳,即网络节点R3,第一出标签为网络节点R3为1.1.1.5/32 分配的标签。
304:所述第二节点将所述第二MPLS报文的栈顶标签替换为所述第一出标签,并将所述第二上下文标签压入进行了标签替换的所述第二MPLS报文的标签栈,以生成第三MPLS报文。
所述第二节点除了将所述第二MPLS报文的栈顶标签替换为所述第一出标签外,还会将所述第二上下文标签压入进行了标签替换的所述第二MPLS 报文的标签栈,以生成第三MPLS报文,使得接收到所述第三MPLS报文的网络节点,能够按照所述第二上下文标签指示的转发方向转发所述第三MPLS 报文。
需要说明的是,本发明实施例在获得所述第一MPLS报文后,会将所述第一MPLS报文转换为所述第三MPLS报文后再进行转发,因此,所述第二上下文标签所指示的,所述第一MPLS报文在所述环网中经过所述第二节点后的转发方向,实际上也可以认为是,基于所述第一MPLS报文生成的所述第三MPLS报文在所述环网中经过所述第二节点后的转发方向
305:所述第二节点向所述第一下一跳信息对应的第一下一跳发送所述第三MPLS报文。
由于所述第三MPLS报文的栈顶标签为所述第二上下文标签,从而能够指示所述第一下一跳按照所述第二上下文标签所指示的所述转发方向转发所述第三MPLS报文。
通过上述技术方案可知,本发明实施例中,所述第二节点接收所述第一 MPLS报文后,将所述第一MPLS报文的栈顶标签,即所述第一上下文标签弹出,并且在所述第一上下文标签对应的LFIB中获得匹配的第一LFIB表项,其中所述第一LFIB表项中包含第二上下文标签,由于所述第一上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第一节点后的转发方向,所述第二上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第二节点后的转发方向,并且所述第二上下文标签所指示的报文转发方向与所述第一上下文标签所指示的报文转发方向相同,也就是说,所述第一MPLS 报文在经过所述第一节点和所述第二节点时,沿着相同的转发方向转发。从而使得所述第二节点不会再将所述第一MPLS报文发送至所述第一节点。从而避免了所述某一节点转发所述MPLS报文时,当所述某一节点的主用下一跳不可达时,所述第一节点和所述第二节点之间可能出现的瞬间环路的技术问题。进一步解决了由瞬间环路的技术问题导致的资源浪费和报文延时等问题。
例如在图1中,网络节点R2接收到网络节点R1发送的所述第一MPLS 报文,所述第一MPLS报文的栈顶标签具体为CWFIL,用于指示所述第二 MPLS报文按照顺时针方向转发,因此网络节点R2按照顺时针方向即向网络节点R3转发所述第二MPLS报文,而不会再将所述第二MPLS报文发送至网络节点R1,从而解决了网络节点R1和网络节点R2之间可能出现的瞬间环路的技术问题。
在本实施例中,所述第一上下文标签可以为SPL或者ESPL,也可以是所述第一节点分配并且通过LDP、ISIS或者OSPF协议等方式通告的标签。所述第二上下文标签可以为SPL或者ESPL,也可以是所述第二节点分配并且通过LDP、ISIS或者OSPF协议等方式通告的标签。
在本发明实施例中,所述第一上下文标签可以用于指示顺时针转发方向或者逆时针转发方向,例如具体为CWFIL或者CCWFIL。因此可以分别设置对应顺时针转发方向的第二LFIB和对应逆时针转发方向的第三LFIB,本实施例还可以包括:所述第二节点从所述第二LFIB或者所述第三LFIB中,获得与所述第一上下文标签对应的LFIB。例如,若所述第一上下文标签用于指示顺时针转发方向,则将所述第二LFIB作为所述第一上下文标签对应的LFIB。
其中所述第二LFIB基于所述第二节点在顺时针方向上的路由生成,即所述第二LFIB中的任意表项的下一跳为,所述第二节点在顺时针方向上的下一跳,实际上即为,所述第二节点在所述环网上的顺时针方向上的邻居节点。而任意表项的出标签与该表项的下一跳对应,即为该表项中的下一跳为该表项的prefix FEC分配的标签。例如在图1所示的环网中,所述第二LFIB中与所述第二MPLS报文的栈顶标签匹配的LFIB表项可以如表5所示。
其中所述第三LFIB基于所述第二节点在逆时针方向上的路由生成,即所述第三LFIB中的任意表项的下一跳为所述第二节点在逆时针方向上的下一跳,实际上即为所述第二节点在所述环网上的逆时针方向上的邻居节点,而任意表项的出标签与该表项的下一跳对应,即为该表项中的下一跳为该表项的prefix FEC分配的标签。例如在图1所示的环网中,所述第三LFIB中与所述第二MPLS报文的栈顶标签匹配的LFIB表项可以如表6所示。
表6
入标签 | prefix FEC | 出标签 | 下一跳信息 |
52 | 1.1.1.5/32 | 51/CCWFIL | R1的IP地址 |
在表6所示的LFIB表项中,下一跳为网络节点R2在逆时针方向上的路由的下一跳,即网络节点R1出标签为网络节点R1为1.1.1.5/32分配的标签。
在本实施例的步骤 301之前,所述第二节点还可以接收环网外的网络节点发送的MPLS报文,该MPLS报文中不包括用于指示转发方向的上下文标签,所述第二节点可以不在该MPLS报文中压入上下文标签,由所述第一节点确定出所述第一节点的主用下一跳不可达时,压入用于指示转发方向的上下文标签;或者所述第二节点也可以在接收到该MPLS报文后,在该MPLS报文中压入用于指示转发方向的上下文标签,下面具体说明这种方式。
在所述第二节点接收所述第一节点发送的所述第一MPLS报文之前所述方法还包括:所述第二节点从第三节点接收第四MPLS报文,所述第三节点为所述环网外与所述环网连接的节点;所述第二节点在第一LFIB中获得与所述第四MPLS报文的栈顶标签匹配的第二LFIB表项,所述第二LFIB表项包括:所述第四MPLS报文的栈顶标签、第二下一跳信息、第二出标签和第三上下文标签;所述第三上下文标签用于指示所述第四MPLS报文在所述环网中经过所述第二节点后的转发方向;所述第二节点将所述第四MPLS报文的栈顶标签替换为所述第二出标签,并将所述第三上下文标签压入进行了标签替换的所述第四MPLS报文的标签栈,以生成第五MPLS报文;所述第二节点向所述第二下一跳信息对应的第二下一跳发送所述第五MPLS报文。
其中,所述第一LFIB基于所述第二节点上的最佳路由生成,即,所述第一LFIB中任意表项的下一跳为,对于所述第二节点来说,在该表项中的prefix FEC所对应的最佳路由的下一跳。
在本实施例中,所述第三上下文标签可以为SPL或者ESPL,也可以是所述第二节点分配并且通过LDP、ISIS或者OSPF协议等方式通告的标签。
在一种较优的实施方式中,可以在所述第二节点上保存所述第一LFIB、所述第二LFIB和所述第三LFIB,根据接收到的MPLS报文的栈顶标签,获得对应的LFIB,并从所述对应的LFIB中获得匹配的LFIB表项。具体地,当所述第二节点接收到所述第四MPLS报文,也就是说接收到的MPLS报文的栈顶标签不为上下文标签时,从所述第一LFIB中获得所述第二LFIB表项;当接收到所述第三MPLS报文,其中所述第三MPLS报文的栈顶标签为所述第一上下文标签,则根据所述第一上下文标签从所述第二LFIB或所述第三 LFIB中获得对应的LFIB,具体地,当所述第一上下文标签指示顺时针转发方向时,从所述第二LFIB中获得所述第一LFIB表项,当所述第一上下文标签指示逆时针转发方向时,从所述第三LFIB中获得所述第一LFIB表项。例如在图1中,网络节点R2接收到网络节点R1发送的所述第一MPLS报文后,其中所述第一MPLS报文的栈顶标签为CWFIL,网络节点R2从CWFIL对应的所述第二LFIB中获得如表5所示的所述第一LFIB表项。
在本发明实施例中,所述第二节点也可以不根据所述第一上下文标签获得所述对应的LFIB,例如,所述第二节点从所述环网外的网络节点接收到所述第四MPLS报文后,从所述第一LFIB中获得所述第二LFIB表项;所述第二节点接收到所述第一节点发送的所述第一MPLS报文,当所述第二节点确定所述第一节点是所述环网上顺时针方向的上游节点时,说明此时所述第一 MPLS报文按照顺时针方向转发,所述第二节点从所述第二LFIB中获得所述第一LFIB表项;当所述第二节点确定所述第一节点是所述环网上逆时针方向的上游节点时,说明此时所述第一MPLS报文按照逆时针方向转发,所述第二节点从所述第三LFIB中获得所述第一LFIB表项。
需要说明的是,在本发明实施例中,所述第一LFIB、所述第二LFIB和所述第三LFIB可以分别对应三种不同的转发表,例如所述第一LFIB对应转发表1,所述第二LFIB对应转发表2,所述第三LFIB对应转发表3,当然,所述第一LFIB、所述第二LFIB和所述第三LFIB也可以对应同一张表,例如所述第一LFIB、所述第二LFIB和所述第三LFIB都对应转发表4,其中可以在转发表4中设置LFIB标识,用于区分上述三个LFIB。
在本发明实施例中,在生成所述第一LFIB、所述第二LFIB和所述第三 LFIB时,需要在所述环网上规定出顺时针方向和逆时针方向。具体实现时,可以通过手动或者机器自动生成等方式,在所述第二节点上配置出顺时针方向的下一跳和逆时针方向的下一跳,从而使得所述第二节点能够根据该配置,生成所述第一LFIB、所述第二LFIB和所述第三LFIB。
在上述方法实施例中,分别介绍了所述第一节点和所述第二节点对MPLS 报文的转发过程,下面以图1所示的拓扑为例,介绍MPLS报文在所述环网中每个节点的转发过程。
请参阅图4,本发明实施例提供了环网中MPLS报文转发的方法的另一种方法实施例。如图1所示,本实施例中的所述环网中包括网络节点R1、网络节点R2、网络节点R3和网络节点R4。
401:网络节点R2接收网络节点R6发送的第一MPLS报文,网络节点 R6为所述环网外与所述环网连接的节点,即所述第一MPLS报文从网络节点 R2上所述环网。
402:网络节点R2在网络节点R2的第一LFIB中获得与所述第一MPLS 报文的栈顶标签匹配的第一LFIB表项。其中,所述第一LFIB表项可以如表 7所示。网络节点R2的第一LFIB基于网络节点R2上的最佳路由生成。在表7中,1.1.1.5/32对应网络节点R5。
表7
入标签 | prefix FEC | 出标签 | 下一跳信息 |
52 | 1.1.1.5/32 | 51 | R1的IP地址 |
403:网络节点R2将所述第一MPLS报文的栈顶标签替换为所述第一 LFIB表项中的出标签。
需要说明的是,在本发明实施例中,步骤 402中获得的所述第一LFIB表项还可以如表6所示,此时本实施例中还包括:在进行了标签替换的所述第一 MPLS报文的标签栈中压入用于指示逆时针转发方向的CCWFIL。也就是说,本发明实施例中既可以在所述第一MPLS报文上所述环网上,压入上下文标签,也可以在发生下一跳不可达的网络节点上压入上下文标签。
404:网络节点R2将进行了标签替换后的所述第一MPLS报文,作为第二MPLS报文发送至网络节点R1。
405:网络节点R1接收所述第二MPLS报文,在网络节点R1的第一LFIB 中获得与所述第二MPLS报文的栈顶标签匹配的第二LFIB表项。其中,所述第二LFIB表项可以如表2所示,表2中的CWFIL为用于指示顺时针转发方向的上下文标签。其中,网络节点R1的第一LFIB基于网络节点R1上的最佳路由生成。
406:网络节点R1确定网络节点R4不可达,网络节点R1将所述第二 MPLS报文的栈顶标签替换为表2所示的所述第二LFIB表项中的备用出标签,并将CWFIL压入进行了标签替换的所述第二MPLS报文的标签栈,以生成第三MPLS报文。
407:网络节点R1向网络节点R2发送所述第三MPLS报文。
408:网络节点R2接收所述第三MPLS报文,弹出所述第三MPLS报文的栈顶标签,以生成第四MPLS报文。其中,所述第三MPLS报文的栈顶标签为CWFIL。
409:网络节点R2根据所述第三MPLS报文的栈顶标签CWFIL,在网络节点R2的第二LFIB中获得与所述第四MPLS报文的栈顶标签匹配的第三LFIB表项。其中,所述第三LFIB表项可以如表5所示。网络节点R2的第二 LFIB基于网络节点R2在顺时针方向上的路由生成。
410:网络节点R2将所述第四MPLS报文的栈顶标签替换为表5所示的所述第三LFIB表项中的出标签,并将所述第三LFIB表项中的CWFIL压入进行了标签替换的所述第四MPLS报文的标签栈,以生成第五MPLS报文。网络节点R2将所述第五MPLS报文发送至网络节点R3。
411:网络节点R3接收到所述第五MPLS报文后,与网络节点R2执行类似的操作以生成第六MPLS报文,并将所述第六MPLS报文发送至网络节点R4。所述第六MPLS报文从网络节点R4下所述环网。
412:网络节点R4弹出所述第六MPLS报文中的栈顶标签CWFIL,以生成第七MPLS报文,并根据所述第六MPLS报文的栈顶标签CWFIL,在网络节点R4的第二LFIB中获得与所述第七MPLS报文的栈顶标签匹配的第四 LFIB表项。其中,所述第四LFIB表项可以如表8所示。
表8
入标签 | prefix FEC | 出标签 | 下一跳信息 |
54 | 1.1.1.5/32 | 55 | R5的IP地址 |
在表8中,标签55为网络节点R5为1.1.1.5/32分配的标签。
需要说明的是,网络节点R4上保存了网络节点R4的第一LFIB、第二LFIB和第三LFIB,其中,由于网络节点R4是所述第七MPLS报文下所述环网的节点,因此网络节点R4上这三个LFIB中与所述第七MPLS报文的标签栈顶匹配的表项,在表项内容上完全相同,例如可以均如表8所示。
413:网络节点R4将所述第七MPLS报文的栈顶标签替换为所述第四 LFIB表项的出标签,并将经过标签替换的所述第七MPLS报文发送至网络节点R5。
上面对本发明实施例中的环网中MPLS报文转发的方法的实施例进行了描述,下面将从模块化功能实体的角度对本发明实施例中的网络节点进行描述。
请参阅图5,本发明实施例提供了一种网络节点的结构示意图。在本实施例中,所述网络节点为第一节点500,第一节点500位于环网中。例如在图1 中,第一节点500为网络节点R1。
本实施例的第一节点500包括处理单元501和发送单元502。其中,
处理单元501,用于获得第一MPLS报文。
其中,处理单元501可以将其他节点发送的MPLS报文直接作为所述第一MPLS报文,也可以将其他节点发送的MPLS报文进行一定的处理后,作为所述第一MPLS报文。
处理单元501,还用于获得与所述第一MPLS报文的栈顶标签匹配的 LFIB表项。
其中,所述第一MPLS报文的栈顶标签用于指导所述第一MPLS报文的转发,处理单元501通过将所述第一MPLS报文的栈顶标签与第一节点500 的LFIB中的LFIB表项进行匹配,能够在第一节点500的LFIB中获得与所述第一MPLS报文的栈顶标签匹配的所述LFIB表项。其中在进行匹配时,处理单元501一般是将第一节点500的LFIB中的各个LFIB表项与所述第一 MPLS报文的栈顶标签匹配,当第一节点500的LFIB中的某个表项的入标签与所述第一MPLS报文的栈顶标签相同时,将该表项作为与所述第一MPLS 报文的栈顶标签匹配的所述LFIB表项,并获得所述LFIB表项。
在本发明实施例中,所述LFIB表项包含主用下一跳信息、备用下一跳信息、备用出标签和备用的第一上下文标签。除了上述信息之外,所述LFIB表项一般还包含入标签、主用出标签和所述表项对应的prefix FEC,所述prefix FEC用于指示所述第一MPLS报文的目的端。例如在图1中所示的环网中,所述第一MPLS报文的栈顶标签为标签51,处理单元501将标签51与网络节点R1的LFIB匹配,可以获得如表2所示的LFIB表项。其中1.1.1.5/32 对应网络节点R5,也就是说所述第一MPLS报文的目的端为网络节点R5。
在本发明实施例中,为了解决瞬间环路的技术问题,所述LFIB表项中包含了备用的所述第一上下文标签,其中所述第一上下文标签用于指示所述第一MPLS报文在所述环网中经过第一节点500后的转发方向,从而能够使得所述第一MPLS报文在所述环网中经过第一节点500后,一直按照所述第一上下文标签所指示的所述转发方向转发,直至所述第一MPLS报文下所述环网或者掉头。其中所述第一上下文标签可以用于指示顺时针转发方向或者逆时针转发方向,例如具体为CWFIL或者CCWFIL,从而所述第一上下文标签指示所述第一MPLS报文在经过第一节点500后,一直按照顺时针方向或者逆时针方向转发。例如表2所示的所述LFIB表项中,所述第一上下文标签为 CWFIL,用于指示所述第一MPLS报文在经过第一节点500后,一直按照顺时针方向转发。其中所述第一上下文标签为备用的标签,即表示所述第一上下文标签在所述第一MPLS报文需要向所述备用下一跳转发时使用。
处理单元501,还用于当确定所述主用下一跳信息对应的主用下一跳不可达时,将所述第一MPLS报文的栈顶标签替换为所述备用出标签,并将所述第一上下文标签压入进行了标签替换的所述第一MPLS报文的标签栈,以生成第二MPLS报文。
在本发明实施例中,当处理单元501确定所述主用下一跳不可达时,除了将所述第一MPLS报文的栈顶标签替换为所述备用出标签外,还会将所述第一上下文标签压入进行了标签替换的所述第一MPLS报文的标签栈,以生成第二MPLS报文,从而实现了在所述第二MPLS报文的栈顶标签中指示出,所述第一MPLS报文在所述环网中经过第一节点500后的所述转发方向,使得所述备用下一跳在接收到所述第二MPLS报文后,能够按照所述第一上下文标签指示的转发方向转发所述第二MPLS报文,而不会再将所述第二MPLS 报文发送至第一节点500。
需要说明的是,本发明实施例处理单元501在获得所述第一MPLS报文后,会将所述第一MPLS报文转换为所述第二MPLS报文后再进行转发,因此,所述第一上下文标签所指示的,所述第一MPLS报文在所述环网中经过第一节点500后的转发方向,实际上也可以认为是基于所述第一MPLS报文生成的所述第二MPLS报文在所述环网中经过第一节点500后的转发方向。
处理单元501,还可以用于当确定所述主用下一跳可达时,将所述第一 MPLS报文的栈顶标签替换为所述主用出标签,并向所述主用下一跳发送进行了标签替换的所述第一MPLS报文。
发送单元502,用于向所述备用下一跳信息对应的备用下一跳发送所述第二MPLS报文。
由于所述第二MPLS报文的栈顶标签为所述第一上下文标签,从而能够指示所述备用下一跳按照所述第一上下文标签所指示的转发方向转发所述第二MPLS报文。
通过上述技术方案可知,本发明实施例中,处理单元501获得的所述LFIB 表项中,包含了备用的第一上下文标签,所述第一上下文标签用于指示所述第一MPLS报文在所述环网中经过第一节点500后的转发方向。因此当第一节点500转发所述第一MPLS报文时,在处理单元501确定所述主用下一跳不可达时,除了将所述第一MPLS报文的栈顶标签替换为所述备用出标签之外,还将所述第一上下文标签压入进行了标签替换的所述第一MPLS报文的标签栈,以生成第二MPLS报文并由发送单元502发送至所述备用下一跳,从而使得所述备用下一跳接收到所述第二MPLS报文后,能够按照所述第一上下文标签指示的所述转发方向转发所述第二MPLS报文,从而使得所述第一MPLS报文在经过第一节点500和所述备用下一跳时都沿着同一方向转发,因此所述备用下一跳不会再将所述第二MPLS报文发送至第一节点500,从而避免了第一节点500转发所述第一MPLS报文时,当所述主用下一跳不可达时,第一节点500和所述备用下一跳之间可能出现的瞬间环路的技术问题。进一步解决了由瞬间环路的技术问题导致的资源浪费和报文延时等问题。
例如在图1中,当网络节点R1确定网络节点R4不可达时,向网络节点 R2发送所述第二MPLS报文,所述第二MPLS报文的栈顶标签具体为 CWFIL,用于指示所述第二MPLS报文按照顺时针方向转发,因此网络节点 R2按照顺时针方向即向网络节点R3转发所述第二MPLS报文,而不会再将所述第二MPLS报文发送至网络节点R1,从而解决了网络节点R1和网络节点R2之间可能出现的瞬间环路的技术问题。
在本实施例中,所述第一上下文标签可以为SPL或者ESPL,也可以是由第一节点500分配并且通过LDP、ISIS或者OSPF协议等方式通告的标签。
在本发明实施例中,处理单元501可以将其他节点发送的MPLS报文直接作为所述第一MPLS报文,也可以将其他节点发送的MPLS报文进行一定的处理后,作为所述第一MPLS报文。其中,处理单元501还可以根据其他节点发送的MPLS报文的栈顶标签,从对应的LFIB中获得所述LFIB表项。下面分两种情况进行说明。
(一)在本发明实施例中,处理单元501可以将其他节点发送的MPLS 报文直接作为所述第一MPLS报文,具体实现时,第一节点500还包括:接收单元,当处理单元501获得所述第一MPLS报文时,处理单元501,用于通过接收单元获得第二节点向第一节点500发送的所述第一MPLS报文。其中,所述第二节点可以是所述环网中的节点,例如图1所示,网络节点R1获得网络节点R2发送的所述第一MPLS报文;所述第二节点也可以是所述环网外与所述环网连接的节点。
若第一节点500将其他节点发送的MPLS报文直接作为所述第一MPLS 报文,本发明实施例中可以在目前基于最佳路由生成的LFIB中,添加所述第一上下文标签,由第一节点500在所述基于最佳路由生成的LFIB中获得所述 LFIB表项。具体地,当处理单元501获得与所述第一MPLS报文的栈顶标签匹配的所述LFIB表项时,处理单元501,用于在第一LFIB中,获得与所述第一MPLS报文的栈顶标签匹配的所述LFIB表项。其中,所述第一LFIB基于第一节点500上的最佳路由生成,即,所述第一LFIB中任意表项的主用下一跳为对于第一节点500来说,该表项中的prefix FEC所对应的最佳路由的下一跳。例如在表2所示的表项中,主用下一跳为对于网络节点R1来说, 1.1.1.5/32所对应的最佳路由的下一跳,即网络节点R4。
(二)在本发明实施例中,其他节点发送至第一节点500的MPLS报文的标签栈中,可能压入了上下文标签,处理单元501需要将其他节点发送的 MPLS报文进行一定的处理,比如弹出所述上下文标签,以获得所述第一 MPLS报文。具体实现时,第一节点500还包括:接收单元。当处理单元501 获得所述第一MPLS报文时,处理单元501,用于通过所述接收单元接收第二节点发送的第三MPLS报文,所述第三MPLS报文的栈顶标签为第二上下文标签,以及将所述第三MPLS报文的所述第二上下文标签弹出,以生成所述第一MPLS报文。其中,所述第二上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第二节点后的转发方向,所述第二上下文标签所指示的报文转发方向与所述第一上下文标签所指示的报文转发方向相反。例如在图1中,所述第二上下文标签可以为CCWFIL,用于指示所述第一MPLS 报文在所述环网中经过网络节点R2后按照逆时针方向转发,而所述第一上下文标签可以为CWFIL,用于指示所述第一MPLS报文在所述环网中经过网络节点R1后按照顺时针方向转发。在本实施例中,所述第二上下文标签可以为 SPL或者ESPL,也可以是由所述第二节点分配并且通过LDP、ISIS或者 OSPF协议等方式通告的标签。
若第一节点500接收到的所述第三MPLS报文的栈顶标签为所述第二上下文标签,本发明实施例中还可以设置与所述第二上下文标签对应的LFIB,在与所述第二上下文标签对应的LFIB中添加所述第一上下文标签。具体实现时,当处理单元501获得与所述第一MPLS报文的栈顶标签匹配的所述LFIB 表项时,处理单元501,用于在所述第二上下文标签对应的LFIB中,获得与所述第一MPLS报文的栈顶标签匹配的所述LFIB表项。其中,所述第二上下文标签对应的LFIB基于第一节点500在所述第二上下文标签所指示的转发方向上的路由生成,即,所述第二上下文标签对应的LFIB中任意表项的主用下一跳为,第一节点500在所述第二上下文标签所指示的转发方向上的下一跳,实际上即为,第一节点500在所述环网上的所述第二上下文标签所指示的转发方向上的邻居节点,显然其不同于基于第一节点500上的最佳路由生成的所述第一LFIB。而任意表项的主用出标签与该表项的主用下一跳对应,即为该表项的主用下一跳为该表项的prefix FEC分配的标签。
由于所述第二上下文标签可以用于指示顺时针转发方向或者逆时针转发方向,例如具体为CWFIL或者CCWFIL。因此可以分别设置对应顺时针转发方向的第二LFIB和对应逆时针转发方向的第三LFIB,处理单元501,还可以用于在第二LFIB或者第三LFIB中,获得与所述第二上下文标签对应的LFIB。例如,若所述第二上下文标签用于指示顺时针转发方向,则将所述第二LFIB 作为所述第二上下文标签对应的LFIB。
其中所述第二LFIB基于第一节点500在顺时针方向上的路由生成,即所述第二LFIB中的任意表项的主用下一跳为,第一节点500在顺时针方向上的下一跳,实际上即为,第一节点500在所述环网上的顺时针方向上的邻居节点。而任意表项的主用出标签与该表项的主用下一跳对应,即为该表项的主用下一跳为该表项的prefix FEC分配的标签。例如在图1所示的环网中,所述第二LFIB中与所述第一MPLS报文的栈顶标签匹配的LFIB表项可以如表 3所示。
在表3所示的LFIB表项中,主用下一跳为网络节点R1在顺时针方向上的路由的下一跳,即网络节点R2,主用出标签为网络节点R2为1.1.1.5/32 分配的标签。该表项中,还包含主用的上下文标签CWFIL,以及备用的上下文标签CCWFIL。
其中所述第三LFIB基于第一节点500在逆时针方向上的路由生成,即所述第三LFIB中的任意表项的主用下一跳为第一节点500在逆时针方向上的下一跳,实际上即为第一节点500在所述环网上的逆时针方向上的邻居节点,而任意表项的主用出标签与该表项的主用下一跳对应,即为该表项的主用下一跳为该表项的prefix FEC分配的标签。例如在图1所示的环网中,所述第三LFIB中与所述第一MPLS报文的栈顶标签匹配的LFIB表项可以如表4所示。
在表4所示的LFIB表项中,主用下一跳为网络节点R1在逆时针方向上的路由的下一跳,即网络节点R4,主用出标签为网络节点R4为1.1.1.5/32 分配的标签。该表项中,还包含主用的上下文标签CCWFIL,以及备用的上下文标签CWFIL。
在一种较优的实施方式中,可以在第一节点500上保存所述第一LFIB、所述第二LFIB和所述第三LFIB,处理单元501根据接收到的MPLS报文的栈顶标签,获得对应的LFIB,并从所述对应的LFIB中获取与所述第一MPLS 报文的栈顶标签匹配的LFIB表项。具体地,当第一节点500接收到所述第一 MPLS报文,也就是说接收到的MPLS报文的栈顶标签不为上下文标签时,处理单元501,用于从所述第一LFIB中获得所述LFIB表项;当第一节点500 接收到所述第三MPLS报文,其中所述第三MPLS报文的栈顶标签为所述第二上下文标签,则处理单元501,用于根据所述第二上下文标签从所述第二 LFIB或所述第三LFIB中获得对应的LFIB,具体地,处理单元501,用于当所述第二上下文标签指示顺时针转发方向时,从所述第二LFIB中获得所述LFIB表项,当所述第二上下文标签指示逆时针转发方向时,从所述第三LFIB 中获得所述LFIB表项。例如在图1所示的环网中,网络节点R1接收到网络节点R2发送的所述第三MPLS报文,其中所述第三MPLS报文的栈顶标签为CCWFIL,处理单元501从CCWFIL对应的所述第三LFIB中获得如表4 所示的LFIB表项。
在本发明实施例中,处理单元501也可以不根据所述第二上下文标签获得所述对应的LFIB,例如,第一节点500接收到所述第二节点发送的所述第一MPLS报文,处理单元501,用于当确定所述第二节点是所述环网外的节点时,从所述第一LFIB中获得所述LFIB表项;当确定所述第二节点是所述环网上顺时针方向的上游节点时,说明此时所述第一MPLS报文按照顺时针方向转发,从所述第二LFIB中获得所述LFIB表项;当确定所述第二节点是所述环网上逆时针方向的上游节点时,说明此时所述第一MPLS报文按照逆时针方向转发,从所述第三LFIB中获得所述LFIB表项。
需要说明的是,在本发明实施例中,所述第一LFIB、所述第二LFIB和所述第三LFIB可以分别对应三种不同的转发表,例如所述第一LFIB对应转发表1,所述第二LFIB对应转发表2,所述第三LFIB对应转发表3,当然,所述第一LFIB、所述第二LFIB和所述第三LFIB也可以对应同一张表,例如所述第一LFIB、所述第二LFIB和所述第三LFIB都对应转发表4,其中可以在转发表4中设置LFIB标识,用于区分上述三个LFIB。
在本发明实施例中,在生成所述第一LFIB、所述第二LFIB和所述第三 LFIB时,需要在所述环网上规定出顺时针方向和逆时针方向。具体实现时,可以通过手动或者机器自动生成等方式,在第一节点500上配置出顺时针方向的下一跳和逆时针方向的下一跳,从而使得第一节点500能够根据该配置,生成所述第一LFIB、所述第二LFIB和所述第三LFIB。
在上述装置实施例中,主要从第一节点500的角度,介绍了当所述主用下一跳不可达时,第一节点500如何在所述第一MPLS报文的标签栈中压入所述第一上下文标签以指示转发方向,而下面将从第二节点的角度,介绍当接收到栈顶标签为所述第一上下文标签的MPLS报文后,如何根据所述第一上下文标签进行转发。
请参阅图6,本发明实施例提供了另一种网络节点的结构示意图。在本实施例中,所述网络节点为第二节点600,环网中包括第一节点和第二节点600。例如在图1中,所述第一节点为网络节点R1,第二节点600为网络节点R2。
第二节点600包括:接收单元601、处理单元602和发送单元603。其中,
接收单元601,用于接收所述第一节点发送的MPLS报文,所述第一 MPLS报文的栈顶标签为第一上下文标签。
其中,所述第一上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第一节点后的转发方向。
在本发明实施例中一种较优的实施方式中,所述第一MPLS报文,是当所述第一节点确定所述第一节点的主用下一跳不可达时,生成并向第二节点 600发送的。
处理单元602,用于将所述第一MPLS报文的所述第一上下文标签弹出, 以生成第二MPLS报文,以及在所述第一上下文标签对应的LFIB中获得与所述第二MPLS报文的栈顶标签匹配的第一LFIB表项。
具体在进行匹配时,处理单元602一般是将所述第一上下文标签对应的 LFIB中的各个LFIB表项与所述第二MPLS报文的栈顶标签匹配,当所述第一上下文标签对应的LFIB中的某个表项的入标签与所述第二MPLS报文的栈顶标签相同时,将该表项作为与所述第二MPLS报文的栈顶标签匹配的所述 LFIB表项,并获得所述LFIB表项。
在本发明实施例中,所述第一上下文标签对应的LFIB基于第二节点600 在所述第一上下文标签所指示的转发方向上的路由生成,即,所述第一上下文标签对应的LFIB中任意表项的主用下一跳为,第二节点600在所述第一上下文标签所指示的转发方向上的下一跳,实际上即为,第二节点600在所述环网上的所述第一上下文标签所指示的转发方向上的邻居节点,显然其不同于基于第二节点600上的最佳路由生成的LFIB。
其中,在所述第一上下文标签对应的LFIB中获得的所述第一LFIB表项包含:所述第二MPLS报文的栈顶标签、第一下一跳信息、第一出标签和第二上下文标签,所述第二上下文标签用于指示所述第一MPLS报文在所述环网中经过第二节点600后的转发方向,所述第二上下文标签所指示的转发方向与所述第一上下文标签所指示的转发方向相同,也就是说,所述第一MPLS 报文在经过所述第一节点和第二节点600时,沿着相同的转发方向转发。从而使得第二节点600不会再将所述第一MPLS报文发送至所述第一节点。例如在图1中,网络节点R2接收到网络节点R1发送的所述第一MPLS报文,所述第一MPLS报文的栈顶标签为CWFIL,用于指示所述第一MPLS报文按照顺时针方向转发,因此网络节点R2获得所述第二上下文标签CWFIL,并且按照顺时针方向即向网络节点R3转发所述第一MPLS报文,而不会再将所述第一MPLS报文发送至网络节点R1,从而解决了网络节点R1和网络节点R2之间可能出现的瞬间环路的技术问题。
其中,由于第二节点600沿着所述第一上下文标签指示的转发方向转发所述第一MPLS报文,因此所述第一下一跳具体为在第二节点600在所述第一上下文标签指示的方向上的下一跳,即第二节点600在所述环网上的所述第一上下文标签指示的方向上的邻居节点。所述第一出标签与所述第一下一跳对应,即为所述第一下一跳为所述LFIB表项对应的prefix FEC分配的标签。其中所述prefix FEC用于指示所述第一MPLS报文的目的端。例如在图1中所示的环网中,所述第一MPLS报文的栈顶标签为CWFIL,所述第二MPLS 报文的栈顶标签为标签52,网络节点R2将标签52与所述第一上下文标签对应的LFIB匹配,获得如表5所示的LFIB表项。其中1.1.1.5/32对应网络节点R5,也就是说所述第一MPLS报文的目的端为网络节点R5。
在表5所示的LFIB表项中,第一下一跳为网络节点R2在顺时针方向上的路由的下一跳,即网络节点R3,第一出标签为网络节点R3为1.1.1.5/32 分配的标签。
处理单元602,还用于将所述第二MPLS报文的栈顶标签替换为所述第一出标签,并将所述第二上下文标签压入进行了标签替换的所述第二MPLS 报文的标签栈,以生成第三MPLS报文。
处理单元602除了将所述第二MPLS报文的栈顶标签替换为所述第一出标签外,还会将所述第二上下文标签压入进行了标签替换的所述第二MPLS 报文的标签栈,以生成第三MPLS报文,使得接收到所述第三MPLS报文的网络节点,能够按照所述第二上下文标签指示的转发方向转发所述第三MPLS 报文。
需要说明的是,本发明实施例在获得所述第一MPLS报文后,会将所述第一MPLS报文转换为所述第三MPLS报文后再进行转发,因此,所述第二上下文标签所指示的,所述第一MPLS报文在所述环网中经过第二节点600 后的转发方向,实际上也可以认为是,基于所述第一MPLS报文生成的所述第三MPLS报文在所述环网中经过第二节点600后的转发方向
发送单元603,用于向所述第一下一跳信息对应的第一下一跳发送所述第三MPLS报文。
由于所述第三MPLS报文的栈顶标签为所述第二上下文标签,从而能够指示所述第一下一跳按照所述第二上下文标签所指示的所述转发方向转发所述第三MPLS报文。
通过上述技术方案可知,本发明实施例中,接收单元601接收所述第一 MPLS报文后,处理单元602将所述第一MPLS报文的栈顶标签,即所述第一上下文标签弹出,并且在所述第一上下文标签对应的LFIB中获得匹配的第一LFIB表项,其中所述第一LFIB表项中包含第二上下文标签,由于所述第一上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第一节点后的转发方向,所述第二上下文标签用于指示所述第一MPLS报文在所述环网中经过第二节点600后的转发方向,并且所述第二上下文标签所指示的报文转发方向与所述第一上下文标签所指示的报文转发方向相同,也就是说,所述第一MPLS报文在经过所述第一节点和第二节点600时,沿着相同的转发方向转发。从而使得第二节点600不会再将所述第一MPLS报文发送至所述第一节点。从而避免了某一节点转发所述MPLS报文时,当所述某一节点的主用下一跳不可达时,所述第一节点和第二节点600之间可能出现的瞬间环路的技术问题。进一步解决了由瞬间环路的技术问题导致的资源浪费和报文延时等问题。
例如在图1中,网络节点R2接收到网络节点R1发送的所述第一MPLS 报文,所述第一MPLS报文的栈顶标签具体为CWFIL,用于指示所述第二 MPLS报文按照顺时针方向转发,因此网络节点R2按照顺时针方向即向网络节点R3转发所述第二MPLS报文,而不会再将所述第二MPLS报文发送至网络节点R1,从而解决了网络节点R1和网络节点R2之间可能出现的瞬间环路的技术问题。
在本实施例中,所述第一上下文标签可以为SPL或者ESPL,也可以是所述第一节点分配并且通过LDP、ISIS或者OSPF协议等方式通告的标签。所述第二上下文标签可以为SPL或者ESPL,也可以是第二节点600分配并且通过LDP、ISIS或者OSPF协议等方式通告的标签。
在本发明实施例中,所述第一上下文标签可以用于指示顺时针转发方向或者逆时针转发方向,例如具体为CWFIL或者CCWFIL。因此可以分别设置对应顺时针转发方向的第二LFIB和对应逆时针转发方向的第三LFIB,处理单元602,还用于在第二LFIB或者第三LFIB中,获得与所述第一上下文标签对应的LFIB。例如,若所述第一上下文标签用于指示顺时针转发方向,则将所述第二LFIB作为所述第一上下文标签对应的LFIB。
其中所述第二LFIB基于第二节点600在顺时针方向上的路由生成,即所述第二LFIB中的任意表项的下一跳为,第二节点600在顺时针方向上的下一跳,实际上即为,第二节点600在所述环网上的顺时针方向上的邻居节点。而任意表项的出标签与该表项的下一跳对应,即为该表项中的下一跳为该表项的prefix FEC分配的标签。例如在图1所示的环网中,所述第二LFIB中与所述第二MPLS报文的栈顶标签匹配的LFIB表项可以如表5所示。
其中所述第三LFIB基于第二节点600在逆时针方向上的路由生成,即所述第三LFIB中的任意表项的下一跳为第二节点600在逆时针方向上的下一跳,实际上即为第二节点600在所述环网上的逆时针方向上的邻居节点,而任意表项的出标签与该表项的下一跳对应,即为该表项中的下一跳为该表项的prefix FEC分配的标签。例如在图1所示的环网中,所述第三LFIB中与所述第二MPLS报文的栈顶标签匹配的LFIB表项可以如表6所示。
在表6所示的LFIB表项中,下一跳为网络节点R2在逆时针方向上的路由的下一跳,即网络节点R1出标签为网络节点R1为1.1.1.5/32分配的标签。
接收单元601在接收所述第一节点发送的所述第一MPLS报文之前,还可以接收环网外的网络节点发送的MPLS报文,该MPLS报文中不包括用于指示转发方向的上下文标签,处理单元602可以不在该MPLS报文中压入上下文标签,由所述第一节点确定出所述第一节点的主用下一跳不可达时,压入用于指示转发方向的上下文标签;或者处理单元602也可以在接收单元601 接收到该MPLS报文后,在该MPLS报文中压入用于指示转发方向的上下文标签,下面具体说明这种方式。
在接收单元601接收所述第一节点发送的所述第一MPLS报文之前,处理单元602,还用于从第三节点接收第四MPLS报文、以及在第一LFIB中获得与所述第四MPLS报文的栈顶标签匹配的第二LFIB表项,所述第三节点为所述环网外与所述环网连接的节点,所述第二LFIB表项包括:所述第四MPLS 报文的栈顶标签、第二下一跳信息、第二出标签和第三上下文标签;所述第三上下文标签用于指示所述第四MPLS报文在所述环网中经过所述第二节点后的转发方向;处理单元602,还用于将所述第四MPLS报文的栈顶标签替换为所述第二出标签,并将所述第三上下文标签压入进行了标签替换的所述第四MPLS报文的标签栈,以生成第五MPLS报文;发送单元603 ,还用于向所述第二下一跳信息对应的第二下一跳发送所述第五MPLS报文。
其中,所述第一LFIB基于第二节点600上的最佳路由生成,即,所述第一LFIB中任意表项的下一跳为,对于第二节点600来说,在该表项中的prefix FEC所对应的最佳路由的下一跳。
在本实施例中,所述第三上下文标签可以为SPL或者ESPL,也可以是第二节点600分配并且通过LDP、ISIS或者OSPF协议等方式通告的标签。
在一种较优的实施方式中,可以在第二节点600上保存所述第一LFIB、所述第二LFIB和所述第三LFIB,处理单元602根据接收到的MPLS报文的栈顶标签,获得对应的LFIB,并从所述对应的LFIB中获得匹配的LFIB表项。具体地,当第二节点600接收到所述第四MPLS报文,也就是说接收到的 MPLS报文的栈顶标签不为上下文标签时,处理单元602,用于从所述第一 LFIB中获得所述第二LFIB表项;当接收到所述第三MPLS报文,其中所述第三MPLS报文的栈顶标签为所述第一上下文标签,则处理单元602根据所述第一上下文标签从所述第二LFIB或所述第三LFIB中获得对应的LFIB,具体地,处理单元602,用于当所述第一上下文标签指示顺时针转发方向时,从所述第二LFIB中获得所述第一LFIB表项,当所述第一上下文标签指示逆时针转发方向时,从所述第三LFIB中获得所述第一LFIB表项。例如在图1 中,网络节点R2接收到网络节点R1发送的所述第一MPLS报文后,其中所述第一MPLS报文的栈顶标签为CWFIL,处理单元602从CWFIL对应的所述第二LFIB中获得如表5所示的所述第一LFIB表项。
在本发明实施例中,处理单元602也可以不根据所述第一上下文标签获得所述对应的LFIB,例如,接收单元601从所述环网外的网络节点接收到所述第四MPLS报文后,处理单元602,用于从所述第一LFIB中获得所述第二 LFIB表项;接收单元601接收到所述第一节点发送的所述第一MPLS报文,处理单元602,用于当确定所述第一节点是所述环网上顺时针方向的上游节点时,说明此时所述第一MPLS报文按照顺时针方向转发,从所述第二LFIB 中获得所述第一LFIB表项;当确定所述第一节点是所述环网上逆时针方向的上游节点时,说明此时所述第一MPLS报文按照逆时针方向转发,从所述第三LFIB中获得所述第一LFIB表项。
需要说明的是,在本发明实施例中,所述第一LFIB、所述第二LFIB和所述第三LFIB可以分别对应三种不同的转发表,例如所述第一LFIB对应转发表1,所述第二LFIB对应转发表2,所述第三LFIB对应转发表3,当然,所述第一LFIB、所述第二LFIB和所述第三LFIB也可以对应同一张表,例如所述第一LFIB、所述第二LFIB和所述第三LFIB都对应转发表4,其中可以在转发表4中设置LFIB标识,用于区分上述三个LFIB。
在本发明实施例中,在生成所述第一LFIB、所述第二LFIB和所述第三 LFIB时,需要在所述环网上规定出顺时针方向和逆时针方向。具体实现时,可以通过手动或者机器自动生成等方式,在第二节点600上配置出顺时针方向的下一跳和逆时针方向的下一跳,从而使得第二节点600能够根据该配置,生成所述第一LFIB、所述第二LFIB和所述第三LFIB。
上面从模块化功能实体的角度对本发明实施例中的网络节点的实施例进行描述。下面将从硬件处理的角度对本发明实施例中的网络节点的实施例进行描述。
请参阅图7,本发明实施例提供的另一种网络节点的结构示意图,本实施例中,所述网络节点为第一节点700,第一节点700位于环网中。
本实施例的第一节点700具体包括:处理器(processor)701、通信接口(Communications Interface)702、存储器(memory)703和通信总线 704。
处理器701,通信接口702,存储器703通过总线704完成相互间的通信。
处理器701,用于执行程序705。
具体地,程序705可以包括程序代码,所述程序代码包括计算机操作指令。
处理器701可能是一个中央处理器CPU,或者是专用集成电路ASIC (ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。
存储器703,用于存放程序705。存储器703可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序705用于执行以下步骤:
获得第一MPLS报文;
获得与所述第一MPLS报文的栈顶标签匹配的标签转发信息库LFIB表项,所述LFIB表项包含主用下一跳信息、备用下一跳信息、备用出标签和备用的第一上下文标签,所述第一上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第一节点后的转发方向;
当确定所述主用下一跳信息对应的主用下一跳不可达时,所述第一节点将所述第一MPLS报文的栈顶标签替换为所述备用出标签,并将所述第一上下文标签压入进行了标签替换的所述第一MPLS报文的标签栈,以生成第二 MPLS报文;
向所述备用下一跳信息对应的备用下一跳发送所述第二MPLS报文。
程序705中各步骤的具体实现参见图2或图4所示实施例中的相应步骤的实现方式,在此不赘述。
本实施例提供的第一节点700的各功能单元,可以是基于图2所示的方法实施例和图5所示的装置实施例所具备的功能的具体实现,术语的定义和说明与图2所示的方法实施例和图5所示的装置实施例保持一致,此处不再赘述。
请参阅图8,本发明实施例提供了另一种网络节点的结构示意图。在本实施例中,所述网络节点为第二节点800,环网中包括第一节点和第二节点800。
本实施例的第二节点800具体包括:处理器(processor)801、通信接口(Communications Interface)802、存储器(memory)803和通信总线 804。
处理器801,通信接口802,存储器803通过总线804完成相互间的通信。
处理器801,用于执行程序805。
具体地,程序805可以包括程序代码,所述程序代码包括计算机操作指令。
处理器801可能是一个中央处理器CPU,或者是专用集成电路ASIC (ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。
存储器803,用于存放程序805。存储器803可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序805用于执行以下步骤:
接收所述第一节点发送的第一MPLS报文,所述第一MPLS报文的栈顶标签为第一上下文标签,所述第一上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第一节点后的转发方向;
将所述第一MPLS报文的所述第一上下文标签弹出,以生成第二MPLS报文;
在所述第一上下文标签对应的标签转发信息库LFIB中获得与所述第二 MPLS报文的栈顶标签匹配的第一LFIB表项,所述第一LFIB表项包含:所述第二MPLS报文的栈顶标签、第一下一跳信息、第一出标签和第二上下文标签,所述第二上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第二节点后的转发方向,所述第二上下文标签所指示的报文转发方向与所述第一上下文标签所指示的报文转发方向相同;
将所述第二MPLS报文的栈顶标签替换为所述第一出标签,并将所述第二上下文标签压入进行了标签替换的所述第二MPLS报文的标签栈,以生成第三MPLS报文;
向所述第一下一跳信息对应的第一下一跳发送所述第三MPLS报文。
程序805中各步骤的具体实现参见图3或图4所示实施例中的相应步骤的实现方式,在此不赘述。
本实施例提供的第二节点800的各功能单元,可以是基于图3所示的方法实施例和图6所示的装置实施例所具备的功能的具体实现,术语的定义和说明与图3所示的方法实施例和图6所示的装置实施例保持一致,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (14)
1.一种环网中多协议标签交换MPLS报文转发的方法,其特征在于,所述环网中包括第一节点,所述方法包括:
所述第一节点获得第一MPLS报文;
所述第一节点获得与所述第一MPLS报文的栈顶标签匹配的标签转发信息库LFIB表项,所述LFIB表项包含主用下一跳信息、备用下一跳信息、备用出标签和备用的第一上下文标签,所述第一上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第一节点后的转发方向;
当所述第一节点确定所述主用下一跳信息对应的主用下一跳不可达时,所述第一节点将所述第一MPLS报文的栈顶标签替换为所述备用出标签,并将所述第一上下文标签压入进行了标签替换的所述第一MPLS报文的标签栈,以生成第二MPLS报文;
所述第一节点向所述备用下一跳信息对应的备用下一跳发送所述第二MPLS报文;
所述第一节点获得所述第一MPLS报文包括:
所述第一节点接收第二节点发送的第三MPLS报文,所述第三MPLS报文的栈顶标签为第二上下文标签;
所述第一节点将所述第三MPLS报文的所述第二上下文标签弹出,以生成所述第一MPLS报文,所述第二上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第二节点后的转发方向,所述第二上下文标签所指示的报文转发方向与所述第一上下文标签所指示的报文转发方向相反。
2.根据权利要求1所述的方法,其特征在于,所述第一节点获得与所述第一MPLS报文的栈顶标签匹配的所述LFIB表项包括:
所述第一节点在所述第二上下文标签对应的LFIB中,获得与所述第一MPLS报文的栈顶标签匹配的所述LFIB表项。
3.根据权利要求2所述的方法,其特征在于,还包括:
所述第一节点在第二LFIB或者第三LFIB中,获得与所述第二上下文标签对应的LFIB,其中,所述第二LFIB基于所述第一节点在顺时针方向上的路由生成,所述第三LFIB基于所述第一节点在逆时针方向上的路由生成。
4.一种环网中多协议标签交换MPLS报文转发的方法,其特征在于,所述环网中包括第一节点和第二节点,所述方法包括:
所述第二节点接收所述第一节点发送的第一MPLS报文,所述第一MPLS报文的栈顶标签为第一上下文标签,所述第一上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第一节点后的转发方向;
所述第二节点将所述第一MPLS报文的所述第一上下文标签弹出,以生成第二MPLS报文;
所述第二节点在所述第一上下文标签对应的标签转发信息库LFIB中获得与所述第二MPLS报文的栈顶标签匹配的第一LFIB表项,所述第一LFIB表项包含:所述第二MPLS报文的栈顶标签、第一下一跳信息、第一出标签和第二上下文标签,所述第二上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第二节点后的转发方向,所述第二上下文标签所指示的报文转发方向与所述第一上下文标签所指示的报文转发方向相同;
所述第二节点将所述第二MPLS报文的栈顶标签替换为所述第一出标签,并将所述第二上下文标签压入进行了标签替换的所述第二MPLS报文的标签栈,以生成第三MPLS报文;
所述第二节点向所述第一下一跳信息对应的第一下一跳发送所述第三MPLS报文。
5.根据权利要求4所述的方法,其特征在于,还包括:
所述第二节点在第二LFIB或者第三LFIB中,获得与所述第一上下文标签对应的LFIB,其中,所述第二LFIB基于所述第二节点在顺时针方向上的路由生成,所述第三LFIB基于所述第二节点在逆时针方向上的路由生成。
6.根据权利要求4或5所述的方法,其特征在于,在所述第二节点接收所述第一节点发送的所述第一MPLS报文之前所述方法还包括:
所述第二节点从第三节点接收第四MPLS报文,所述第三节点为所述环网外与所述环网连接的节点;
所述第二节点在第一LFIB中获得与所述第四MPLS报文的栈顶标签匹配的第二LFIB表项,所述第二LFIB表项包括:所述第四MPLS报文的栈顶标签、第二下一跳信息、第二出标签和第三上下文标签;所述第三上下文标签用于指示所述第四MPLS报文在所述环网中经过所述第二节点后的转发方向;
所述第二节点将所述第四MPLS报文的栈顶标签替换为所述第二出标签,并将所述第三上下文标签压入进行了标签替换的所述第四MPLS报文的标签栈,以生成第五MPLS报文;
所述第二节点向所述第二下一跳信息对应的第二下一跳发送所述第五MPLS报文。
7.根据权利要求6所述的方法,其特征在于,所述第一LFIB基于所述第二节点上的最佳路由生成。
8.一种网络节点,其特征在于,所述网络节点为第一节点,所述第一节点位于环网中,所述第一节点包括:处理单元和发送单元;其中,
所述处理单元,用于获得第一多协议标签交换MPLS报文和获得与所述第一MPLS报文的栈顶标签匹配的标签转发信息库LFIB表项,所述LFIB表项包含主用下一跳信息、备用下一跳信息、备用出标签和备用的第一上下文标签,所述第一上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第一节点后的转发方向;
所述处理单元,还用于当确定所述主用下一跳信息对应的主用下一跳不可达时,将所述第一MPLS报文的栈顶标签替换为所述备用出标签,并将所述第一上下文标签压入进行了标签替换的所述第一MPLS报文的标签栈,以生成第二MPLS报文;
所述发送单元,用于向所述备用下一跳信息对应的备用下一跳发送所述第二MPLS报文;
所述第一节点还包括:接收单元;
所述处理单元获取所述第一MPLS报文包括:通过所述接收单元接收第二节点发送的第三MPLS报文,所述第三MPLS报文的栈顶标签为第二上下文标签,以及将所述第三MPLS报文的所述第二上下文标签弹出,以生成所述第一MPLS报文,所述第二上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第二节点后的转发方向,所述第二上下文标签所指示的报文转发方向与所述第一上下文标签所指示的报文转发方向相反。
9.根据权利要求8所述的网络节点,其特征在于,所述处理单元获得与所述第一MPLS报文的栈顶标签匹配的所述LFIB表项包括:在所述第二上下文标签对应的LFIB中,获得与所述第一MPLS报文的栈顶标签匹配的所述LFIB表项。
10.根据权利要求9所述的网络节点,其特征在于,所述处理单元,还用于在第二LFIB或者第三LFIB中,获得与所述第二上下文标签对应的LFIB,其中,所述第二LFIB基于所述第一节点在顺时针方向上的路由生成,所述第三LFIB基于所述第一节点在逆时针方向上的路由生成。
11.一种网络节点,其特征在于,所述网络节点为第二节点,环网中包括第一节点和所述第二节点,所述第二节点包括:接收单元、处理单元和发送单元;其中,
所述接收单元,用于接收所述第一节点发送的第一多协议标签交换MPLS报文,所述第一MPLS报文的栈顶标签为第一上下文标签,所述第一上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第一节点后的转发方向;
所述处理单元,用于将所述第一MPLS报文的所述第一上下文标签弹出,以生成第二MPLS报文,以及在所述第一上下文标签对应的标签转发信息库LFIB中获得与所述第二MPLS报文的栈顶标签匹配的第一LFIB表项,所述第一LFIB表项包含:所述第二MPLS报文的栈顶标签、第一下一跳信息、第一出标签和第二上下文标签,所述第二上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第二节点后的转发方向,所述第二上下文标签所指示的报文转发方向与所述第一上下文标签所指示的报文转发方向相同;
所述处理单元,还用于将所述第二MPLS报文的栈顶标签替换为所述第一出标签,并将所述第二上下文标签压入进行了标签替换的所述第二MPLS报文的标签栈,以生成第三MPLS报文;
所述发送单元,用于向所述第一下一跳信息对应的第一下一跳发送所述第三MPLS报文。
12.根据权利要求11所述的网络节点,其特征在于,所述处理单元,还用于在第二LFIB或者第三LFIB中,获得与所述第一上下文标签对应的LFIB,其中,所述第二LFIB基于所述第二节点在顺时针方向上的路由生成,所述第三LFIB基于所述第二节点在逆时针方向上的路由生成。
13.根据权利要求11或12所述的网络节点,其特征在于,在所述接收单元接收所述第一节点发送的所述第一MPLS报文之前,所述处理单元还用于从第三节点接收第四MPLS报文、以及在第一LFIB中获得与所述第四MPLS报文的栈顶标签匹配的第二LFIB表项,所述第三节点为所述环网外与所述环网连接的节点,所述第二LFIB表项包括:所述第四MPLS报文的栈顶标签、第二下一跳信息、第二出标签和第三上下文标签;所述第三上下文标签用于指示所述第四MPLS报文在所述环网中经过所述第二节点后的转发方向;
所述处理单元,还用于将所述第四MPLS报文的栈顶标签替换为所述第二出标签,并将所述第三上下文标签压入进行了标签替换的所述第四MPLS报文的标签栈,以生成第五MPLS报文;
所述发送单元,还用于向所述第二下一跳信息对应的第二下一跳发送所述第五MPLS报文。
14.根据权利要求13所述的网络节点,其特征在于,所述第一LFIB基于所述第二节点上的最佳路由生成。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510060726.9A CN105991434B (zh) | 2015-02-05 | 2015-02-05 | 一种环网中mpls报文转发的方法及网络节点 |
PCT/CN2015/099945 WO2016124055A1 (zh) | 2015-02-05 | 2015-12-30 | 一种环网中mpls报文转发的方法及网络节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510060726.9A CN105991434B (zh) | 2015-02-05 | 2015-02-05 | 一种环网中mpls报文转发的方法及网络节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105991434A CN105991434A (zh) | 2016-10-05 |
CN105991434B true CN105991434B (zh) | 2019-12-06 |
Family
ID=56563425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510060726.9A Active CN105991434B (zh) | 2015-02-05 | 2015-02-05 | 一种环网中mpls报文转发的方法及网络节点 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105991434B (zh) |
WO (1) | WO2016124055A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10476811B2 (en) * | 2017-03-10 | 2019-11-12 | Juniper Networks, Inc | Apparatus, system, and method for providing node protection across label-switched paths that share labels |
CN107547371A (zh) * | 2017-09-28 | 2018-01-05 | 新华三技术有限公司 | 一种报文转发方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1738288A (zh) * | 2004-08-17 | 2006-02-22 | 华为技术有限公司 | 一种多协议标签交换网络中重新路由的方法 |
CN103209088A (zh) * | 2012-01-17 | 2013-07-17 | 华为技术有限公司 | 环网标签交换路径创建方法及相关设备和通信系统 |
CN103391247A (zh) * | 2012-05-09 | 2013-11-13 | 丛林网络公司 | 多点标签交换路径的使用无环备用下一跳的快速重路由 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070174483A1 (en) * | 2006-01-20 | 2007-07-26 | Raj Alex E | Methods and apparatus for implementing protection for multicast services |
US8004960B2 (en) * | 2006-04-28 | 2011-08-23 | Cisco Technology, Inc. | Method and apparatus for forwarding label distribution protocol multicast traffic during fast reroute |
US8004964B2 (en) * | 2009-03-23 | 2011-08-23 | Cisco Technology, Inc. | Restoring multi-segment pseudowires following failure of a switching PE device |
CN102474446A (zh) * | 2009-07-16 | 2012-05-23 | 瑞典爱立信有限公司 | 用于点对多点业务的恢复机制 |
US8456982B2 (en) * | 2010-08-26 | 2013-06-04 | Verizon Patent And Licensing Inc. | System and method for fast network restoration |
-
2015
- 2015-02-05 CN CN201510060726.9A patent/CN105991434B/zh active Active
- 2015-12-30 WO PCT/CN2015/099945 patent/WO2016124055A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1738288A (zh) * | 2004-08-17 | 2006-02-22 | 华为技术有限公司 | 一种多协议标签交换网络中重新路由的方法 |
CN103209088A (zh) * | 2012-01-17 | 2013-07-17 | 华为技术有限公司 | 环网标签交换路径创建方法及相关设备和通信系统 |
CN103391247A (zh) * | 2012-05-09 | 2013-11-13 | 丛林网络公司 | 多点标签交换路径的使用无环备用下一跳的快速重路由 |
Also Published As
Publication number | Publication date |
---|---|
WO2016124055A1 (zh) | 2016-08-11 |
CN105991434A (zh) | 2016-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3678338B1 (en) | Method for forwarding messages and network device | |
CN109981458B (zh) | 一种确定报文转发路径的方法、网络节点及系统 | |
CN110661711B (zh) | 生成标签转发表的方法、报文发送方法、装置及设备 | |
US8982881B2 (en) | Upstream label allocation on ethernets for MP2MP LSPS | |
CN107968750B (zh) | 报文传输方法、装置及节点 | |
CN109861913B (zh) | 一种跨内部网关协议的前缀标识通告方法和装置 | |
CN115552861B (zh) | 生成转发表项的方法、发送报文的方法、网络设备及系统 | |
CN113489641A (zh) | 一种网络中传输报文的方法和节点 | |
US20220038364A1 (en) | SRv6-Based Data Processing Method and Related Network Device | |
CN104380673A (zh) | 用于在IPv6网络中使用标签分发协议(LDP)实例的系统和方法 | |
US11134004B2 (en) | Enhanced flexible-algorithm definition | |
US11411858B2 (en) | Method for updating route in network, network device, and system | |
EP4009596A1 (en) | Message forwarding method, device, and system in sr network | |
CN112491706B (zh) | 数据报文的处理方法及装置、存储介质、电子装置 | |
CN113438161B (zh) | 一种生成段标识sid的方法和网络设备 | |
US20170111260A1 (en) | Trill isis-based route calculation method and device | |
CN105991434B (zh) | 一种环网中mpls报文转发的方法及网络节点 | |
CN113114564A (zh) | 一种业务流处理方法及装置 | |
US11909546B2 (en) | Method and network node for sending and obtaining assert packet | |
JP2018032894A (ja) | 経路伝搬システム、および、経路伝搬方法 | |
CN117640502A (zh) | 一种段标识sid通告方法、网络设备及存储介质 | |
CN116781618A (zh) | 路由生成方法、数据报文的转发方法及装置 | |
CN115914066A (zh) | 一种路由发送方法及设备 | |
CN116800660A (zh) | 转发表的生成方法及装置、存储介质、电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |