CN113826362B - 用于域间分段路由的传输端点分段 - Google Patents
用于域间分段路由的传输端点分段 Download PDFInfo
- Publication number
- CN113826362B CN113826362B CN202080001381.9A CN202080001381A CN113826362B CN 113826362 B CN113826362 B CN 113826362B CN 202080001381 A CN202080001381 A CN 202080001381A CN 113826362 B CN113826362 B CN 113826362B
- Authority
- CN
- China
- Prior art keywords
- router
- domain
- segment
- intra
- tunnel
- 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
Images
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/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- 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/02—Topology update or discovery
-
- 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/02—Topology update or discovery
- H04L45/033—Topology update or discovery by updating distance vector protocols
-
- 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/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/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
- H04L45/507—Label distribution
Abstract
本公开的实施例涉及用于域间分段路由的传输端点分段。描述了用于使用传输端点分段进行域间分段路由的技术。在域内的路由器上供应的传输端点分段表示源自该路由器并且具有到同一域内的所指示的端点的可达性的任何域内隧道。供应路由器将针对传输端点分段的传输端点分段标识符(TESID)通告给其他路由器或控制器以用于在分段路由中的使用。针对传输端点分段的TESID保持恒定,而不管哪个域内隧道被绑定到传输端点分段。供应路由器将传输端点分段动态地绑定到至少一个域内隧道,并且对所绑定的域内隧道的任何改变在供应路由器处被在本地更新。以这种方式,域间分段路由隧道可以被构造为不受域内隧道改变影响的列表TESID。
Description
技术领域
本公开涉及计算机网络,并且更具体地涉及计算机网络内的工程业务流。
背景技术
计算机网络是交换数据和共享资源的互连计算设备的集合。在诸如因特网等基于分组的网络中,计算设备通过将数据划分为被称为分组的小块来传送数据,这些小块分别通过网络从源设备路由到目的地设备。目的地设备从分组中提取数据,并且将数据组装成其原始形式。网络中的某些设备(即,节点)(称为路由器)使用路由协议来交换和累积描述网络的拓扑信息。这允许路由器构造其自己的网络路由拓扑图。在接收到传入数据分组时,路由器检查分组内的密钥信息,并且根据所累积的拓扑信息来转发分组。
很多路由协议落入被称为内部网关协议(IGP)的协议类中,在IGP中,基于泛洪的分发机制用于向网络内的路由器宣告拓扑信息。这些路由协议通常依赖于路由算法,该路由算法要求每个路由器针对给定域(称为IGP区域或域)具有同步的路由拓扑信息。
基于分组的网络越来越多地将标签交换协议用于业务工程和其他目的。多协议标签交换(MPLS)是一种用于根据由网络中的路由器维护的路由信息来在互联网协议(IP)网络中设计业务模式的机制。通过利用MPLS协议,标签交换路由器可以使用添加在业务之前的标签沿着通过网络到目的地设备的特定路径(即,标签交换路径(LSP))来转发业务。LSP定义了通过网络的独特路径以用于将MPLS分组从源设备传送到目的地设备。路由器可以采用分段路由技术(诸如通过使用网络中的源分组路由(SPRING)范例)以使用IGP来通告节点之间的网络分段,并且在IGP域内构建单跳或多跳隧道。为了执行分段路由,入口路由器将标签堆栈(例如,分段列表)中的一个或多个标签添加到分组,并且当分组被转发通过网络时,沿着路径的中间路由器从应用于该分组的标签堆栈中删除标签。
发明内容
总体上,本公开描述了用于使用传输端点分段进行域间分段路由的技术。传输端点分段是一种新的分段类型,它表示到端点的抽象传输服务。例如,在域内的路由器上供应的传输端点分段表示源自该路由器并且具有到同一域内的所指示的端点的可达性的任何域内隧道。供应路由器为传输端点分段分配传输端点分段标识符(TESID),并且将TESID通告给其他路由器或控制器以用于分段路由。传输端点分段的TESID保持恒定,而不管哪个域内隧道当前被绑定到传输端点分段。
传统上,域间分段路由隧道被构造为域内隧道的绑定分段标识符(BSID)的列表。每当域内隧道中的任何一个发生改变时,域间隧道的BSID列表都将变为无效并且需要在入口路由器处进行更新。尽管不存在到域间隧道的端到端路径改变,但是传统技术会在入口路由器、控制器和/或其他边界路由器处导致控制平面混乱。
根据公开的技术,域间分段路由隧道被构造为不受域内隧道改变影响的传输服务的列表TESID。供应路由器将传输端点分段动态地绑定到具有到所指示的端点的可达性的至少一个域内隧道。因此,传输端点分段继承了在供应路由器处的所绑定的域内隧道的转发状态。对所绑定的域内隧道的任何改变和相关联的转发状态都将在配置路由器处被在本地更新,而无需将改变通告给其他路由器或控制器,也无需在入口路由器处为域间分段路由隧道更新TESID列表。
在一个示例中,本公开涉及一种方法,该方法包括:由被包括在网络的第一域中的第一路由器供应传输端点分段,传输端点分段表示源自第一路由器并且具有到被包括在第一域中的第二路由器的可达性的任何域内隧道;由第一路由器通告为传输端点分段而分配的TESID;由第一路由器将传输端点分段绑定到源自第一路由器并且具有到第二路由器的可达性的第一域内隧道;在接收到包括传输端点分段的TESID的分组时,根据第一域内隧道从第一路由器向第二路由器转发分组;由第一路由器更新传输端点分段到源自第一路由器并且具有到第二路由器的可达性的第二域内隧道的绑定;以及在更新之后,在接收到包括传输端点分段的相同TESID的分组时,根据第二域内隧道从第一路由器向第二路由器转发分组。
在另一示例中,本公开涉及一种被包括在网络的第一域中的第一路由器,该第一路由器包括:一个或多个接口;以及与一个或多个接口通信的控制单元。控制单元包括一个或多个处理器,一个或多个处理器被配置为:供应传输端点分段,传输端点分段表示源自第一路由器并且具有到被包括在第一域中的第二路由器的可达性的任何域内隧道;通告为传输端点分段而分配的TESID;将传输端点分段绑定到源自第一路由器并且具有到第二路由器的可达性的第一域内隧道;在接收到包括传输端点分段的TESID的分组时,根据第一域内隧道从第一路由器向第二路由器转发分组;更新传输端点分段到源自第一路由器并且具有到第二路由器的可达性的第二域内隧道的绑定;以及在更新之后,在接收到包括传输端点分段的相同TESID的分组时,根据第二域内隧道从第一路由器向第二路由器转发分组。
在另外的示例中,本公开涉及一种系统,该系统包括:被包括在网络的第一域和第二域中的第一边界路由器,第一边界路由器被配置为通告为传输端点分段而分配的TESID,传输端点分段表示源自第一边界路由器并且具有到被包括在第一域中的第二边界路由器的可达性的任何域内隧道;以及被包括在网络的第二域中的入口路由器。入口路由器被配置为:存储域间分段路由隧道作为至少包括到第二边界路由器的传输端点分段的TESID的SID的列表;以及根据至少包括到第二边界路由器的传输端点分段的TESID的域间分段路由隧道的分段路由标签堆栈来转发目的地为域间分段路由隧道的入口路由器的分组。第一边界路由器还被配置为在接收到具有包括到第二边界路由器的传输端点分段的TESID的分段路由标签堆栈的分组时,根据当前被绑定到传输端点分段的域内隧道从第一边界路由器向第二边界路由器转发分组。
一个或多个示例的细节在附图和以下描述中阐述。根据说明书、附图和权利要求书,其他特征、目的和优点将很清楚。
附图说明
图1是示出根据本公开的技术的支持将传输端点分段用于域间分段路由的示例网络的框图。
图2是示出能够根据本公开的技术进行操作的示例路由器的框图。
图3是示出能够根据本公开的技术进行操作的示例控制器的框图。
图4是示出根据本公开的技术的路由器为域间分段路由供应传输端点分段的示例操作的流程图。
图5是示出根据本公开的技术的网络中的边界路由器和入口路由器使用传输端点分段进行域间分段路由的示例操作的流程图。
具体实施方式
图1是示出根据本公开中描述的技术的支持将传输端点分段用于域间分段路由的示例网络100的框图。分段路由(也可以称为源分组路由或网络中的源分组路由(SPRING))是一种控制平面架构,其使得入口路由器能够引导分组通过网络中一组特定节点和链路,而无需依赖于网络中的中间节点来确定其应当采用的路径。
在图1的示例中,网络100包括多个路由区域或域114A-114C(统称为“域114”)和路由器112A-112F(统称为“路由器112”)。在一些示例中,域114每个可以包括内部网关协议(IGP)区域或域,该IGP区域或域包括在公共管理控制下的共享公共路由协议的一组路由器。示例IGP包括中间系统中间系统(IS-IS)和开放式最短路径优先(OSPF)。在图1的图示示例中,路由器112在边缘和不同域之间包括边界路由器。尽管在图1中未示出,但是每个域114包括一个或多个其他网络设备,这些其他网络设备作为中转路由器或交换机进行操作以在相应域内以及在边界路由器112之间转发业务。
如图1所示,域114A还包括控制器设备128,该控制器设备128可以作为软件定义网络(SDN)控制器或其他集中式控制器进行操作,该控制器为域114A-114C中的一个或多个内的路由器和其他网络设备提供控制平面操作和管理。为了说明的目的,本文中将控制器设备128描述为至少为域114A和域114B提供控制平面操作和管理。在其他示例中,域114B和域114C中的每个可以包括指定的集中式控制器。
如图所示,路由器112A用作域间分段路由隧道140的入口路由器,并且因此在本公开中可以被称为入口路由器112A。由入口路由器112A接收的网络业务的源可以包括一个或多个设备(未示出)和/或向网络100中的入口路由器112A提供业务的任何公共或专用网络或因特网。此外,在一些示例中,路由器112D用作域间分段路由隧道140的出口路由器,并且因此在本公开中可以被称为出口路由器112D。在域间隧道140上转发的网络业务的目的地可以包括一个或多个目的地设备(未示出)和/或可以包括包括多个设备的LAN或广域网(WAN)的网络。例如,目的地设备可以包括个人计算机、膝上型计算机、工作站、个人数字助理(PDA)、无线设备、网络就绪设备、文件服务器、打印服务器、或经由网络100来访问源的其他设备。
在图1的示例中,路由器112可以使用分段路由技术(例如,SPRING范例)以使用IGP或边界网关协议(BGP)来在节点之间通告分段,并且在每个域114内构建单跳或多跳隧道。分段路由可以使用IGP或BGP来通告多种类型的分段。第一示例分段类型是“邻接分段”,其表示严格转发的典型的单跳隧道,该隧道通过路由器与特定节点之间的特定链路来承载分组,而与链路成本无关。第二示例分段类型是“前缀分段”,其表示使用路由器与特定地址前缀之间的成本最低的路径链路的典型的多跳隧道。第三示例分段类型是“绑定分段”,其表示路由器与特定节点或特定地址前缀之间的特定域内隧道。本公开提出了一种称为“传输端点分段”的新的分段类型,其表示到特定节点的抽象传输服务。与表示特定域内隧道的绑定分段不同,本文中描述的传输端点分段表示路由器与特定节点之间的任何域内隧道。
在分段路由中,分段的“路径”信息在每个域114内的路由器之间被传播作为相应域的IGP链路状态信息的一部分。根据本公开,使用边界网关协议(BGP)在边界路由器112之间和/或使用BGP链路状态(BGP-LS)向控制器设备128传播或通告至少传输端点分段的路径信息。入口路由器112A能够通过在分组之前添加一个或多个分段标识符(SID)来引导分组通过有序指令或分段列表。换言之,入口路由器112A可以通过在分组之前添加适当的SID组合(堆栈)来引导分组通过一组期望的节点和链路。分段路由允许路由器强制流通过任何拓扑路径和服务链,同时仅在每个域的入口节点处保持每流状态。
分段路由可以直接应用于多协议标签交换(MPLS)架构,而没有转发平面的改变。网络管理员或集中式控制器(例如,控制器设备128)仅需要向特定路由器分配SID,并且分段路由控制平面架构自动构建从路由器到任何其他路由器的所需要的MPLS转发构造。SID被编码为MPLS标签,并且有序SID的列表被编码为标签堆栈。要处理的分段的SID在堆栈的顶部,并且在分段完成时,随着分组被转发通过网络,相关的标签将从堆栈中弹出。
分段路由在2018年7月的IETF RFC 8402的Filsfils等人的“Segment RoutingArchitecture”中进一步描述,而分段路由用例在2014年10月21日的IETF Internet-Draftdraft-filsfils-spring-segment-routing-use-cases-01的Filsfils等人的“SegmentRouting Use Cases”中描述,这些每个通过引用并入本文。有关SPRING的更多细节参见:(1)2019年12月14日的IETF Internet-Draft draft-ietf-spring-segment-routing-policy-06的Filsfils等人的“Segment Routing Policy Architecture”;(2)2016年5月的IETF RFC 7855的Previdi等人的“Source Packet Routing in Networking(SPRING)Problem Statement and Requirements”;以及(3)2019年12月的IETF RFC 8660的Bashandy等人的“Segment Routing with MPLS data plane”,这些每个通过引用并入本文。
作为说明性示例,提供了对网络100中前缀分段的建立和使用的进一步描述。每个路由器112可以与地址前缀相关联。例如,管理员或控制器设备128可以向一个或多个路由器112分配前缀。前缀可以是地址或地址块。与节点(例如,路由器)相对应的前缀可以包括互联网协议(IP)地址(例如,IPv4或IPv6)、IP地址块、或标识节点的另一类型的数据。另外,一个或多个路由器112可以配置有与前缀相关联的分段标识符(SID)。网络100中的路由器可以将其前缀和SID通告给网络100的同一域114内的邻居路由器。当路由器接收到通告时,路由器可以将该通告转发给其邻居路由器。仅转发通告的路由器不被视为发起通告。另外,当路由器接收到通告时,路由器确定在通告中指定的前缀是否已经与在通告中指定的SID相关联。如果是这种情况,并且如果通告表示新的最佳路径,则路由器可以响应于通告而更新路由表生的路由表指示路由中到前缀的下一跳。如果通告表示与现有路由相比等价,则路由器可以向现有路由添加等价多径(ECMP)下一跳。
如果通告指定接收路由器的链路状态数据库(LSDB)或流量工程数据库(TED)中尚不存在的前缀和SID,则路由器可以计算到在通告中指定的前缀的路由。在一些示例中,路由器可以根据最短路径算法或严格最短路径算法来计算路由。此外,在一些示例中,通告可以指定用于计算到在通告中指定的前缀的路由的算法的类型。此外,路由器可以将由通告指定的SID与所计算的到由通告指定的前缀的路由相关联。换言之,路由器可以生成将SID与路由相关联的数据。然后,路由器可以将该路由安装为活动路由。将路由安装为活动路由可以包括生成转发信息,路由器的转发组件可以使用该转发信息将分组转发到与附接到分组的SID相关联的路由的下一跳。例如,将路由安装为活动路由可以包括在转发表中生成将SID映射到附接到去往与该SID相关联的路由的下一跳的链路的接口卡的信息。
如图1所示,诸如网络100等网络可以被分割成多个IGP域或区域114。例如,网络100包括三个域114A、114B和114C。在图1的示例中,边界路由器112A、112B和112E在域114A中,边界路由器112B、112C、112E和112F在域114B中,边界路由器112C、112D和112F在域114C中。路由器112B和112E在域114A和域114B两者中,路由器112C和112F在域114B和域114C两者中。给定域中的节点通常不存储描述其他域中的节点和路由的数据,包括前缀和SID。例如,第一IGP域中的路由器通常不存储任何其他IGP域的LSDB或TED以及对应的前缀和SID。
当源自域114A中的路由器的IGP通告到达跨越域114A和第二域114B的边界路由器(例如,路由器112B或112E)时,跨越域的路由器可以丢弃源自域114A的通告或者重新启动域114B中的通告。例如,在图1的示例中,如果路由器112B接收到由域114A中的路由器112A发起的IGP通告,则路由器112B可以不将该通告转发给域114B中的路由器112C。
在将路由安装为活动路由之后,路由器可以接收分组。响应于接收到分组,路由器可以确定一个或多个标签的堆栈是否附接到分组。标签堆栈包括有序标签序列。如果在路由器接收到分组时没有标签堆栈附接到分组,或者如果在路由器删除活动标签之后没有其余标签附接到分组,则路由器将分组转发到网络100中的另一节点,而无需进一步使用分段路由。例如,路由器可以根据分组的IP地址来转发分组。
然而,如果标签堆栈仍然包括一个或多个标签,则路由器可以确定与堆栈的活动标签相关联的路由的下一跳。活动标签可以是在堆栈的“顶部”的标签。例如,活动标签可以是在附接到分组的有序标签序列中首先出现的标签。如果与活动标签相关联的路由的下一跳通告了活动SID,则路由器可以从附接到分组的标签堆栈中删除活动标签,从而可能使一个或多个标签保持附接到分组。换言之,路由器可以从堆栈中“弹出”活动标签。然后,路由器可以将分组以及堆栈的其余标签转发到与活动标签相关联的路由的下一跳。该系统可以允许诸如入口路由器112A等源节点控制分组通过网络100时所采用的路径。
每个域114的入口路由器可以例如使用标签分发协议(LDP)或带有流量工程扩展的资源预留协议(RSVP-TE)或相应域内的域内分段路由(SR)隧道来构建域内LSP。然后,入口路由器可以供应表示域内隧道的绑定分段,并且向绑定分段分配绑定SID(BSID)。传统上,域间分段路由隧道是通过使用域内隧道的BSID列表构建的,本质上将一系列域内隧道缝合在一起。例如,跨N个域的域间分段路由隧道可以通过使用包括SID_1、SID_2、……、SID_N的BSID列表来实现,其中SID_X是整个域X内的域内隧道的BSID。
这种方法的一个问题是,每当边界路由器处的域内隧道发生改变时,上述BSID列表将变得无效并且必须进行更新。当域内隧道发生故障,被降级或取消配置,或者经历另一种类型的状态变化时,可能会发生这种情况。在这种情况下,边界路由器(即,前端)切换到具有不同BSID的另一域内隧道,并且因此,域间分段路由隧道也需要切换以使用该另一域内隧道。取决于域间分段路由隧道的供应模型,这会导致两种控制平面动作方案。如果域间分段路由隧道是由控制器供应的,则控制器必须了解域内隧道的改变事件,将域间隧道与该另一域内隧道相关联,构建新的BSID列表,并且利用新的BSID列表对入口路由器重新编程。如果域间分段路由隧道是通过BGP信令供应的,则改变后的域内隧道的边界路由器(即,前端)必须向上游发送BGP UPDATE,以触发向入口路由器的级联BGP UPDATE。在这两种情况下,尽管域间分段路由隧道的端到端路径都没有变化,但是仍然会存在控制平面混乱。因此,对于网络来说,这些控制平面混乱被认为是不必要的和不希望的。
本公开中描述的技术引入了一种称为“传输端点分段”的新的分段类型以解决上述问题。传输端点分段是一个表示到端点(例如,边界路由器)的抽象传输服务的概念。传输端点分段可以由端点地址的至少一个强制属性(例如,IPv4或IPv6)以及一个或多个可选属性(诸如颜色属性、流量工程(TE)属性等)来定义。传输端点分段可以与针对所指示的属性的合格的一组域内隧道(例如,LDP或RSVP LSP或SR隧道)相关联。传输端点分段的该组合格的域内隧道包括至少具有到所指定的端点地址的可达性的任何域内隧道。传输端点分段可以被动态地绑定到单个隧道,或者在某些情况下以ECMP或加权ECMP(WECMP)方式被绑定到多个隧道。然后,传输端点分段从一个或多个绑定隧道继承转发状态(即,nexthop)。传输端点分段是在BSID之上的级别的实体,隐藏了所绑定的域内隧道的细节。这样,分配给传输端点分段的传输端点SID(TESID)在所绑定的域内隧道发生改变时保持恒定。
在基于控制器的域间分段路由(SR)供应模型中,控制器利用被绑定到用于创建域间隧道的域内隧道的传输端点SID列表来对入口路由器编程。当通过使用传输端点SID列表来构造域间隧道时,任何传输端点SID的转发状态(即,nexthop)改变完全在边界路由器上是本地的,并且对控制器和入口路由器而言被隐藏。在基于控制器的域间SR供应模型中,当一个或多个域内隧道发生改变时,控制器无需利用新的分段列表来对入口路由器重新编程。在基于BGP信令的域间SR供应模型中,BGP累积从出口路由器到入口路由器的传输端点SID列表,以供入口路由器使用。在基于BGP信令的域间SR供应模型中,当一个或多个域内隧道发生改变时,没有从边界路由器到入口路由器的级联BGP UPDATE消息。因此,根据所公开的技术,可以几乎完全避免控制平面混乱。
可以静态地或动态地供应传输端点分段。在被静态地供应时,传输端点分段将通过配置来创建和删除,在有至少一个合格域内隧道要绑定时变为活动,而在没有合格域内隧道要绑定时变为不活动。在被动态地供应时,传输端点分段将在第一合格域内隧道变为存在时被创建,并且在最后的合格域内隧道消失时被删除。在基于控制器的域间SR供应模型中,边界路由器经由BGP LS将传输端点SID分发给控制器作为逻辑链路。
参考图1,作为一个示例,假定入口路由器112A被配置为经由通过路由器112B和路由器112C的路由将分组发送到出口路由器112D。此外,在该示例中,给路由器112B分配SID“100”,给从路由器112B到路由器112C的域内隧道118A分配BSID“200”,给从路由器112C到路由器112D的域内隧道120A分配BSID“800”。传统上,入口路由器112A可以使用域内隧道的BSID列表经由域间分段路由隧道将分组发送到出口路由器112D。例如,入口路由器112A可以将标签堆栈:“100”、“200”、“800”推送到分组上,并且将分组发送到与标签“100”相关联的路由上的下一跳(即,路由器112B)。到路由器112B的倒数第二跳将标签“100”删除。在接收到分组时,路由器112B删除标签“200”并且经由与标签“200”相关联的域内隧道(即,域内隧道118A)将分组转发到路由器112C。然后,路由器112C删除标签“800”并且经由与标签“800”相关联的域内隧道(即,域内隧道120A)将分组转发到路由器112D。
如果域内隧道118A经历任何状态改变(例如,掉线或被取消配置或降级),则边界路由器112B切换到路由器112B与路由器112C之间的被分配BSID“300”的另一域内隧道118B。当使用传统技术来构造域间分段路由隧道时,必须更新在入口路由器112A处编程的域间分段路由隧道的BSID列表以反映域内隧道从118A到118B的变化(即,将域间分段路由隧道的BSID列表中的BSID“200”更新为BSID“300”),然而从入口路由器112A到出口路由器112D的域间分段路由隧道的端到端路径保持恒定。如果域内隧道120A经历了导致在路由器112C与路由器112D之间切换到域内隧道120B的改变,则将发生类似的更新。
根据本公开的技术,代替使用域内隧道的BSID列表来创建从入口路由器112A到出口路由器112D的域间分段路由隧道(这由于域内改变而导致在边界路由器(例如,112B和112C)处发生控制平面混乱),路由器112被配置为支持域间分段路由隧道的传输端点分段。
参考图1,作为一个示例,给路由器112B分配SID“100”,给源自路由器112B并且具有到路由器112C的可达性的传输端点分段130分配传输端点SID(TESID)“2000”,给源自路由器112C并且具有到路由器112D的可达性的传输端点分段132分配TESID“1000”。传输端点分段130被绑定到去往路由器112C的域内隧道118A、118B中的一个或多个。类似地,传输端点分段132被绑定到去往路由器112D的域内隧道120A、120B中的一个或多个。
路由器112B使用BGP将传输端点分段130的TESID通告给域114A和域114B中的其他边界路由器(包括入口路由器112A),和/或使用BGP-LS将传输端点分段130的TESID通告给控制器设备128。类似地,路由器112C将传输端点分段132的TESID通告给域114B和域114C中的其他边界路由器,和/或通告给控制器设备128。在图1的实例中,边界路由器112B和/或边界路由器112E将向入口路由器112A转发从路由器112C接收的TESID通告。
然后,入口路由器112A或控制器设备128供应域间分段路由隧道140作为SID列表,包括从边界路由器112B和112C接收的TESID。入口路由器112A存储域间隧道140的SID列表,并且使用该SID列表来构造用于在域间隧道140上转发分组的分段路由标签堆栈。根据本文中描述的技术,传输端点分段130和132的TESID保持恒定,而不管哪个域内隧道当前被绑定到传输端点分段。因此,域间分段路由隧道140的SID列表和相关联的分段路由标签堆栈在所绑定的域内隧道发生改变时也保持恒定。
入口路由器112A可以使用域间隧道140的分段路由标签堆栈经由域间分段路由隧道140将分组发送到出口路由器112D。例如,入口路由器112A可以将标签堆栈:“100”、“2000”、“1000”推送到分组上并且将分组发送到与标签“100”相关联的路由上的下一跳(即,路由器112B)。到路由器112B的倒数第二跳将标签“100”删除。在接收到分组时,路由器112B删除标签“2000”,并且经由当前被绑定到与标签“2000”相关联的传输端点分段130的域内隧道118A、118B中的任何一个来向路由器112C转发分组。路由器112C然后删除标签“1000”,并且经由当前被绑定到与标签“1000”相关联的传输端点分段132的域内隧道120A、120B中的任何一个来向路由器112D转发分组。
如果域内隧道118A经历任何状态改变(例如,掉线或被取消配置或降级),则边界路由器112B执行必要的转发状态改变以从域内隧道118A切换到域内隧道118B,但是不需要将更新发送到入口路由器112A和/或控制器设备128。以这种方式,传输端点分段的使用减少并且在某些情况下消除了当对本地边界路由器(例如,112B或112C)进行任何改变(但是这些改变对入口路由器112A和控制器设备128而言被隐藏)时由于域内隧道改变而导致的控制平面混乱,以维持域间分段路由隧道。
图2是示出能够根据本文中描述的技术进行操作的示例路由器200的框图。路由器200可以表示图1的任何路由器112。尽管关于路由器200进行描述,但是该技术可以由能够实现分段路由的任何其他类型的网络设备来实现。因此,尽管关于路由器200进行描述,但是该技术不应当限于关于图2的示例描述的路由器200。
在图2的示例中,路由器200包括分别经由网络链路256A-256N和257A-257N接收和发送诸如分组流等数据单元的接口卡254A-254N(“IFC 254”)。路由器200可以包括机箱(未示出),该机箱具有用于容纳一组卡(包括IFC 254)的多个插槽。每个卡可以被插入机箱的对应插槽中,以经由高速交换器(未示出)(例如,可以包括交换结构、交换设备、可配置的网络交换器或集线器、或其他高速交换机制)将卡电耦合到路由组件244。IFC 254可以经由多个物理接口端口(未示出)耦合到网络链路256A-256N和257A-257N。通常,IFC 254每个可以表示一个或多个网络接口,路由器200可以通过该接口与网络的链路接口。
通常,路由器200可以包括确定所接收的分组的路由并且相应地经由IFC 254转发分组的控制单元242。在图2的示例中,控制单元242包括配置和控制由转发组件(数据平面)246施加的分组转发操作的路由组件(控制平面)244。
路由组件244为在网络堆栈的不同层执行的各种路由协议270提供操作环境。路由组件244负责维护路由信息260以反映路由器200所连接到的网络和其他网络实体的当前拓扑。具体地,路由协议基于由路由器200接收的路由协议消息来周期性地更新路由信息260以准确地反映网络和其他实体的拓扑。协议可以是在一个或多个处理器上执行的软件过程。例如,路由组件244包括在网络堆栈的网络层操作的网络协议,这些网络协议通常被实现为可执行软件指令。
在图2的示例中,协议270可以包括用于在网络中的路由域之间交换路由和可达性信息的边界网关协议(BGP)271以及用于在网络中的路由域之间交换流量工程和分段路由策略信息的BGP-LS 272。BGP-LS协议在2016年3月的互联网工程任务组(IETF)RFC 7752的H.Gredler等人的“North-Bound Distribution of Link-State and TrafficEngineering(TE)Information using BGP”中有详细描述,其全部内容通过引用合并于此。
协议270还可以包括用于交换链路状态信息并且促进在每个路由域内的路由器之间转发分组或其他数据单元的IGP 273。在一些示例中,IGP 273可以包括根据以下中的一项或多项的OSPF路由协议:由J.Moy于1998年4月发布的题为“OSPF Version 2”的RFC2328;由R.Coltun等人于2008年7月发布的题为“OSPF for IPv6”的RFC5340;由N.Sheth等人于2013年1月发布的题为“OSPF Hybrid Broadcast and Point-to-MultipointInterface Type”的RFC 6845;以及由A.Lindem等人于2018年4月发布的题为“OSPFv3LinkState Advertisement(LSA)Extendibility”的RFC 8362。在一些示例中,IGP273可以包括IS-IS路由协议,该协议实现了IGP以用于根据由D.Oran于1990年2月发布的题为“OSI IS-IS Intra-domain Routing Protocol”的RFC 1142(最后更新于2002年11月的ISO/IEC10589的重新通告)来在路由域内交换路由和可达性信息。IGP 273可以包括支持流量工程的IS-IS扩展,如由T.Li等人于2008年10月发布的题为“IS-IS Extensions for TrafficEngineering”的RFC 5305中所述。在一些示例中,路由器200可以包括OSPF组件和IS-IS组件两者。
协议270还可以包括配置协议。例如,协议270可以包括根据由JP.Vasseur等人于2009年3月发布的题为“Path Computation Element(PCE)Communication Protocol(PCEP)”的RFC 5440的PCEP 274、或者根据由R.Enns等人于2011年6月发布的题为“NetworkConfiguration Protocol(NETCONF)”的RFC 6241的NETCONF(未示出)。在路由器200包括入口路由器的一些示例中,控制器设备128(来自图1和图3)可以经由PCEP 274或NETCONF组件(未示出)为路由器200配置分段路由隧道的SID列表286。协议270可以包括其他路由协议(未示出),诸如标签分发协议(LDP)、具有业务扩展的资源保留协议(RSVP-TE)、路由信息协议(RIP)或其他网络协议。
路由组件244包括分段路由(SR)组件276以实现分段路由技术,该分段路由技术指定路由器200如何为邻接分段、前缀分段、绑定分段、或者根据本公开的传输端点分段供应和通告SID。如图1所示,入口路由器可以通过在分段路由报头中在分组之前添加SID标签堆栈来使用SID来引导分组通过受控指令集(称为分段)。
根据所描述的技术,在一个示例中,SR组件276可以将源自路由器200的传输端点分段动态地供应给与路由器200在同一域内的特定端点。SR组件276将传输端点分段定义为至少具有指示特定端点的IP地址的强制端点地址属性。在动态供应场景中,SR组件276响应于用于将传输端点分段绑定到其的第一合格域内隧道的建立而创建传输端点分段。传输端点分段的第一合格域内隧道是在路由器200与由传输端点分段的强制端点地址属性标识的端点地址之间建立的第一隧道。以类似的方式,SR组件276响应于用于将传输端点分段绑定到其的最后的合格域内隧道的拆除或故障而删除传输端点分段。
在另一示例中,SR组件276可以将源自路由器200的传输端点分段静态地供应给与路由器200在同一域内的特定端点。在图2的示例中,路由引擎244包括命令行界面(CLI)278,该CLI 278为管理员(“admin”)268提供访问以监测、配置或以其他方式管理路由器200。admin 268可以经由CLI 278指示路由器200向特定端点静态地供应源自路由器200的传输端点分段。在静态供应方案中,SR组件276响应于经由CLI 278从admin 268接收到配置信息而创建具有标识第二路由器的地址的强制属性的传输端点分段。SR组件276然后响应于用于将传输端点分段绑定到其的至少一个合格域内隧道的建立而激活传输端点分段。如果没有用于将传输端点分段绑定到其的合格域内隧道,则传输端点分段将保持不活动状态或转换到不活动状态。SR组件276响应于经由CLI 278从admin 268接收到配置信息而删除传输端点分段。
在供应传输端点分段之后,SR组件276可以为所供应的传输端点分段分配TESID。在其他示例中,admin 268可以经由CLI 278指示路由器200关于哪个TESID分配给所供应的传输端点分段。SR组件276然后可以使用BGP 271或BGP-LS 272来通告所供应的传输端点分段的TESID作为MPLS标签。作为一个示例,SR组件276使用BGP 271将BGP消息中的传输端点分段的TESID通告给与路由器200在同一域中的至少其他边界路由器。作为另一示例,SR组件276可以使用BGP-LS 272将BGP-LS消息中的传输端点分段的TESID通告给被配置为管理路由器200的域的控制器设备128。在任一示例中,SR组件276都通告传输端点分段的相同TESID,而不管哪个域内隧道被绑定到传输端点分段。
通过执行路由协议,路由组件244标识通过网络的现有路由并且确定通过网络的新路由。路由组件244存储路由信息260,包括例如通过网络的已知路由。转发组件246存储包括输出链接257的目的地的转发信息262。转发信息262可以根据路由信息260来生成。
路由组件244包括链路状态数据库(LSDB)280,该LSDB 280用于存储域拓扑信息,包括在路由器200的路由域内的所供应的分段(例如,邻接分段、前缀分段和绑定分段)的SID和标签。根据本公开,LSDB 280还可以存储源自路由器200的所供应的传输端点分段的TESID。LSDB 280的内容根据IGP 273被维护并且具有单个路由域的范围。路由组件244还包括流量工程数据库(TED)282,该TED282利用TE链路属性来增强LSDB 280。LSDB 280和TED282中的每个可以采用各种数据结构的形式,诸如多个表、链路列表、基数树、数据库、平面文件或其他数据结构。
例如,LSDB 280可以存储源自具有到与路由器200位于同一域内的特定端点的可达性的路由器200的传输端点分段的至少一个TESID。LSDB 280还可以存储TESID映射表284,该TESID映射表284指示TESID到路由器200与特定端点之间的至少一个合格域内隧道的绑定。如上所述,传输端点分段至少由强制端点地址属性以及在一些情况下由一个或多个可选属性来定义。
在一个示例中,路由组件244可以将传输端点分段绑定到至少具有传输端点分段的强制端点地址属性的第一合格域内隧道。在另一示例中,路由组件244可以将传输端点分段绑定到具有强制端点地址属性并且与多个合格域内隧道中的其他隧道相比具有更多可选属性(例如,颜色属性和/或一个或多个TE属性)的多个合格域内隧道中的一个或多个。多个合格域内隧道中的每个隧道内的链路的TE属性可以存储在TED 282中。在某些场景中,路由组件244可以以等价多径或加权等价多径方式将传输端点分段绑定到多个合格域内隧道中的两个或更多个。
为了将传输端点分段绑定到合格域内隧道,路由组件244在TESID映射表284中记录传输端点分段的TESID与合格域内隧道之间的映射。然后,路由组件244使用被绑定到传输端点分段的合格域内隧道的转发状态在路由信息260中为TESID安装路由并且在转发组件246的转发信息262中为TESID安装下一跳。以这种方式,在经由IFC 254接收到包括传输端点分段的TESID的分组时,转发组件246根据合格域内隧道的下一跳来向传输端点分段的特定端点转发分组。
如果所绑定的域内隧道断开或以其他方式改变状态,则SR组件276可以选择或供应不同的合格域内隧道,并且路由组件244可以更新TESID映射表284中记录的映射以将TESID关联到不同的合格域内隧道。路由组件244然后基于现在被绑定到去往特定端点的传输端点分段的相同TESID的不同的合格域内隧道来更新路由信息260中的TESID的路由并且更新路由器200的转发信息262中的TESID的下一跳。由路由组件244执行的更新完全是路由器200本地的,并且对控制器184或其他边界路由器不可见。
因为到特定端点的传输端点分段的TESID保持相同,而与用于到达特定端点的基础合格隧道无关,所以路由器200的本地改变不会影响包括到特定端点的传输端点分段的TESID的域间分段路由隧道的SID列表。换言之,在所绑定的域内隧道发生改变之后,在经由IFC 254接收到包括传输端点分段的相同TESID的分组时,转发组件246根据不同的合格域内隧道的下一跳来向传输端点分段的特定端点转发分组。以这种方式,路由器200的控制单元242可以被配置为支持使用传输端点SID来减少由于域内隧道改变而引起的控制平面混乱以维护域间分段路由隧道。
在路由器200包括域间分段路由隧道的入口路由器的示例中,路由组件244还可以包括域间分段路由隧道的SID列表286。在基于BGP信令的域间分段路由供应的示例中,路由组件244在BGP消息中从一个或多个边界路由器接收传输端点分段的TESID,并且供应域间分段路由隧道作为SID列表,该SID列表包括沿着朝向出口路由器的期望路径的传输端点分段的TESID。在其他示例中,控制器设备128可以供应域间分段路由隧道并且经由PCEP 274利用域间分段路由隧道的SID列表286将路由器200编程为入口路由器。
不管如何供应域间分段路由隧道,路由组件244都存储域间分段路由隧道的SID列表286。基于SID列表286,路由组件244为域间分段路由隧道创建分段路由标签堆栈。在接收到目的地为域间分段路由隧道的出口路由器的分组时,转发组件246将分段路由堆栈附加到分组上,并且根据分段路由标签堆栈来转发分组。
尽管出于示例目的而关于路由器进行描述,但是路由器200可以更一般地是具有路由功能的网络设备,并且不一定是专用路由设备。图2所示的路由器200的架构仅出于示例目的而示出。本公开的技术不限于该架构。在其他示例中,路由器200可以以多种方式来配置。在一个示例中,控制单元242的某些功能可以分布在IFC 254内。在另一示例中,控制单元242可以包括用作从路由器的多个分组转发引擎。
控制单元242可以仅以软件或硬件来实现,或者可以被实现为软件、硬件或固件的组合。例如,控制单元242可以包括执行软件指令形式的程序代码的一个或多个处理器。在这种情况下,控制单元242的各种软件组件/模块可以包括存储在诸如计算机存储器或硬盘等计算机可读存储介质上的可执行指令。
图3是示出能够根据本公开的技术进行操作的示例控制器设备128的框图。为了说明的目的,本文中在图1的网络100的上下文中描述控制器设备128。图3所示的控制器设备128的架构仅出于示例目的而示出,并且不应当限于该架构。在其他示例中,控制器设备128可以以多种方式来配置。
控制器设备128包括控制单元312,该控制单元312耦合到网络接口314以通过入站链路316和出站链路318与其他网络设备交换分组。控制单元312可以包括执行存储到计算机可读存储介质(未示出)的软件指令(诸如用于定义软件或计算机程序的软件指令)的一个或多个处理器(未示出)。替代地或另外地,控制单元312可以包括用于执行本文中描述的技术的专用硬件。
控制单元312为网络拓扑抽象程序守护程序(NTAD)320、路径计算元件(PCE)324和分段路由(SR)组件338提供操作环境。在一个示例中,这些单元可以被实现为在一个或多个服务器的一个或多个虚拟机上执行的一个或多个进程。也就是说,尽管通常被图示和描述为在单个控制器设备128上执行,但是这些单元的各方面可以被委托给其他计算设备。控制单元312还为包括BGP-LS 340在内的若干协议322提供操作环境。
控制单元312可以使用BGP-LS 340从计算机网络的一个或多个域内的边界路由器(例如,图1的网络100的域114中的路由器112)接收链路状态信息。控制单元312还可以将所接收的链路状态信息转发到NTAD 320。NTAD 320可以基于所接收的链路状态信息来生成网络拓扑。
如图3所示,PCE 324包括路径计算单元326、拓扑单元328和路径供应单元330。NTAD 320可以将拓扑数据转发到PCE 324的拓扑单元328。拓扑单元328可以接收描述计算机网络的可用资源的拓扑数据,包括访问、聚合和边缘节点、其接口、以及互连的通信链路。PCE 324的路径计算单元326可以使用由拓扑单元328接收的拓扑数据来计算整个计算机网络上的路径。在计算路径之后,路径计算单元326可以调度路径以由路径供应单元330供应。所计算的路径包括由路径供应单元330可使用以在网络中建立路径的路径信息。例如,路径供应单元330可以将路径信息发送到网络设备以指示网络设备在网络中建立路径的至少一部分。供应路径可能需要先进行路径验证,然后再提交该路径以提供分组传输。
根据所公开的技术并且在基于控制器的域间分段路由供应的示例中,SR组件338使用BGP-LS 340在BGP-LS消息中从一个或多个边界路由器接收传输端点分段的TESID。SR组件338然后使用PCE324来供应域间分段路由隧道作为SID列表,该SID列表包括沿着从入口路由器到出口路由器的期望路径的传输端点分段的TESID。然后,PCE 324利用域间分段路由隧道的SID列表来对域间分段路由隧道的入口路由器编程。入口路由器(例如,图3的路由器200)然后存储域间分段路由隧道的SID列表,并且基于该SID列表来为域间分段路由隧道创建分段路由标签堆栈。
图4是示出根据本公开的技术的路由器为域间分段路由供应传输端点分段的示例操作的流程图。示例操作在本文中关于图2的路由器200来描述。类似的操作可以由图1的任何边界路由器112来执行。
被包括在网络的第一域中的路由器200供应传输端点分段,该传输端点分段表示源自路由器200并且具有到被包括在第一域中的第二路由器的可达性的任何域内隧道(400)。
作为一个示例,路由器200可以执行传输端点分段的静态供应。在该示例中,路由器200的路由组件244内的SR组件276响应于经由CLI 278从admin 268接收到配置信息而创建具有标识第二路由器的地址的强制属性的传输端点分段。SR组件276响应于用于将传输端点分段绑定到其的至少一个合格域内隧道的建立而激活传输端点分段。在该示例中,合格域内隧道包括源自路由器200并且具有到在传输端点分段的强制端点地址属性中标识的第二路由器的地址的可达性的隧道。如果没有用于将传输端点分段绑定到其的合格域内隧道,则传输端点分段将保持不活动状态。SR组件276可以响应于经由CLI 278从admin 268接收到配置信息而删除传输端点分段。
作为另一示例,路由器200可以执行传输端点分段的动态供应。在该示例中,路由器200的SR组件276响应于用于将传输端点分段绑定到其的至少一个合格域内隧道的建立而创建具有标识第二路由器的地址的强制属性的传输端点分段。当用于将传输端点分段绑定到其的最后的合格域内隧道消失时,SR组件276删除传输端点分段。
在供应传输端点分段之后,路由器200通告为传输端点分段而分配的TESID(402)。在通告内,TESID被编码为传输端点分段的MPLS标签。在某些情况下,SR组件276可以为新供应的传输端点分段分配TESID。在其他示例中,admin 268可以经由CLI 278为新供应的传输端点分段分配或指派TESID。根据本公开中描述的技术,路由器200通告传输端点分段的相同TESID,而不管哪个域内隧道被绑定到传输端点分段。
作为一个示例,在路由器200包括被包括在网络的第一域和第二域中的边界路由器的情况下,路由器200的SR组件276可以使用BGP271来在BGP消息中向第一域和第二域的至少其他边界路由器通告传输端点分段的TESID。作为另一示例,在路由器200包括被包括在网络的第一域和第二域中的边界路由器的情况下,路由器200的SR组件276可以使用BGP-LS 272来在BGP-LS消息中向被配置为至少管理第一域和第二域的控制器设备128通告传输端点分段的TESID。
路由器200将传输端点分段绑定到源自路由器200并且具有到第二路由器的可达性的第一域内隧道(404)。如上所述,传输端点分段至少由强制端点地址属性以及在一些情况下由一个或多个可选属性(例如,颜色属性、TE属性等)来定义。在一个示例中,路由组件244可以选择第一域内隧道作为至少具有传输端点分段的强制端点地址属性的第一合格域内隧道。在另一示例中,路由组件244可以选择第一域内隧道作为具有强制端点地址属性并且与多个合格域内隧道中的其他隧道相比具有更多可选属性的多个合格域内隧道之一。在一些场景中,路由组件244可以以等价多径或加权等价多径方式将传输端点分段绑定到两个或更多个合格域内隧道。
为了将传输端点分段绑定到第一域内隧道,路由组件244在路由器200的TESID映射表284中记录TESID与第一域内隧道之间的映射。然后,路由组件244使用被绑定到传输端点分段的第一域内隧道的转发状态在路由信息260中为TESID安装路由并且在转发组件246的转发信息262中为TESID安装下一跳。在经由IFC 254接收到包括传输端点分段的TESID的分组时,路由器200的转发组件246根据第一域内隧道来向第二路由器转发分组(406)。
路由器200随后更新传输端点分段到源自路由器200并且具有到第二路由器的可达性的第二域内隧道的绑定(408)。绑定更新可以由于第一域内隧道的状态改变、取消配置、降级等而被执行。为了更新传输端点分段到第二域内隧道的绑定,路由组件244更新被记录在路由器200的TESID映射284中的映射以将TESID和第二域内隧道相关联。然后,路由组件244使用第二域内隧道的转发状态来更新路由信息260中的TESID的路由并且更新被安装在转发组件246的转发信息262中的TESID的下一跳。根据本公开中描述的技术,路由组件244更新传输端点分段的绑定,而无需将更新后的绑定通告给网络内的控制器设备128或其他边界路由器。在更新之后,在经由IFC254接收到包括传输端点分段的相同TESID的分组时,路由器200的转发组件246根据第二域内隧道向第二路由器转发分组(410)。
图5是示出根据本公开的技术的网络中的边界路由器和入口路由器使用传输端点分段进行域间分段路由的示例操作的流程图。示例操作在本文中关于图1的网络100内的组件来描述,包括被包括在第一域114B和第二域114A中的第一边界路由器112B、被包括在第二域114A中的入口路由器112A、以及可选地的被配置为至少管理第一域114B和第二域114A的控制器设备128。类似的操作可以由边界路由器112的任何组合来执行。
第一边界路由器112B通告为传输端点分段130而分配的TESID,该TESID表示源自第一边界路由器112B并且具有到被包括在第一域114B中的第二边界路由器112C的可达性的任何域内隧道。第一边界路由器112B可以将传输端点分段130的TESID通告给第一域114B和第二域114A内的控制器设备128和其他边界路由器112A、112C、112E、112F中的一个或多个。在通告内,TESID被编码为传输端点分段的MPLS标签。
在基于控制器的域间SR供应的示例中,控制器设备128在BGP-LS消息中从第一边界路由器112B接收传输端点分段130的TESID。控制器设备128供应域间分段路由隧道140作为SID列表,该SID列表至少包括到第二边界路由器112C的传输端点分段130的TESID(530)。控制器设备128利用域间分段路由隧道140的SID列表来对入口路由器112A编程(532)。在基于BGP信令的域间SR供应的替代示例中,入口路由器112A在BGP消息中从第一边界路由器112B接收传输端点分段130的TESID。入口路由器112A供应域间分段路由隧道140作为SID列表,该SID列表至少包括到第二边界路由器112C的传输端点分段130的TESID(520)。
不管如何供应域间分段路由隧道140,入口路由器112A都存储域间分段路由隧道140的SID列表(522)。入口路由器112A然后用域间分段路由隧道140的分段路由标签堆栈来封装目的地为域间分段路由隧道140的出口路由器112D的分组,该分段路由标签堆栈至少包括到第二边界路由器112C的传输端点分段130的TESID。入口路由器112A根据分段路由标签堆栈来转发封装的分组(524)。
在接收到具有包括到第二边界路由器112C的传输端点分段130的TESID的分段路由标签堆栈的分组时,第一边界路由器112B根据当前被绑定到传输端点分段130的域内隧道118A、118B向第二边界路由器112C转发分组。作为更具体的示例,第一边界路由器112B将传输端点分段130绑定到源自第一边界路由器112B并且具有到第二边界路由器112C的可达性的第一域内隧道118A(502)。在从入口路由器112A接收到具有包括传输端点分段130的TESID的分段路由标签堆栈的分组时,第一边界路由器112B根据第一域内隧道118A向第二边界路由器112C转发分组(504)。
第一边界路由器112B随后更新传输端点分段130到源自第一边界路由器112B并且具有到第二边界路由器112C的可达性的第二域内隧道118B的绑定(506)。根据本公开中描述的技术,第一边界路由器112B更新传输端点分段130的绑定,而不需要直接或经由控制器设备128向入口路由器112A通知更新,并且不需要入口路由器112A存储域间分段路由隧道140的更新后的SID列表。在更新之后,在接收到具有包括传输端点分段130的相同TESID的分段路由标签堆栈的分组时,第一边界路由器112B根据第二域内隧道118B向第二边界路由器112C转发分组(508)。
本公开中描述的技术可以至少部分以硬件、软件、固件或其任何组合来实现。例如,所描述的技术的各方面可以在一个或多个处理器内实现,包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或任何其他等效集成或离散逻辑电路系统、以及这样的组件的任何组合。术语“处理器”或“处理电路系统”通常可以单独地或与其他逻辑电路系统或任何其他等效电路系统组合地指代任何前述逻辑电路系统。包括硬件的控制单元也可以执行本公开的一种或多种技术。
这样的硬件、软件和固件可以在同一设备内或在单独的设备内实现以支持本公开中描述的各种操作和功能。另外,所描述的任何单元、模块或组件可以一起或单独地实现为离散但可互操作的逻辑设备。将不同特征描述为模块或单元旨在突出显示不同的功能方面,而不一定暗示这样的模块或单元必须通过单独的硬件或软件组件来实现。而是,与一个或多个模块或单元相关联的功能可以通过单独的硬件或软件组件来执行,或者可以集成在通用的或单独的硬件或软件组件内。
本公开中描述的技术还可以在包含指令的计算机可读介质(诸如计算机可读存储介质)中体现或编码。嵌入或编码在计算机可读介质中的指令可以引起可编程处理器或其他处理器例如在指令被执行时执行该方法。计算机可读介质可以包括非暂态计算机可读存储介质和暂态通信介质。有形且非暂态的计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电子可擦除可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、盒式磁带、磁性介质、光学介质、或其他计算机可读存储介质。术语“计算机可读存储介质”是指物理存储介质,而不是信号、载波或其他暂态介质。
已经描述了该技术的各个方面。这些和其他方面在所附权利要求的范围内。
Claims (20)
1.一种通信方法,包括:
由被包括在网络的第一域中的第一路由器供应传输端点分段,所述传输端点分段表示源自所述第一路由器并且具有到被包括在所述第一域中的第二路由器的可达性的任何域内隧道;
由所述第一路由器通告针对所述传输端点分段而被分配的传输端点分段标识符(TESID);
由所述第一路由器将所述传输端点分段绑定到源自所述第一路由器并且具有到所述第二路由器的可达性的第一域内隧道;
在接收到包括针对所述传输端点分段的所述TESID的分组时,根据所述第一域内隧道从所述第一路由器向所述第二路由器转发所述分组;
由所述第一路由器更新所述传输端点分段到源自所述第一路由器并且具有到所述第二路由器的可达性的第二域内隧道的所述绑定;以及
在所述更新之后,在接收到包括针对所述传输端点分段的相同TESID的分组时,根据所述第二域内隧道从所述第一路由器向所述第二路由器转发所述分组。
2.根据权利要求1所述的方法,其中通告针对所述传输端点分段的所述TESID包括通告针对所述传输端点分段的相同TESID,而不管哪个域内隧道被绑定到所述传输端点分段。
3.根据权利要求1至2中的任一项所述的方法,其中供应所述传输端点分段包括:
响应于经由所述第一路由器的接口从管理员对配置信息的接收而创建具有标识所述第二路由器的地址的至少一个属性的所述传输端点分段;以及
响应于与所述传输端点分段绑定的至少一个合格域内隧道的建立而激活所述传输端点分段,其中所述至少一个合格域内隧道具有所述传输端点分段的所述至少一个属性,并且其中所述第一域内隧道和所述第二域内隧道包括合格域内隧道。
4.根据权利要求1至2中的任一项所述的方法,其中供应所述传输端点分段包括响应于与所述传输端点分段绑定的至少一个合格域内隧道的建立而动态地创建具有标识所述第二路由器的地址的至少一个属性的所述传输端点分段,其中所述至少一个合格域内隧道具有所述传输端点分段的所述至少一个属性,并且其中所述第一域内隧道和所述第二域内隧道包括合格域内隧道。
5.根据权利要求1至2中的任一项所述的方法,其中所述第一路由器包括被包括在所述网络的所述第一域和第二域中的边界路由器,并且其中通告针对所述传输端点分段的所述TESID包括向所述网络的所述第一域和所述第二域的至少其他边界路由器发送边界网关协议(BGP)消息。
6.根据权利要求1至2中的任一项所述的方法,其中所述第一路由器包括被包括在所述网络的所述第一域和第二域中的边界路由器,并且其中通告针对所述传输端点分段的所述TESID包括向被配置为至少管理所述网络的所述第一域和所述第二域的控制器设备发送边界网关协议链路状态(BGP-LS)消息。
7.根据权利要求1至2中的任一项所述的方法,其中将所述传输端点分段绑定到所述第一域内隧道包括:
在所述第一路由器的控制平面中记录所述TESID与所述第一域内隧道之间的映射;以及
使用针对被绑定到所述传输端点分段的所述第一域内隧道的转发状态在所述第一路由器的转发平面中为所述TESID安装下一跳。
8.根据权利要求7所述的方法,其中更新所述传输端点分段到所述第二域内隧道的所述绑定包括:
更新被记录在所述第一路由器的所述控制平面中的所述映射以将所述TESID和所述第二域内隧道相关联;以及
为被安装在所述第一路由器的所述转发平面中的所述TESID更新所述下一跳以使用针对所述第二域内隧道的转发状态,其中所述第一路由器更新所述绑定而不通告更新后的所述绑定。
9.根据权利要求1至2中的任一项所述的方法,其中绑定所述传输端点分段包括以等价多径或加权等价多径方式将所述传输端点分段绑定到所述第一域内隧道和第三域内隧道。
10.根据权利要求1至2中的任一项所述的方法,其中所述传输端点分段由至少一个强制端点地址属性和一个或多个可选属性定义,并且其中将所述传输端点分段绑定到所述第一域内隧道包括选择所述第一域内隧道作为以下之一:
第一合格域内隧道,其至少具有所述传输端点分段的所述强制端点地址属性;或者
多个合格域内隧道中的一个合格域内隧道,其具有所述强制端点地址属性并且与所述多个合格域内隧道中的其他隧道相比具有更多的所述可选属性。
11.根据权利要求1至2中的任一项所述的方法,其中基于针对所述传输端点分段的所述TESID的所述通告,被包括在所述网络的第二域中的入口路由器或至少管理所述第一域和所述第二域的控制器设备中的一者向所述第二路由器供应域间分段路由隧道作为至少包括针对所述传输端点分段的所述TESID的SID的列表,并且所述入口路由器根据针对至少包括针对所述传输端点分段的所述TESID的所述域间分段路由隧道的分段路由标签堆栈来向所述第二路由器转发所述分组。
12.一种被包括在网络的第一域中的第一路由器,所述第一路由器包括:
一个或多个接口;以及
与所述一个或多个接口通信的控制单元,所述控制单元包括一个或多个处理器,所述一个或多个处理器被配置为:
供应传输端点分段,所述传输端点分段表示源自所述第一路由器并且具有到被包括在所述第一域中的第二路由器的可达性的任何域内隧道;
通告针对所述传输端点分段而被分配的传输端点分段标识符(TESID);
将所述传输端点分段绑定到源自所述第一路由器并且具有到所述第二路由器的可达性的第一域内隧道;
在接收到包括针对所述传输端点分段的所述TESID的分组时,根据所述第一域内隧道从所述第一路由器向所述第二路由器转发所述分组;
更新所述传输端点分段到源自所述第一路由器并且具有到所述第二路由器的可达性的第二域内隧道的所述绑定;以及
在所述更新之后,在接收到包括针对所述传输端点分段的相同TESID的分组时,根据所述第二域内隧道从所述第一路由器向所述第二路由器转发所述分组。
13.根据权利要求12所述的第一路由器,其中为了供应所述传输端点分段,所述一个或多个处理器被配置为:
响应于经由所述第一路由器的接口从管理员对配置信息的接收而创建具有标识所述第二路由器的地址的至少一个属性的所述传输端点分段;以及
响应于与所述传输端点分段绑定的至少一个合格域内隧道的建立而激活所述传输端点分段,其中所述至少一个合格域内隧道具有所述传输端点分段的所述至少一个属性,并且其中所述第一域内隧道和所述第二域内隧道包括合格域内隧道。
14.根据权利要求12所述的第一路由器,其中为了供应所述传输端点分段,所述一个或多个处理器被配置为响应于与所述传输端点分段绑定的至少一个合格域内隧道的建立而动态地创建具有标识所述第二路由器的地址的至少一个属性的所述传输端点分段,其中所述至少一个合格域内隧道具有所述传输端点分段的所述至少一个属性,并且其中所述第一域内隧道和所述第二域内隧道包括合格域内隧道。
15.根据权利要求12至14中的任一项所述的第一路由器,其中为了将所述传输端点分段绑定到所述第一域内隧道,所述一个或多个处理器被配置为:
在所述第一路由器的控制平面中记录所述TESID与所述第一域内隧道之间的映射;以及
使用被绑定到所述传输端点分段的所述第一域内隧道的转发状态在所述第一路由器的转发平面中为所述TESID安装下一跳。
16.根据权利要求15所述的第一路由器,其中为了更新所述传输端点分段到所述第二域内隧道的绑定,所述一个或多个处理器被配置为:
更新被记录在所述第一路由器的所述控制平面中的所述映射以将所述TESID和所述第二域内隧道相关联;以及
为被安装在所述第一路由器的所述转发平面中的所述TESID更新所述下一跳以使用针对所述第二域内隧道的转发状态,而不通告更新后的所述绑定。
17.一种通信系统,包括:
第一边界路由器,被包括在网络的第一域和第二域中,所述第一边界路由器被配置为通告针对传输端点分段而被分配的传输端点分段标识符(TESID),所述传输端点分段表示源自所述第一边界路由器并且具有到被包括在所述第一域中的第二边界路由器的可达性的任何域内隧道;以及
入口路由器,被包括在所述网络的所述第二域中,所述入口路由器被配置为:
存储域间分段路由隧道作为至少包括针对到所述第二边界路由器的所述传输端点分段的所述TESID的SID的列表;以及
根据针对至少包括针对到所述第二边界路由器的所述传输端点分段的所述TESID的所述域间分段路由隧道的分段路由标签堆栈来转发目的地为所述域间分段路由隧道的出口路由器的分组,并且
其中所述第一边界路由器还被配置为在接收到具有包括针对到所述第二边界路由器的所述传输端点分段的所述TESID的所述分段路由标签堆栈的所述分组时,根据当前被绑定到所述传输端点分段的域内隧道从所述第一边界路由器向所述第二边界路由器转发所述分组。
18.根据权利要求17所述的系统,还包括被配置为至少管理所述网络的所述第一域和所述第二域的控制器设备,其中所述控制器设备被配置为:
从所述第一边界路由器接收边界网关协议链路状态(BGP-LS)消息,所述BGP-LS消息向所述第二边界路由器通告针对所述传输端点分段的所述TESID;
向所述第二边界路由器供应所述域间分段路由隧道作为至少包括针对所述传输端点分段的所述TESID的所述SID的列表;以及
利用针对所述域间分段路由隧道的所述SID的列表对所述入口路由器编程。
19.根据权利要求17所述的系统,其中所述入口路由器被配置为:
从所述第一边界路由器接收边界网关协议(BGP)消息,所述BGP消息向所述第二边界路由器通告针对所述传输端点分段的所述TESID;以及
向所述第二边界路由器供应所述域间分段路由隧道作为至少包括针对所述传输端点分段的所述TESID的所述SID的列表。
20.根据权利要求17至19中的任一项所述的系统,其中所述第一边界路由器还被配置为:
将所述传输端点分段绑定到源自所述第一边界路由器并且具有到所述第二边界路由器的可达性的第一域内隧道;
在从所述入口路由器接收到具有包括针对到所述第二边界路由器的所述传输端点分段的所述TESID的所述分段路由标签堆栈的所述分组时,根据所述第一域内隧道从所述第一边界路由器向所述第二边界路由器转发所述分组;
更新所述传输端点分段到源自所述第一边界路由器并且具有到所述第二边界路由器的可达性的第二域内隧道的所述绑定;以及
在所述更新之后,在接收到具有包括针对到所述第二边界路由器的所述传输端点分段的相同TESID的所述分段路由标签堆栈的所述分组时,根据所述第二域内隧道从所述第一边界路由器向所述第二边界路由器转发所述分组。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/082527 WO2021195992A1 (en) | 2020-03-31 | 2020-03-31 | Transport endpoint segments for inter-domain segment routing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113826362A CN113826362A (zh) | 2021-12-21 |
CN113826362B true CN113826362B (zh) | 2023-06-20 |
Family
ID=71894606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080001381.9A Active CN113826362B (zh) | 2020-03-31 | 2020-03-31 | 用于域间分段路由的传输端点分段 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11398972B2 (zh) |
EP (1) | EP3890253B1 (zh) |
CN (1) | CN113826362B (zh) |
WO (1) | WO2021195992A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113746729B (zh) * | 2020-05-28 | 2023-03-10 | 华为技术有限公司 | 绑定段标识的处理方法及设备 |
CN114500001B (zh) * | 2021-12-31 | 2024-04-26 | 网络通信与安全紫金山实验室 | 通信方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070043574A (ko) * | 2005-10-21 | 2007-04-25 | 삼성전자주식회사 | 아이피 터널링 경로 상의 터널 시그널링을 수행하는 방법및 장치 |
US8532107B1 (en) * | 2009-08-20 | 2013-09-10 | Juniper Networks, Inc. | Accepting packets with incomplete tunnel-header information on a tunnel interface |
WO2015144018A1 (zh) * | 2014-03-28 | 2015-10-01 | 华为技术有限公司 | 信息发送方法、装置及通信系统 |
JP2016046549A (ja) * | 2014-08-19 | 2016-04-04 | 日本電信電話株式会社 | 通信システム、識別子管理装置、及び識別子割り当て方法 |
CN107819682A (zh) * | 2016-09-14 | 2018-03-20 | 瞻博网络公司 | 防止与指定的转发器选择相关联的数据业务回路 |
CN109257278A (zh) * | 2017-07-12 | 2019-01-22 | 瞻博网络公司 | 用于非分段路由启用的路由器的分段路由标签交换路径 |
CN110061920A (zh) * | 2018-01-18 | 2019-07-26 | 中兴通讯股份有限公司 | 一种创建双向段路由隧道的方法、设备及存储介质 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7593377B2 (en) * | 2006-03-29 | 2009-09-22 | Cisco Technology, Inc. | Route optimization for a mobile IP network node in a mobile ad hoc network |
US9385945B2 (en) | 2012-10-05 | 2016-07-05 | Cisco Technology, Inc. | Identifying, translating and filtering shared risk groups in communications networks |
EP2922251A4 (en) * | 2012-12-09 | 2015-10-14 | Huawei Tech Co Ltd | PACKET DELIVERY METHOD, DEVICE AND DATA CENTER NETWORK |
US10447575B1 (en) * | 2012-12-27 | 2019-10-15 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US9537718B2 (en) * | 2013-03-15 | 2017-01-03 | Cisco Technology, Inc. | Segment routing over label distribution protocol |
US9825777B2 (en) * | 2015-06-23 | 2017-11-21 | Cisco Technology, Inc. | Virtual private network forwarding and nexthop to transport mapping scheme |
US10263881B2 (en) * | 2016-05-26 | 2019-04-16 | Cisco Technology, Inc. | Enforcing strict shortest path forwarding using strict segment identifiers |
CN109863725B (zh) * | 2016-08-15 | 2021-08-31 | 瑞典爱立信有限公司 | 基于最大分段标识符深度的分段路由方法及电子设备 |
KR102367053B1 (ko) * | 2017-07-13 | 2022-02-24 | 삼성전자주식회사 | 외부 전자 장치와 통신을 수행하기 위한 전자 장치 |
US10374831B2 (en) * | 2017-08-29 | 2019-08-06 | Futurewei Technologies, Inc. | Stitching multi-domain LSPs in hierarchical SDN architecture |
WO2019190699A1 (en) * | 2018-03-28 | 2019-10-03 | Futurewei Technologies, Inc. | Method and apparatus for preferred path route information distribution and maintenance |
CN110460522B (zh) * | 2018-05-08 | 2021-11-19 | 华为技术有限公司 | 组播数据传输方法、相关装置及系统 |
US11558288B2 (en) * | 2018-09-21 | 2023-01-17 | Cisco Technology, Inc. | Scalable and programmable mechanism for targeted in-situ OAM implementation in segment routing networks |
WO2020072778A1 (en) * | 2018-10-05 | 2020-04-09 | Futurewei Technologies, Inc. | Extending border gateway protocol link state for controller |
US11134002B2 (en) * | 2018-10-22 | 2021-09-28 | Cisco Technology, Inc. | Packet network interworking including segment routing |
US11388087B2 (en) * | 2019-10-09 | 2022-07-12 | Ciena Corporation | Label switched path (LSP) protection across multiple domains of a segment routing (SR) network |
US11563697B2 (en) * | 2020-02-24 | 2023-01-24 | Nokia Solutions And Networks Oy | Multiple label spaces in a label switched router |
-
2020
- 2020-03-31 CN CN202080001381.9A patent/CN113826362B/zh active Active
- 2020-03-31 WO PCT/CN2020/082527 patent/WO2021195992A1/en active Application Filing
- 2020-03-31 US US16/762,092 patent/US11398972B2/en active Active
- 2020-07-29 EP EP20188469.9A patent/EP3890253B1/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070043574A (ko) * | 2005-10-21 | 2007-04-25 | 삼성전자주식회사 | 아이피 터널링 경로 상의 터널 시그널링을 수행하는 방법및 장치 |
US8532107B1 (en) * | 2009-08-20 | 2013-09-10 | Juniper Networks, Inc. | Accepting packets with incomplete tunnel-header information on a tunnel interface |
WO2015144018A1 (zh) * | 2014-03-28 | 2015-10-01 | 华为技术有限公司 | 信息发送方法、装置及通信系统 |
JP2016046549A (ja) * | 2014-08-19 | 2016-04-04 | 日本電信電話株式会社 | 通信システム、識別子管理装置、及び識別子割り当て方法 |
CN107819682A (zh) * | 2016-09-14 | 2018-03-20 | 瞻博网络公司 | 防止与指定的转发器选择相关联的数据业务回路 |
CN109257278A (zh) * | 2017-07-12 | 2019-01-22 | 瞻博网络公司 | 用于非分段路由启用的路由器的分段路由标签交换路径 |
CN110061920A (zh) * | 2018-01-18 | 2019-07-26 | 中兴通讯股份有限公司 | 一种创建双向段路由隧道的方法、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
5G承载网分段路由技术研究;付易鹏;《数字通信世界》;20200301(第03期);全文 * |
C. Filsfils ; S. Sivabalan ; Cisco Systems等.Segment Routing Policy for Traffic Engineeringdraft-ietf-spring-segment-routing-policy-00.txt.《IETF 》.2018, * |
Also Published As
Publication number | Publication date |
---|---|
US20220045933A1 (en) | 2022-02-10 |
US11398972B2 (en) | 2022-07-26 |
CN113826362A (zh) | 2021-12-21 |
EP3890253B1 (en) | 2023-11-15 |
EP3890253A1 (en) | 2021-10-06 |
WO2021195992A1 (en) | 2021-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10382592B2 (en) | Segment routing label switched path for non-segment routing enabled routers | |
EP3648420B1 (en) | Enabling non-flexible-algorithm routers to participate in flexiblealgorithm routing protocols | |
US11743166B2 (en) | Provisioning non-colored segment routing label switched paths via segment routing policies in border gateway protocol | |
US10742599B2 (en) | Conflict resolution in segment routing | |
CN107528779B (zh) | 用于网络的方法、路由器以及存储介质 | |
US10630581B2 (en) | Dynamic tunnel report for path computation and traffic engineering within a computer network | |
CN113452610B (zh) | 跨城域网的无缝端到端分段路由的方法及区域边界路由器 | |
EP3754914B1 (en) | Class-based traffic engineering in an ip network | |
US11425056B1 (en) | Dynamic computation of SR-TE policy for SR-enabled devices connected over non-SR-enabled devices | |
CN113826362B (zh) | 用于域间分段路由的传输端点分段 | |
EP3975489A1 (en) | Label deduction with flexible-algorithm | |
US11303549B2 (en) | Segmented traceroute for segment routing traffic engineering | |
US10554543B1 (en) | Migrating data traffic between label switched paths (LSPs) based on per-LSP protocol priority value | |
US11824763B2 (en) | Filtering topologies for path computation in massively scaled networks | |
EP3422645B1 (en) | Conflict resolution in segment routing | |
EP3913868A1 (en) | Segmented traceroute for segment routing traffic engineering |
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 |