一种环网中mpls报文转发的方法及网络节点的制作方法

文档序号:10626735阅读:283来源:国知局
一种环网中mpls报文转发的方法及网络节点的制作方法
【专利摘要】本发明实施例提供了一种环网中MPLS报文转发的方法及网络节点,所述方法包括:第一节点获得第一MPLS报文;获得与所述第一MPLS报文的栈顶标签匹配的LFIB表项,所述LFIB表项包含备用的第一上下文标签;当确定主用下一跳不可达时,将所述第一上下文标签压入进行了标签替换的所述第一MPLS报文的标签栈,以生成第二MPLS报文;向备用下一跳发送所述第二MPLS报文。可见,本发明实施例中在进行了标签替换的所述第一MPLS报文的标签栈中压入所述第一上下文标签,所述第一上下文标签用于指示所述第一MPLS报文在所述环网中经过所述第一节点后的转发方向,从而避免了所述第一节点转发所述MPLS报文时,当所述主用下一跳不可达时在所述第一节点和第二节点之间可能出现的瞬间环路问题。
【专利说明】
一种环网中MPLS报文转发的方法及网络节点
技术领域
[0001] 本发明涉及通信领域,尤其是涉及一种环网中多协议标签交换(英文: Multi-Protocol Label Switch,简称:MPLS)报文转发的方法及网络节点。
【背景技术】
[0002] 环网(英文:ring network)是一种常见的拓扑结构。在环网中,通常利用MPLS技 术实现MPLS报文的转发。
[0003] 目前MPLS报文在环网中的转发方式是,网络节点接收到MPLS报文后,会从所述网 络节点的标签转发信息库(英文:Label Forwarding Information Base,简称:LFIB)中获 得匹配的LFIB表项,根据所述LFIB表项确定主用下一跳和备用下一跳。当所述网络节点 确定所述主用下一跳不可达时,将所述MPLS报文转发至所述备用下一跳,并且所述网络节 点还会向所述备用下一跳发送所述主用下一跳不可达的信息,以使得所述备用下一跳根据 该不可达信息收敛路由。
[0004] 然而,由于该不可达信息从所述网络节点发送至所述备用下一跳,以及所述备用 下一跳根据该不可达信息进行路由收敛都需要花费一定的时间,因此可能会导致,当所述 备用下一跳接收到所述网络节点转发的所述MPLS报文时,所述备用下一跳还未完成路由 收敛,因此所述备用下一跳很有可能会将所述MPLS报文又发送至所述网络节点,导致所述 MPLS报文在所述网络节点和所述备用下一跳之间来回转发,造成了瞬间环路的技术问题。

【发明内容】

[0005] 本发明实施例解决的技术问题在于提供一种环网中报文转发的方法及网络节点, 以解决环网中出现的瞬间环路的技术问题。
[0006] 为此,本发明实施例解决技术问题的技术方案是:
[0007] 第一方面,本发明实施例提供了一种环网中MPLS报文转发的方法,所述环网中包 括第一节点,所述方法包括:
[0008] 所述第一节点获得第一 MPLS报文;
[0009] 所述第一节点获得与所述第一 MPLS报文的栈顶标签匹配的标签转发信息库LFIB 表项,所述LFIB表项包含主用下一跳信息、备用下一跳信息、备用出标签和备用的第一上 下文标签,所述第一上下文标签用于指示所述第一 MPLS报文在所述环网中经过所述第一 节点后的转发方向;
[0010] 当所述第一节点确定所述主用下一跳信息对应的主用下一跳不可达时,所述第一 节点将所述第一 MPLS报文的栈顶标签替换为所述备用出标签,并将所述第一上下文标签 压入进行了标签替换的所述第一 MPLS报文的标签栈,以生成第二MPLS报文;
[0011] 所述第一节点向所述备用下一跳信息对应的备用下一跳发送所述第二MPLS报 文。
[0012] 在第一方面的第一种可能的实现方式中,所述第一节点获得所述第一 MPLS报文 包括:
[0013] 所述第一节点获得第二节点向所述第一节点发送的所述第一 MPLS报文。
[0014] 结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式 中,所述第一节点获得与所述第一 MPLS报文的栈顶标签匹配的所述LFIB表项包括:
[0015] 所述第一节点在第一 LFIB中,获得与所述第一 MPLS报文的栈顶标签匹配的所述 LFIB表项,所述第一 LFIB基于所述第一节点上的最佳路由生成。
[0016] 在第一方面的第三种可能的实现方式中,所述第一节点获得所述第一 MPLS报文 包括:
[0017] 所述第一节点接收第二节点发送的第三MPLS报文,所述第三MPLS报文的栈顶标 签为第二上下文标签;
[0018] 所述第一节点将所述第三MPLS报文的所述第二上下文标签弹出,以生成所述第 一 MPLS报文,所述第二上下文标签用于指示所述第一 MPLS报文在所述环网中经过所述第 二节点后的转发方向,所述第二上下文标签所指示的报文转发方向与所述第一上下文标签 所指示的报文转发方向相反。
[0019] 结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式 中,所述第一节点获得与所述第一 MPLS报文的栈顶标签匹配的所述LFIB表项包括:
[0020] 所述第一节点在所述第二上下文标签对应的LFIB中,获得与所述第一 MPLS报文 的栈顶标签匹配的所述LFIB表项。
[0021] 结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式 中,还包括:
[0022] 所述第一节点在第二LFIB或者第三LFIB中,获得与所述第二上下文标签对应的 LFIB,其中,所述第二LFIB基于所述第一节点在顺时针方向上的路由生成,所述第三LFIB 基于所述第一节点在逆时针方向上的路由生成。
[0023] 第二方面,本发明实施例提供了一种环网中MPLS报文转发的方法,所述环网中包 括第一节点和第二节点,所述方法包括:
[0024] 所述第二节点接收所述第一节点发送的第一 MPLS报文,所述第一 MPLS报文的栈 顶标签为第一上下文标签,所述第一上下文标签用于指示所述第一 MPLS报文在所述环网 中经过所述第一节点后的转发方向;
[0025] 所述第二节点将所述第一 MPLS报文的所述第一上下文标签弹出,以生成第二 MPLS报文;
[0026] 所述第二节点在所述第一上下文标签对应的标签转发信息库LFIB中获得与所述 第二MPLS报文的栈顶标签匹配的第一 LFIB表项,所述第一 LFIB表项包含:所述第二MPLS 报文的栈顶标签、第一下一跳信息、第一出标签和第二上下文标签,所述第二上下文标签用 于指示所述第一 MPLS报文在所述环网中经过所述第二节点后的转发方向,所述第二上下 文标签所指示的报文转发方向与所述第一上下文标签所指示的报文转发方向相同;
[0027] 所述第二节点将所述第二MPLS报文的栈顶标签替换为所述第一出标签,并将所 述第二上下文标签压入进行了标签替换的所述第二MPLS报文的标签栈,以生成第三MPLS 报文;
[0028] 所述第二节点向所述第一下一跳信息对应的第一下一跳发送所述第三MPLS报 文。
[0029] 在第二方面的第一种可能的实现方式中,还包括:
[0030] 所述第二节点在第二LFIB或者第三LFIB中,获得与所述第一上下文标签对应的 LFIB,其中,所述第二LFIB基于所述第二节点在顺时针方向上的路由生成,所述第三LFIB 基于所述第二节点在逆时针方向上的路由生成。
[0031] 结合第二方面或者第二方面的第一种可能的实现方式,在第二方面的第三种可能 的实现方式中,在所述第二节点接收所述第一节点发送的所述第一 MPLS报文之前所述方 法还包括:
[0032] 所述第二节点从第三节点接收第四MPLS报文,所述第三节点为所述环网外与所 述环网连接的节点;
[0033] 所述第二节点在第一 LFIB中获得与所述第四MPLS报文的栈顶标签匹配的第二 LFIB表项,所述第二LFIB表项包括:所述第四MPLS报文的栈顶标签、第二下一跳信息、第 二出标签和第三上下文标签;所述第三上下文标签用于指示所述第四MPLS报文在所述环 网中经过所述第二节点后的转发方向;
[0034] 所述第二节点将所述第四MPLS报文的栈顶标签替换为所述第二出标签,并将所 述第三上下文标签压入进行了标签替换的所述第四MPLS报文的标签栈,以生成第五MPLS 报文;
[0035] 所述第二节点向所述第二下一跳信息对应的第二下一跳发送所述第五MPLS报 文。
[0036] 结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式 中,所述第一 LFIB基于所述第二节点上的最佳路由生成。
[0037] 第三方面,本发明实施例提供了一种网络节点,所述网络节点为第一节点,所述第 一节点位于环网中,所述第一节点包括:处理单元和发送单元;其中,
[0038] 所述处理单元,用于获得第一多协议标签交换MPLS报文和获得与所述第一 MPLS 报文的栈顶标签匹配的标签转发信息库LFIB表项,所述LFIB表项包含主用下一跳信息、备 用下一跳信息、备用出标签和备用的第一上下文标签,所述第一上下文标签用于指示所述 第一 MPLS报文在所述环网中经过所述第一节点后的转发方向;
[0039] 所述处理单元,还用于当确定所述主用下一跳信息对应的主用下一跳不可达时, 将所述第一 MPLS报文的栈顶标签替换为所述备用出标签,并将所述第一上下文标签压入 进行了标签替换的所述第一 MPLS报文的标签栈,以生成第二MPLS报文;
[0040] 所述发送单元,用于向所述备用下一跳信息对应的备用下一跳发送所述第二MPLS 报文。
[0041] 在第三方面的第一种可能的实现方式中,所述第一节点还包括:接收单元;
[0042] 当所述处理单元获得所述第一 MPLS报文时,所述处理单元,用于通过所述接收单 元获得第二节点向所述第一节点发送的所述第一 MPLS报文。
[0043] 结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式 中,当所述处理单元获得与所述第一 MPLS报文的栈顶标签匹配的所述LFIB表项时,所述处 理单元,用于在第一 LFIB中,获得与所述第一 MPLS报文的栈顶标签匹配的所述LFIB表项, 所述第一 LFIB基于所述第一节点上的最佳路由生成。
[0044] 在第三方面的第三种可能的实现方式中,所述第一节点还包括:接收单元;
[0045] 当所述处理单元获得所述第一 MPLS报文时,所述处理单元,用于通过所述接收单 元接收第二节点发送的第三MPLS报文,所述第三MPLS报文的栈顶标签为第二上下文标签, 以及将所述第三MPLS报文的所述第二上下文标签弹出,以生成所述第一 MPLS报文,所述 第二上下文标签用于指示所述第一 MPLS报文在所述环网中经过所述第二节点后的转发方 向,所述第二上下文标签所指示的报文转发方向与所述第一上下文标签所指示的报文转发 方向相反。
[0046] 结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式 中,当所述处理单元获得与所述第一 MPLS报文的栈顶标签匹配的所述LFIB表项时,所述处 理单元,用于在所述第二上下文标签对应的LFIB中,获得与所述第一 MPLS报文的栈顶标签 匹配的所述LFIB表项。
[0047] 结合第三方面的第四种可能的实现方式,在第三方面的第五种可能的实现方式 中,所述处理单元,还用于在第二LFIB或者第三LFIB中,获得与所述第二上下文标签对 应的LFIB,其中,所述第二LFIB基于所述第一节点在顺时针方向上的路由生成,所述第三 LFIB基于所述第一节点在逆时针方向上的路由生成。
[0048] 第四方面,本发明实施例提供了一种网络节点,所述网络节点为第二节点,环网 中包括第一节点和所述第二节点,所述第二节点包括:接收单元、处理单元和发送单元;其 中,
[0049] 所述接收单元,用于接收所述第一节点发送的第一多协议标签交换MPLS报文,所 述第一 MPLS报文的栈顶标签为第一上下文标签,所述第一上下文标签用于指示所述第一 MPLS报文在所述环网中经过所述第一节点后的转发方向;
[0050] 所述处理单元,用于将所述第一MPLS报文的所述第一上下文标签弹出,以生成第 二MPLS报文,以及在所述第一上下文标签对应的标签转发信息库LFIB中获得与所述第二 MPLS报文的栈顶标签匹配的第一 LFIB表项,所述第一 LFIB表项包含:所述第二MPLS报文 的栈顶标签、第一下一跳信息、第一出标签和第二上下文标签,所述第二上下文标签用于指 示所述第一 MPLS报文在所述环网中经过所述第二节点后的转发方向,所述第二上下文标 签所指示的报文转发方向与所述第一上下文标签所指示的报文转发方向相同;
[0051] 所述处理单元,还用于将所述第二MPLS报文的栈顶标签替换为所述第一出标签, 并将所述第二上下文标签压入进行了标签替换的所述第二MPLS报文的标签栈,以生成第 三MPLS报文;
[0052] 所述发送单元,用于向所述第一下一跳信息对应的第一下一跳发送所述第三MPLS 报文。
[0053] 在第四方面的第一种可能的实现方式中,所述处理单元,还用于在第二LFIB或者 第三LFIB中,获得与所述第一上下文标签对应的LFIB,其中,所述第二LFIB基于所述第二 节点在顺时针方向上的路由生成,所述第三LFIB基于所述第二节点在逆时针方向上的路 由生成。
[0054] 结合第四方面或者第四方面的第一种可能的实现方式,在第四方面的第三种可能 的实现方式中,在所述接收单元接收所述第一节点发送的所述第一 MPLS报文之前,所述处 理单元还用于从第三节点接收第四MPLS报文、以及在第一 LFIB中获得与所述第四MPLS报 文的栈顶标签匹配的第二LFIB表项,所述第三节点为所述环网外与所述环网连接的节点, 所述第二LFIB表项包括:所述第四MPLS报文的栈顶标签、第二下一跳信息、第二出标签和 第三上下文标签;所述第三上下文标签用于指示所述第四MPLS报文在所述环网中经过所 述第二节点后的转发方向;
[0055] 所述处理单元,还用于将所述第四MPLS报文的栈顶标签替换为所述第二出标签, 并将所述第三上下文标签压入进行了标签替换的所述第四MPLS报文的标签栈,以生成第 五MPLS报文;
[0056] 所述发送单元,还用于向所述第二下一跳信息对应的第二下一跳发送所述第五 MPLS报文。
[0057] 结合第四方面的第三种可能的实现方式,在第四方面的第四种可能的实现方式 中,所述第一 LFIB基于所述第二节点上的最佳路由生成。
[0058] 通过上述技术方案可知,本发明实施例中当环网上的第一节点转发MPLS报文时, 在确定主用下一跳不可达时,所述第一节点在所述MPLS报文的标签栈中压入上下文标签, 所述上下文标签用于指示所述MPLS报文在所述环网中经过所述第一节点后的转发方向, 从而使得所述环网上的第二节点接收到所述第一节点转发的所述MPLS报文后,能够根据 所述上下文标签所指示的转发方向转发所述MPLS报文,因此所述第二节点不会再将所述 MPLS报文发送至所述第一节点,从而避免了所述第一节点转发所述MPLS报文时,当所述主 用下一跳不可达时,所述第一节点和所述第二节点之间可能出现的瞬间环路的技术问题。
【附图说明】
[0059] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它 的附图。
[0060] 图1为环网的一种可能的拓扑结构;
[0061] 图2为本发明实施例提供的一种方法实施例的流程示意图;
[0062] 图3为本发明实施例提供的另一种方法实施例的流程示意图;
[0063] 图4为本发明实施例提供的另一种方法实施例的流程示意图;
[0064] 图5为本发明实施例提供的一种网络节点的结构示意图;
[0065] 图6为本发明实施例提供的另一种网络节点的结构示意图;
[0066] 图7为本发明实施例提供的另一种网络节点的结构示意图;
[0067] 图8为本发明实施例提供的另一种网络节点的结构示意图。
【具体实施方式】
[0068] 为了更好的理解本发明实施例,下面通过图1介绍MPLS报文在环网中的转发方 式。需要说明的是,图1仅为一种示例性的说明,其具体拓扑并不会对本发明实施例起到限 制作用。
[0069] 图1所示的环网中包括网络节点R1、网络节点R2、网络节点R3和网络节点R4,其 中每个网络节点上都有对应的LFIB,以用于实现报文转发。下面首先以网络节点R1为例说 明网络节点R1的LFIB的生成方式。
[0070] 针对某一个前缀(英文:prefix)转发等价类(英文:Forwarding Equivalence Class,简称:FEC),网络节点R2会向所述prefix FEC分配标签,例如网络节点R2 向1. 1. 1. 5/32分配标签52,并将分配的标签52通过标签分发协议(英文:Label Distribution Protocol,简称:LDP)、最短路径优先(英文:0pen Shortest Path First,简 称:0SPF)或中间系统-中间系统(英文〖Intermediate System to Intermediate System, 简称:ISIS)协议等方式通告,使得网络节点R2的所有邻居,即网络节点Rl、网络节点R3和 网络节点R6都能获得网络节点R2分配的标签,同样网络节点R4会向所述prefix FEC分 配标签,例如网络节点R4向1. 1. 1. 5/32分配标签54,并将分配的标签54通过LDP、0SPF或 ISIS协议等方式通告,使得网络节点R4的所有邻居,即网络节点R1、网络节点R3和网络节 点R5都能获得网络节点R4分配的标签。其中1. 1. 1. 5/32对应网络节点R5。
[0071] 因此,网络节点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)地址或 者标识等信息。
[0072] 其中需要说明的是,网络节点R1实际上是将网络节点R4作为主用下一跳,并将网 络节点R4所分配的标签作为主用出标签。当主用下一跳不可达时,为了利用快速重路由 (英文:Fast ReRoute,简称:FRR)等方式向备用路由转发报文,网络节点的LFIB中还会指 示出备用下一跳和备用出标签,例如表1显示出了网络节点R1的LFIB中1. 1. 1.5/32对应 的LFIB表项。其中入标签为网络节点R1为1. 1. 1. 5/32分配的标签。
[0073] 表 1
[0074]
[0075] 下面以网络节点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根据该不可达信息收敛路由。
[0076] 然而,由于该不可达信息从网络节点R1发送至网络节点R2,以及网络节点R2根 据该不可达信息进行路由收敛都需要花费一定的时间,因此可能会导致,当网络节点R2接 收到网络节点R1发送的所述MPLS报文时,网络节点R2还未完成路由收敛,由于目前网络 节点R2的LFIB基于网络节点R2上的最佳路由生成,也就是说网络节点R2在接收到所述 MPLS报文后,向网络节点R2上的最佳路由的下一跳转发报文,因此网络节点R2很有可能会 将所述MPLS报文发送至网络节点R1,例如当网络节点R2上的最佳路由的下一跳为网络节 点R1时。此时将导致所述MPLS报文在网络节点R2和网络节点R1之间来回转发,造成了 瞬间环路的技术问题,进一步导致由瞬间环路的技术问题引起的资源浪费和报文时延等技 术问题。
[0077] 而在本发明实施例中,提供了一种环网中报文转发的方法及网络节点,以解决环 网中出现的瞬间环路的技术问题。
[0078] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施 例,都属于本发明保护的范围。
[0079] 本发明的说明书和权利要求书及上述附图中的术语"第一"、"第二"、"第三"或"第 四"等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的 数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容 以外的顺序实施。此外,术语"包括"和"具有"以及他们的任何变形,意图在于覆盖不排他 的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列 出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固 有的其它步骤或单元。
[0080] 请参阅图2,本发明实施例提供了环网中MPLS报文转发的方法的一种方法实施 例。在本实施例中,所述环网中包括第一节点。例如在图1中,所述第一节点为网络节点 Rl〇
[0081] 本实施例的所述方法包括:
[0082] 201 :所述第一节点获得第一 MPLS报文。
[0083] 所述第一节点可以将其他节点发送的MPLS报文直接作为所述第一 MPLS报文,也 可以将其他节点发送的MPLS报文进行一定的处理后,作为所述第一 MPLS报文。
[0084] 202 :所述第一节点获得与所述第一 MPLS报文的栈顶标签匹配的LFIB表项。
[0085] 其中,所述第一 MPLS报文的栈顶标签用于指导所述第一 MPLS报文的转发,通过将 所述第一 MPLS报文的栈顶标签与所述第一节点的LFIB中的LFIB表项进行匹配,能够在所 述第一节点的LFIB中获得与所述第一 MPLS报文的栈顶标签匹配的所述LFIB表项。其中 在进行匹配时,所述第一节点一般是将所述第一节点的LFIB中的各个LFIB表项与所述第 一 MPLS报文的栈顶标签匹配,当所述第一节点的LFIB中的某个表项的入标签与所述第一 MPLS报文的栈顶标签相同时,将该表项作为与所述第一 MPLS报文的栈顶标签匹配的所述 LFIB表项,并获得所述LFIB表项。
[0086] 在本发明实施例中,所述LFIB表项包含主用下一跳信息、备用下一跳信息、备用 出标签和备用的第一上下文标签。除了上述信息之外,所述LFIB表项一般还包含入标签、 主用出标签和所述表项对应的prefix FEC,所述prefixFEC用于指示所述第一 MPLS报文 的目的端。例如在图1中所示的环网中,所述第一 MPLS报文的栈顶标签为标签51,网络 节点R1将标签51与网络节点R1的LFIB匹配,可以获得如表2所示的LFIB表项。其中 1. 1. 1. 5/32对应网络节点R5,也就是说所述第一 MPLS报文的目的端为网络节点R5。
[0087] 表 2
[0088]
[0089] 在本发明实施例中,为了解决瞬间环路的技术问题,所述LFIB表项中包含了备 用的所述第一上下文标签,其中所述第一上下文标签用于指示所述第一 MPLS报文在所述 环网中经过所述第一节点后的转发方向,从而能够使得所述第一 MPLS报文在所述环网中 经过所述第一节点后,一直按照所述第一上下文标签所指示的所述转发方向转发,直至所 述第一 MPLS报文下所述环网或者掉头。其中所述第一上下文标签可以用于指示顺时针 转发方向或者逆时针转发方向,例如具体为顺时针方向转发指示标签(英文:Clock-Wise Forwarding Indication Label,简称:CWFIL),或者逆时针方向转发指示标签(英文: Counter-Clock-Wise Forwarding Indication Label,简称:CCWFIL),从而所述第一上下 文标签指示所述第一 MPLS报文在经过所述第一节点后,一直按照顺时针方向或者逆时针 方向转发。例如表2所示的所述LFIB表项中,所述第一上下文标签为CWFIL,用于指示所述 第一 MPLS报文在经过所述第一节点后,一直按照顺时针方向转发。其中所述第一上下文标 签为备用的标签,即表示所述第一上下文标签在所述第一 MPLS报文需要向所述备用下一 跳转发时使用。
[0090] 203 :当所述第一节点确定所述主用下一跳信息对应的主用下一跳不可达时,所述 第一节点将所述第一 MPLS报文的栈顶标签替换为所述备用出标签,并将所述第一上下文 标签压入进行了标签替换的所述第一 MPLS报文的标签栈,以生成第二MPLS报文。
[0091] 在本发明实施例中,当所述第一节点确定所述主用下一跳不可达时,除了将所述 第一 MPLS报文的栈顶标签替换为所述备用出标签外,还会将所述第一上下文标签压入进 行了标签替换的所述第一 MPLS报文的标签栈,以生成第二MPLS报文,从而实现了在所述第 二MPLS报文的栈顶标签中指示出,所述第一 MPLS报文在所述环网中经过所述第一节点后 的所述转发方向,使得所述备用下一跳在接收到所述第二MPLS报文后,能够按照所述第一 上下文标签指示的转发方向转发所述第二MPLS报文,而不会再将所述第二MPLS报文发送 至所述第一节点。
[0092] 需要说明的是,本发明实施例在获得所述第一 MPLS报文后,会将所述第一 MPLS报 文转换为所述第二MPLS报文后再进行转发,因此,所述第一上下文标签所指示的,所述第 一 MPLS报文在所述环网中经过所述第一节点后的转发方向,实际上也可以认为是基于所 述第一 MPLS报文生成的所述第二MPLS报文在所述环网中经过所述第一节点后的转发方 向。
[0093] 本发明实施例还可以包括,当所述第一节点确定所述主用下一跳可达时,所述第 一节点将所述第一 MPLS报文的栈顶标签替换为所述主用出标签,并向所述主用下一跳发 送进行了标签替换的所述第一 MPLS报文。
[0094] 204:所述第一节点向所述备用下一跳信息对应的备用下一跳发送所述第二MPLS 报文。
[0095] 由于所述第二MPLS报文的栈顶标签为所述第一上下文标签,从而能够指示所述 备用下一跳按照所述第一上下文标签所指示的转发方向转发所述第二MPLS报文。
[0096] 通过上述技术方案可知,本发明实施例中,所述第一节点获得的所述LFIB表项 中,包含了备用的第一上下文标签,所述第一上下文标签用于指示所述第一 MPLS报文在所 述环网中经过所述第一节点后的转发方向。因此当所述第一节点转发所述第一 MPLS报文 时,在确定所述主用下一跳不可达时,除了将所述第一 MPLS报文的栈顶标签替换为所述备 用出标签之外,还将所述第一上下文标签压入进行了标签替换的所述第一 MPLS报文的标 签栈,以生成第二MPLS报文并发送至所述备用下一跳,从而使得所述备用下一跳接收到 所述第二MPLS报文后,能够按照所述第一上下文标签指示的所述转发方向转发所述第二 MPLS报文,从而使得所述第一 MPLS报文在经过所述第一节点和所述备用下一跳时都沿着 同一方向转发,因此所述备用下一跳不会再将所述第二MPLS报文发送至所述第一节点,从 而避免了所述第一节点转发所述第一 MPLS报文时,当所述主用下一跳不可达时,所述第一 节点和所述备用下一跳之间可能出现的瞬间环路的技术问题。进一步解决了由瞬间环路的 技术问题导致的资源浪费和报文延时等问题。
[0097] 例如在图1中,当网络节点R1确定网络节点R4不可达时,向网络节点R2发送所 述第二MPLS报文,所述第二MPLS报文的栈顶标签具体为CWFIL,用于指示所述第二MPLS报 文按照顺时针方向转发,因此网络节点R2按照顺时针方向即向网络节点R3转发所述第二 MPLS报文,而不会再将所述第二MPLS报文发送至网络节点R1,从而解决了网络节点R1和 网络节点R2之间可能出现的瞬间环路的技术问题。
[0098] 在本实施例中,所述第一上下文标签可以为特殊用途标签(英文:SpeCial Purpose Label,简称:SPL)或者扩展的特殊用途标签(英文:Extended Special Purpose Label,简称:ESPL),也可以是由所述第一节点分配并且通过LDP、ISIS或者0SPF协议等方 式通告的标签。
[0099] 在本发明实施例中,所述第一节点可以将其他节点发送的MPLS报文直接作为所 述第一 MPLS报文,也可以将其他节点发送的MPLS报文进行一定的处理后,作为所述第一 MPLS报文。其中,所述第一节点还可以根据其他节点发送的MPLS报文的栈顶标签,从对应 的LFIB中获得所述LFIB表项。下面分两种情况进行说明。
[0100] ( -)在本发明实施例中,所述第一节点可以将其他节点发送的MPLS报文直接作 为所述第一 MPLS报文,具体实现时,本实施例的201包括所述第一节点获得第二节点向所 述第一节点发送的所述第一 MPLS报文。其中,所述第二节点可以是所述环网中的节点,例 如图1所示,网络节点R1获得网络节点R2发送的所述第一 MPLS报文;所述第二节点也可 以是所述环网外与所述环网连接的节点。
[0101] 若所述第一节点将其他节点发送的MPLS报文直接作为所述第一 MPLS报文,本发 明实施例中可以在目前基于最佳路由生成的LFIB中,添加所述第一上下文标签,由所述第 一节点在所述基于最佳路由生成的LFIB中获得所述LFIB表项。具体地,本实施例的202包 括:所述第一节点在第一 LFIB中,获得与所述第一 MPLS报文的栈顶标签匹配的所述LFIB 表项。其中,所述第一 LFIB基于所述第一节点上的最佳路由生成,即,所述第一 LFIB中任 意表项的主用下一跳为对于所述第一节点来说,该表项中的prefix FEC所对应的最佳路由 的下一跳。例如在表2所示的表项中,主用下一跳为对于网络节点R1来说,1. 1. 1. 5/32所 对应的最佳路由的下一跳,即网络节点R4。
[0102] (二)在本发明实施例中,其他节点发送至所述第一节点的MPLS报文的标签栈中, 可能压入了上下文标签,所述第一节点需要将其他节点发送的MPLS报文进行一定的处理, 比如弹出所述上下文标签,以获得所述第一 MPLS报文。具体实现时,本实施例的201可以 包括:所述第一节点接收所述第二节点发送的第三MPLS报文,所述第三MPLS报文的栈顶标 签为第二上下文标签;所述第一节点将所述第三MPLS报文的所述第二上下文标签弹出,以 生成所述第一 MPLS报文。其中,所述第二上下文标签用于指示所述第一 MPLS报文在所述 环网中经过所述第二节点后的转发方向,所述第二上下文标签所指示的报文转发方向与所 述第一上下文标签所指示的报文转发方向相反。例如在图1中,所述第二上下文标签可以 为CCWFIL,用于指示所述第一 MPLS报文在所述环网中经过网络节点R2后按照逆时针方向 转发,而所述第一上下文标签可以为CWFIL,用于指示所述第一 MPLS报文在所述环网中经 过网络节点R1后按照顺时针方向转发。在本实施例中,所述第二上下文标签可以为SPL或 者ESPL,也可以是由所述第二节点分配并且通过LDP、ISIS或者0SPF协议等方式通告的标 签。
[0103] 若所述第一节点接收到的所述第三MPLS报文的栈顶标签为所述第二上下文标 签,本发明实施例中还可以设置与所述第二上下文标签对应的LFIB,在与所述第二上下文 标签对应的LFIB中添加所述第一上下文标签。具体实现时,本实施例的202包括:所述第一 节点在所述第二上下文标签对应的LFIB中,获得与所述第一 MPLS报文的栈顶标签匹配的 所述LFIB表项。其中,所述第二上下文标签对应的LFIB基于所述第一节点在所述第二上下 文标签所指示的转发方向上的路由生成,即,所述第二上下文标签对应的LFIB中任意表项 的主用下一跳为,所述第一节点在所述第二上下文标签所指示的转发方向上的下一跳,实 际上即为,所述第一节点在所述环网上的所述第二上下文标签所指示的转发方向上的邻居 节点,显然其不同于基于所述第一节点上的最佳路由生成的所述第一 LFIB。而任意表项的 主用出标签与该表项的主用下一跳对应,即为该表项的主用下一跳为该表项的prefix FEC 分配的标签。
[0104] 由于所述第二上下文标签可以用于指示顺时针转发方向或者逆时针转发方向,例 如具体为CWFIL或者CCWFIL。因此可以分别设置对应顺时针转发方向的第二LFIB和对应 逆时针转发方向的第三LFIB,本实施例还可以包括:所述第一节点从所述第二LFIB或者所 述第三LFIB中,获得与所述第二上下文标签对应的LFIB。例如,若所述第二上下文标签用 于指示顺时针转发方向,则将所述第二LFIB作为所述第二上下文标签对应的LFIB。
[0105] 其中所述第二LFIB基于所述第一节点在顺时针方向上的路由生成,即所述第二 LFIB中的任意表项的主用下一跳为,所述第一节点在顺时针方向上的下一跳,实际上即为, 所述第一节点在所述环网上的顺时针方向上的邻居节点。而任意表项的主用出标签与该表 项的主用下一跳对应,即为该表项的主用下一跳为该表项的prefix FEC分配的标签。例如 在图1所示的环网中,所述第二LFIB中与所述第一 MPLS报文的栈顶标签匹配的LFIB表项 可以如表3所示。
[0106] 表 3
[0107]
[0108] 在表3所示的LFIB表项中,主用下一跳为网络节点R1在顺时针方向上的路由的 下一跳,即网络节点R2,主用出标签为网络节点R2为1. 1. 1. 5/32分配的标签。该表项中, 还包含主用的上下文标签CWFIL,以及备用的上下文标签CCWFIL。
[0109] 其中所述第三LFIB基于所述第一节点在逆时针方向上的路由生成,即所述第三 LFIB中的任意表项的主用下一跳为所述第一节点在逆时针方向上的下一跳,实际上即为所 述第一节点在所述环网上的逆时针方向上的邻居节点,而任意表项的主用出标签与该表项 的主用下一跳对应,即为该表项的主用下一跳为该表项的prefix FEC分配的标签。例如在 图1所示的环网中,所述第三LFIB中与所述第一 MPLS报文的栈顶标签匹配的LFIB表项可 以如表4所示。
[0110] 表 4
[0111]
[0113] 在表4所示的LFIB表项中,主用下一跳为网络节点R1在逆时针方向上的路由的 下一跳,即网络节点R4,主用出标签为网络节点R4为1. 1. 1. 5/32分配的标签。该表项中, 还包含主用的上下文标签CCWFIL,以及备用的上下文标签CWFIL。
[0114] 在一种较优的实施方式中,可以在所述第一节点上保存所述第一 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表项。
[0115] 在本发明实施例中,所述第一节点也可以不根据所述第二上下文标签获得所述对 应的LFIB,例如,所述第一节点接收到所述第二节点发送的所述第一 MPLS报文,当所述第 一节点确定所述第二节点是所述环网外的节点时,从所述第一 LFIB中获得所述LFIB表项; 当所述第一节点确定所述第二节点是所述环网上顺时针方向的上游节点时,说明此时所述 第一 MPLS报文按照顺时针方向转发,所述第一节点从所述第二LFIB中获得所述LFIB表 项;当所述第一节点确定所述第二节点是所述环网上逆时针方向的上游节点时,说明此时 所述第一 MPLS报文按照逆时针方向转发,所述第一节点从所述第三LFIB中获得所述LFIB 表项。
[0116] 需要说明的是,在本发明实施例中,所述第一 LFIB、所述第二LFIB和所述第三 LFIB可以分别对应三种不同的转发表,例如所述第一 LFIB对应转发表1,所述第二LFIB对 应转发表2,所述第三LFIB对应转发表3,当然,所述第一 LFIB、所述第二LFIB和所述第三 LFIB也可以对应同一张表,例如所述第一 LFIB、所述第二LFIB和所述第三LFIB都对应转 发表4,其中可以在转发表4中设置LFIB标识,用于区分上述三个LFIB。
[0117] 在本发明实施例中,在生成所述第一 LFIB、所述第二LFIB和所述第三LFIB时, 需要在所述环网上规定出顺时针方向和逆时针方向。具体实现时,可以通过手动或者机器 自动生成等方式,在所述第一节点上配置出顺时针方向的下一跳和逆时针方向的下一跳, 从而使得所述第一节点能够根据该配置,生成所述第一 LFIB、所述第二LFIB和所述第三 LFIB〇
[0118] 在上述方法实施例中,主要从所述第一节点的角度,介绍了当所述主用下一跳不 可达时,所述第一节点如何在所述第一 MPLS报文的标签栈中压入所述第一上下文标签以 指示转发方向,而下面将从第二节点的角度,介绍当接收到栈顶标签为所述第一上下文标 签的MPLS报文后,如何根据所述第一上下文标签进行转发。
[0119] 请参阅图3,本发明实施例提供了环网中MPLS报文转发的方法的另一种方法实施 例。在本实施例中,所述环网中包括第一节点和第二节点。例如在图1中,所述第一节点为 网络节点R1,所述第二节点为网络节点R2。
[0120] 本实施例的所述方法包括:
[0121] 301 :所述第二节点接收所述第一节点发送的第一 MPLS报文,所述第一 MPLS报文 的栈顶标签为第一上下文标签。
[0122] 其中,所述第一上下文标签用于指示所述第一 MPLS报文在所述环网中经过所述 第一节点后的转发方向。
[0123] 在本发明实施例中一种较优的实施方式中,所述第一 MPLS报文,是当所述第一节 点确定所述第一节点的主用下一跳不可达时,生成并向所述第二节点发送的。
[0124] 302 :所述第二节点将所述第一 MPLS报文的所述第一上下文标签弹出,以生成第 二MPLS报文。
[0125] 303 :所述第二节点在所述第一上下文标签对应的LFIB中获得与所述第二MPLS报 文的栈顶标签匹配的第一 LFIB表项。
[0126] 具体在进行匹配时,所述第二节点一般是将所述第一上下文标签对应的LFIB中 的各个LFIB表项与所述第二MPLS报文的栈顶标签匹配,当所述第一上下文标签对应的 LFIB中的某个表项的入标签与所述第二MPLS报文的栈顶标签相同时,将该表项作为与所 述第二MPLS报文的栈顶标签匹配的所述LFIB表项,并获得所述LFIB表项。
[0127] 在本发明实施例中,所述第一上下文标签对应的LFIB基于所述第二节点在所述 第一上下文标签所指示的转发方向上的路由生成,即,所述第一上下文标签对应的LFIB中 任意表项的主用下一跳为,所述第二节点在所述第一上下文标签所指示的转发方向上的下 一跳,实际上即为,所述第二节点在所述环网上的所述第一上下文标签所指示的转发方向 上的邻居节点,显然其不同于基于所述第二节点上的最佳路由生成的LFIB。
[0128] 其中,在所述第一上下文标签对应的LFIB中获得的所述第一LFIB表项包含:所述 第二MPLS报文的栈顶标签、第一下一跳信息、第一出标签和第二上下文标签,所述第二上 下文标签用于指示所述第一 MPLS报文在所述环网中经过所述第二节点后的转发方向,所 述第二上下文标签所指示的转发方向与所述第一上下文标签所指示的转发方向相同,也就 是说,所述第一 MPLS报文在经过所述第一节点和所述第二节点时,沿着相同的转发方向转 发。从而使得所述第二节点不会再将所述第一 MPLS报文发送至所述第一节点。例如在图1 中,网络节点R2接收到网络节点R1发送的所述第一 MPLS报文,所述第一 MPLS报文的栈顶 标签为CWFIL,用于指示所述第一 MPLS报文按照顺时针方向转发,因此网络节点R2获得所 述第二上下文标签CWFIL,并且按照顺时针方向即向网络节点R3转发所述第一 MPLS报文, 而不会再将所述第一 MPLS报文发送至网络节点R1,从而解决了网络节点R1和网络节点R2 之间可能出现的瞬间环路的技术问题。
[0129] 其中,由于所述第二节点沿着所述第一上下文标签指示的转发方向转发所述第一 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。
[0130] 表 5
[0131]
[0132] 在表5所示的LFIB表项中,第一下一跳为网络节点R2在顺时针方向上的路由的 下一跳,即网络节点R3,第一出标签为网络节点R3为1. 1. 1. 5/32分配的标签。
[0133] 304 :所述第二节点将所述第二MPLS报文的栈顶标签替换为所述第一出标签,并 将所述第二上下文标签压入进行了标签替换的所述第二MPLS报文的标签栈,以生成第三 MPLS报文。
[0134] 所述第二节点除了将所述第二MPLS报文的栈顶标签替换为所述第一出标签外, 还会将所述第二上下文标签压入进行了标签替换的所述第二MPLS报文的标签栈,以生成 第三MPLS报文,使得接收到所述第三MPLS报文的网络节点,能够按照所述第二上下文标签 指示的转发方向转发所述第三MPLS报文。
[0135] 需要说明的是,本发明实施例在获得所述第一 MPLS报文后,会将所述第一 MPLS报 文转换为所述第三MPLS报文后再进行转发,因此,所述第二上下文标签所指示的,所述第 一 MPLS报文在所述环网中经过所述第二节点后的转发方向,实际上也可以认为是,基于所 述第一 MPLS报文生成的所述第三MPLS报文在所述环网中经过所述第二节点后的转发方向
[0136] 305 :所述第二节点向所述第一下一跳信息对应的第一下一跳发送所述第三MPLS 报文。
[0137] 由于所述第三MPLS报文的栈顶标签为所述第二上下文标签,从而能够指示所述 第一下一跳按照所述第二上下文标签所指示的所述转发方向转发所述第三MPLS报文。
[0138] 通过上述技术方案可知,本发明实施例中,所述第二节点接收所述第一 MPLS报文 后,将所述第一 MPLS报文的栈顶标签,即所述第一上下文标签弹出,并且在所述第一上下 文标签对应的LFIB中获得匹配的第一 LFIB表项,其中所述第一 LFIB表项中包含第二上下 文标签,由于所述第一上下文标签用于指示所述第一 MPLS报文在所述环网中经过所述第 一节点后的转发方向,所述第二上下文标签用于指示所述第一 MPLS报文在所述环网中经 过所述第二节点后的转发方向,并且所述第二上下文标签所指示的报文转发方向与所述第 一上下文标签所指示的报文转发方向相同,也就是说,所述第一 MPLS报文在经过所述第一 节点和所述第二节点时,沿着相同的转发方向转发。从而使得所述第二节点不会再将所述 第一MPLS报文发送至所述第一节点。从而避免了所述某一节点转发所述MPLS报文时,当所 述某一节点的主用下一跳不可达时,所述第一节点和所述第二节点之间可能出现的瞬间环 路的技术问题。进一步解决了由瞬间环路的技术问题导致的资源浪费和报文延时等问题。
[0139] 例如在图1中,网络节点R2接收到网络节点R1发送的所述第一 MPLS报文,所述 第一 MPLS报文的栈顶标签具体为CWFIL,用于指示所述第二MPLS报文按照顺时针方向转 发,因此网络节点R2按照顺时针方向即向网络节点R3转发所述第二MPLS报文,而不会再 将所述第二MPLS报文发送至网络节点R1,从而解决了网络节点R1和网络节点R2之间可能 出现的瞬间环路的技术问题。
[0140] 在本实施例中,所述第一上下文标签可以为SPL或者ESPL,也可以是所述第一节 点分配并且通过LDP、ISIS或者0SPF协议等方式通告的标签。所述第二上下文标签可以为 SPL或者ESPL,也可以是所述第二节点分配并且通过LDP、ISIS或者0SPF协议等方式通告 的标签。
[0141] 在本发明实施例中,所述第一上下文标签可以用于指示顺时针转发方向或者逆时 针转发方向,例如具体为CWFIL或者CCWFIL。因此可以分别设置对应顺时针转发方向的第 二LFIB和对应逆时针转发方向的第三LFIB,本实施例还可以包括:所述第二节点从所述第 二LFIB或者所述第三LFIB中,获得与所述第一上下文标签对应的LFIB。例如,若所述第一 上下文标签用于指示顺时针转发方向,则将所述第二LFIB作为所述第一上下文标签对应 的 LFIB。
[0142] 其中所述第二LFIB基于所述第二节点在顺时针方向上的路由生成,即所述第二 LFIB中的任意表项的下一跳为,所述第二节点在顺时针方向上的下一跳,实际上即为,所述 第二节点在所述环网上的顺时针方向上的邻居节点。而任意表项的出标签与该表项的下一 跳对应,即为该表项中的下一跳为该表项的prefix FEC分配的标签。例如在图1所示的环 网中,所述第二LFIB中与所述第二MPLS报文的栈顶标签匹配的LFIB表项可以如表5所示。
[0143] 其中所述第三LFIB基于所述第二节点在逆时针方向上的路由生成,即所述第三 LFIB中的任意表项的下一跳为所述第二节点在逆时针方向上的下一跳,实际上即为所述第 二节点在所述环网上的逆时针方向上的邻居节点,而任意表项的出标签与该表项的下一跳 对应,即为该表项中的下一跳为该表项的prefix FEC分配的标签。例如在图1所示的环网 中,所述第三LFIB中与所述第二MPLS报文的栈顶标签匹配的LFIB表项可以如表6所示。
[0144] 表 6
[0145]
[0146] 在表6所示的LFIB表项中,下一跳为网络节点R2在逆时针方向上的路由的下一 跳,即网络节点R1出标签为网络节点R1为1. 1. 1. 5/32分配的标签。
[0147] 在本实施例的301之前,所述第二节点还可以接收环网外的网络节点发送的MPLS 报文,该MPLS报文中不包括用于指示转发方向的上下文标签,所述第二节点可以不在该 MPLS报文中压入上下文标签,由所述第一节点确定出所述第一节点的主用下一跳不可达 时,压入用于指示转发方向的上下文标签;或者所述第二节点也可以在接收到该MPLS报文 后,在该MPLS报文中压入用于指示转发方向的上下文标签,下面具体说明这种方式。
[0148] 在所述第二节点接收所述第一节点发送的所述第一 MPLS报文之前所述方法还包 括:所述第二节点从第三节点接收第四MPLS报文,所述第三节点为所述环网外与所述环网 连接的节点;所述第二节点在第一 LFIB中获得与所述第四MPLS报文的栈顶标签匹配的第 二LFIB表项,所述第二LFIB表项包括:所述第四MPLS报文的栈顶标签、第二下一跳信息、 第二出标签和第三上下文标签;所述第三上下文标签用于指示所述第四MPLS报文在所述 环网中经过所述第二节点后的转发方向;所述第二节点将所述第四MPLS报文的栈顶标签 替换为所述第二出标签,并将所述第三上下文标签压入进行了标签替换的所述第四MPLS 报文的标签栈,以生成第五MPLS报文;所述第二节点向所述第二下一跳信息对应的第二下 一跳发送所述第五MPLS报文。
[0149] 其中,所述第一 LFIB基于所述第二节点上的最佳路由生成,即,所述第一 LFIB中 任意表项的下一跳为,对于所述第二节点来说,在该表项中的prefix FEC所对应的最佳路 由的下一跳。
[0150] 在本实施例中,所述第三上下文标签可以为SPL或者ESPL,也可以是所述第二节 点分配并且通过LDP、ISIS或者0SPF协议等方式通告的标签。
[0151] 在一种较优的实施方式中,可以在所述第二节点上保存所述第一 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表项。
[0152] 在本发明实施例中,所述第二节点也可以不根据所述第一上下文标签获得所述对 应的LFIB,例如,所述第二节点从所述环网外的网络节点接收到所述第四MPLS报文后,从 所述第一 LFIB中获得所述第二LFIB表项;所述第二节点接收到所述第一节点发送的所述 第一 MPLS报文,当所述第二节点确定所述第一节点是所述环网上顺时针方向的上游节点 时,说明此时所述第一 MPLS报文按照顺时针方向转发,所述第二节点从所述第二LFIB中 获得所述第一 LFIB表项;当所述第二节点确定所述第一节点是所述环网上逆时针方向的 上游节点时,说明此时所述第一 MPLS报文按照逆时针方向转发,所述第二节点从所述第三 LFIB中获得所述第一 LFIB表项。
[0153] 需要说明的是,在本发明实施例中,所述第一 LFIB、所述第二LFIB和所述第三 LFIB可以分别对应三种不同的转发表,例如所述第一 LFIB对应转发表1,所述第二LFIB对 应转发表2,所述第三LFIB对应转发表3,当然,所述第一 LFIB、所述第二LFIB和所述第三 LFIB也可以对应同一张表,例如所述第一 LFIB、所述第二LFIB和所述第三LFIB都对应转 发表4,其中可以在转发表4中设置LFIB标识,用于区分上述三个LFIB。
[0154] 在本发明实施例中,在生成所述第一 LFIB、所述第二LFIB和所述第三LFIB时, 需要在所述环网上规定出顺时针方向和逆时针方向。具体实现时,可以通过手动或者机器 自动生成等方式,在所述第二节点上配置出顺时针方向的下一跳和逆时针方向的下一跳, 从而使得所述第二节点能够根据该配置,生成所述第一 LFIB、所述第二LFIB和所述第三 LFIB〇
[0155] 在上述方法实施例中,分别介绍了所述第一节点和所述第二节点对MPLS报文的 转发过程,下面以图1所示的拓扑为例,介绍MPLS报文在所述环网中每个节点的转发过 程。
[0156] 请参阅图4,本发明实施例提供了环网中MPLS报文转发的方法的另一种方法实施 例。如图1所示,本实施例中的所述环网中包括网络节点R1、网络节点R2、网络节点R3和 网络节点R4。
[0157] 401:网络节点R2接收网络节点R6发送的第一 MPLS报文,网络节点R6为所述环 网外与所述环网连接的节点,即所述第一 MPLS报文从网络节点R2上所述环网。
[0158] 402 :网络节点R2在网络节点R2的第一 LFIB中获得与所述第一 MPLS报文的栈顶 标签匹配的第一 LFIB表项。其中,所述第一 LFIB表项可以如表7所示。网络节点R2的第 一 LFIB基于网络节点R2上的最佳路由生成。在表7中,1. 1. 1. 5/32对应网络节点R5。
[0159] 表 7
[0160]
[0161] 403 :网络节点R2将所述第一 MPLS报文的栈顶标签替换为所述第一 LFIB表项中 的出标签。
[0162] 需要说明的是,在本发明实施例中,402中获得的所述第一 LFIB表项还可以如表6 所示,此时本实施例中还包括:在进行了标签替换的所述第一 MPLS报文的标签栈中压入用 于指示逆时针转发方向的CCWFIL。也就是说,本发明实施例中既可以在所述第一 MPLS报文 上所述环网上,压入上下文标签,也可以在发生下一跳不可达的网络节点上压入上下文标 签。
[0163] 404 :网络节点R2将进行了标签替换后的所述第一MPLS报文,作为第二MPLS报文 发送至网络节点R1。
[0164] 405 :网络节点R1接收所述第二MPLS报文,在网络节点R1的第一 LFIB中获得与 所述第二MPLS报文的栈顶标签匹配的第二LFIB表项。其中,所述第二LFIB表项可以如表 2所示,表2中的CWFIL为用于指示顺时针转发方向的上下文标签。其中,网络节点R1的第 一 LFIB基于网络节点R1上的最佳路由生成。
[0165] 406 :网络节点R1确定网络节点R4不可达,网络节点R1将所述第二MPLS报文的 栈顶标签替换为表2所示的所述第二LFIB表项中的备用出标签,并将CWFIL压入进行了标 签替换的所述第二MPLS报文的标签栈,以生成第三MPLS报文。
[0166] 407 :网络节点R1向网络节点R2发送所述第三MPLS报文。
[0167] 408 :网络节点R2接收所述第三MPLS报文,弹出所述第三MPLS报文的栈顶标签, 以生成第四MPLS报文。其中,所述第三MPLS报文的栈顶标签为CWFIL。
[0168] 409 :网络节点R2根据所述第三MPLS报文的栈顶标签CWFIL,在网络节点R2的第 二LFIB中获得与所述第四MPLS报文的栈顶标签匹配的第三LFIB表项。其中,所述第三 LFIB表项可以如表5所示。网络节点R2的第二LFIB基于网络节点R2在顺时针方向上的 路由生成。
[0169] 410 :网络节点R2将所述第四MPLS报文的栈顶标签替换为表5所示的所述第三 LFIB表项中的出标签,并将所述第三LFIB表项中的CWFIL压入进行了标签替换的所述第 四MPLS报文的标签栈,以生成第五MPLS报文。网络节点R2将所述第五MPLS报文发送至 网络节点R3。
[0170] 411 :网络节点R3接收到所述第五MPLS报文后,与网络节点R2执行类似的操作以 生成第六MPLS报文,并将所述第六MPLS报文发送至网络节点R4。所述第六MPLS报文从网 络节点R4下所述环网。
[0171] 412 :网络节点R4弹出所述第六MPLS报文中的栈顶标签CWFIL,以生成第七MPLS 报文,并根据所述第六MPLS报文的栈顶标签CWFIL,在网络节点R4的第二LFIB中获得与所 述第七MPLS报文的栈顶标签匹配的第四LFIB表项。其中,所述第四LFIB表项可以如表8 所示。
[0172] 表 8
[0173]
[0174] 在表8中,标签55为网络节点R5为1. 1. 1. 5/32分配的标签。
[0175] 需要说明的是,网络节点R4上保存了网络节点R4的第一 LFIB、第二LFIB和第三 LFIB,其中,由于网络节点R4是所述第七MPLS报文下所述环网的节点,因此网络节点R4上 这三个LFIB中与所述第七MPLS报文的标签栈顶匹配的表项,在表项内容上完全相同,例如 可以均如表8所示。
[0176] 413 :网络节点R4将所述第七MPLS报文的栈顶标签替换为所述第四LFIB表项的 出标签,并将经过标签替换的所述第七MPLS报文发送至网络节点R5。
[0177] 上面对本发明实施例中的环网中MPLS报文转发的方法的实施例进行了描述,下 面将从模块化功能实体的角度对本发明实施例中的网络节点进行描述。
[0178] 请参阅图5,本发明实施例提供了一种网络节点的结构示意图。在本实施例中,所 述网络节点为第一节点500,第一节点500位于环网中。例如在图1中,第一节点500为网 络节点R1。
[0179] 本实施例的第一节点500包括处理单元501和发送单元502。其中,
[0180] 处理单元501,用于获得第一 MPLS报文。
[0181] 其中,处理单元501可以将其他节点发送的MPLS报文直接作为所述第一 MPLS报 文,也可以将其他节点发送的MPLS报文进行一定的处理后,作为所述第一 MPLS报文。
[0182] 处理单元501,还用于获得与所述第一 MPLS报文的栈顶标签匹配的LFIB表项。
[0183] 其中,所述第一 MPLS报文的栈顶标签用于指导所述第一 MPLS报文的转发,处理单 元501通过将所述第一 MPLS报文的栈顶标签与第一节点500的LFIB中的LFIB表项进行匹 配,能够在第一节点500的LFIB中获得与所述第一 MPLS报文的栈顶标签匹配的所述LFIB 表项。其中在进行匹配时,处理单元501 -般是将第一节点500的LFIB中的各个LFIB表 项与所述第一 MPLS报文的栈顶标签匹配,当第一节点500的LFIB中的某个表项的入标签 与所述第一 MPLS报文的栈顶标签相同时,将该表项作为与所述第一 MPLS报文的栈顶标签 匹配的所述LFIB表项,并获得所述LFIB表项。
[0184] 在本发明实施例中,所述LFIB表项包含主用下一跳信息、备用下一跳信息、备用 出标签和备用的第一上下文标签。除了上述信息之外,所述LFIB表项一般还包含入标签、 主用出标签和所述表项对应的prefix FEC,所述prefixFEC用于指示所述第一 MPLS报文 的目的端。例如在图1中所示的环网中,所述第一 MPLS报文的栈顶标签为标签51,处理 单元501将标签51与网络节点R1的LFIB匹配,可以获得如表2所示的LFIB表项。其中 1. 1. 1. 5/32对应网络节点R5,也就是说所述第一 MPLS报文的目的端为网络节点R5。
[0185] 在本发明实施例中,为了解决瞬间环路的技术问题,所述LFIB表项中包含了备用 的所述第一上下文标签,其中所述第一上下文标签用于指示所述第一 MPLS报文在所述环 网中经过第一节点500后的转发方向,从而能够使得所述第一 MPLS报文在所述环网中经过 第一节点500后,一直按照所述第一上下文标签所指示的所述转发方向转发,直至所述第 一 MPLS报文下所述环网或者掉头。其中所述第一上下文标签可以用于指示顺时针转发方 向或者逆时针转发方向,例如具体为CWFIL或者CCWFIL,从而所述第一上下文标签指示所 述第一 MPLS报文在经过第一节点500后,一直按照顺时针方向或者逆时针方向转发。例如 表2所示的所述LFIB表项中,所述第一上下文标签为CWFIL,用于指示所述第一 MPLS报文 在经过第一节点500后,一直按照顺时针方向转发。其中所述第一上下文标签为备用的标 签,即表示所述第一上下文标签在所述第一 MPLS报文需要向所述备用下一跳转发时使用。
[0186] 处理单元501,还用于当确定所述主用下一跳信息对应的主用下一跳不可达时,将 所述第一 MPLS报文的栈顶标签替换为所述备用出标签,并将所述第一上下文标签压入进 行了标签替换的所述第一 MPLS报文的标签栈,以生成第二MPLS报文。
[0187] 在本发明实施例中,当处理单元501确定所述主用下一跳不可达时,除了将所述 第一 MPLS报文的栈顶标签替换为所述备用出标签外,还会将所述第一上下文标签压入进 行了标签替换的所述第一 MPLS报文的标签栈,以生成第二MPLS报文,从而实现了在所述第 二MPLS报文的栈顶标签中指示出,所述第一 MPLS报文在所述环网中经过第一节点500后 的所述转发方向,使得所述备用下一跳在接收到所述第二MPLS报文后,能够按照所述第一 上下文标签指示的转发方向转发所述第二MPLS报文,而不会再将所述第二MPLS报文发送 至第一节点500。
[0188] 需要说明的是,本发明实施例处理单元501在获得所述第一 MPLS报文后,会将所 述第一 MPLS报文转换为所述第二MPLS报文后再进行转发,因此,所述第一上下文标签所指 示的,所述第一 MPLS报文在所述环网中经过第一节点500后的转发方向,实际上也可以认 为是基于所述第一 MPLS报文生成的所述第二MPLS报文在所述环网中经过第一节点500后 的转发方向。
[0189] 处理单元501,还可以用于当确定所述主用下一跳可达时,将所述第一 MPLS报文 的栈顶标签替换为所述主用出标签,并向所述主用下一跳发送进行了标签替换的所述第一 MPLS报文。
[0190] 发送单元502,用于向所述备用下一跳信息对应的备用下一跳发送所述第二MPLS 报文。
[0191] 由于所述第二MPLS报文的栈顶标签为所述第一上下文标签,从而能够指示所述 备用下一跳按照所述第一上下文标签所指示的转发方向转发所述第二MPLS报文。
[0192] 通过上述技术方案可知,本发明实施例中,处理单元501获得的所述LFIB表项中, 包含了备用的第一上下文标签,所述第一上下文标签用于指示所述第一 MPLS报文在所述 环网中经过第一节点500后的转发方向。因此当第一节点500转发所述第一 MPLS报文时, 在处理单元501确定所述主用下一跳不可达时,除了将所述第一 MPLS报文的栈顶标签替 换为所述备用出标签之外,还将所述第一上下文标签压入进行了标签替换的所述第一 MPLS 报文的标签栈,以生成第二MPLS报文并由发送单元502发送至所述备用下一跳,从而使得 所述备用下一跳接收到所述第二MPLS报文后,能够按照所述第一上下文标签指示的所述 转发方向转发所述第二MPLS报文,从而使得所述第一 MPLS报文在经过第一节点500和所 述备用下一跳时都沿着同一方向转发,因此所述备用下一跳不会再将所述第二MPLS报文 发送至第一节点500,从而避免了第一节点500转发所述第一MPLS报文时,当所述主用下一 跳不可达时,第一节点500和所述备用下一跳之间可能出现的瞬间环路的技术问题。进一 步解决了由瞬间环路的技术问题导致的资源浪费和报文延时等问题。
[0193] 例如在图1中,当网络节点R1确定网络节点R4不可达时,向网络节点R2发送所 述第二MPLS报文,所述第二MPLS报文的栈顶标签具体为CWFIL,用于指示所述第二MPLS报 文按照顺时针方向转发,因此网络节点R2按照顺时针方向即向网络节点R3转发所述第二 MPLS报文,而不会再将所述第二MPLS报文发送至网络节点R1,从而解决了网络节点R1和 网络节点R2之间可能出现的瞬间环路的技术问题。
[0194] 在本实施例中,所述第一上下文标签可以为SPL或者ESPL,也可以是由第一节点 500分配并且通过LDP、ISIS或者0SPF协议等方式通告的标签。
[0195] 在本发明实施例中,处理单元501可以将其他节点发送的MPLS报文直接作为所述 第一 MPLS报文,也可以将其他节点发送的MPLS报文进行一定的处理后,作为所述第一 MPLS 报文。其中,处理单元501还可以根据其他节点发送的MPLS报文的栈顶标签,从对应的LFIB 中获得所述LFIB表项。下面分两种情况进行说明。
[0196] (一)在本发明实施例中,处理单元501可以将其他节点发送的MPLS报文直接作 为所述第一 MPLS报文,具体实现时,第一节点500还包括:接收单元,当处理单元501获得 所述第一 MPLS报文时,处理单元501,用于通过接收单元获得第二节点向第一节点500发送 的所述第一 MPLS报文。其中,所述第二节点可以是所述环网中的节点,例如图1所示,网络 节点R1获得网络节点R2发送的所述第一 MPLS报文;所述第二节点也可以是所述环网外与 所述环网连接的节点。
[0197] 若第一节点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。
[0198] (二)在本发明实施例中,其他节点发送至第一节点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协议等方式通告的标签。
[0199] 若第一节点500接收到的所述第三MPLS报文的栈顶标签为所述第二上下文标签, 本发明实施例中还可以设置与所述第二上下文标签对应的LFIB,在与所述第二上下文标签 对应的LFIB中添加所述第一上下文标签。具体实现时,当处理单元501获得与所述第一 MPLS报文的栈顶标签匹配的所述LFIB表项时,处理单元501,用于在所述第二上下文标签 对应的LFIB中,获得与所述第一 MPLS报文的栈顶标签匹配的所述LFIB表项。其中,所述 第二上下文标签对应的LFIB基于第一节点500在所述第二上下文标签所指示的转发方向 上的路由生成,即,所述第二上下文标签对应的LFIB中任意表项的主用下一跳为,第一节 点500在所述第二上下文标签所指示的转发方向上的下一跳,实际上即为,第一节点500在 所述环网上的所述第二上下文标签所指示的转发方向上的邻居节点,显然其不同于基于第 一节点500上的最佳路由生成的所述第一 LFIB。而任意表项的主用出标签与该表项的主用 下一跳对应,即为该表项的主用下一跳为该表项的prefix FEC分配的标签。
[0200] 由于所述第二上下文标签可以用于指示顺时针转发方向或者逆时针转发方向,例 如具体为CWFIL或者CCWFIL。因此可以分别设置对应顺时针转发方向的第二LFIB和对应 逆时针转发方向的第三LFIB,处理单元501,还可以用于在第二LFIB或者第三LFIB中,获 得与所述第二上下文标签对应的LFIB。例如,若所述第二上下文标签用于指示顺时针转发 方向,则将所述第二LFIB作为所述第二上下文标签对应的LFIB。
[0201] 其中所述第二LFIB基于第一节点500在顺时针方向上的路由生成,即所述第二 LFIB中的任意表项的主用下一跳为,第一节点500在顺时针方向上的下一跳,实际上即为, 第一节点500在所述环网上的顺时针方向上的邻居节点。而任意表项的主用出标签与该表 项的主用下一跳对应,即为该表项的主用下一跳为该表项的prefix FEC分配的标签。例如 在图1所示的环网中,所述第二LFIB中与所述第一 MPLS报文的栈顶标签匹配的LFIB表项 可以如表3所示。
[0202] 在表3所示的LFIB表项中,主用下一跳为网络节点R1在顺时针方向上的路由的 下一跳,即网络节点R2,主用出标签为网络节点R2为1. 1. 1. 5/32分配的标签。该表项中, 还包含主用的上下文标签CWFIL,以及备用的上下文标签CCWFIL。
[0203] 其中所述第三LFIB基于第一节点500在逆时针方向上的路由生成,即所述第三 LFIB中的任意表项的主用下一跳为第一节点500在逆时针方向上的下一跳,实际上即为第 一节点500在所述环网上的逆时针方向上的邻居节点,而任意表项的主用出标签与该表项 的主用下一跳对应,即为该表项的主用下一跳为该表项的prefix FEC分配的标签。例如在 图1所示的环网中,所述第三LFIB中与所述第一 MPLS报文的栈顶标签匹配的LFIB表项可 以如表4所示。
[0204] 在表4所示的LFIB表项中,主用下一跳为网络节点R1在逆时针方向上的路由的 下一跳,即网络节点R4,主用出标签为网络节点R4为1. 1. 1. 5/32分配的标签。该表项中, 还包含主用的上下文标签CCWFIL,以及备用的上下文标签CWFIL。
[0205] 在一种较优的实施方式中,可以在第一节点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表项。
[0206] 在本发明实施例中,处理单元501也可以不根据所述第二上下文标签获得所述对 应的LFIB,例如,第一节点500接收到所述第二节点发送的所述第一 MPLS报文,处理单元 501,用于当确定所述第二节点是所述环网外的节点时,从所述第一 LFIB中获得所述LFIB 表项;当确定所述第二节点是所述环网上顺时针方向的上游节点时,说明此时所述第一 MPLS报文按照顺时针方向转发,从所述第二LFIB中获得所述LFIB表项;当确定所述第二 节点是所述环网上逆时针方向的上游节点时,说明此时所述第一 MPLS报文按照逆时针方 向转发,从所述第三LFIB中获得所述LFIB表项。
[0207] 需要说明的是,在本发明实施例中,所述第一 LFIB、所述第二LFIB和所述第三 LFIB可以分别对应三种不同的转发表,例如所述第一 LFIB对应转发表1,所述第二LFIB对 应转发表2,所述第三LFIB对应转发表3,当然,所述第一 LFIB、所述第二LFIB和所述第三 LFIB也可以对应同一张表,例如所述第一 LFIB、所述第二LFIB和所述第三LFIB都对应转 发表4,其中可以在转发表4中设置LFIB标识,用于区分上述三个LFIB。
[0208] 在本发明实施例中,在生成所述第一 LFIB、所述第二LFIB和所述第三LFIB时, 需要在所述环网上规定出顺时针方向和逆时针方向。具体实现时,可以通过手动或者机器 自动生成等方式,在第一节点500上配置出顺时针方向的下一跳和逆时针方向的下一跳, 从而使得第一节点500能够根据该配置,生成所述第一 LFIB、所述第二LFIB和所述第三 LFIB〇
[0209] 在上述装置实施例中,主要从第一节点500的角度,介绍了当所述主用下一跳不 可达时,第一节点500如何在所述第一 MPLS报文的标签栈中压入所述第一上下文标签以指 示转发方向,而下面将从第二节点的角度,介绍当接收到栈顶标签为所述第一上下文标签 的MPLS报文后,如何根据所述第一上下文标签进行转发。
[0210] 请参阅图6,本发明实施例提供了另一种网络节点的结构示意图。在本实施例中, 所述网络节点为第二节点600,环网中包括第一节点和第二节点600。例如在图1中,所述 第一节点为网络节点R1,第二节点600为网络节点R2。
[0211] 第二节点600包括:接收单元601、处理单元602和发送单元603。其中,
[0212] 接收单元601,用于接收所述第一节点发送的MPLS报文,所述第一 MPLS报文的栈 顶标签为第一上下文标签。
[0213] 其中,所述第一上下文标签用于指示所述第一 MPLS报文在所述环网中经过所述 第一节点后的转发方向。
[0214] 在本发明实施例中一种较优的实施方式中,所述第一 MPLS报文,是当所述第一节 点确定所述第一节点的主用下一跳不可达时,生成并向第二节点600发送的。
[0215] 处理单元602,用于将所述第一 MPLS报文的所述第一上下文标签弹出,以生成第 二MPLS报文,以及在所述第一上下文标签对应的LFIB中获得与所述第二MPLS报文的栈顶 标签匹配的第一 LFIB表项。
[0216] 具体在进行匹配时,处理单元602 -般是将所述第一上下文标签对应的LFIB中的 各个LFIB表项与所述第二MPLS报文的栈顶标签匹配,当所述第一上下文标签对应的LFIB 中的某个表项的入标签与所述第二MPLS报文的栈顶标签相同时,将该表项作为与所述第 二MPLS报文的栈顶标签匹配的所述LFIB表项,并获得所述LFIB表项。
[0217] 在本发明实施例中,所述第一上下文标签对应的LFIB基于第二节点600在所述第 一上下文标签所指示的转发方向上的路由生成,即,所述第一上下文标签对应的LFIB中任 意表项的主用下一跳为,第二节点600在所述第一上下文标签所指示的转发方向上的下一 跳,实际上即为,第二节点600在所述环网上的所述第一上下文标签所指示的转发方向上 的邻居节点,显然其不同于基于第二节点600上的最佳路由生成的LFIB。
[0218] 其中,在所述第一上下文标签对应的LFIB中获得的所述第一LFIB表项包含:所述 第二MPLS报文的栈顶标签、第一下一跳信息、第一出标签和第二上下文标签,所述第二上 下文标签用于指示所述第一 MPLS报文在所述环网中经过第二节点600后的转发方向,所述 第二上下文标签所指示的转发方向与所述第一上下文标签所指示的转发方向相同,也就是 说,所述第一 MPLS报文在经过所述第一节点和第二节点600时,沿着相同的转发方向转发。 从而使得第二节点600不会再将所述第一 MPLS报文发送至所述第一节点。例如在图1中, 网络节点R2接收到网络节点R1发送的所述第一 MPLS报文,所述第一 MPLS报文的栈顶标 签为CWFIL,用于指示所述第一 MPLS报文按照顺时针方向转发,因此网络节点R2获得所述 第二上下文标签CWFIL,并且按照顺时针方向即向网络节点R3转发所述第一 MPLS报文,而 不会再将所述第一 MPLS报文发送至网络节点R1,从而解决了网络节点R1和网络节点R2之 间可能出现的瞬间环路的技术问题。
[0219] 其中,由于第二节点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。
[0220] 在表5所示的LFIB表项中,第一下一跳为网络节点R2在顺时针方向上的路由的 下一跳,即网络节点R3,第一出标签为网络节点R3为1. 1. 1. 5/32分配的标签。
[0221] 处理单元602,还用于将所述第二MPLS报文的栈顶标签替换为所述第一出标签, 并将所述第二上下文标签压入进行了标签替换的所述第二MPLS报文的标签栈,以生成第 三MPLS报文。
[0222] 处理单元602除了将所述第二MPLS报文的栈顶标签替换为所述第一出标签外,还 会将所述第二上下文标签压入进行了标签替换的所述第二MPLS报文的标签栈,以生成第 三MPLS报文,使得接收到所述第三MPLS报文的网络节点,能够按照所述第二上下文标签指 示的转发方向转发所述第三MPLS报文。
[0223] 需要说明的是,本发明实施例在获得所述第一 MPLS报文后,会将所述第一 MPLS报 文转换为所述第三MPLS报文后再进行转发,因此,所述第二上下文标签所指示的,所述第 一 MPLS报文在所述环网中经过第二节点600后的转发方向,实际上也可以认为是,基于所 述第一 MPLS报文生成的所述第三MPLS报文在所述环网中经过第二节点600后的转发方向
[0224] 发送单元603,用于向所述第一下一跳信息对应的第一下一跳发送所述第三MPLS 报文。
[0225] 由于所述第三MPLS报文的栈顶标签为所述第二上下文标签,从而能够指示所述 第一下一跳按照所述第二上下文标签所指示的所述转发方向转发所述第三MPLS报文。
[0226] 通过上述技术方案可知,本发明实施例中,接收单元601接收所述第一 MPLS报文 后,处理单元602将所述第一 MPLS报文的栈顶标签,即所述第一上下文标签弹出,并且在所 述第一上下文标签对应的LFIB中获得匹配的第一 LFIB表项,其中所述第一 LFIB表项中包 含第二上下文标签,由于所述第一上下文标签用于指示所述第一 MPLS报文在所述环网中 经过所述第一节点后的转发方向,所述第二上下文标签用于指示所述第一 MPLS报文在所 述环网中经过第二节点600后的转发方向,并且所述第二上下文标签所指示的报文转发方 向与所述第一上下文标签所指示的报文转发方向相同,也就是说,所述第一 MPLS报文在经 过所述第一节点和第二节点600时,沿着相同的转发方向转发。从而使得第二节点600不 会再将所述第一 MPLS报文发送至所述第一节点。从而避免了某一节点转发所述MPLS报文 时,当所述某一节点的主用下一跳不可达时,所述第一节点和第二节点600之间可能出现 的瞬间环路的技术问题。进一步解决了由瞬间环路的技术问题导致的资源浪费和报文延时 等问题。
[0227] 例如在图1中,网络节点R2接收到网络节点R1发送的所述第一 MPLS报文,所述 第一 MPLS报文的栈顶标签具体为CWFIL,用于指示所述第二MPLS报文按照顺时针方向转 发,因此网络节点R2按照顺时针方向即向网络节点R3转发所述第二MPLS报文,而不会再 将所述第二MPLS报文发送至网络节点R1,从而解决了网络节点R1和网络节点R2之间可能 出现的瞬间环路的技术问题。
[0228] 在本实施例中,所述第一上下文标签可以为SPL或者ESPL,也可以是所述第一节 点分配并且通过LDP、ISIS或者0SPF协议等方式通告的标签。所述第二上下文标签可以为 SPL或者ESPL,也可以是第二节点600分配并且通过LDP、ISIS或者0SPF协议等方式通告 的标签。
[0229] 在本发明实施例中,所述第一上下文标签可以用于指示顺时针转发方向或者逆时 针转发方向,例如具体为CWFIL或者CCWFIL。因此可以分别设置对应顺时针转发方向的第 二LFIB和对应逆时针转发方向的第三LFIB,处理单元602,还用于在第二LFIB或者第三 LFIB中,获得与所述第一上下文标签对应的LFIB。例如,若所述第一上下文标签用于指示 顺时针转发方向,则将所述第二LFIB作为所述第一上下文标签对应的LFIB。
[0230] 其中所述第二LFIB基于第二节点600在顺时针方向上的路由生成,即所述第二 LFIB中的任意表项的下一跳为,第二节点600在顺时针方向上的下一跳,实际上即为,第二 节点600在所述环网上的顺时针方向上的邻居节点。而任意表项的出标签与该表项的下一 跳对应,即为该表项中的下一跳为该表项的prefix FEC分配的标签。例如在图1所示的环 网中,所述第二LFIB中与所述第二MPLS报文的栈顶标签匹配的LFIB表项可以如表5所示。
[0231] 其中所述第三LFIB基于第二节点600在逆时针方向上的路由生成,即所述第三 LFIB中的任意表项的下一跳为第二节点600在逆时针方向上的下一跳,实际上即为第二节 点600在所述环网上的逆时针方向上的邻居节点,而任意表项的出标签与该表项的下一跳 对应,即为该表项中的下一跳为该表项的prefix FEC分配的标签。例如在图1所示的环网 中,所述第三LFIB中与所述第二MPLS报文的栈顶标签匹配的LFIB表项可以如表6所示。
[0232] 在表6所示的LFIB表项中,下一跳为网络节点R2在逆时针方向上的路由的下一 跳,即网络节点R1出标签为网络节点R1为1. 1. 1. 5/32分配的标签。
[0233] 接收单元601在接收所述第一节点发送的所述第一MPLS报文之前,还可以接收环 网外的网络节点发送的MPLS报文,该MPLS报文中不包括用于指示转发方向的上下文标签, 处理单元602可以不在该MPLS报文中压入上下文标签,由所述第一节点确定出所述第一节 点的主用下一跳不可达时,压入用于指示转发方向的上下文标签;或者处理单元602也可 以在接收单元601接收到该MPLS报文后,在该MPLS报文中压入用于指示转发方向的上下 文标签,下面具体说明这种方式。
[0234] 在接收单元601接收所述第一节点发送的所述第一 MPLS报文之前,处理单元602, 还用于从第三节点接收第四MPLS报文、以及在第一 LFIB中获得与所述第四MPLS报文的栈 顶标签匹配的第二LFIB表项,所述第三节点为所述环网外与所述环网连接的节点,所述第 二LFIB表项包括:所述第四MPLS报文的栈顶标签、第二下一跳信息、第二出标签和第三上 下文标签;所述第三上下文标签用于指示所述第四MPLS报文在所述环网中经过所述第二 节点后的转发方向;处理单元602,还用于将所述第四MPLS报文的栈顶标签替换为所述第 二出标签,并将所述第三上下文标签压入进行了标签替换的所述第四MPLS报文的标签栈, 以生成第五MPLS报文;发送单元602,还用于向所述第二下一跳信息对应的第二下一跳发 送所述第五MPLS报文。
[0235] 其中,所述第一 LFIB基于第二节点600上的最佳路由生成,即,所述第一 LFIB中 任意表项的下一跳为,对于第二节点600来说,在该表项中的prefixFEC所对应的最佳路由 的下一跳。
[0236] 在本实施例中,所述第三上下文标签可以为SPL或者ESPL,也可以是第二节点600 分配并且通过LDP、ISIS或者0SPF协议等方式通告的标签。
[0237] 在一种较优的实施方式中,可以在第二节点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表项。
[0238] 在本发明实施例中,处理单元602也可以不根据所述第一上下文标签获得所述对 应的LFIB,例如,接收单元601从所述环网外的网络节点接收到所述第四MPLS报文后,处 理单元602,用于从所述第一 LFIB中获得所述第二LFIB表项;接收单元601接收到所述第 一节点发送的所述第一 MPLS报文,处理单元602,用于当确定所述第一节点是所述环网上 顺时针方向的上游节点时,说明此时所述第一 MPLS报文按照顺时针方向转发,从所述第二 LFIB中获得所述第一 LFIB表项;当确定所述第一节点是所述环网上逆时针方向的上游节 点时,说明此时所述第一MPLS报文按照逆时针方向转发,从所述第三LFIB中获得所述第一 LFIB表项。
[0239] 需要说明的是,在本发明实施例中,所述第一 LFIB、所述第二LFIB和所述第三 LFIB可以分别对应三种不同的转发表,例如所述第一 LFIB对应转发表1,所述第二LFIB对 应转发表2,所述第三LFIB对应转发表3,当然,所述第一 LFIB、所述第二LFIB和所述第三 LFIB也可以对应同一张表,例如所述第一 LFIB、所述第二LFIB和所述第三LFIB都对应转 发表4,其中可以在转发表4中设置LFIB标识,用于区分上述三个LFIB。
[0240] 在本发明实施例中,在生成所述第一 LFIB、所述第二LFIB和所述第三LFIB时, 需要在所述环网上规定出顺时针方向和逆时针方向。具体实现时,可以通过手动或者机器 自动生成等方式,在第二节点600上配置出顺时针方向的下一跳和逆时针方向的下一跳, 从而使得第二节点600能够根据该配置,生成所述第一 LFIB、所述第二LFIB和所述第三 LFIB〇
[0241] 上面从模块化功能实体的角度对本发明实施例中的网络节点的实施例进行描述。 下面将从硬件处理的角度对本发明实施例中的网络节点的实施例进行描述。
[0242] 请参阅图7,本发明实施例提供的另一种网络节点的结构示意图,本实施例中,所 述网络节点为第一节点700,第一节点700位于环网中。
[0243] 本实施例的第一节点700具体包括:处理器(processor) 701、通信接口 (Communications Interface) 702、存储器(memory) 703 和通信总线 704〇
[0244] 处理器701,通信接口 702,存储器703通过总线704完成相互间的通信。
[0245] 处理器701,用于执行程序705。
[0246] 具体地,程序705可以包括程序代码,所述程序代码包括计算机操作指令。
[0247] 处理器701可能是一个中央处理器CPU,或者是专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电 路。
[0248] 存储器703,用于存放程序705。存储器703可能包含高速RAM存储器,也可能还 包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序705用于执 行以下步骤:
[0249] 获得第一 MPLS报文;
[0250] 获得与所述第一 MPLS报文的栈顶标签匹配的标签转发信息库LFIB表项,所述 LFIB表项包含主用下一跳信息、备用下一跳信息、备用出标签和备用的第一上下文标签,所 述第一上下文标签用于指示所述第一 MPLS报文在所述环网中经过所述第一节点后的转发 方向;
[0251] 当确定所述主用下一跳信息对应的主用下一跳不可达时,所述第一节点将所述第 一 MPLS报文的栈顶标签替换为所述备用出标签,并将所述第一上下文标签压入进行了标 签替换的所述第一 MPLS报文的标签栈,以生成第二MPLS报文;
[0252] 向所述备用下一跳信息对应的备用下一跳发送所述第二MPLS报文。
[0253] 程序705中各步骤的具体实现参见图2或图4所示实施例中的相应步骤的实现方 式,在此不赘述。
[0254] 本实施例提供的第一节点700的各功能单元,可以是基于图2所示的方法实施例 和图5所示的装置实施例所具备的功能的具体实现,术语的定义和说明与图2所示的方法 实施例和图5所示的装置实施例保持一致,此处不再赘述。
[0255] 请参阅图8,本发明实施例提供了另一种网络节点的结构示意图。在本实施例中, 所述网络节点为第二节点800,环网中包括第一节点和第二节点800。
[0256] 本实施例的第二节点800具体包括:处理器(processor) 801、通信接口 (Communications Interface)802、存储器(memory)803 和通信总线 804〇
[0257] 处理器801,通信接口 802,存储器803通过总线804完成相互间的通信。
[0258] 处理器801,用于执行程序805。
[0259] 具体地,程序805可以包括程序代码,所述程序代码包括计算机操作指令。
[0260] 处理器801可能是一个中央处理器CPU,或者是专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电 路。
[0261] 存储器803,用于存放程序805。存储器803可能包含高速RAM存储器,也可能还 包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序805用于执 行以下步骤:
[0262] 接收所述第一节点发送的第一 MPLS报文,所述第一 MPLS报文的栈顶标签为第一 上下文标签,所述第一上下文标签用于指示所述第一 MPLS报文在所述环网中经过所述第 一节点后的转发方向;
[0263] 将所述第一 MPLS报文的所述第一上下文标签弹出,以生成第二MPLS报文;
[0264] 在所述第一上下文标签对应的标签转发信息库LFIB中获得与所述第二MPLS报文 的栈顶标签匹配的第一 LFIB表项,所述第一 LFIB表项包含:所述第二MPLS报文的栈顶标 签、第一下一跳信息、第一出标签和第二上下文标签,所述第二上下文标签用于指示所述第 一 MPLS报文在所述环网中经过所述第二节点后的转发方向,所述第二上下文标签所指示 的报文转发方向与所述第一上下文标签所指示的报文转发方向相同;
[0265] 将所述第二MPLS报文的栈顶标签替换为所述第一出标签,并将所述第二上下文 标签压入进行了标签替换的所述第二MPLS报文的标签栈,以生成第三MPLS报文;
[0266] 向所述第一下一跳信息对应的第一下一跳发送所述第三MPLS报文。
[0267] 程序805中各步骤的具体实现参见图3或图4所示实施例中的相应步骤的实现方 式,在此不赘述。
[0268] 本实施例提供的第二节点800的各功能单元,可以是基于图3所示的方法实施例 和图6所示的装置实施例所具备的功能的具体实现,术语的定义和说明与图3所示的方法 实施例和图6所示的装置实施例保持一致,此处不再赘述。
[0269] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统, 装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0270] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以 通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的 划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件 可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或 讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦 合或通信连接,可以是电性,机械或其它的形式。
[0271] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显 示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个 网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目 的。
[0272] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单 元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0273] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用 时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质 上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形 式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算 机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法 的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程 序代码的介质。
[0274] 以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前 述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前 述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些 修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【主权项】
1. 一种环网中多协议标签交换MPLS报文转发的方法,其特征在于,所述环网中包括第 一节点,所述方法包括: 所述第一节点获得第一 MPLS报文; 所述第一节点获得与所述第一 MPLS报文的栈顶标签匹配的标签转发信息库LFIB表 项,所述LFIB表项包含主用下一跳信息、备用下一跳信息、备用出标签和备用的第一上下 文标签,所述第一上下文标签用于指示所述第一 MPLS报文在所述环网中经过所述第一节 点后的转发方向; 当所述第一节点确定所述主用下一跳信息对应的主用下一跳不可达时,所述第一节点 将所述第一 MPLS报文的栈顶标签替换为所述备用出标签,并将所述第一上下文标签压入 进行了标签替换的所述第一 MPLS报文的标签栈,以生成第二MPLS报文; 所述第一节点向所述备用下一跳信息对应的备用下一跳发送所述第二MPLS报文。2. 根据权利要求1所述的方法,其特征在于,所述第一节点获得所述第一 MPLS报文包 括: 所述第一节点获得第二节点向所述第一节点发送的所述第一 MPLS报文。3. 根据权利要求2所述的方法,其特征在于,所述第一节点获得与所述第一 MPLS报文 的栈顶标签匹配的所述LFIB表项包括: 所述第一节点在第一 LFIB中,获得与所述第一 MPLS报文的栈顶标签匹配的所述LFIB 表项,所述第一 LFIB基于所述第一节点上的最佳路由生成。4. 根据权利要求1所述的方法,其特征在于,所述第一节点获得所述第一 MPLS报文包 括: 所述第一节点接收第二节点发送的第三MPLS报文,所述第三MPLS报文的栈顶标签为 第二上下文标签; 所述第一节点将所述第三MPLS报文的所述第二上下文标签弹出,以生成所述第一 MPLS报文,所述第二上下文标签用于指示所述第一 MPLS报文在所述环网中经过所述第二 节点后的转发方向,所述第二上下文标签所指示的报文转发方向与所述第一上下文标签所 指示的报文转发方向相反。5. 根据权利要求4所述的方法,其特征在于,所述第一节点获得与所述第一 MPLS报文 的栈顶标签匹配的所述LFIB表项包括: 所述第一节点在所述第二上下文标签对应的LFIB中,获得与所述第一 MPLS报文的栈 顶标签匹配的所述LFIB表项。6. 根据权利要求5所述的方法,其特征在于,还包括: 所述第一节点在第二LFIB或者第三LFIB中,获得与所述第二上下文标签对应的LFIB, 其中,所述第二LFIB基于所述第一节点在顺时针方向上的路由生成,所述第三LFIB基于所 述第一节点在逆时针方向上的路由生成。7. -种环网中多协议标签交换MPLS报文转发的方法,其特征在于,所述环网中包括第 一节点和第二节点,所述方法包括: 所述第二节点接收所述第一节点发送的第一 MPLS报文,所述第一 MPLS报文的栈顶标 签为第一上下文标签,所述第一上下文标签用于指示所述第一 MPLS报文在所述环网中经 过所述第一节点后的转发方向; 所述第二节点将所述第一 MPLS报文的所述第一上下文标签弹出,以生成第二MPLS报 文; 所述第二节点在所述第一上下文标签对应的标签转发信息库LFIB中获得与所述第二 MPLS报文的栈顶标签匹配的第一 LFIB表项,所述第一 LFIB表项包含:所述第二MPLS报文 的栈顶标签、第一下一跳信息、第一出标签和第二上下文标签,所述第二上下文标签用于指 示所述第一 MPLS报文在所述环网中经过所述第二节点后的转发方向,所述第二上下文标 签所指示的报文转发方向与所述第一上下文标签所指示的报文转发方向相同; 所述第二节点将所述第二MPLS报文的栈顶标签替换为所述第一出标签,并将所述第 二上下文标签压入进行了标签替换的所述第二MPLS报文的标签栈,以生成第三MPLS报 文; 所述第二节点向所述第一下一跳信息对应的第一下一跳发送所述第三MPLS报文。8. 根据权利要求7所述的方法,其特征在于,还包括: 所述第二节点在第二LFIB或者第三LFIB中,获得与所述第一上下文标签对应的LFIB, 其中,所述第二LFIB基于所述第二节点在顺时针方向上的路由生成,所述第三LFIB基于所 述第二节点在逆时针方向上的路由生成。9. 根据权利要求7或8所述的方法,其特征在于,在所述第二节点接收所述第一节点发 送的所述第一 MPLS报文之前所述方法还包括: 所述第二节点从第三节点接收第四MPLS报文,所述第三节点为所述环网外与所述环 网连接的节点; 所述第二节点在第一 LFIB中获得与所述第四MPLS报文的栈顶标签匹配的第二LFIB 表项,所述第二LFIB表项包括:所述第四MPLS报文的栈顶标签、第二下一跳信息、第二出标 签和第三上下文标签;所述第三上下文标签用于指示所述第四MPLS报文在所述环网中经 过所述第二节点后的转发方向; 所述第二节点将所述第四MPLS报文的栈顶标签替换为所述第二出标签,并将所述第 三上下文标签压入进行了标签替换的所述第四MPLS报文的标签栈,以生成第五MPLS报 文; 所述第二节点向所述第二下一跳信息对应的第二下一跳发送所述第五MPLS报文。10. 根据权利要求9所述的方法,其特征在于,所述第一 LFIB基于所述第二节点上的最 佳路由生成。11. 一种网络节点,其特征在于,所述网络节点为第一节点,所述第一节点位于环网中, 所述第一节点包括:处理单元和发送单元;其中, 所述处理单元,用于获得第一多协议标签交换MPLS报文和获得与所述第一 MPLS报文 的栈顶标签匹配的标签转发信息库LFIB表项,所述LFIB表项包含主用下一跳信息、备用下 一跳信息、备用出标签和备用的第一上下文标签,所述第一上下文标签用于指示所述第一 MPLS报文在所述环网中经过所述第一节点后的转发方向; 所述处理单元,还用于当确定所述主用下一跳信息对应的主用下一跳不可达时,将所 述第一 MPLS报文的栈顶标签替换为所述备用出标签,并将所述第一上下文标签压入进行 了标签替换的所述第一 MPLS报文的标签栈,以生成第二MPLS报文; 所述发送单元,用于向所述备用下一跳信息对应的备用下一跳发送所述第二MPLS报 文。12. 根据权利要求11所述的网络节点,其特征在于,所述第一节点还包括:接收单元; 当所述处理单元获得所述第一 MPLS报文时,所述处理单元,用于通过所述接收单元获 得第二节点向所述第一节点发送的所述第一 MPLS报文。13. 根据权利要求12所述的网络节点,其特征在于,当所述处理单元获得与所述第一 MPLS报文的栈顶标签匹配的所述LFIB表项时,所述处理单元,用于在第一 LFIB中,获得与 所述第一 MPLS报文的栈顶标签匹配的所述LFIB表项,所述第一 LFIB基于所述第一节点上 的最佳路由生成。14. 根据权利要求11所述的网络节点,其特征在于,所述第一节点还包括:接收单元; 当所述处理单元获得所述第一 MPLS报文时,所述处理单元,用于通过所述接收单元接 收第二节点发送的第三MPLS报文,所述第三MPLS报文的栈顶标签为第二上下文标签,以及 将所述第三MPLS报文的所述第二上下文标签弹出,以生成所述第一 MPLS报文,所述第二上 下文标签用于指示所述第一 MPLS报文在所述环网中经过所述第二节点后的转发方向,所 述第二上下文标签所指示的报文转发方向与所述第一上下文标签所指示的报文转发方向 相反。15. 根据权利要求14所述的网络节点,其特征在于,当所述处理单元获得与所述第一 MPLS报文的栈顶标签匹配的所述LFIB表项时,所述处理单元,用于在所述第二上下文标签 对应的LFIB中,获得与所述第一 MPLS报文的栈顶标签匹配的所述LFIB表项。16. 根据权利要求15所述的网络节点,其特征在于,所述处理单元,还用于在第二LFIB 或者第三LFIB中,获得与所述第二上下文标签对应的LFIB,其中,所述第二LFIB基于所述 第一节点在顺时针方向上的路由生成,所述第三LFIB基于所述第一节点在逆时针方向上 的路由生成。17. -种网络节点,其特征在于,所述网络节点为第二节点,环网中包括第一节点和所 述第二节点,所述第二节点包括:接收单元、处理单元和发送单元;其中, 所述接收单元,用于接收所述第一节点发送的第一多协议标签交换MPLS报文,所述第 一 MPLS报文的栈顶标签为第一上下文标签,所述第一上下文标签用于指示所述第一 MPLS 报文在所述环网中经过所述第一节点后的转发方向; 所述处理单元,用于将所述第一 MPLS报文的所述第一上下文标签弹出,以生成第二 MPLS报文,以及在所述第一上下文标签对应的标签转发信息库LFIB中获得与所述第二 MPLS报文的栈顶标签匹配的第一 LFIB表项,所述第一 LFIB表项包含:所述第二MPLS报文 的栈顶标签、第一下一跳信息、第一出标签和第二上下文标签,所述第二上下文标签用于指 示所述第一 MPLS报文在所述环网中经过所述第二节点后的转发方向,所述第二上下文标 签所指示的报文转发方向与所述第一上下文标签所指示的报文转发方向相同; 所述处理单元,还用于将所述第二MPLS报文的栈顶标签替换为所述第一出标签,并 将所述第二上下文标签压入进行了标签替换的所述第二MPLS报文的标签栈,以生成第三 MPLS报文; 所述发送单元,用于向所述第一下一跳信息对应的第一下一跳发送所述第三MPLS报 文。18. 根据权利要求17所述的网络节点,其特征在于,所述处理单元,还用于在第二LFIB 或者第三LFIB中,获得与所述第一上下文标签对应的LFIB,其中,所述第二LFIB基于所述 第二节点在顺时针方向上的路由生成,所述第三LFIB基于所述第二节点在逆时针方向上 的路由生成。19. 根据权利要求17或18所述的网络节点,其特征在于,在所述接收单元接收所述第 一节点发送的所述第一 MPLS报文之前,所述处理单元还用于从第三节点接收第四MPLS报 文、以及在第一 LFIB中获得与所述第四MPLS报文的栈顶标签匹配的第二LFIB表项,所述 第三节点为所述环网外与所述环网连接的节点,所述第二LFIB表项包括:所述第四MPLS报 文的栈顶标签、第二下一跳信息、第二出标签和第三上下文标签;所述第三上下文标签用于 指示所述第四MPLS报文在所述环网中经过所述第二节点后的转发方向; 所述处理单元,还用于将所述第四MPLS报文的栈顶标签替换为所述第二出标签,并 将所述第三上下文标签压入进行了标签替换的所述第四MPLS报文的标签栈,以生成第五 MPLS报文; 所述发送单元,还用于向所述第二下一跳信息对应的第二下一跳发送所述第五MPLS 报文。20. 根据权利要求19所述的网络节点,其特征在于,所述第一 LFIB基于所述第二节点 上的最佳路由生成。
【文档编号】H04L12/723GK105991434SQ201510060726
【公开日】2016年10月5日
【申请日】2015年2月5日
【发明人】徐小虎
【申请人】华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1