CN107666436B - 报文转发方法及装置 - Google Patents
报文转发方法及装置 Download PDFInfo
- Publication number
- CN107666436B CN107666436B CN201610604543.3A CN201610604543A CN107666436B CN 107666436 B CN107666436 B CN 107666436B CN 201610604543 A CN201610604543 A CN 201610604543A CN 107666436 B CN107666436 B CN 107666436B
- Authority
- CN
- China
- Prior art keywords
- node
- path
- segment
- topology
- mrt
- 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.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种报文转发方法及装置,该方法包括:第一节点接收待转发的报文,其中,该报文的目的地址为第二节点;第一节点在预先生成的路径中查找与该报文对应的目标路径,其中,该预先生成的路径包括第一路径、第二路径和第三路径,上述第一路径与第二路径是根据MRT算法生成得到的到达第二节点路径,所述第三路径是根据SPF算法生成得到的到达第二节点的路径;当所述目标路径为第一路径或第二路径时,该第一节点在预先生成的段列表中查找与上述目标路径对应的目标段列表;第一节点在目标路径中查找用于转发到第二节点的下一跳节点,并根据上述目标段列表将报文转发到下一跳节点。实现了分段路由网络与MTR功能结合的目的。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种报文转发方法及装置。
背景技术
最大冗余树(Maximally Redundant Trees,简称为MRT)快速重路由(Fast Re-Route,简称为FRR)是一种较新的FRR技术,该技术中使用两个最大限度不同的转发拓扑,对单点的链路或节点故障能提供100%的保护。MRT架构定义了两种转发机制,即标签分发协议(Label Distribution Protocol,简称为LDP)转发机制和网络协议-隧道(IP-tunnel)转发机制。LDP转发机制通过不同的标签来区分是默认拓扑转发行为还是MRT转发行为,使得转发平面不作任何升级即可支持MRT-FRR。IP-tunnel转发机制则需要浪费专用的MRTloopback地址来支持转发,同样也使得转发平面不作任何升级即可支持MRT-FRR。相比而言,LDP转发机制更加合理,所以MRT架构的默认最大冗余树配置文件default MRT Profile中采用的就是LDP转发机制,目前尚未定义其它MRT Profiles。
分段路由技术将使得一个节点可以为报文指定其转发路径,而不是按一般的最短路径转发,通过在报文中附加由段标识Segment ID组成的段列表Segment List相关的信息,不需要在中间节点上为维护每路径的状态信息。分段路由主要扩展IGP以支持通告和学习Segment ID。一般在部署了分段路由的网络中,就不再需要部署LDP与基于流量工程扩展的资源预留协议(Resource ReSerVation Protocol-Traffic Extension,简称为RSVP-TE)了。在分段路由网络中,已知的FRR技术有拓扑无关的无环替换路径(TopologyIndependent Loop Free Alternate,简称为TI-LFA),但是TI-LFA定义的保护规则十分复杂并且还不成熟。
在分段路由网络中引入MRT功能将有重要的意义,但是,迄今为止尚未有文献讨论这方面的内容,因此,在相关技术中,无法实现分段路由网络与MTR功能结合。
发明内容
本发明实施例提供了一种报文转发方法及装置,以至少解决相关技术中存在的无法实现分段路由网络与MTR功能结合的问题。
根据本发明的一个实施例,提供了一种报文转发方法,包括:第一节点接收待转发的报文,其中,所述报文的目的地址为第二节点;所述第一节点在预先生成的路径中查找与所述报文对应的目标路径,其中,所述预先生成的路径包括第一路径、第二路径和第三路径,所述第一路径与所述第二路径是根据最大冗余树MRT算法生成得到的到达所述第二节点路径,所述第三路径是根据最短路径优先SPF算法生成得到的到达所述第二节点的路径;当所述目标路径为所述第一路径或所述第二路径时,所述第一节点在预先生成的段列表中查找与所述目标路径对应的目标段列表,其中,所述预先生成的段列表包括第一段列表和第二段列表,所述第一段列表包括所述第一路径,所述第二段列表包括所述第二路径;所述第一节点在所述目标路径中查找用于转发到所述第二节点的下一跳节点,并根据所述目标段列表将所述报文转发到所述下一跳节点。
可选地,所述预先生成的段列表包括以下至少之一:adjacency segment list、包含有node segment的segment list;其中,当所述预先生成的段列表中最后一个segment为adjacency segment时,所述adjacency segment的remote node为MRT Egress;当所述预先生成的段列表中最后一个segment为node segment时,所述node segment为MRT Egress。
可选地,所述方法还包括:所述第一节点按照所述MRT算法从所述第一路径和所述第二路径中确定用于保护所述第三路径的保护路径。
可选地,所述第一节点在预先生成的路径中查找与所述报文对应的目标路径包括:所述第一节点判断所述第三路径中的用于到达所述第二节点的链路是否出现故障;在判断结果为没有出现故障时,所述第一节点确定所述第三路径为所述目标路径;和/或,在判断结果为出现故障时,所述第一节点确定所述保护路径为所述目标路径。
可选地,所述第一节点在接收待转发的所述报文之前,所述方法还包括以下至少之一:所述第一节点根据所述MRT算法生成得到第一拓扑,从所述第一拓扑中确定所述第一路径;所述第一节点根据所述MRT算法生成得到第二拓扑,从所述第二拓扑中确定所述第二路径;所述第一节点根据所述SPF算法生成得到第三拓扑,从所述第三拓扑中确定所述第三路径。
可选地,所述第一节点根据所述MRT算法生成得到所述第一拓扑和所述第二拓扑,以及根据所述SPF算法生成得到所述第三拓扑包括:所述第一节点确定所述第一节点所在的MRT Island,其中,所述MRT Island是通过在所述第一节点以及与所述第一节点处于同一域area或同一层次level的其他节点上的开放最短路径优先OSPF或者中间系统到中间系统ISIS实例下使能分段路由SR以及最大冗余树配置文件MRT profile后,在所述第一节点所在的area或level内由所述第一节点和所述其他节点相互协商形成的;所述第一节点基于所述MRT Island运行所述MRT算法生成所述第一拓扑和所述第二拓扑,以及,基于所述area或level运行所述SPF算法生成所述第三拓扑。
可选地,所述MRT profile中指定采用基于段列表形成的多层出标签栈的隧道转发机制。
可选地,所述方法还包括:所述第一节点为所述第三拓扑分配SRGB,并将所述SRGB在所述第一节点所在的所有域area或层次level内泛洪;所述第一节点接收其他节点上的所述第三拓扑的分段路由全局块SRGB,记录所述其他节点上的所述第三拓扑的SRGB以及将所述其他节点上的所述第三拓扑的SRGB继续通告给除所述其他节点之外的节点。
可选地,所述方法还包括:当所述目标路径为所述第三路径时,所述第一节点将所述第三路径的下一跳节点为目的前缀段索引prefix-sid分配的SR标签封装到所述报文上,并将封装后的报文发送到在所述第三路径中查找到的用于转发到所述第二节点的下一跳节点。
可选地,所述第一节点根据所述目标段列表将所述报文转发到所述下一跳节点包括:所述第一节点确定包含了所述目标段列表的下一跳标签转发单元HHLFE的分段路由SR出标签栈;所述第一节点将包含了所述目标段列表的NHLFE的SR出标签栈封装到所述报文上,并将封装后的报文发送到所述下一跳节点。
可选地,所述第一节点将包含了所述目标段列表的所述NHLFE的SR出标签栈封装到所述报文上包括:当所述报文的报文类型为互联网协议IP报文时,所述第一节点在所述IP报文的IP头上压上所述NHLFE的SR出标签栈;和/或,当所述报文的报文类型为分段路由SR标签报文时,所述第一节点将所述SR标签报文的入标签替换成所述NHLFE的SR出标签栈。
可选地,所述第一节点确定包含了所述目标段列表的所述NHLFE的分段路由SR出标签栈包括:当所述目标段列表为adjacency segment list时,确定所述目标段列表中从第二个adjacency segment开始的每段链路的索引SID,按路径顺序将所述每段链路的SID以及所述目标路径的MRT Egress为目的前缀段索引prefix-sid分配的SR标签依次组成从栈顶到栈底的标签栈,将组成的所述标签栈作为所述NHLFE的SR出标签栈;当所述目标段列表为node segment list时,确定所述目标段列表中从第一个node segment开始的每段对应的SR出标签,按路径顺序将所述每段对应的SR出标签以及所述目标路径的MRT Egress为目的prefix-sid分配的SR标签依次组成从栈顶到栈底的标签栈,将组成的所述标签栈作为所述NHLFE的SR出标签栈;当所述目标段列表为包含有node segment和adjacency segment的segment list时,确定所述目标段列表中从第一个segment开始的每段对应的SR出标签,按路径顺序将所述每段对应的SR出标签以及所述目标路径的MRT Egress为目的prefix-sid分配的SR标签依次组成从栈顶到栈底的标签栈,将组成的所述标签栈作为所述NHLFE的SR出标签栈,若所述第一个segment为adjacency segment,则所述第一个segment没有对应的SR出标签。
可选地,所述方法包括以下至少之一:所述第一节点通过如下方式确定所述目标路径的MRT Egress为目的prefix-sid分配的SR标签:确定所述MRT Egress为第三拓扑分配的SRGB和所述第三拓扑内至所述第二节点的路由的SID;基于所述MRT Egress为所述第三拓扑分配的SRGB和所述第三拓扑内至所述第二节点的路由的SID确定所述目标路径的MRTEgress为目的prefix-sid分配的SR标签;当所述目标段列表的第一个segment为nodesegment时,所述第一节点通过如下方式确定所述目标段列表中第一个node segment对应的出标签:确定所述第三拓扑中至所述目标段列表中的第一个node segment的下一跳为所述第三拓扑分配的SRGB和所述第一个node segment在所述第三拓扑中的节点SID;基于所述第三拓扑中至所述目标段列表中的第一个node segment的下一跳为所述第三拓扑分配的SRGB和所述第一个node segment在所述第三拓扑中的节点SID确定所述目标段列表中第一个node segment的对应的出标签;当所述目标段列表为包含有node segment的segmentlist时,所述第一节点通过如下方式确定所述目标段列表中除第一个segment之外的其他node segment对应的出标签:确定所述目标段列表中其他node segment的上一个segment所在的节点为所述第三拓扑分配的SRGB和所述其他node segment在所述第三拓扑中的节点SID;基于所述目标段列表中其他node segment的上一个segment所在的节点为所述第三拓扑分配的SRGB和所述其他node segment在所述第三拓扑中的节点SID确定所述目标段列表中除第一个segment之外的其他node segment对应的出标签;其中,所述上一个segment所在的节点是指:当所述上一个segment为node segment时,所述node segment所表示的节点;或者,当所述上一个segment为adjacency segment时,所述adjacency segment的remote node所表示的节点。
可选地,所述方法还包括:所述目标路径的MRT Egress在剥完所述目标段列表的标签栈后,继续基于下层标签或IP头将所述报文向所述第二节点转发,其中,当所述MRTEgress与所述第二节点为同一节点时,报文将被上送至所述第二节点的控制平面。
根据本发明的一个实施例,还提供了一种报文转发装置,所述装置应用于第一节点中,包括:接收模块,用于接收待转发的报文,其中,所述报文的目的地址为第二节点;第一查找模块,用于在预先生成的路径中查找与所述报文对应的目标路径,其中,所述预先生成的路径包括第一路径、第二路径和第三路径,所述第一路径与所述第二路径是根据最大冗余树MRT算法生成得到的到达所述第二节点路径,所述第三路径是根据最短路径优先SPF算法生成得到的到达所述第二节点的路径;第二查找模块,用于当所述目标路径为所述第一路径或所述第二路径时,在预先生成的段列表中查找与所述目标路径对应的目标段列表,其中,所述预先生成的段列表包括第一段列表和第二段列表,所述第一段列表包括所述第一路径,所述第二段列表包括所述第二路径;转发模块,用于在所述目标路径中查找用于转发到所述第二节点的下一跳节点,并根据所述目标段列表将所述报文转发到所述下一跳节点。
根据本发明的又一个实施例,还提供了一种存储介质。该存储介质设置为存储用于执行上述各步骤的程序代码。
通过本发明,在分段路由网络中引入MRT功能,从而实现了分段路由网络与MTR功能结合的目的。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的报文转发方法的流程图;
图2是根据本发明实施方式的MRT Profile选项示意图;
图3是根据本发明具体实施例一的网络拓扑图;
图4是根据本发明具体实施例二的网络拓扑图;
图5是根据本发明具体实施例三的网络拓扑图;
图6是根据本发明实施例的报文转发装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在本实施例中提供了一种报文转发方法,图1是根据本发明实施例的报文转发方法的流程图,如图1所示,该流程包括如下步骤:
步骤S102,第一节点接收待转发的报文,其中,该报文的目的地址为第二节点;
步骤S104,第一节点在预先生成的路径中查找与该报文对应的目标路径,其中,该预先生成的路径包括第一路径、第二路径和第三路径,上述第一路径与第二路径是根据最大冗余树MRT算法生成得到的到达第二节点路径,所述第三路径是根据最短路径优先SPF算法生成得到的到达第二节点的路径;
步骤S106,当所述目标路径为第一路径或第二路径时,该第一节点在预先生成的段列表中查找与上述目标路径对应的目标段列表,其中,该预先生成的段列表包括第一段列表和第二段列表,该第一段列表包括第一路径,该第二段列表包括第二路径;
步骤S108,第一节点在目标路径中查找用于转发到第二节点的下一跳节点,并根据上述目标段列表将报文转发到下一跳节点。
其中,上述的第一节点可以是MRT Island内的任何节点,上述第二节点可以是SRDomain内的任何节点,该第二节点可能处于所述MRT Island内或MRT Island外。
在上述实施例中,第一节点在将报文转发到下一跳节点时,可以根据预定转发机制进行转发,该预定转发机制可以是基于段列表形成的多层出标签栈的隧道转发机制。
通过上述步骤,在分段路由网络中引入MRT功能,从而实现了分段路由网络与MTR功能结合的目的。
在一个可选的实施例中,上述的各段列表可以是纯粹的adjacency segmentlist,也可以是包含有node segment的segment list。其中,当上述段列表中最后一个segment为相应所述路径的MRT Egress,即当所述最后一个segment为adjacency segment时,adjacency segment的remote node为MRT Egress;当所述最后一个segment为nodesegment时,所述node segment为MRT Egress。
在一个可选的实施例中,上述方法还包括:第一节点按照MRT算法从第一路径和所述第二路径中确定用于保护第三路径的保护路径。在本实施例中,在确定保护路径时,可以确定第一路径为保护路径,也可以确定第二路径为保护路径,具体确定哪个路径作为保护路径,需要根据实际情况进行确定。
在一个可选的实施例中,上述第一节点在预先生成的路径中查找与上述报文对应的目标路径包括:第一节点判断第三路径中的用于到达第二节点的链路是否出现故障;在判断结果为没有出现故障时,第一节点确定上述第三路径为目标路径;和/或,在判断结果为出现故障时,第一节点确定上述保护路径为目标路径。在本实施例中,当链路没有故障时,可以继续按照默认的路径进行报文转发,当链路出现故障后,需要使用保护路径进行报文转发。
在一个可选的实施例中,上述第一节点在接收待转发的上述报文之前,上述方法还包括以下至少之一:第一节点根据MRT算法生成得到第一拓扑,从该第一拓扑中确定第一路径;第一节点根据MRT算法生成得到第二拓扑,从该第二拓扑中确定第二路径;第一节点根据SPF算法生成得到第三拓扑,从该第三拓扑中确定第三路径。在本实施例中,上述的第一拓扑和第二拓扑可以一个是MRT-red拓扑,一个是MRT-blue拓扑;上述的第三拓扑可以是MT-default拓扑。
在一个可选的实施例中,上述第一节点根据MRT算法生成得到上述第一拓扑和第二拓扑,以及根据SPF算法生成得到上述第三拓扑包括:第一节点确定上述第一节点所在的MRT Island,其中,该MRT Island是通过在第一节点以及与第一节点处于同一域area或同一层次level的其他节点上的开放最短路径优先OSPF或者中间系统到中间系统ISIS实例下使能分段路由SR以及最大冗余树配置文件MRT profile后,在第一节点所在的area或level内由第一节点和其他节点相互协商形成的;第一节点基于MRT Island运行MRT算法生成第一拓扑和第二拓扑,以及,基于area或level运行SPF算法生成第三拓扑;第一节点处于MRTIsland内,第二节点处于SR Domain内。第二节点可能处于MRT Island内,也可能处于MRTIsland外。
在一个可选的实施例中,上述MRT profile中指定采用上述预定转发机制,即,采用基于段列表形成的多层出标签栈的隧道转发机制。
在一个可选的实施例中,上述方法还包括:第一节点为第三拓扑分配SRGB,并将该SRGB在第一节点所在的所有域area或层次level内泛洪;第一节点接收其他节点上的第三拓扑的分段路由全局块SRGB,记录该其他节点上的第三拓扑的SRGB以及将其他节点上的第三拓扑的SRGB继续通告给除其他节点之外的节点。在本实施例中,各节点都可以为第三拓扑生成一个SRGB,且不同的节点生成的SRGB是独立的。
在一个可选的实施例中,上述方法还包括:当目标路径为第三路径时,第一节点将上述第三路径的下一跳节点为目的前缀段索引prefix-sid分配的SR标签封装到报文上,并将封装后的报文发送到在第三路径中查找到的用于转发到第二节点的下一跳节点。在本实施例中,主要针对的是路径未发生故障的情况,即仍旧采用默认的路径进行报文转发,在该情况下所进行的标签封装操作。
在一个可选的实施例中,上述第一节点根据目标段列表将报文转发到上述下一跳节点包括:第一节点确定包含了上述目标段列表的下一跳标签转发单元(Next Hop LabelForwarding Entry,简称为NHLFE)的分段路由SR出标签栈;该第一节点将包含了上述目标段列表的NHLFE的SR出标签栈封装到报文上,并将封装后的报文发送到下一跳节点。在本实施例中,主要针对的是路径出现故障时,采用保护路径进行报文转发,在该情况下进行的标签封装操作。
在一个可选的实施例中,上述第一节点将包含了目标段列表的NHLFE的SR出标签栈封装到上述报文上包括:当上述报文的报文类型为互联网协议IP报文时,第一节点在IP报文的IP头上压上NHLFE的SR出标签栈;和/或,当上述报文的报文类型为分段路由SR标签报文时,第一节点将SR标签报文的入标签替换成NHLFE的SR出标签栈。
在一个可选的实施例中,上述第一节点确定包含了目标段列表的NHLFE的分段路由SR出标签栈包括:当上述目标段列表为adjacency segment list时,确定上述目标段列表中从第二个adjacency segment开始的每段链路的索引SID,按路径顺序将每段链路的SID以及目标路径的MRT Egress为目的前缀段索引prefix-sid分配的SR标签依次组成从栈顶到栈底的标签栈,将组成的该标签栈作为NHLFE的SR出标签栈;当目标段列表为nodesegment list时,确定目标段列表中从第一个node segment开始的每段对应的SR出标签,按路径顺序将所述每段对应的SR出标签以及目标路径的MRT Egress为目的prefix-sid分配的SR标签依次组成从栈顶到栈底的标签栈,将组成的标签栈作为所述NHLFE的SR出标签栈;当目标段列表为包含有node segment和adjacency segment的segment list时,确定目标段列表中从第一个segment开始的每段对应的SR出标签,按路径顺序将每段对应的SR出标签以及目标路径的MRT Egress为目的prefix-sid分配的SR标签依次组成从栈顶到栈底的标签栈,将组成的标签栈作为所述NHLFE的SR出标签栈,若上述第一个segment为adjacency segment,则上述第一个segment没有对应的SR出标签。
在一个可选的实施例中,上述方法包括以下至少之一:第一节点通过如下方式确定所述目标路径的MRT Egress为目的prefix-sid分配的SR标签:确定MRT Egress为第三拓扑分配的SRGB和第三拓扑内至第二节点的路由的SID;基于MRT Egress为第三拓扑分配的SRGB和第三拓扑内至第二节点的路由的SID确定目标路径的MRT Egress为目的prefix-sid分配的SR标签;当目标段列表的第一个segment为node segment时,第一节点通过如下方式确定目标段列表中第一个node segment对应的出标签:确定第三拓扑中至目标段列表中的第一个node segment的下一跳为第三拓扑分配的SRGB和第一个node segment在第三拓扑中的节点SID;基于第三拓扑中至目标段列表中的第一个node segment的下一跳为第三拓扑分配的SRGB和所述第一个node segment在所述第三拓扑中的节点SID确定目标段列表中第一个node segment的对应的出标签;当目标段列表为包含有node segment的segmentlist时,第一节点通过如下方式确定目标段列表中除第一个segment之外的其他nodesegment对应的出标签:确定目标段列表中其他node segment的上一个segment所在的节点为第三拓扑分配的SRGB和其他node segment在第三拓扑中的节点SID;基于该目标段列表中其他node segment的上一个segment所在的节点为第三拓扑分配的SRGB和其他nodesegment在第三拓扑中的节点SID确定目标段列表中除第一个segment之外的其他nodesegment对应的出标签;其中,上述上一个segment所在的节点是指:当上一个segment为node segment时,上述node segment所表示的节点;当上一个segment为adjacencysegment时,上述adjacency segment的remote node所表示的节点。
在一个可选的实施例中,上述方法还包括:目标路径的MRT Egress在剥完目标段列表的标签栈后,继续基于下层标签或IP头将报文向第二节点转发,其中,当该MRT Egress与第二节点为同一节点时,报文将被上送至第二节点的控制平面。
下面对目标路径中的transit节点的报文转发操作进行说明:在一个可选的实施例中,当上述目标段列表为adjacency segment list时,该目标路径中的每个transit节点依次弹掉报文的顶层标签,并将弹掉了顶层标签后的报文发送给与所述顶层标签对应的下一跳;和/或,当目标段列表为node segment list时,目标段列表中的每个transit nodesegment,弹掉报文的至该node segment自身的顶层标签,并继续将下一层标签交换成至下一个node segment的下一跳对应的出标签后发送给相应的下一跳。
下面结合具体实施例对本发明进行说明:
在本发明实施例中为MRT架构新增一种MRT Profile,使用分段路由转发机制,通过分段路由转发机制来区分默认拓扑转发行为和MRT拓扑转发行为。
本发明实施例中所述的基于分段路由转发机制的MRT-FRR方法包括以下步骤:
第一步,定义新的MRT配置文件MRT Profile,与默认的MRT配置文件default MRTProfile相比,差异主要体现在该新的MRT Profile中使用的是MRT SR-tunnel转发机制,其中,SR-tunnel是指基于segment list形成的多层出标签栈的转发行为,比如将MRT路径中包含的多个节点看成是一个segment list,则报文沿MRT路径转发的行为实际上就是沿segment list指定节点的分段路由转发行为。为了让报文严格按照MRT路径转发,该segment list一般为adjacency segment list。也可以为包含node segment的segmentlist,此时报文将不严格按照MRT路径转发。
第二步,在IGP area/level内各节点(可以是仅部分节点)上相应IGP实例下使能MRT并且支持上述新的MRT Profile,针对上述新的MRT Profile生成相应的MRT Island。基于该MRT Island运行MRT算法生成相应的MRT-red拓扑与MRT-blue拓扑,相应的MT-ID分别记为MT-red和MT-blue。另外我们将基于SPF算法生成的默认拓扑对应的MT-ID记为MT-default。
第三步,MRT Island内的源节点S为MRT Island内或MRT Island外的prefix计算SPF主下一跳以及MRT-blue或MRT-red路径,即(MT-default,prefix)中将包含SPF主下一跳,(MT-blue,prefix)中将包含MRT-blue路径,(MT-red,prefix)中将包含MRT-red路径。并且通过MRT算法确定到底是上述MRT-blue路径还是MRT-red路径保护上述SPF主下一跳。
根据(MT-default,prefix)将生成相应的转发等价类至下一跳标签转发单元(Forwarding Equivalence Class to NHLFE,简称为FTN)表项,NHLFE包含上述SPF主下一跳及相应的SR出标签,也包含上述选中用于保护SPF主下一跳的MRT-red路径或MRT-blue路径,MRT路径采用segment list形式表示。根据(MT-default,prefix)也生成相应的入标签映射(Incoming Label Map,简称为ILM)表项,其SR入标签基于(MT-default,prefix)相应的prefix-sid与S节点的SRGB来计算,NHLFE与上述FTN表项相同。如果prefix为S节点本地或直连prefix,则没有NHLFE信息。
第四步,故障发生时,可以按照如下方法沿MRT路径转发IP或SR标签单播流量:
MRT ingress节点基于(MT-default,prefix)相应的ILM表项指导SR标签报文转发,或基于FTN表项指导IP报文转发,将流量切换至NHLFE中包含的MRT备份路径,比如MRT-red路径,则将SR标签报文的顶层SR入标签交换成segment list中最后一个segment相应的节点为目的prefix分配的SR标签后(最后一个segment若为Node Segment,则其相应的节点就为该Node;最后一个segment若为Adjacency Segment,则其相应的节点为Remote Node-id所表示的节点)再压上segment list所对应的SR出标签栈后发往第一个segment,或将IP报文直接压上segment list所对应的SR出标签栈后发往第一个segment。
MRT transit节点基于(MT-default,prefix)相应的ILM表项指导报文转发,继续将SR入标签交换成对应下一个segment的SR出标签后发往下一个segment。
MRT egress节点基于(MT-default,prefix)相应的ILM表项指导报文转发,它将首先弹掉以自身作为最后一个segment对应的SR标签,然后再基于下一层为目的prefix分配的SR标签转发,此时将继续交换成默认拓扑下一跳节点对应的SR出标签后向该下一跳节点转发,或者继续弹掉SR入标签后基于报文IP头转发。
上述MRT ingress节点上MRT备份路径为MRT-blue路径时是类似的,不再赘述。
下面结合附图对技术方案的实施作进一步的详细描述:
本具体实施方式中,首先对本申请中使用的MRT Profile进行说明:
图2是根据本发明实施方式的MRT Profile选项示意图,如图2所示的MRTProfile,其与RFC7812中定义的default MRT Profile基本相同,区别是MRT ForwardingMechanism选项为MRT SR-tunnel Option。
具体实施例一
本实施例将描述目的prefix处于MRT Island内的MRT路径转发流程,图3是根据本发明具体实施例一的网络拓扑图,如图3所示,网络中运行开放最短路径优先(Openshortest Path First,简称为OSPF),所有节点均处于同一area内,均在相应的OSPF实例下使能分段路由功能以及使能本专利所定义的MRT Profile。S作为源节点建立至目的节点D的prefix(比如D的某个loopback路由)的MRT路径,然后基于此MRT路径保护SPF主路径。包括如下步骤:
步骤S301,S、A、B、D各节点上的OSPF实例下使能SR以及本发明实施例中所定义的MRT Profile,则它们在area内形成一个MRT Island。
各节点上将基于SPF算法得到area内的MT-default拓扑,以及基于MRT算法得到MT-red和MT-blue拓扑。比如S节点上,至目的节点D的MT-default路径为S-D,MT-red路径也为S-D,而MT-blue路径为S-A-B-D。
各节点上基于拓扑生成相应的prefix表项,比如S节点上,MT-default拓扑内至目的节点D的loopback1路由的MT-default下一跳为D,并且选中MT-blue拓扑中给出的MT-blue路径来保护MT-default下一跳D,那么相应的MRT-FRR路径为segment list{A,B,D}。
假设D节点在MT-default拓扑内的Node-SID为SID_D,D的SRGB为SRGB_D,其它节点类似。假设链路S-A的Adjacency-SID为SID_SA,链路A-B的Adjacency-SID为SID_AB,链路B-D的Adjacency-SID为SID_BD。
则上述MT-default下一跳D对应的出标签为SRGB_D[SID_D-loopback1],上述MRT-FRR segment list如果采用adjacency segment list{adj-S-A,adj-A-B,adj-B-D}表示,则对应的入标签栈从栈顶至栈底为{SID_SA,SID_AB,SID_BD};如果采用node segmentlist{A,B,D}表示,则对应的入标签栈从栈顶至栈底为{SRGB_S[SID_A],SRGB_A[SID_B],SRGB_B[SID_D]}。
下面对节点上的表项进行举例说明:
S节点:
A节点:
B点:
D节点:
步骤S302,对于发往目的地D-loopback1的报文,当链路S-D出现故障时,S节点将作为MRT ingress节点将流量切换至事先准备好的MRT-blue路径,即开始将报文沿MT-blue路径S-A-B-D转发。
如果S收到的是MT-default SR标签报文,则它基于ILM for(MT-default,D-loopback1)表项转发,将入标签SRGB_S[SID_D-loopback1]交换成出标签栈从栈顶至栈底为{SID_AB,SID_BD,SRGB_D[SID_D-loopback1]}(使用adjacency segment list时)或{SRGB_A[SID_A],SRGB_A[SID_B],SRGB_B[SID_D],SRGB_D[SID_D-loopback1]}(使用nodesegment list时),然后发往下一跳A;如果S收到的是IP报文,则它基于FTN for(MT-default,D-loopback1)表项转发,直接在IP头上压上标签栈从栈顶至栈底为{SID_AB,SID_BD,SRGB_D[SID_D-loopback1]}(使用adjacency segment list时)或{SRGB_A[SID_A],SRGB_A[SID_B],SRGB_B[SID_D],SRGB_D[SID_D-loopback1]}(使用node segment list时),然后发往下一跳A。
步骤S303,A节点收到报文后,弹掉顶层标签SID_AB后将报文沿链路A-B发给B。
或弹掉顶层标签SRGB_A[SID_A],继续将下一层标签SRGB_A[SID_B]交换成SRGB_B[SID_B]后发给B。
步骤S304,B节点收到报文后,弹掉顶层标签SID_BD后将报文沿链路B-D发给D。
或弹掉顶层标签SRGB_B[SID_B],继续将下一层标签SRGB_B[SID_D]交换成SRGB_D[SID_D]后发给D。
步骤S305,D节点收到报文后,弹掉顶层标签SRGB_D[SID_D-loopback1]后,基于IP头继续转发,由于IP头为D-loopback1,则报文上送控制平面。
或连续弹掉顶层标签SRGB_D[SID_D]与SRGB_D[SID_D-loopback1]后,基于IP头继续转发,由于IP头为D-loopback1,则报文上送控制平面。
根据上述实施例,可知报文在沿MRT路径转发时,实际上是沿默认拓扑内相应的segment list转发。
具体实施例二
本实施例将描述目的prefix处于MRT Island外的MRT路径转发流程,图4是根据本发明具体实施例二的网络拓扑图,如图4所示,网络中运行OSPF,包含两个area,所有节点均在相应的OSPF实例下使能分段路由功能,其中area1中的S、A、B、C使能本发明实施例中所定义的MRT Profile。S作为源节点建立至目的节点D的prefix(比如D的某个loopback路由)的MRT路径,然后基于此MRT路径保护SPF主路径。包括如下步骤:
步骤S401,area1与area2内所有节点的OSPF实例下均使能SR。各节点分配SRGB。
步骤S402,area1内的S、A、B、C各节点上的OSPF实例下使能本专利所定义的MRTProfile,则它们在area1内形成一个MRT Island。
各节点上将基于SPF算法得到area内的MT-default拓扑,以及基于MRT算法得到MT-red和MT-blue拓扑。比如S节点上,至目的节点B的MT-default路径为S-C-B,MT-red路径也为S-C-B,而MT-blue路径为S-A-B。
各节点上基于拓扑生成相应的prefix表项,比如S节点上,MT-default拓扑内至prefix D-loopback0的MT-default下一跳为C(假设在area1内ABR1作为prefix D-loopback0的通告节点,则使用至目的节点ABR1的MT-default路径来确定下一跳)。对于prefix D-loopback0,假设我们使用Tunnel Endpoint Selection方法(参考RFC7812)选择的远端节点为A,假设MRT Island中S作为GADAG root,且S<<A<<B<<C<<S,则至节点A的MRT-blue路径为S-A,它可用来保护上述MT-default下一跳C。那么相应的MRT-FRR路径为adjacency segment list{S-A}或node segment list{A}。
上述MT-default下一跳C对应的出标签为SRGB_C[SID_D-loopback0],上述MRT-FRR segment list对应的入标签栈为{SRGB_S[SID_A]}。同样,我们选择几个有代表性的节点上的表项罗列如下,为简洁起见,我们仅描述MRT-FRR路径使用node segment list表示时的表项内容:
S节点:
A节点:
D节点:
ILM for(MT-default,D-loopback0)
入标签为SRGB_D[SID_D-loopback0]
NHLFE:无。表示SR-LSP已经终结。
步骤S403,对于发往目的地D-loopback0的报文,当链路S-C出现故障时,S节点将作为MRT ingress节点将流量切换至事先准备好的MRT-blue路径,即开始将报文沿MT-blue路径S-A转发。
如果S收到的是MT-default SR标签报文,则它基于ILM for(MT-default,D-loopback0)表项转发,将入标签SRGB_S[SID_D-loopback0]交换成出标签栈从栈顶至栈底为{SRGB_A[SID_A],SRGB_A[SID_D-loopback0]},然后发往下一跳A;如果S收到的是IP报文,则它基于FTN for(MT-default,D-loopback0)表项转发,直接在IP头上压上标签栈从栈顶至栈底为{SRGB_A[SID_A],SRGB_A[SID_D-loopback0]},然后发往下一跳A。
步骤S404,A节点收到报文后,弹掉顶层标签SRGB_A[SID_A],继续将下一层标签SRGB_A[SID_D-loopback0]交换成SRGB_ABR3[SID_D-loopback0]后发给ABR3。
步骤S405,ABR3节点收到报文后,将顶层标签SRGB_ABR3[SID_D-loopback0]交换成SRGB_ABR2[SID_D-loopback0]后发给ABR2。
步骤S406,ABR2节点收到报文后,将顶层标签SRGB_ABR2[SID_D-loopback0]交换成SRGB_D[SID_D-loopback0]后发给D。
步骤S407,D节点收到报文后,弹掉顶层标签后,基于IP头继续转发,由于IP头为D-loopback0,则报文上送控制平面。
根据上述实施例,可知报文在沿MRT路径转发时,实际上是沿默认拓扑内相应的segment list转发,离开MRT Island后,将沿默认拓扑内的最短路径转发。符合RFC7812定义的转发规则。
具体实施例三
本实施例将描述目的prefix处于MRT Island外的MRT路径转发流程,特别是如何基于SR-tunnel实现RFC7812定义的rainbow跨域转发规则。图5是根据本发明具体实施例三的网络拓扑图,如图5所示,网络中运行OSPF,包含两个area,所有节点均在相应的OSPF实例下使能分段路由功能,其中area1中的S、A、B、C使能本发明实施例中所定义的MRT Profile,area2中的B、E、D、F也同样使能本专利所定义的MRT Profile。S作为源节点建立至目的节点D的prefix(比如D的某个loopback路由)的MRT路径,然后基于此MRT路径保护SPF主路径。包括如下步骤:
步骤S501,area1与area2内所有节点的OSPF实例下均使能SR。各节点分配SRGB。
步骤S502,area1内的S、A、B、C各节点上的OSPF实例下使能本专利所定义的MRTProfile,则它们在area1内形成一个MRT Island。
各节点上将基于SPF算法得到area内的MT-default拓扑,以及基于MRT算法得到MT-red和MT-blue拓扑。比如S节点上,至目的节点B的MT-default路径为S-C-B,MT-red路径也为S-C-B,而MT-blue路径为S-A-B。
各节点上基于拓扑生成相应的prefix表项,比如S节点上,MT-default拓扑内至prefix D-loopback0的MT-default下一跳为C(假设在area1内ABR1作为prefix D-loopback0的通告节点,则使用至目的节点ABR1的MT-default路径来确定下一跳)。对于prefix D-loopback0,假设我们使用Tunnel Endpoint Selection方法(参考RFC7812)选择的远端节点为B,假设MRT Island中S作为GADAG root,且S<<A<<B<<C<<S,则至节点B的MRT-blue路径为S-A-B,它可用来保护上述MT-default下一跳C。那么相应的MRT-FRR路径为segment list{A,B}。
上述MT-default下一跳C对应的出标签为SRGB_C[SID_D-loopback0],上述MRT-FRR segment list对应的入标签栈从栈顶至栈底为{SRGB_S[SID_A],SRGB_A[SID_B]}。
步骤S503,area2中的B、E、D、F各节点上的OSPF实例下也使能本专利所定义的MRTProfile,则它们在area2内也形成一个MRT Island,生成相应的MT-default拓扑,以及MT-red和MT-blue拓扑。并计算各各拓扑内至prefix D-loopback2的表项,不再赘述。
综上,对节点上的表项进行举例说明,为简洁起见,仅描述MRT-FRR路径使用nodesegment list表示时的表项内容:
S节点:
A节点:
B点:
F点:
D节点:
ILM for(MT-default,D-loopback0)
入标签为SRGB_D[SID_D-loopback0]
NHLFE:无。表示SR-LSP已经终结。
步骤S504,对于发往目的地D-loopback0的报文,当链路S-C出现故障时,S节点将作为MRT ingress节点将流量切换至事先准备好的MRT-blue路径,即开始将报文沿MT-blue路径S-A-B转发。
如果S收到的是MT-default SR标签报文,则它基于ILM for(MT-default,D-loopback0)表项转发,将入标签SRGB_S[SID_D-loopback0]交换成出标签栈从栈顶至栈底为{SRGB_A[SID_A],SRGB_A[SID_B],SRGB_B[SID_D-loopback0]},然后发往下一跳A;如果S收到的是IP报文,则它基于FTN for(MT-default,D-loopback0)表项转发,直接在IP头上压上标签栈从栈顶至栈底为{SRGB_A[SID_A],SRGB_A[SID_B],SRGB_B[SID_D-loopback0]},然后发往下一跳A。
步骤S505,A节点收到报文后,弹掉顶层标签SRGB_A[SID_A],继续将下一层标签SRGB_A[SID_B]交换成SRGB_B[SID_B]后发给B。
步骤S506,B节点收到报文后,弹掉顶层标签SRGB_B[SID_B],继续将下一层标签SRGB_B[SID_D-loopback0]交换成SRGB_F[SID_D-loopback0]后发给F。
步骤S507,F节点收到报文后,将顶层标签SRGB_F[SID_D-loopback0]交换成SRGB_D[SID_D-loopback0]后发给D。
步骤S508,D节点收到报文后,弹掉顶层标签,基于IP头继续转发,由于IP头为D-loopback0,则报文上送控制平面。
根据上述实施例,可知报文在沿MRT路径转发时,在area1中的MRT Island内实际上是沿相应segment list转发,而离开area1进入area2后,将沿默认拓扑内的SR-LSP转发。符合RFC7812定义的转发规则。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种报文转发装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本发明实施例的报文转发装置的结构框图,该装置可以应用于第一节点中,如图6所示,该装置包括接收模块62、第一查找模块64、第二查找模块66和转发模块68,下面对该装置进行说明:
接收模块62,用于接收待转发的报文,其中,该报文的目的地址为第二节点;第一查找模块64,连接至上述接收模块62,用于在预先生成的路径中查找与上述报文对应的目标路径,其中,该预先生成的路径包括第一路径、第二路径和第三路径,上述第一路径与第二路径是根据最大冗余树MRT算法生成得到的到达第二节点路径,上述第三路径是根据最短路径优先SPF算法生成得到的到达第二节点的路径;第二查找模块66,连接至上述第一查找模块64,用于当上述目标路径为第一路径或第二路径时,在预先生成的段列表中查找与目标路径对应的目标段列表,其中,该预先生成的段列表包括第一段列表和第二段列表,第一段列表包括第一路径,第二段列表包括第二路径;转发模块68,连接至上述第二查找模块66,用于在上述目标路径中查找用于转发到上述第二节点的下一跳节点,并根据上述目标段列表将报文转发到下一跳节点。在本实施例中,在将报文转发到下一跳节点时,可以根据预定转发机制进行转发,该预定转发机制可以是基于段列表形成的多层出标签栈的隧道转发机制。
在一个可选的实施例中,上述预先生成的段列表包括以下至少之一:adjacencysegment list、包含有node segment的segment list;其中,当预先生成的段列表中最后一个segment为adjacency segment时,所述adjacency segment的remote node为MRTEgress;当上述预先生成的段列表中最后一个segment为node segment时,该node segment为MRT Egress。
在一个可选的实施例中,上述装置还包括第一处理模块,用于按照MRT算法从第一路径和第二路径中确定用于保护第三路径的保护路径。
在一个可选的实施例中,上述第一查找模块64可以通过如下方式在预先生成的路径中查找与上述报文对应的目标路径包括:判断第三路径中的用于到达第二节点的链路是否出现故障;在判断结果为没有出现故障时,确定第三路径为目标路径;和/或,在判断结果为出现故障时,确定保护路径为目标路径。
在一个可选的实施例中,上述装置还包括第二处理模块,用于在接收待转发的所述报文之前,执行以下操作至少之一:根据上述MRT算法生成得到第一拓扑,从该第一拓扑中确定上述第一路径;根据上述MRT算法生成得到第二拓扑,从该第二拓扑中确定第二路径;根据SPF算法生成得到第三拓扑,从该第三拓扑中确定第三路径。
在一个可选的实施例中,上述第二处理模块可以通过如下方式生成得到所述第一拓扑和所述第二拓扑,以及生成得到所述第三拓扑:确定上述第一节点所在的MRT Island,其中,该MRT Island是通过在第一节点以及与第一节点处于同一域area或同一层次level的其他节点上的开放最短路径优先OSPF或者中间系统到中间系统ISIS实例下使能分段路由SR以及最大冗余树配置文件MRT profile后,在第一节点所在的area或level内由所述第一节点和其他节点相互协商形成的;该第一节点基于MRT Island运行MRT算法生成第一拓扑和所述第二拓扑,以及,基于area或level运行SPF算法生成第三拓扑。
在一个可选的实施例中,上述MRT profile中指定采用上述预定转发机制,即,采用基于段列表形成的多层出标签栈的隧道转发机制。
在一个可选的实施例中,上述装置还包括第三处理模块,用于为第三拓扑分配SRGB,并将该SRGB在第一节点所在的所有域area或层次level内泛洪;接收其他节点上的所述第三拓扑的分段路由全局块SRGB,记录其他节点上的第三拓扑的SRGB以及将其他节点上的所述第三拓扑的SRGB继续通告给除其他节点之外的节点。
在一个可选的实施例中,上述装置还包括第四处理模块,用于当目标路径为所述第三路径时,将第三路径的下一跳节点为目的前缀段索引prefix-sid分配的SR标签封装到所述报文上,并将封装后的报文发送到在第三路径中查找到的用于转发到第二节点的下一跳节点。
在一个可选的实施例中,上述转发模块68可以通过如下方式将报文转发到下一跳节点:确定包含了目标段列表的下一跳标签转发单元HHLFE的分段路由SR出标签栈;将包含了上述目标段列表的NHLFE的SR出标签栈封装到上述报文上,并将封装后的报文发送到上述下一跳节点。
在一个可选的实施例中,上述转发模块68可以通过如下方式将包含了目标段列表的NHLFE的SR出标签栈封装到上述报文上:当上述报文的报文类型为互联网协议IP报文时,在该IP报文的IP头上压上NHLFE的SR出标签栈;和/或,当上述报文的报文类型为分段路由SR标签报文时,将该SR标签报文的入标签替换成NHLFE的SR出标签栈。
在一个可选的实施例中,上述转发模块68可以通过如下方式确定包含了目标段列表的所述NHLFE的分段路由SR出标签栈:当上述目标段列表为adjacency segment list时,确定上述目标段列表中从第二个adjacency segment开始的每段链路的索引SID,按路径顺序将每段链路的SID以及目标路径的MRT Egress为目的前缀段索引prefix-sid分配的SR标签依次组成从栈顶到栈底的标签栈,将组成的上述标签栈作为NHLFE的SR出标签栈;当上述目标段列表为node segment list时,确定上述目标段列表中从第一个node segment开始的每段对应的SR出标签,按路径顺序将所述每段对应的SR出标签以及所述目标路径的MRTEgress为目的prefix-sid分配的SR标签依次组成从栈顶到栈底的标签栈,将组成的上述标签栈作为所述NHLFE的SR出标签栈;当上述目标段列表为包含有node segment和adjacencysegment的segment list时,确定上述目标段列表中从第一个segment开始的每段对应的SR出标签,按路径顺序将每段对应的SR出标签以及目标路径的MRT Egress为目的prefix-sid分配的SR标签依次组成从栈顶到栈底的标签栈,将组成的所述标签栈作为所述NHLFE的SR出标签栈,若第一个segment为adjacency segment,则第一个segment没有对应的SR出标签。
在一个可选的实施例中,上述转发模块68可以通过如下方式确定目标路径的MRTEgress为目的prefix-sid分配的SR标签:确定MRT Egress为第三拓扑分配的SRGB和第三拓扑内至第二节点的路由的SID;基于该MRT Egress为第三拓扑分配的SRGB和第三拓扑内至第二节点的路由的SID确定上述目标路径的MRT Egress为目的prefix-sid分配的SR标签;当上述目标段列表的第一个segment为node segment时,上述转发模块68可以通过如下方式确定目标段列表中第一个node segment对应的出标签:确定第三拓扑中至目标段列表中的第一个node segment的下一跳为所述第三拓扑分配的SRGB和第一个node segment在第三拓扑中的节点SID;基于第三拓扑中至目标段列表中的第一个node segment的下一跳为第三拓扑分配的SRGB和第一个node segment在所述第三拓扑中的节点SID确定目标段列表中第一个node segment的对应的出标签;当上述目标段列表为包含有node segment的segment list时,上述转发模块68可以通过如下方式确定目标段列表中除第一个segment之外的其他node segment对应的出标签:确定上述目标段列表中其他node segment的上一个segment所在的节点为第三拓扑分配的SRGB和其他node segment在第三拓扑中的节点SID;基于目标段列表中其他node segment的上一个segment所在的节点为第三拓扑分配的SRGB和其他node segment在第三拓扑中的节点SID确定目标段列表中除第一个segment之外的其他node segment对应的出标签;其中,上述上一个segment所在的节点是指:当上述上一个segment为node segment时,该node segment所表示的节点;当上述上一个segment为adjacency segment时,该adjacency segment的remote node所表示的节点。
在一个可选的实施例中,上述目标路径的MRT Egress在剥完目标段列表的标签栈后,可以继续基于下层标签或IP头将报文向第二节点转发,其中,当MRT Egress与第二节点为同一节点时,报文将被上送至第二节点的控制平面。
在一个可选的实施例中,还提供了一种报文转发装置,该装置可以应用于除第一节点之外的其它节点中,包括:报文接收模块,用于接收报文,其中,该报文的目的地址为第二节点;报文转发模块,用于转发报文,基于报文的顶层标签或顶层IP向下一跳转发或者上送控制平面。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行上述各步骤的程序代码。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述各步骤。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
采用本发明实施例中所述方法,与相关技术相比,填补了分段路由与MRT技术结合的缺口,为未来网络的演进提供了有价值的探索。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种报文转发方法,其特征在于,包括:
第一节点接收待转发的报文,其中,所述报文的目的地址为第二节点;
所述第一节点在预先生成的路径中查找与所述报文对应的目标路径,其中,所述预先生成的路径包括第一路径、第二路径和第三路径,所述第一路径与所述第二路径是根据最大冗余树MRT算法生成得到的到达所述第二节点路径,所述第三路径是根据最短路径优先SPF算法生成得到的到达所述第二节点的路径;
当所述目标路径为所述第一路径或所述第二路径时,所述第一节点在预先生成的段列表中查找与所述目标路径对应的目标段列表,其中,所述预先生成的段列表包括第一段列表和第二段列表,所述第一段列表包括所述第一路径,所述第二段列表包括所述第二路径;
所述第一节点在所述目标路径中查找用于转发到所述第二节点的下一跳节点,并根据所述目标段列表将所述报文转发到所述下一跳节点;
所述方法还包括:
当所述目标路径为所述第三路径时,所述第一节点将所述第三路径的下一跳节点为目的前缀段索引prefix-sid分配的SR标签封装到所述报文上,并将封装后的报文发送到在所述第三路径中查找到的用于转发到所述第二节点的下一跳节点。
2.根据权利要求1所述的方法,其特征在于,所述预先生成的段列表包括以下至少之一:
adjacency segment list、包含有node segment的segment list;
其中,当所述预先生成的段列表中最后一个segment为adjacency segment时,所述adjacency segment的remote node为MRT Egress;当所述预先生成的段列表中最后一个segment为node segment时,所述node segment为MRT Egress。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一节点按照所述MRT算法从所述第一路径和所述第二路径中确定用于保护所述第三路径的保护路径。
4.根据权利要求3所述的方法,其特征在于,所述第一节点在预先生成的路径中查找与所述报文对应的目标路径包括:
所述第一节点判断所述第三路径中的用于到达所述第二节点的链路是否出现故障;
在判断结果为没有出现故障时,所述第一节点确定所述第三路径为所述目标路径;和/或,
在判断结果为出现故障时,所述第一节点确定所述保护路径为所述目标路径。
5.根据权利要求1所述的方法,其特征在于,所述第一节点在接收待转发的所述报文之前,所述方法还包括以下至少之一:
所述第一节点根据所述MRT算法生成得到第一拓扑,从所述第一拓扑中确定所述第一路径;
所述第一节点根据所述MRT算法生成得到第二拓扑,从所述第二拓扑中确定所述第二路径;
所述第一节点根据所述SPF算法生成得到第三拓扑,从所述第三拓扑中确定所述第三路径。
6.根据权利要求5所述的方法,其特征在于,所述第一节点根据所述MRT算法生成得到所述第一拓扑和所述第二拓扑,以及根据所述SPF算法生成得到所述第三拓扑包括:
所述第一节点确定所述第一节点所在的MRTIsland,其中,所述MRTIsland是通过在所述第一节点以及与所述第一节点处于同一域area或同一层次level的其他节点上的开放最短路径优先OSPF或者中间系统到中间系统ISIS实例下使能分段路由SR以及最大冗余树配置文件MRT profile后,在所述第一节点所在的area或level内由所述第一节点和所述其他节点相互协商形成的;
所述第一节点基于所述MRTIsland运行所述MRT算法生成所述第一拓扑和所述第二拓扑,以及,基于所述area或level运行所述SPF算法生成所述第三拓扑。
7.根据权利要求6所述的方法,其特征在于,所述MRT profile中指定采用基于段列表形成的多层出标签栈的隧道转发机制。
8.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述第一节点为所述第三拓扑分配SRGB,并将所述SRGB在所述第一节点所在的所有域area或层次level内泛洪;
所述第一节点接收其他节点上的所述第三拓扑的分段路由全局块SRGB,记录所述其他节点上的所述第三拓扑的SRGB以及将所述其他节点上的所述第三拓扑的SRGB继续通告给除所述其他节点之外的节点。
9.根据权利要求1或2所述的方法,其特征在于,所述第一节点根据所述目标段列表将所述报文转发到所述下一跳节点包括:
所述第一节点确定包含了所述目标段列表的下一跳标签转发单元HHLFE的分段路由SR出标签栈;
所述第一节点将包含了所述目标段列表的NHLFE的SR出标签栈封装到所述报文上,并将封装后的报文发送到所述下一跳节点。
10.根据权利要求9所述的方法,其特征在于,所述第一节点将包含了所述目标段列表的所述NHLFE的SR出标签栈封装到所述报文上包括:
当所述报文的报文类型为互联网协议IP报文时,所述第一节点在所述IP报文的IP头上压上所述NHLFE的SR出标签栈;和/或,
当所述报文的报文类型为分段路由SR标签报文时,所述第一节点将所述SR标签报文的入标签替换成所述NHLFE的SR出标签栈。
11.根据权利要求9所述的方法,其特征在于,所述第一节点确定包含了所述目标段列表的所述NHLFE的分段路由SR出标签栈包括:
当所述目标段列表为adjacency segment list时,确定所述目标段列表中从第二个adjacency segment开始的每段链路的索引SID,按路径顺序将所述每段链路的SID以及所述目标路径的MRT Egress为目的前缀段索引prefix-sid分配的SR标签依次组成从栈顶到栈底的标签栈,将组成的所述标签栈作为所述NHLFE的SR出标签栈;
当所述目标段列表为node segment list时,确定所述目标段列表中从第一个nodesegment开始的每段对应的SR出标签,按路径顺序将所述每段对应的SR出标签以及所述目标路径的MRT Egress为目的prefix-sid分配的SR标签依次组成从栈顶到栈底的标签栈,将组成的所述标签栈作为所述NHLFE的SR出标签栈;
当所述目标段列表为包含有node segment和adjacency segment的segment list时,确定所述目标段列表中从第一个segment开始的每段对应的SR出标签,按路径顺序将所述每段对应的SR出标签以及所述目标路径的MRT Egress为目的prefix-sid分配的SR标签依次组成从栈顶到栈底的标签栈,将组成的所述标签栈作为所述NHLFE的SR出标签栈,若所述第一个segment为adjacency segment,则所述第一个segment没有对应的SR出标签。
12.根据权利要求11所述的方法,其特征在于,包括以下至少之一:
所述第一节点通过如下方式确定所述目标路径的MRT Egress为目的prefix-sid分配的SR标签:确定所述MRT Egress为第三拓扑分配的SRGB和所述第三拓扑内至所述第二节点的路由的SID;基于所述MRT Egress为所述第三拓扑分配的SRGB和所述第三拓扑内至所述第二节点的路由的SID确定所述目标路径的MRT Egress为目的prefix-sid分配的SR标签;
当所述目标段列表的第一个segment为node segment时,所述第一节点通过如下方式确定所述目标段列表中第一个node segment对应的出标签:确定所述第三拓扑中至所述目标段列表中的第一个node segment的下一跳为所述第三拓扑分配的SRGB和所述第一个node segment在所述第三拓扑中的节点SID;基于所述第三拓扑中至所述目标段列表中的第一个node segment的下一跳为所述第三拓扑分配的SRGB和所述第一个node segment在所述第三拓扑中的节点SID确定所述目标段列表中第一个node segment的对应的出标签;
当所述目标段列表为包含有node segment的segment list时,所述第一节点通过如下方式确定所述目标段列表中除第一个segment之外的其他node segment对应的出标签:确定所述目标段列表中其他node segment的上一个segment所在的节点为所述第三拓扑分配的SRGB和所述其他node segment在所述第三拓扑中的节点SID;基于所述目标段列表中其他node segment的上一个segment所在的节点为所述第三拓扑分配的SRGB和所述其他nodesegment在所述第三拓扑中的节点SID确定所述目标段列表中除第一个segment之外的其他node segment对应的出标签;其中,所述上一个segment所在的节点是指:当所述上一个segment为node segment时,所述node segment所表示的节点;或者,当所述上一个segment为adjacency segment时,所述adjacency segment的remote node所表示的节点。
13.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述目标路径的MRT Egress在剥完所述目标段列表的标签栈后,继续基于下层标签或IP头将所述报文向所述第二节点转发,其中,当所述MRT Egress与所述第二节点为同一节点时,报文将被上送至所述第二节点的控制平面。
14.一种报文转发装置,其特征在于,应用于第一节点中,包括:
接收模块,用于接收待转发的报文,其中,所述报文的目的地址为第二节点;
第一查找模块,用于在预先生成的路径中查找与所述报文对应的目标路径,其中,所述预先生成的路径包括第一路径、第二路径和第三路径,所述第一路径与所述第二路径是根据最大冗余树MRT算法生成得到的到达所述第二节点路径,所述第三路径是根据最短路径优先SPF算法生成得到的到达所述第二节点的路径;
第二查找模块,用于当所述目标路径为所述第一路径或所述第二路径时,在预先生成的段列表中查找与所述目标路径对应的目标段列表,其中,所述预先生成的段列表包括第一段列表和第二段列表,所述第一段列表包括所述第一路径,所述第二段列表包括所述第二路径;
转发模块,用于在所述目标路径中查找用于转发到所述第二节点的下一跳节点,并根据所述目标段列表将所述报文转发到所述下一跳节点;
所述装置还用于当所述目标路径为所述第三路径时,所述第一节点将所述第三路径的下一跳节点为目的前缀段索引prefix-sid分配的SR标签封装到所述报文上,并将封装后的报文发送到在所述第三路径中查找到的用于转发到所述第二节点的下一跳节点。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610604543.3A CN107666436B (zh) | 2016-07-27 | 2016-07-27 | 报文转发方法及装置 |
PCT/CN2017/092806 WO2018019131A1 (zh) | 2016-07-27 | 2017-07-13 | 报文转发方法及装置 |
US16/320,016 US20190273678A1 (en) | 2016-07-27 | 2017-07-13 | Method and device for forwarding packet |
EP17833434.8A EP3493487A4 (en) | 2016-07-27 | 2017-07-13 | MESSAGE FORWARDING METHOD AND DEVICE |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610604543.3A CN107666436B (zh) | 2016-07-27 | 2016-07-27 | 报文转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107666436A CN107666436A (zh) | 2018-02-06 |
CN107666436B true CN107666436B (zh) | 2019-05-17 |
Family
ID=61016848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610604543.3A Expired - Fee Related CN107666436B (zh) | 2016-07-27 | 2016-07-27 | 报文转发方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20190273678A1 (zh) |
EP (1) | EP3493487A4 (zh) |
CN (1) | CN107666436B (zh) |
WO (1) | WO2018019131A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108429673B (zh) * | 2018-03-21 | 2019-11-05 | 常熟理工学院 | 一种快速的未来数据网络实现方法 |
CN110635998B (zh) * | 2018-06-22 | 2021-10-26 | 华为技术有限公司 | 一种数据传输方法、相关设备及计算机存储介质 |
CN111510387B (zh) * | 2019-01-30 | 2021-12-14 | 华为技术有限公司 | 数据转发方法及相关装置 |
CN109889441B (zh) * | 2019-03-21 | 2021-05-14 | 新华三技术有限公司 | 一种数据转发方法及装置 |
US11496391B1 (en) * | 2019-06-28 | 2022-11-08 | Juniper Networks, Inc. | Defining non-forwarding adjacencies in bipartite networks, such as Clos networks, having a level 2 backbone and level 1 nodes |
US11050679B1 (en) * | 2019-06-28 | 2021-06-29 | Juniper Networks, Inc. | Defining non-forwarding adjacencies in bipartite networks, such as Clos newtorks, having a level 2 backbone and level 1 nodes |
CN116436850A (zh) * | 2019-07-01 | 2023-07-14 | 华为技术有限公司 | 一种报文转发方法、报文处理方法及装置 |
WO2021021169A1 (en) * | 2019-07-31 | 2021-02-04 | Huawei Technologies Co., Ltd | Transporting mtnc-id over srv6-enabled dataplane for 5g transport |
EP3994848A1 (en) * | 2019-07-31 | 2022-05-11 | Huawei Technologies Co., Ltd. | Transporting mtnc-id over srv6-header for 5g transport |
CN110535772B (zh) | 2019-08-27 | 2020-06-16 | 南京中兴软件有限责任公司 | 分段路由流量工程策略的发送及接收方法、装置和网元 |
CN112565076A (zh) * | 2019-09-10 | 2021-03-26 | 中国电信股份有限公司 | 基于isis协议的关键路径信息转发方法、装置和系统 |
CN113285876B (zh) | 2020-02-19 | 2024-04-23 | 中兴通讯股份有限公司 | 路由方法、路由装置及计算机可读存储介质 |
CN113542114B (zh) * | 2020-04-20 | 2022-11-11 | 华为技术有限公司 | 路由配置方法和路由配置装置 |
CN111970196B (zh) * | 2020-06-30 | 2022-10-21 | 新华三技术有限公司 | 一种建立备份路径、切换备份路径的方法和路由设备 |
CN115134283A (zh) * | 2021-03-08 | 2022-09-30 | 北京华为数字技术有限公司 | 一种环网保护方法及装置 |
CN114124781B (zh) * | 2021-11-23 | 2023-05-16 | 中国联合网络通信集团有限公司 | SRv6中报文的转发方法、系统、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8861340B1 (en) * | 2012-03-12 | 2014-10-14 | Juniper Networks, Inc. | Fast reroute using maximally redundant trees |
CN104718730A (zh) * | 2012-10-05 | 2015-06-17 | 思科技术公司 | 分段路由技术 |
CN105210336A (zh) * | 2013-05-17 | 2015-12-30 | 思科技术公司 | 用于ldp/sr互操作性的分段路由映射服务器 |
CN105282028A (zh) * | 2014-06-05 | 2016-01-27 | 中兴通讯股份有限公司 | 一种报文传输方法、节点及路径管理服务器 |
CN105634940A (zh) * | 2014-10-27 | 2016-06-01 | 中兴通讯股份有限公司 | Sr信息获取方法及建立段路由网络的方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8854953B2 (en) * | 2011-09-27 | 2014-10-07 | Telefonaktiebolaget L M Ericsson (Publ) | Optimizing endpoint selection of MRT-FRR detour paths |
US9100328B1 (en) * | 2012-03-12 | 2015-08-04 | Juniper Networks, Inc. | Forwarding mechanisms for fast reroute using maximally redundant trees |
US9438472B2 (en) * | 2013-07-19 | 2016-09-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Extended remote LFA fast reroute |
CN103781141B (zh) * | 2013-10-24 | 2018-02-13 | 深圳市金溢科技股份有限公司 | 车载自组织网络的单播路由转发方法、芯片及通信系统 |
US9516118B2 (en) * | 2014-05-12 | 2016-12-06 | Telefonaktiebolaget L M Ericsson (Publ) | Scalable segment identifier allocation in segment routing |
-
2016
- 2016-07-27 CN CN201610604543.3A patent/CN107666436B/zh not_active Expired - Fee Related
-
2017
- 2017-07-13 WO PCT/CN2017/092806 patent/WO2018019131A1/zh unknown
- 2017-07-13 EP EP17833434.8A patent/EP3493487A4/en not_active Withdrawn
- 2017-07-13 US US16/320,016 patent/US20190273678A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8861340B1 (en) * | 2012-03-12 | 2014-10-14 | Juniper Networks, Inc. | Fast reroute using maximally redundant trees |
CN104718730A (zh) * | 2012-10-05 | 2015-06-17 | 思科技术公司 | 分段路由技术 |
CN105210336A (zh) * | 2013-05-17 | 2015-12-30 | 思科技术公司 | 用于ldp/sr互操作性的分段路由映射服务器 |
CN105282028A (zh) * | 2014-06-05 | 2016-01-27 | 中兴通讯股份有限公司 | 一种报文传输方法、节点及路径管理服务器 |
CN105634940A (zh) * | 2014-10-27 | 2016-06-01 | 中兴通讯股份有限公司 | Sr信息获取方法及建立段路由网络的方法 |
Non-Patent Citations (1)
Title |
---|
Maximally Redundant Trees in Segment Routing draft-agv-rtgwg-spring-segment-routing-mrt-02;Gaurav Agrawal等;《https://tools.ietf.org/html/draft-agv-rtgwg-spring-segment-routing-mrt-02》;20160608;第5-6页 |
Also Published As
Publication number | Publication date |
---|---|
WO2018019131A1 (zh) | 2018-02-01 |
CN107666436A (zh) | 2018-02-06 |
EP3493487A1 (en) | 2019-06-05 |
EP3493487A4 (en) | 2020-01-22 |
US20190273678A1 (en) | 2019-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107666436B (zh) | 报文转发方法及装置 | |
EP3493491B1 (en) | Packet forwarding method and device | |
JP7644064B2 (ja) | 伝送経路故障を処理するための方法と装置、及びシステム | |
CN103380605B (zh) | 使用ldp的mpls快速重新路由ldp-frr的方法和网络单元 | |
US10218610B2 (en) | MPLS segment routing | |
US9444677B2 (en) | Scalable edge node protection using IPv6 segment routing extension header | |
US10148517B2 (en) | Systems and methods for topology discovery and application in a border gateway protocol based data center | |
US8842522B2 (en) | Incremental deployment of MRT based IPFRR | |
CN110661700B (zh) | 一种传输路径故障的处理方法、装置及系统 | |
CN105453491B (zh) | 扩展远程lfa快速重新路由 | |
CN101120552B (zh) | 利用服务标签的mpls的环路防止方法以及网络节点 | |
US9525619B2 (en) | Scalable edge node protection using segment routing | |
WO2018033060A1 (zh) | 报文转发方法及装置 | |
WO2016115850A1 (zh) | 一种段路由处理方法、处理装置及发送装置 | |
CN100372337C (zh) | 一种实现跨域约束路由的选路方法 | |
CN101651630A (zh) | 一种基于链路故障的切换方法及装置 | |
US9237078B1 (en) | Path validation in segment routing networks | |
CN110535763B (zh) | 一种路由备份方法、装置、服务器及可读存储介质 | |
WO2005036839A2 (en) | Rapid alternate paths for network destinations | |
CN107689915A (zh) | 报文转发方法及装置 | |
CN103891220A (zh) | 使用ldp的mpls快速重新路由(ldp-frr) | |
US20180227218A1 (en) | Generating non-congruent paths having minimal latency difference in a loop-free routing topology having routing arcs | |
US7969898B1 (en) | Technique for breaking loops in a communications network | |
WO2018095095A1 (zh) | 建立分离路径的方法和装置 | |
CN109873766A (zh) | 报文传输方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190517 Termination date: 20200727 |
|
CF01 | Termination of patent right due to non-payment of annual fee |