CN113347091A - 灵活算法感知边界网关协议前缀分段路由标识符 - Google Patents
灵活算法感知边界网关协议前缀分段路由标识符 Download PDFInfo
- Publication number
- CN113347091A CN113347091A CN202010378630.8A CN202010378630A CN113347091A CN 113347091 A CN113347091 A CN 113347091A CN 202010378630 A CN202010378630 A CN 202010378630A CN 113347091 A CN113347091 A CN 113347091A
- Authority
- CN
- China
- Prior art keywords
- bgp
- prefix
- fad
- node
- sid
- 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.)
- Granted
Links
- 238000004422 calculation algorithm Methods 0.000 title abstract description 41
- 238000000034 method Methods 0.000 abstract description 104
- 230000008569 process Effects 0.000 abstract description 62
- 208000036758 Postinfectious cerebellitis Diseases 0.000 description 16
- 238000004891 communication Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 9
- 230000011218 segmentation Effects 0.000 description 8
- 239000000284 extract Substances 0.000 description 7
- 238000005538 encapsulation Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 208000015756 familial Alzheimer disease Diseases 0.000 description 5
- 235000019162 flavin adenine dinucleotide Nutrition 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 241000465502 Tobacco latent virus Species 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 239000004744 fabric Substances 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000009432 framing Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- ABEXEQSGABRUHS-UHFFFAOYSA-N 16-methylheptadecyl 16-methylheptadecanoate Chemical compound CC(C)CCCCCCCCCCCCCCCOC(=O)CCCCCCCCCCCCCCC(C)C ABEXEQSGABRUHS-UHFFFAOYSA-N 0.000 description 1
- 241000764238 Isis Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 238000005417 image-selected in vivo spectroscopy Methods 0.000 description 1
- 238000012739 integrated shape imaging system Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 230000003245 working effect Effects 0.000 description 1
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
- 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/56—Routing software
- H04L45/566—Routing instructions carried by the data packet, e.g. active networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开的实施例涉及灵活算法感知边界网关协议前缀分段路由标识符。在使用边界网关协议(BGP)通告的分段路由(SR)前缀分段标识符(SID)的上下文中,为由所述BGP路由选择过程所使用的灵活算法提供了支持。
Description
技术领域
本说明书涉及通信网络。更具体地,本说明书涉及信令网络信息,该信令网络信息将被用于在通信网络(诸如采用分段路由(SR)和边界网关协议(BGP)的通信网络)中确定(例如选择)用于转发数据的最佳路径。
背景技术
§1.本发明的背景技术
§1.1本发明的技术领域
本说明书涉及通信网络。更具体地,本说明书涉及信令网络信息,该信令网络信息将被用于在通信网络(诸如采用分段路由(SR)和边界网关协议(BGP)的通信网络)中确定(例如选择)用于转发数据的最佳路径。
§1.2背景信息
尽管本领域技术人员很好地理解了分段路由(SR)和边界网关协议(BGP),但是为了读者的方便,下文会对它们分别进行介绍。
§1.2.1分段路由
互联网最初被设计成通过成本最低的路径提供尽可能最好的连接性。然而,在当今的互联网中,许多应用需要的不仅仅是通过成本最低的路径提供尽可能最好的连接性。如今,网络运营者的任务是递送高级服务,诸如大规模的业务工程和快速重新路由。为了大规模地递送这些高级服务,网络运营者必须降低网络复杂性。分段路由(SR)提供了用以业务引导的创新途径。分段路由可以被应用于长期问题,诸如业务工程和快速重新路由。当被应用于这些问题时,SR可以简化路由协议、网络设计和网络操作。
分段路由(也被称为联网中的源分组路由(“SPRING”))是一种控制面架构,其使入口路由器能够在不依赖于网络中的中间节点的情况下引导分组通过网络中的具体节点集和链路集,以确定其应采取的实际路径。在该上下文中,术语“源”意味着采用显式路由的点。在请求评论8402(2018年7月,互联网工程任务组)(被称为“RFC 8402”,并通过引用并入本文)中的“Segment Routing Architecture(分段路由架构)”中定义了分段路由。SPRING通过使用软件定义的网络(“SDN”)控制器实现网络的自动化,该软件定义的网络控制器用于在广域网(“WAN”)分组网络中进行业务引导和业务工程。
分段路由利用了源路由范例。节点通过被称为“分段(segment)”的有序指令列表来引导分组。例如,入口路由器(也被称为“头端路由器”)可以通过用包含隧道的适当组合的分段使分组前置来引导分组通过期望的节点集和链路集。
§1.2.1.1 SR域
SR域是参与SR协议的节点的集合。在SR域内,节点可以执行入口、中转或出口过程。图1描绘了一种网络,在该网络中,源节点将分组发送至目的地节点。源节点和目的地节点驻留于SR域外部,但是它们之间的路径遍历SR域。更具体地,当分组到达SR入口节点(R1)时,入口节点使该分组符合策略。策略可以使分组与SR路径相关联。策略包括匹配条件和动作。如果分组满足匹配条件,则SR入口节点(R1)可以将分组封装在SR隧道中。SR隧道遍历到出口节点(R6)的SR路径。
SR路径可以被工程设计成满足任何数量的约束(例如最小链路带宽、最大路径时延)。虽然SR路径可以遵循到出口节点的成本最低的路径,但是约束条件可能导致SR路径遵循另一路径。
源节点和SR入口节点可以驻留在独立的硬件平台上(例如,分别在膝上型电脑和路由器上),或源节点和SR入口节点可以驻留在相同的硬件上(例如,分别在虚拟机和管理程序上)。类似地,SR出口节点和目的地节点可以驻留在独立的硬件平台上,或驻留在单个平台上。在不太典型的配置中,源节点驻留于SR域内。在这种情况下,源节点也是SR入口节点,因为它执行SR入口过程。类似地,目的地节点可以驻留在SR域内,在这种情况下,目的地节点也是SR出口节点,因为它执行SR出口过程。
§1.2.1.2 SR路径
SR路径是将SR入口节点连接到SR出口节点的分段的有序列表。尽管SR路径可以遵循从入口到出口的成本最低的路径,但是它也可以遵循另一路径。
不同的SR路径可以共享同一分段。例如,参照图2,路径A将入口节点A连接到出口节点Z,而路径B将入口节点B连接到同一出口节点Z。路径A和B都遍历分段3。
当SR入口节点将分组封装在SR隧道中时,它会将相关联的分段列表编码在隧道报头中。然后,它将分组转发到下游。中转节点处理隧道报头,从而将分组从当前分段转发到下一分段。由于SR入口节点在隧道报头中编码路径信息,因此中转节点不需要维护有关其支持的每个路径的信息。相反,仅要求中转节点处理隧道报头,从而将分组从当前分段转发到下一分段。这是SR的主要好处。更具体地,由于不需要中转节点来维护路径信息,因此消除了与维护该信息相关联的开销,简化了路由协议,改善了缩放特性,并且网络操作变得问题更少。
§1.2.1.3 SR分段和分段类型
SR分段是使分组遍历网络拓扑的一部分的指令。虽然分段(即指令)使分组遍历网络拓扑的一部分,但是它不同于网络拓扑的该部分。SR定义了许多不同的SR分段类型。其中有“邻接分段”和“前缀分段”。下文描述这些类型的分段中的每一个。
§1.2.1.3.1邻接分段
邻接分段是使分组遍历指定的链路(即,与IGP邻接(adjacency)相关联的链路)的指令。图3描绘了将入口节点R1连接到出口节点R6的SR路径。路径包含以下邻接分段:(1)分段1,在R1上被实例化,使分组遍历链路R1->R2;(2)分段2,在R2上被实例化,使分组遍历链路R2->R3;以及分段3,在R3上被实例化,使分组遍历链路R3->R6。如果任何上文所提到的链路变得不可用,则相关联的邻接分段也将不可用。因此,如果任何上文所提到的邻接分段变得不可用,则整个路径也将变得不可用。
因此,邻接分段是被严格转发的单跳隧道,其在两个节点之间的特定链路上承载分组,而不考虑链路成本。
§1.2.1.3.2前缀分段
前缀分段是使分组遍历到达节点或前缀的成本最低的路径(或使用所标识的算法来确定的路径)的指令。参照图4A,假定所有链路都被配置有相同的内部网关协议(IGP)度量,并且SR路径应是成本最低(因此也是)的最短路径。SR路径将入口节点R1连接到出口节点R6,并包含以下前缀分段:(1)分段1,在R1上被实例化,使分组遍历从R1到R2的成本最低的路径;(2)分段2,在R2和R3上被实例化,使分组遍历从实例化节点到R6的成本最低的路径。因此,当链路全部可用时,SR路径引导分组通过上文所提到的链路和分段。
参照图4B,假定链路R1->R2变得不可用。当这种情况发生时,网络在R1与R2之间建立新的成本最低的路径。该新的成本最低的路径包括链路R1->R4和R4->R2。由于网络已经在R1与R2之间建立了新的成本最低的路径,因此分段1仍然可用,并使分组遍历新的成本最低的路径。分段2的行为不被改变。因此,路径现在遍历链路R1->R4、R4->R2、R2->R3和R3->R6。
因此,前缀分段是多跳隧道,其使用等成本的多跳感知最短路径链路以到达前缀。前缀分段标识符(SID)支持IPv4和IPv6前缀两者。节点分段是前缀分段的特殊情况,其使用两个特定节点之间的最短路径链路。
§1.2.1.3.3任播分段
IGP任播分段是标识路由器集的IGP前缀分段。任播分段基于朝向任播集的最近节点的等成本多路径感知(ECMP感知)最短路径来执行转发。在任播组内,所有路由器都通告具有相同分段标识符(SID)值的相同前缀,这有助于负载平衡。因此,任播分段也是一种前缀分段,其标识路由器集以通告具有相同SID值的相同前缀。
§1.2.1.4 SR多协议标签交换(MPLS)
在SR-MPLS中,SR路径被编码为MPLS标签栈,其中每个标签栈条目表示SR路径中的分段。以下描述了MPLS标签如何被用于编码邻接和前缀分段。
§1.2.1.4.1使用MPLS标签来编码邻接分段
参照图5,SR路径将R1连接到R4。SR路径包含三个邻接分段。分段1使分组遍历链路R1->R2,分段2使分组遍历链路R2->R3,并且分段3使分组遍历链路R3->R4。当R1从SR域外部接收到分组时,它将对分组进行策略处理。策略可以使R1通过图5中所示出的SR路径转发分组。当这种情况发生时,R1采用包含两个条目的MPLS标签栈。栈的顶部处的条目表示分段2,并承载MPLS标签1002。栈的底部处的条目表示分段3,并承载MPLS标签1003。
采用MPLS标签栈后,R1通过分段1转发所封装的分组(即,链路R1->R2)。当分组到达R2时,R2从标签栈中提取顶部标签(即1002),并在其转发信息库(“FIB”)中搜索对应条目。对应FIB条目包括指令(即POP)和下一跳(即R3)。因此,R2从标签栈中弹出最上部标签,并通过分段2转发分组(即,链路R2->R3)。
当分组到达R3时,R3从剩余标签栈中提取标签(即1003),并在其FIB中搜索对应条目。对应FIB条目包括指令(即POP)和下一跳(即R4)。因此,R3从标签栈中弹出剩余条目,并通过分段3转发分组(即,链路R3->R4)。如图5中所示,在遍历SR路径之后,分组在没有MPLS封装的情况下到达R4。
§1.2.1.4.2使用MPLS标签来编码前缀分段
在图6中,SR路径经由R4将R1连接到R7。SR路径包含两个前缀分段。分段1是前缀分段,该前缀分段使分组遍历从R1到R4的(例如成本最低的)路径。分段2是前缀分段,该前缀分段使分组遍历从R4到R7的(例如成本最低的)路径。在该网络中,假定所有链路都配置有相同的IGP度量(例如10)。因此,从R1到R4的第一分段的成本最低的路径遍历链路R1->R2、R2->R3和R3->R4,而从R4到R7的第二分段的成本最低的路径遍历链路R4->R8和R8->R7。
当R1从SR域外部接收到分组时,它将对分组进行策略处理。策略可以使R1通过图6中所示出的SR路径转发分组。当这种情况发生时,R1采用包含两个条目的MPLS标签栈。标签栈的顶部条目表示分段1并承载标签2001。标签栈的底部条目表示分段2并承载标签2002。采用MPLS标签栈后,R1经由链路R1->R2将所封装的分组转发到分段1中。
当分组到达R2时,R2从标签栈中提取顶部标签(即2001),并在其FIB中搜索对应条目。对应FIB条目包括指令(即SWAP-3001)和下一跳(即R3)。因此,R2用新的值(即3001)覆盖最上部的标签,并将分组转发到R3。
当分组到达R3时,R3从标签栈中提取顶部标签(即3001),并在其FIB中搜索对应条目。对应FIB条目包括指令(即POP)和下一跳(即R4)。因此,R3从标签栈中弹出最顶部的条目,并经由链路R3-->R4将分组转发到分段2中。
当分组到达R4时,R4从标签栈中提取剩余标签(即2002),并在其FIB中搜索对应条目。对应FIB条目包括指令(即SWAP-3002)和下一跳(即R8)。因此,R4用新的值(即3002)覆盖剩余标签,并将分组转发到R8。
当分组到达R8时,R8从标签栈中提取剩余标签(即3002),并在其FIB中搜索对应条目。对应FIB条目包括指令(即POP)和下一跳(即R7)。因此,R8从标签栈弹出剩余条目,并在没有MPLS封装的情况下将分组转发到R7。
§1.2.1.4.3倒数第二跳弹出(PHP)和显式空标签
在上文示例中,每个分段都执行PHP过程。即,当分组遍历分段时,该分段的倒数第二个节点会弹出与该分段相关联的标签。如果SR路径包含另一尚待遍历的分段,则当前分段的出口节点也是下一个分段的入口节点。在该情况下,分组到达该节点,其中下一个分段的标签被露出在栈的顶部上。如果SR路径不包含另一个尚待遍历的分段,则分段出口节点也是路径出口节点。在该情况下,分组在没有MPLS封装的情况下到达路径出口节点。
在一些情况下,SR路径中的最终链路可能无法在没有MPLS封装的情况下承载分组。例如,分组可以是IPv6,而链路仅支持IPv4。为了防止该问题,SR入口节点可以将MPLS显式空标签添加到MPLS标签栈的顶部。
当最终分段中的倒数第二个节点弹出与最终分段相关联的标签时,它将露出显式空标签。然后,它将分组转发到路径出口节点。路径出口节点弹出显式空标签,并继续处理分组。
§1.2.1.5分段标识符(SID)的配置和分布
相对于图5和图6所描述的前述示例假定MPLS标签是分布式的,并且每个节点的FIB都被填充。本质上,分段路由采用内部网关协议(“IGP”)(如中间系统(“IS-IS”)和开放式最短路径优先(“OSPF”))来通告两种类型的网络分段或隧道:(1)被严格转发的单跳隧道,该单跳隧道通过两个节点之间的特定链路承载分组,而不考虑链路成本(被称为“邻接分段”,其在上文的§1.2.1.3.1中被描述),以及(2)多跳隧道,该多跳隧道使用两个特定节点之间的最短路径链路(被称为“节点分段”,其在上文的§1.2.1.3.2中被描述)。
每个分段与标识符相关联,该标识符被称为分段标识符(“SID”)。如上所述,分段的有序列表被编码为标签的栈。分段可以表示任何拓扑或基于服务的指令。分段可以具有分段路由域内的分段路由节点或全局节点的局部语义。分段路由执行通过任何拓扑路径和服务链的流,同时仅在到分段路由域的入口节点处保持每流状态。分段路由可以被直接应用于MPLS架构而在转发面上没有改变。分段被编码为MPLS标签。分段的有序列表被编码为标签的“栈”或“标签栈”。将被处理的分段在栈的顶部(即,标签栈的最外面的标签)上。在分段完成时,相关标签从栈中“被弹出”(即被移除)。
分段路由可以通过新型的路由扩展报头被应用于IPv6架构。分段被编码为IPv6地址。分段的有序列表在路由扩展报头中被编码为IPv6地址的有序列表。要处理的分段由路由扩展报头中的指针指示。在分段完成时,指针被递增。
§1.2.1.5.1可配置分段路由全局块
如上所述,分段被编码为MPLS标签。分段的有序列表被编码为标签的栈。节点标签管理器基于被配置用于源分组路由的索引范围来为分段路由域中的每个节点分派标签。基于由节点标签管理器所管理的动态标签范围的可用性而将这些标签分派到节点分段。分段路由全局块(“SRGB”)是分段路由中所使用的标签值的范围。可以针对IS-IS和OSPF协议来配置可用的SRGB标签范围,以使标签在分段路由域中是可预测的。因此,基于动态标签范围的可用性来为分段路由域中的每个节点分派标签,并且SRGB是针对分段路由所保留的标签值的范围。SID可以被提供作为将被添加到SRGB基本值以获得标签值的索引。
IS-IS协议为每个邻接、等级和地址族创建邻接分段(针对IPv4和IPv6各一个)。MPLS标签被分派用于每个被创建的邻接分段。这些标签在分段的邻接状态变为向上状态之后被分派。OSPF协议为每个邻接创建邻接分段。
§1.2.2边界网关协议(“BGP”)
在网络通信系统中,例如,设备(诸如路由器)使用协议来交换网络信息。路由器通常计算被用于朝向目的地转发数据分组的路由。一些协议(诸如边界网关协议(“BGP”))允许不同自治系统(“AS”)中的路由器交换可达性信息。
请求评论4271(互联网工程任务组,2006年1月)(被称为“RFC 4271”,并通过引用并入本文”)中的文档“A Border Gateway Protocol 4(BGP-4)(边界网关协议4(BGP-4))”描述了边界网关协议(“BGP”)的一种实现。BGP是一种自治系统间路由协议。以下是指RFC4271中所描述的BGP版本。BGP语音系统的主要功能是与其他BGP系统交换网络可达性信息。该网络可达性信息包括关于可达性信息遍历的自治系统(AS)列表的信息。该信息足以用于构建AS连接性图,可以根据该AS连接性图来修剪路由环路,并且在AS级别上,一些策略决定可以被执行。
通常假定BGP发言者(speaker)仅向其对等方通告自己使用的那些路由(在该上下文中,如果BGP发言者是最优选的BGP路由并且被用于转发,则称该BGP发言者“使用”了BGP路由)。
通常,经由BGP所交换的路由信息仅支持基于目的地的转发范例,这假定路由器仅基于分组的IP报头中所承载的目的地地址来转发分组。这进而反映了可以(和不可以)使用BGP来执行的策略决定集。
BGP使用传输控制协议(“TCP”)作为其运输协议。这种情况消除了对实施显式更新分片、重传、确认和排序的需要。当TCP连接被形成于两个系统之间时,它们交换消息以打开并确认连接参数。初始数据流是BGP路由表中导出(export)策略所允许的部分,被称为“Adj-Rib-Out”。
随着路由表改变,增量更新被发送。BGP不需要定期刷新路由表。为了允许本地策略改变在不重置任何BGP连接的情况下具有正确的效果,BGP发言者应(a)在连接的持续时间内保留由其所有对等方通告给它的路由的当前版本,或(b)利用路由刷新扩展。
KEEPALIVE消息可以被周期性地发送以确保连接处于活动状态。响应于错误或特殊情况而发送NOTIFICATION消息。如果连接遇到错误情况,则NOTIFICATION消息被发送,并且连接被关闭。
不同AS中的BGP对等方被称为外部对等方,而同一AS中的BGP对等方被称为内部对等方。内部BGP和外部BGP通常分别被缩写为iBGP和eBGP。如果BGP会话被建立在不同自治系统中的两个邻近设备(即两个对等方)之间,则该会话是外部BGP(eBGP),并且如果会话被建立在同一AS中的两个邻近设备之间,则该会话是内部BGP(iBGP)。
如果特定的AS具有多个BGP发言者,并且正在为其他AS提供中转服务,则必须注意确保AS内路由的一致视图。AS内所使用的IGP提供了AS的内部路由的一致视图。在一些情况下,假定通过使AS内的所有BGP发言者彼此保持内部BGP(“iBGP”)来提供AS外部的路由的一致视图。
许多路由协议已经被设计以在单个管理域内运行。这些被统称为“内部网关协议”(“IGP”)。通常,AS内的每个链路被分配特定的“度量”值。然后,两个节点之间的路径可以被分配“距离”或“成本”,这是属于该路径的所有链路的度量的总和。IGP通常选择任何两个节点之间的“最短”(最小距离或成本最低的)路径,这可能受制于以下约束:如果IGP提供多个“区域”,则它可能更偏好区域内的最短路径而不是遍历超过一个区域的路径。通常,网络的管理具有某一路由策略,该路由策略可以通过以这种方式选择最短路径来近似。
如与IGP区别的BGP被设计以在任意多个管理域(“自治系统”或“AS”)上运行,并且各个管理之间的协调有限。iBGP和IGP两者通常在单个AS的设备上同时运行并且彼此互补。将来自eBGP会话的网络目的地可达性导入(import)到iBGP会话的BGP发言者在iBGP更新中设置BGP下一跳属性。BGP NH属性是IP地址。在以上iBGP更新的接收者之后,AS内的其他iBGP发言者向IGP咨询BGP NH的可达性及其成本。如果BGP NH不可达,则整个iBGP更新无效。否则,在BGP最佳路径选择期间考虑到达BGP NH的IGP成本。
§1.2.2.1示例环境
图7A图示了可以在其中使用本发明的示例环境700。示例环境700包括多个自治系统(AS 710a、710b...710c)。AS 710a至710c包括BGP路由器705a至705e。AS内的BGP路由器通常运行iBGP,而与另一AS中的BGP路由器对等的BGP路由器通常运行eBGP。如图所示,BGP路由器705b和705c是BGP会话(被描绘为720)中的对等方(也被称为“BGP发言者”)。在BGP会话720期间,BGP发言者705b和705c可以交换BGP UPDATE消息。BGP UPDATE消息790的细节在下文§1.2.1.2中被描述。
§1.2.2.2 BGP“UPDATE”消息
在BGP中,UPDATE消息被用于在BGP对等方之间转送路由信息。UPDATE消息中的信息可以被用于构造描述各种自治系统的关系的图形。更具体地,UPDATE消息被用于向对等方通告共享(多个)路径属性值的公共集的可行路由(或从服务撤回多个不可行路由)。UPDATE消息可以同时通告可行路由并从服务撤回多个不可行路由。
UPDATE消息790包括固定大小的BGP报头,并且还包括其他字段,如图7中所示。(要注意,一些所示出的字段可能不会存在于每个UPDATE消息中)。参照图7A,“所撤回的路由长度”字段730是2个八位位组的无符号整数,其以八位位组指示撤回路由字段740的总长度。其值允许网络层可达性信息(“NLRI”)字段770的长度被确定,如下文所指定。值为0指示没有路由正从服务中被撤回,并且WITHDRAWN ROUTES字段740不存在于该UPDATE消息790中。
“所撤回的路由”字段740是可变长度字段,其包含用于正从服务中被撤回的路由的IP地址前缀的列表。每个IP地址前缀被编码为格式为<长度,前缀>的2元组740'。“长度”字段742指示IP地址前缀的以比特为单位的长度。长度为零指示与所有IP地址匹配的前缀(其中其前缀本身具有零个八位位组)。“前缀”字段744包含IP地址前缀,后跟使字段的末端落在八位位组边界上所需的最小拖尾(trailing)比特数。注意,拖尾比特的值无关紧要。
仍参照图7A,“总路径属性长度”字段750是2个八位位组的无符号整数,其以八位位组指示路径属性字段760的总长度。其值允许网络层可达性信息(“NLRI”)字段770的长度被确定。值为0指示该UPDATE消息中既不存在网络层可达性信息字段770,也不存在路径属性字段760。
除了仅承载所撤回的路由的UPDATE消息之外,“路径属性”字段760是在每个UPDATE消息中存在的路径属性的可变长度序列。每个路径属性是可变长度的三元组<属性类型,属性长度,属性值>。“属性类型”是由属性旗标八位位组和随后的属性类型代码八位位组组成的双八位位组的字段。
最后,“网络层可达性信息”字段770是包含互联网协议(“IP”)地址前缀的列表的可变长度字段。网络层可达性信息的长度(以八位位组为单位)没有被显式编码,但是可以被计算为:UPDATE消息的长度-23-总路径属性长度(召回(recall)字段750)-所撤回的路由长度(召回字段730),其中UPDATE消息长度是在固定大小的BGP报头中所编码的值,总路径属性长度和所撤回的路由长度是在UPDATE消息的可变部分中所编码的值,并且23是固定大小的BGP标头、总路径属性长度字段和所撤回的路由长度字段的组合长度。
可达性信息被编码为格式为<长度,前缀>770'的一个或多个2元组,其字段在图7A中被示出并在此处被描述。“长度”字段772指示IP地址前缀的以比特为单位的长度。长度为零指示与所有IP地址匹配的前缀(其中其前缀本身具有零个八位位组)。“前缀”字段774包含IP地址前缀,后跟足以使字段的末端落在八位位组边界上的拖尾比特。注意,拖尾比特的值无关紧要。
参照图7B,请求评论4760(互联网工程任务组,2007年1月)(被称为“RFC 4760”,并通过引用并入本文)中的“Multiprotocol Extensions for BGP-4(针对BGP-4的多协议扩展)”描述了一种使用BGP UPDATE消息700的(多个)路径属性字段760来承载针对多个网络层协议(诸如例如IPv6、IPX、L3VPN等)的路由信息。更具体地,RFC 4760定义了两个新的路径属性:(1)多协议可达NLRI(“MP_Reach_NLRI”);以及(2)多协议不可达NLRI(“MP_Unreach_NLRI”)。第一个新的路径属性被用于承载可达目的地集以及将用于转发到这些目的地的下一跳信息,而第二个新的路径属性被用于承载不可达目的地集。下文仅讨论MP_Reach_NLRI。
参照图7B,MP_Reach_NLRI“路径属性”760'包括地址族标识符(“AFI”)(2个八位位组)字段761、后续地址族标识符(“SAFI”)(1个八位位组)字段762、下一跳网络地址(1个八位位组)字段763的长度、下一跳的网络地址(可变)字段764、保留的(1个八位位组)字段765和网络层可达性信息(可变)字段766。AFI和SAFI字段761和762结合起来标识:(1)下一跳字段764中所承载的地址必须属于的网络层协议集;(2)编码下一跳的地址的方式;以及(3)NLRI字段766的语义。下一跳字段764的网络地址包含到目的地系统的路径上的下一路由器的网络地址。NLRI字段766列出了针对在路径属性760中正在被通告的可行路由的NLRI。即,MP_Reach_NLRI 760'路径属性中所承载的下一跳信息定义了路由器的网络层地址,该地址应被用作到BGP UPDATE消息中的MP_NLRI属性中所列出的(多个)目的地的下一跳。
如果目的地共享(多个)属性值的同一集合,则UPDATE消息最多可以通告一个路径属性(召回字段760)集,但是可以通告多个目的地。被包含在给定的UPDATE消息中的所有路径属性适用于UPDATE消息的NLRI字段770中所承载的所有目的地。
如从上文对字段730和740的描述中应该明显的是,UPDATE消息可以列出要从服务中撤回的多个路由。每个这种路由被其目的地标识(被表示为IP前缀),该目的地在先前已经通告其的BGP发言者-BGP发言者连接的上下文中明确地标识该路由。
UPDATE消息可能仅通告将要从服务中被撤回的路由,在这种情况下,该消息将不包括路径属性760或网络层可达性信息770。相反,UPDATE消息可能仅通告可行路由,在这种情况下,不需要存在WITHDRAWN ROUTES字段740。UPDATE消息不应在WITHDRAWN ROUTES字段740和网络层可达性信息字段770或MP_REACH_NLRI路径属性字段766中的“NLRI”字段中包括相同的地址前缀。
§1.2.3使用BGP来将MPLS标签绑定到地址前缀
请求评论8277(互联网工程任务组,2017年10月)(被称为“RFC8277”,并通过引用并入本文)中的文档“Using BGP to Bind MPLS Labels to Address Prefixes(使用BGP来将MPLS标签绑定到地址前缀)”指定以下过程:用于使用BGP来通告所指定的路由器已将所指定的MPLS标签或被组织为标签栈的连续部分的MPLS标签的所指定序列绑定到所指定的地址前缀。参照图7B到图7D,这可以通过发送BGP UPDATE消息来完成,该消息的NLRI字段766/766'/766”包含前缀778/778'和(多个)MPLS标签774/774'两者,并且该消息的下一跳字段764标识将前缀778/778'绑定到(多个)标签774/774'的节点。
更具体地,参照图7C,RFC 8277的§2.2描述了在不使用多个标签的能力时的NLRI编码。如果尚未在给定的BGP会话上发送和接收多个标签的能力,则在其MP_REACH_NLRI属性包含RFC 8277的§2中所指定的AFI/SAFI组合之一的该会话的BGP UPDATE中,NLRI字段如图7C中所示被编码。更具体地,8比特长度字段722d指定NLRI字段766'的其余部分的长度(以比特为单位)。注意,长度将始终为20(标签字段中的比特数)加3(RSV字段中的比特数)加1(S字段中的比特数)加前缀的以比特为单位的长度的总和,四舍五入到八位位组的最接近的整数。20比特标签字段774包含MPLS标签值。3比特RSV字段776应在传输时被设置为零,且在接收时被忽略。1比特S字段777应在传输时被设置为一,且在接收时被忽略。
UPDATE消息不仅通告前缀778与标签774之间的绑定;它还经由MP_REACH_NLRI属性的下一跳字段764的网络地址中所标识的节点来通告到前缀的路径。
此外,参照图7D,RFC 8277的§2.3指定了如果已在给定的BGP会话上发送和接收了多个标签的能力,则在使用多个标签的能力时的NLRI编码。在其MP_REACH_NLRI属性包含RFC 8277的§2中所指定的AFI/SAFI组合之一的该会话的BGP UPDATE中,NLRI字段766”如图7D中所示被编码。更具体地,8比特长度字段772’指定NLRI字段766”的其余部分的长度(以比特为单位)。注意,针对每个标签,长度被增加了24比特(标签字段774'中的20比特加RSV字段776'中的3比特加S字段777'中的1比特)。如图所示,多个条目780可以各自包括:20比特标签字段774',其包含MPLS标签值;3比特RSV字段776',其应在传输时被设置为零,且在接收时被忽略;以及1比特S字段777'。在除了最后一个标签之外的所有标签中(即,除了紧接在前缀之前的标签之外的所有标签中),S比特777'被设置为0。在最后的标签中,S比特777'被设置为1。注意,在最后的标签中所设置的S比特被用于正确解析NLRI。
UPDATE消息不仅通告前缀778’与标签774’之间的绑定;它还经由MP_REACH_NLRI属性的下一跳字段764中所标识的节点来通告到前缀778’的路径。
RFC 8669(互联网工程任务组,2019年12月)(被称为“RFC 8669”,并通过引用并入本文)中Previdi、Filsfils和Lindem Ed等人编著的文档“Segment Routing PrefixSegment Identifier Extensions for BGP(针对BGP的分段路由前缀分段标识符扩展)”定义了可选的中转性BGP属性,以用于宣布BGP前缀分段标识符(BGP前缀SID)信息和针对SR-MPLS SID的规范。按照RFC 8669的§3,BGP前缀SID属性的属性类型代码=40。它定义BGP前缀SID属性为被编码为“类型/长度/值”元组的元素集(即,TLV集)。所有BGP前缀SID属性TLV将以8比特类型和16比特长度开始。图9A的不包括字段935的部分图示了与RFC 8669一致的示例标签索引TLV。仅当SR被应用于MPLS数据面时才使用标签索引TLV。标签索引TLV存在于附接到IPv4/IPv6带标签的单播前缀(RFC 8277)的BGP前缀SID属性中。当接收到其他BGPAFI/SAFI组合时该标签索引TLV将被忽略。8比特类型字段905被设置为1。16比特长度字段910被设置为7,其是TLV的值部分的以八位位组为单位的总长度。TLV还包括8比特的保留字段915、16比特的旗标字段920和32比特的标签索引字段925/930。标签索引字段925/930承载表示SRGB空间中的索引值的值。如稍后将讨论的,可以在与本说明书一致的至少一些实施例中修改该数据结构。
按照RFC 8669 27的§5,BGP前缀SID属性可以被附接到BGP IPv4/IPv6标签单播前缀。(RFC 8277)为了防止BGP前缀SID属性的分布超出其预期的适用范围,属性过滤应被应用以移除在分段路由域的管理边界处的BGP前缀SID属性。
通告从其邻居之一接收到的路径的BGP发言者应通告在不进行修改的情况下随该路径接收到的BGP前缀SID,只要BGP前缀SID是可接受的。如果路径不带有BGP前缀SID属性,则发言者可以将BGP前缀SID附接到路径(如果被配置成这样做)。BGP前缀SID中存在的TLV的内容由配置来确定。
§1.2.4在使用BGP路径选择时的限制
考虑以下情况:BGP是网络中所使用的唯一路由协议。例如,数据中心经常使用没有内部网关协议(IGP)的BGP。在这种情况下,BGP路由器与通过链路邻接建立的eBGP单跳会话互连。使用BGP协议NLRI来交换目的地可达性(回顾,例如图7A和图7B的760或766)。在每一跳上,BGP路径选择标准被用于确定到达特定目的地(目的地前缀)的最佳路径。
请求评论7752(互联网工程任务组,2016年3月)(被称为“RFC7752”,并通过引用并入本文)中H.Gredler Ed编著的文档“North-Bound Distribution of Link-State andTraffic Engineering(TE)Information Using BGP(使用BGP的链路状态和业务工程(TE)信息的北界分布)”描述了扩展BGP-LS以承载针对(多个)IGP链路的每链路(多个)业务工程(TE)属性。draft-hegde-idr-bgp-ls-epe-inter-as-02(互联网工程任务组,2019年11月1日)(被称为“对冲草案”,并通过引用并入本文)中的S.Hedge等人的文档“BGP-LSExtensions for Inter-AS TE using EPE based mechanisms(使用基于EPE的机制进行AS间TE的BGP-LS扩展)”提出了用于承载针对(多个)BGP链路(例如,建立了eBGP邻接的链路)的TE属性的扩展。这种扩展允许任何BGP路由器填充(多个)外部BGP(eBGP)链路的链路状态数据库(LSDB),该外部BGP链路承载TE属性,诸如例如Admin组(也被称为链路“颜色”)。
如上文已经讨论的,RFC 8669提出了扩展BGP以承载针对目的地(目的地前缀)的SR的BGP SR前缀SID TLV。(回顾,例如图9A。)接收具有SR前缀SID TLV的NLRI的BGP对等方可以与其本地SRGB一起为前缀分派相应的本地标签,并朝向邻居设置传出标签。
有时期望允许BGP目的地经由特定路径计算算法和/或(多个)约束所执行的(多个)不同路径可到达。例如,考虑被划分为多个不相交平面(例如,RED和GREEN)的网络。目的地(目的地前缀)可以指示其希望经由特定平面(例如,RED或GREEN平面)严格可到达。当前的BGP路径选择标准(例如,基于LOCAL-PREF、MED等)无法解决该要求。
如从前文应当了解,允许经由BGP所通告的目的地前缀SID提供被用于选择(例如,计算)到其的路径的信息将是有用的。
发明内容
§2.本发明的发明内容
与本描述一致的示例实施例允许经由BGP所通告的目的地前缀SID提供被用于通过以下方式选择(例如,计算或以其他方式确定)到其的路径的信息:(a)由边界网关协议(BGP)对等节点接收与前缀相关联的分段路由(SR)前缀分段标识符(SID);(b)由BGP对等节点接收灵活算法定义(FAD);以及(c)由BGP对等节点使用所接收的FAD确定朝向由前缀标识的目的地的路由中的下一跳。
在至少一些示例方法中,SR前缀SID和前缀两者均被承载为BGP更新消息的网络层可达性信息(NLRI)。在至少一些这种方法中,边界网关协议(BGP)对等节点接收FAD作为承载SR前缀SID和前缀的BGP NLRI的一部分。例如,BGP SR前缀SID可以被编码为NLRI的类型长度值(TLV),并且FAD可以被编码为SR前缀SID TLV的子TLV。
至少一些示例方法还包括:(d)由BGP对等节点确定其是否具有到由前缀所标识的节点的可行路径;以及(e)响应于该BGP对等节点具有到由SR前缀SID中所承载的前缀标识的节点的可行路由的确定,将该前缀的可达性信息传播到上游BGP对等方,否则,响应于该BGP节点不具有到由该前缀标识的节点的可行路由的确定,不将该前缀的可达性信息传播到上游BGP对等方。在至少一些这种示例方法中,SR前缀SID和前缀两者均被承载为BGP更新消息的网络层可达性信息(NLRI)。
在一些示例方法中,BGP对等节点接收FAD和BGP更新消息的BGP链路状态(LS)节点网络层可达性信息(NLRI)字段中的FAD标识符,并且SR前缀SID包括FAD标识符。这种示例方法还包括:(d)由BGP对等节点在其链路状态数据库中存储FAD和FAD标识符;(e)响应于接收到SR前缀SID,使用被包括在SR前缀SID中的FAD标识符来找到被存储在其链路状态数据库中的FAD。在至少一些这种示例方法中,SR前缀SID被编码在BGP更新消息的BGP网络层可达性信息(NLRI)字段的类型长度值(TLV)中。在一些这种示例方法中,FAD标识符具有介于0与255之间的值。
在一些示例方法中,BGP被用于选择朝向数据中心的对等节点的(多个)可行路径。
在一些示例方法中,BGP对等节点不运行内部网关协议(IGP)。
在一些示例方法中,FAD包括至少一个路径计算约束。
在一些示例方法中,BGP对等节点接收至少两个FAD,并且BGP对等节点使用至少两个FAD确定到SR前缀SID中所承载的前缀的至少两条不同路径。
一些示例方法还包括:(d)为该前缀分派本地标签;以及(e)使本地标签与针对前缀所确定的下一跳相关联。
在一些示例方法中,由前缀标识的节点是用于访问运输网络的提供方边缘设备(PE)。
前述方法中的任何一种可以在数据转发设备(诸如路由器)上被实现。前述方法中的任何一种可以作为计算机可执行指令被存储在非瞬态存储设备上(例如,在数据转发设备中)。
附图说明
§3.附图说明
图1是被用于图示SR域的示例网络。
图2是被用于图示通过SR域的SR路径的示例网络。
图3是被用于图示SR域中的邻接分段的示例网络。
图4A和图4B是被用于图示SR域中的前缀分段的示例网络。
图5是被用于图示从邻接分段得出的MPLS标签的用途的示例网络。
图6是被用于图示从前缀分段得出的MPLS标签的用途的示例网络。
图7A到图7D图示了边界网关协议(BGP)消息格式以及这种BGP消息的部分。
图8A和图8B是示例方法的流程图,该方法用以支持允许目的地前缀指定被用于选择(例如,确定、计算等)到其的路径的灵活算法。
图9A是用于在SR前缀SID TLV中承载灵活算法定义(FAD)子TLV的示例数据结构。图9B是FAD子TLV的示例数据结构。
图10图示了经由通信链路来耦合的可以被用作BGP对等方的两个数据转发系统。
图11是可以被用作BGP对等设备的路由器的框图。
图12是示例架构,其中ASIC可以被分布在分组转发组件中以划分分组转发的责任。
图13A和图13B是图12的示例架构的操作的示例。
图14是用于在示例路由器中提供分组转发的示例方法的流程图。
图15是示例性机器的框图,该示例性机器可以执行所描述的一个或多个过程,和/或存储由这种过程使用和/或生成的信息。
图16图示了以与本描述一致的方式使用FAD子TLV的示例。
具体实施方式
§4.具体实施方式
本公开可以涉及新颖的方法、装置、消息格式和/或数据结构,以用于支持在使用BGP所通告的SR前缀SID的上下文中由BGP路由选择过程所使用的灵活算法。以下描述被提供以使本领域技术人员能够制造和使用所描述的实施例,并且在特定应用及其要求的上下文中被提供。因此,示例实施例的以下描述提供了说明和描述,但并不旨在是穷举性的或将本公开限制为所公开的精确形式。对本领域技术人员而言,对所公开实施例的各种修改将是明显的,并且下文所阐述的通用原理可以被应用于其他实施例和应用中。例如,尽管可以参照流程图来描述一系列动作,但是当一个动作的执行不取决于另一动作的完成时,在其他实现中动作的顺序可以不同。此外,可以并行地执行非从属动作。在描述中所使用的任何元素、动作或指令都不应被解释为对本描述是关键的或必不可少的,除非如此明确地被描述。此外,如本文中所使用,冠词“一”旨在包括一个或多个项目。在仅预期一个项目的情况下,术语“一个”或类似语言被使用。因此,本公开不旨在限于所示的实施例,并且发明人将其发明视为所描述的任何可获得专利的主题。
§4.1示例方法
图8A是第一示例方法800的流程图,该方法用以支持允许目的地前缀指定被用于选择(例如,确定、计算等)到其的路径的灵活算法。示例方法800可以由BGP对等节点执行。节点接收包括标识符的灵活算法定义(FAD)。(框805)如图所示,该信息可以被包括在单个消息807中。然后,节点存储FAD和FAD ID(例如,在其链路状态数据库中,如由812所示)。(框810)随后,节点接收包括FAD标识符(不是整个FAD)的SR前缀SID。(框815)如图所示,该信息可以被包括在分离的单个消息817中。e)响应于接收到SR前缀SID,节点使用被包括在SR前缀SID中的FAD标识符来找到先前被存储(例如,在其链路状态数据库中)的FAD。(框820)然后,节点可以使用所接收到的FAD确定朝向由与SR前缀SID相关联的前缀(例如,在还承载SR前缀SID的BGP NLRI中被承载)标识的节点的路由中的下一跳。(框825)第一示例方法800的其余部分可以使用常规步骤。例如,在离开第一示例方法800(返回节点840)之前,对等节点然后可以为前缀分派本地标签(框830)并使本地标签与针对前缀所确定的下一跳相关联(框835)。
从前文应了解,第一示例方法800使用被包括在两个分离的消息中的信息-第一消息中的FAD和FAD标识符和在第二消息中设置有SR前缀SID(或在其内)的FAD标识符-以便使用FAD来确定SR前缀SID中的目的地前缀的路径。如下文更详细地讨论的,第一示例方法800可以将算法标识符字段添加到SR前缀SID TLV(回顾,例如第二消息817)中,并且重新使用BGP LS节点NLRI中所承载的FAD(回顾,例如第一消息807)。RFC 8669中所定义的SR BGP前缀SID TLV可以被扩展以承载算法标识符字段。
如上所述,如draft-ietf-idr-bgp-ls-flex-algo-02(互联网工程任务组,2020年1月6日)(被称为“Talaulikar草案”,并通过引用并入本文)中K.Talaulikar等人的文档“Flexible Algorithm Definition Advertisement with BGP Link-State(具有BGP链路状态的灵活算法定义通告)”中所描述,BGP LS可以在节点NLRI中承载灵活算法定义(FAD)。(注意,Talaulikar草案当前仅被用于承载基于IGP的FAD,这些基于IGP的FAD被用于计算IGP SR前缀SID路径。)
通过使用(1)来自BGP LS的FAD通告和(2)SR前缀SID TLV内的算法标识符字段两者,任何BGP跳都将能够执行特定算法以基于FAD中所定义的一个或多个约束来确定(多个)最佳可行的下一跳。然后,仅当BGP跳具有可行路径(源于FAD)时,它才会将NLRI可达性传播到其上游路由器。
例如,当BGP跳接收到前缀NLRI以及所附接的(多个)SR BGP前缀TLV中的一个或多个时(例如,具有算法字段集(例如,Algo=128)的一个SR前缀SID TLV),它会针对该节点所通告的FAD检查BGP LS数据库,该FAD指示和/或描述将被用于选择(例如,确定、计算等)目的地的最佳路径的算法。例如,如果Algo=128指示仅包括GREEN链路,则BGP决定过程将挑选其邻接具有颜色属性GREEN的链路的(多个)eBGP邻居。
图8B是第二示例方法850的流程图,该方法用以支持允许目的地前缀指定被用于选择(例如,确定、计算等)到其的路径的灵活算法。回顾第一示例方法800使用两个分离的消息807和817中的信息。第二示例方法850包括单个消息中的所有必要信息。与第一示例方法800的情况一样,第二示例方法850可以由BGP对等设备执行。更具体地,BGP对等设备可以接收包括(1)SR前缀SID和(2)FAD两者的单个消息(例如,参见857)。实际上,FAD可以被包括作为SR前缀SID的一部分。(框855)然后,BGP对等方可以使用所接收到的FAD确定朝向由还承载SR前缀SID的BGP NLRI中所承载的前缀标识的目的地的路由中的下一跳。(框860)第二示例方法850的其余部分可以使用常规步骤。例如,在离开第二示例方法850(返回节点875)之前,BGP对等节点可以为前缀分派本地标签(框865)并使本地标签与针对前缀所确定的下一跳相关联(框870)。
返回参照框855,FAD定义可以被承载为BGP前缀NLRI中的(多个)SR前缀SID TLV的子TLV。该第二示例方法850消除了例如取决于BGP-LS节点NLRI承载FAD的需要,并且消除了对算法标识符(FAD ID)字段(例如,要被引入SR前缀SID TLV内)的需要。
例如,接收包含SR前缀SID TLV和FAD子TLV的前缀NLRI的BGP对等节点可以使用FAD来确定前缀的最佳路径(从多个路径中确定),该最佳路径还满足FAD中所定义的一个或多个约束。在一些示例实施例中,仅当BGP对等节点具有可行路径(源于FAD)时,它才会将NLRI可达性传播到其上游路由器。
§4.2示例数据结构
图9A是用于在SR前缀SID TLV中承载FAD子TLV 935的示例数据结构。按照RFC8669的§3.1,SR前缀SID TLV包括8比特类型字段905、16比特长度字段910、8比特的保留字段915、16比特的旗标字段920和32比特的标签索引字段925、930。尽管在RFC 8669中没有被描述,但是在与本描述一致的示例实施例中,还包括子TLV 935。
图9B是示例FAD子TLV 935'的示例数据结构。示例FAD子TLV包括例如8比特类型字段955、8比特长度字段960、8比特度量类型字段965、16比特计算类型字段970和975以及零个或多个子-子TLV 980a、980b。
§4.3示例装置
图10图示了经由通信链路1030耦合的两个数据转发系统1010和1020。链路可以是物理链路或“无线”链路。数据转发系统1010、1020可以是例如路由器,并且可以是BGP对等设备。如果数据转发系统1010、1020是示例路由器,则每个路由器可以包括控制组件(例如路由引擎)1014、1024和转发组件1012、1022。每个数据转发系统1010、1020包括终止一个或多个通信链路1030的一个或多个接口1016、1026。示例方法900(或其实例)可以在控制组件1014、1024中被实现。
如上文刚刚讨论的,并且参照图11,一些示例路由器1100包括控制组件(例如路由引擎)1110和分组转发组件(例如分组转发引擎)1190。
控制组件1110可以包括操作系统(OS)内核1120、(多个)路由协议过程1130、(多个)基于标签的转发协议过程1140、(多个)接口过程1150、(多个)用户界面(例如命令行界面)过程1160和(多个)机架过程1170,并且可以存储(多个)路由表1139、标签转发信息1149和(多个)转发(例如,基于路由和/或基于标签的)表1180。如图所示,(多个)路由协议过程1130可以支持路由协议,诸如路由信息协议(“RIP”)1131、中间系统到中间系统协议(“IS-IS”)1132、开放式最短路径优先协议(“OSPF”)1133、增强型内部网关路由协议(“EIGRP”)1134和边界网关协议(“BGP”)1135,并且(多个)基于标签的转发协议过程1140可以支持协议,诸如BGP 1135、标签分布协议(“LDP”)1141、资源保留协议(“RSVP”)1142、以太网虚拟专用网(EVPN)1143、层2(L2)VPN 1144和分段路由(SR)1145。一个或多个组件(未示出)可以准许用户1165与(多个)用户界面过程1160交互。类似地,一个或多个组件(未示出)可以准许外部设备与(多个)路由器协议过程1130、(多个)基于标签的转发协议过程1140、(多个)接口过程1150和(多个)机架过程1170中的一个或多个经由SNMP 1185进行交互,并且这种过程可以经由SNMP 1185将信息发送至外部设备。
分组转发组件1190可以包括位于硬件组件(例如,ASIC、交换结构、光学器件等)1191上的微内核1192、(多个)接口过程1193、分布式ASIC 1194、(多个)机架过程1195和(多个)转发(例如,基于路由和/或基于标签的)表1196。
在图11的示例路由器1100中,控制组件1110处理诸如执行路由协议、执行基于标签的转发协议、控制分组处理等的任务,这释放了分组转发组件1190以快速转发所接收到的分组。即,所接收到的控制分组(例如,路由协议分组和/或基于标签的转发协议分组)没有在分组转发组件1190本身上被完全处理,而是被传递给控制组件1110,从而减少了分组转发组件1190必须完成的工作量,并释放它来处理要被有效转发的分组。因此,控制组件1110主要负责运行路由协议和/或基于标签的转发协议、维护路由表和/或标签转发信息、向分组转发组件1190发送转发表更新以及执行系统管理。示例控制组件1110可以处理路由协议分组,提供管理界面,提供配置管理,执行计费以及提供警报。过程1130、1140、1150、1160和1170可以是模块化的,并且可以与OS内核1120交互。即,几乎所有过程都直接与OS内核1120通信。使用将过程彼此干净地分离的模块化软件隔离了给定过程的问题,使得这种问题不会影响可能正在运行的其他过程。附加地,使用模块化软件有助于更容易地缩放。
仍参照图11,示例OS内核1120可以并入针对外部程序调用和脚本撰写能力的应用编程接口(“API”)系统。控制组件1110可以基于从闪速存储器运行OS的Intel PCI平台,其中备用副本被存储在路由器的硬盘上。OS内核1120位于Intel PCI平台上,并在Intel PCI平台与控制组件1110的过程之间建立通信。OS内核1120还确保分组转发组件1190正在使用的转发表1196与控制组件1110中的转发表1180同步。因此,除了向控制组件1110的软件过程提供底层基础设施外,OS内核1120还提供了控制组件1110与分组转发组件1190之间的链路。
参照图11的(多个)路由协议过程1130,该(多个)过程1130提供平台内的路由和路由控制功能。在该示例中,RIP 1131、ISIS 1132、OSPF 1133和EIGRP 1134(和BGP 1135)协议被提供。自然地,其他路由协议可以被附加地或备选地提供。类似地,(多个)基于标签的转发协议过程1140提供标签转发和标签控制功能。在该示例中,LDP 1141、RSVP 1142、EVPN1143、L2VPN 1144和SR 1145(和BGP 1135)协议被提供。自然地,其他基于标签的转发协议(例如MPLS等)可以被附加地或备选地提供。在示例路由器1100中,(多个)路由表1139由(多个)路由协议过程1130产生,而标签转发信息1149由(多个)基于标签的转发协议过程1140产生。在一些示例实施例中,与本描述一致的示例方法可以由多个基于标签的转发协议过程1140中的一个或多个(诸如BGP过程1135和/或SR过程1145)执行。
仍参照图11,(多个)接口过程1150执行物理接口的配置和封装。
示例控制组件1110可以提供几种管理路由器的方式。例如,示例控制组件1110可以提供(多个)用户界面过程1160,该用户界面过程1160允许系统操作者1165通过配置、修改和监测与系统交互。SNMP 1185允许具有SNMP能力的系统与路由器平台通信。这种情况还允许平台向外部代理提供必要的SNMP信息。例如,SNMP 1185可以准许通过框架(诸如惠普的OpenView),从运行软件的网络管理站(诸如惠普的网络节点管理器(“HP-NNM”))管理系统。对分组进行计费(通常被称为业务统计)可以由控制组件1110执行,从而避免减慢由分组转发组件1190进行的业务转发。
尽管未示出,但是示例路由器1100可以提供带外管理、用于串行控制台和远程管理访问的RS-232DB9端口以及使用可移除PC卡的第三级存储装置。此外,虽然未示出,但是位于机架前面的工艺接口提供了路由器的内部作业区的外部视图。工艺接口可以被用作故障排除工具、监测工具或两者。工艺接口可以包括LED指示器、警报指示器、控制组件端口和/或显示屏。最后,工艺接口可以经由控制台端口、辅助端口和/或管理以太网端口来提供与命令行界面(“CLI”)1160的交互。
分组转发组件1190负责尽可能快地正确输出所接收到的分组。如果转发表中没有针对给定目的地或给定标签的条目,并且分组转发组件1190本身不能执行转发,则分组转发组件1190可以将绑定到该未知目的地的分组发送至控制组件1110以便进行处理。示例分组转发组件1190被设计成执行层2和层3交换、路由查找和快速分组转发。
如图11中所示,示例分组转发组件1190具有在硬件组件1191上的嵌入式微内核1192、(多个)接口过程1193、分布式ASIC 1194和(多个)机架过程1195,并且存储(多个)转发(例如,基于路由和/或基于标签的)表1196。微内核1192与(多个)接口过程1193和(多个)机架过程1195交互以监测和控制这些功能。(多个)接口过程1192直接与控制组件1110的OS内核1120通信。该通信包括:将异常分组和控制分组转发到控制组件1110,接收要被转发的分组,接收转发表更新,向控制组件1110提供关于分组转发组件1190的健康状况的信息,以及准许通过来自控制组件1110的(多个)用户界面(例如CLI)过程1160来配置接口。所存储的(多个)转发表1196是静态的,直到从控制组件1110接收到新的转发表为止。(多个)接口过程1193使用(多个)转发表1196来查找下一跳信息。(多个)接口过程1193还直接与分布式ASIC 1194通信。最后,(多个)机架过程1195可以直接与微内核1192和分布式ASIC 1194通信。
图12是ASIC可以如何被分布在分组转发组件1190中以划分分组转发的责任的示例。如图12中所示,分组转发组件1190的ASIC可以被分布在物理接口卡(“PIC”)1210、灵活的PIC集中器(“FPC”)1220、中板或背板1230以及(多个)系统控制板1240上(以便用于交换和/或转发)。交换结构还被示出为系统交换板(“SSB”)或交换和转发模块(“SFM”)1250。每个PIC 1210包括一个或多个PIC I/O管理器1215。每个FPC 1220包括一个或多个I/O管理器1222,每个I/O管理器1222具有相关联的存储器1224。中板/背板1230包括缓冲区管理器1235a、1235b。最后,系统控制板1240包括互联网处理器1242和转发表1244的实例(回顾,例如图11的1196)。
仍参照图12,PIC 1210包含接口端口。每个PIC 1210可以被插入FPC 1220中。每个单独的PIC 1210可以包含处理特定于媒体的功能(诸如成帧或封装)的ASIC。一些示例PIC1210提供SDH/SONET、ATM、千兆以太网、快速以太网和/或DS3/E3接口端口。
FPC 1220可以包含一个或多个PIC 1210,并且可以将来自PIC 1210的信号承载到如图12中所示的中板/背板1230。
中板/背板1230保持线卡。当将线卡从前面插入示例路由器的机架时,线卡可以连接到中板/背板1230中。控制组件(例如路由引擎)1110可以从机架的后面插入中板/背板1230的后面。中板/背板1230可以将电(或光)信号和功率承载到每个线卡和控制组件1110。
系统控制板1240可以执行转发查找。系统控制板1240还可以将错误传达给路由引擎。此外,系统控制板1240还可以基于其从传感器接收到的信息来监测路由器的状况。如果异常状况被检测到,则系统控制板1240可以立即通知控制组件1110。
参照图12、图13A和图13B,在一些示例性路由器中,PIC 1210、1110'中的每一个包含至少一个I/O管理器ASIC 1215,其负责特定于媒体的任务,诸如封装。分组在其进入和离开路由器的途中通过这些I/O ASIC。PIC 1211、1011'上的I/O管理器ASIC 1215负责:在适当时管理与FPC 1220、1120'上的I/O管理器ASIC 1222的连接,管理链路层成帧并创建比特流,执行循环冗余校验(CRC),和检测链路层错误并生成警报。FPC 1220包括另一I/O管理器ASIC 1222。该ASIC 1222从PIC 1210取得分组,并将其分成(例如74字节)存储器块。该FPCI/O管理器ASIC 1222将这些块发送至第一分布式缓冲管理器(DBM)1235a',从而对封装和特定于协议的信息进行解码,为每个逻辑电路计数分组和字节,验证分组完整性,并将服务类别(CoS)规则应用于分组。此时,首先将分组写入存储器。更具体地,示例DBM ASIC1235a'跨所有FPC 1220管理分组并将其写入共享存储器1224。并行地,第一DBM ASIC1235a'还提取关于分组的目的地的信息,并将该转发相关的信息传递给互联网处理器1242/1142'。互联网处理器1242/1142'使用转发表1244执行路由查找,并将信息发送至第二DBM ASIC 1235b'。互联网处理器ASIC 1242/1142'还收集异常分组(即,没有转发表条目的那些分组)并将它们发送至控制组件1110。然后,第二DBM ASIC 1235b'取得此信息和74字节的块,并将其转发到出口FPC 1220/1120'(或在多播的情况下为多个出口FPC)的I/O管理器ASIC 1222以用于重新组装。(因此,DBM ASIC 1235a'和1235b'负责管理分布在所有FPC 1220/1120'上的分组存储器1224,从而从分组中提取转发相关的信息,并指示FPC将分组转发到何处。)
出口FPC 1220/1120'上的I/O管理器ASIC 1222可以执行一些增值服务。除了使生存时间(“TTL”)值增量并重新封装分组以供PIC 1210处理之外,I/O管理器ASIC 1222还可以应用服务类别(CoS)规则。为此,在将规则应用于分组之前,I/O管理器ASIC 1222可以在可用队列之一中对针对分组的指针进行排队,每个可用队列具有一部分链路带宽。进行排队可以基于各种规则。因此,出口FPC 1220/1120'上的I/O管理器ASIC 1222可以负责:从第二DBM ASIC 1235b'接收块,使TTL值增量,对针对分组的指针进行排队,若必要,则在应用CoS规则之前,重新封装块并将经过封装的分组发送至PIC I/O管理器ASIC 1215。
图14是用于在示例路由器中提供分组转发的示例方法1400的流程图。当在入口(传入)端口或接口上接收到分组时,方法1400的主要动作被触发。(事件1410)执行方法1400服务的介质的类型所需的校验和类型以及帧校验的类型,并将分组作为串行比特流输出。(框1420)然后,分组被解封装并解析为(例如64字节)块。(框1430)分组被写入缓冲存储器,并且转发信息在互联网处理器上被传递。(框1440)然后,所传递的转发信息被用于在转发表中查找路由。(框1450)注意,转发表通常可以处理没有设置选项(例如计费)的单播分组和已经具有所缓存的条目的多播分组。因此,如果确定满足这些条件(决定1460的“是”分支),则分组转发组件找到下一跳和出口接口,并且分组在离开方法1400(节点1490)之前经由出口接口被转发(或被排队以供转发)给下一跳的(框1470)。否则,如果不满足这些条件(决定1460的“否”分支),则转发信息在离开方法1400(节点1490)之前被发送至控制组件1110以便进行高级转发解析(框1480)。
返回参照框1470,可以对分组进行排队。实际上,如先前参照图12所述,可以对针对分组的指针进行排队。分组本身可以保留在共享存储器中。因此,可以在不存在实际分组的情况下应用所有排队决定和CoS规则。当针对分组的指针到达该行的前面时,I/O管理器ASIC 1222可以将对分组的请求发送至第二DBM ASIC 1235b。DBM ASIC 1235从共享存储器中读取块,并将其发送至FPC 1220上的I/O管理器ASIC 1222,然后,将这些比特序列化,并将其发送至出口接口的特定于媒体的ASIC。出口PIC 1210上的I/O管理器ASIC 1215可以应用物理层成帧,执行CRC并通过链路发送比特流。
返回参照图14的框1480和图12,关于控制和异常分组的转送,系统控制板1240处理几乎所有异常分组。例如,系统控制板1240可以将异常分组传递给控制组件1110。
尽管与本发明一致的示例实施例可以在图10或图11的示例路由器上被实现,但是与本发明一致的实施例可以在具有不同架构的通信网络节点(例如路由器、交换机等)上被实现。更一般地,与本发明一致的实施例可以在如图15上所图示的示例系统1500上被实现。
图15是示例性机器1500的框图,该示例性机器可以执行所描述的一个或多个过程,和/或存储由这种过程所使用和/或生成的信息。示例性机器1500包括一个或多个处理器1510、一个或多个输入/输出接口单元1530、一个或多个存储设备1520以及用于促进在耦合的元件之间的信息通信的一个或多个系统总线和/或网络1540。一个或多个输入设备1532和一个或多个输出设备1534可以与一个或多个输入/输出界面1530耦合。一个或多个处理器1510可以执行机器可执行指令(例如,运行在Linux操作系统上的C或C++,其从许多供应方(诸如Durham,N.C.的Red Hat公司等)广泛可获得)以实现本发明的一个或多个方面。机器可执行指令的至少一部分可以(临时或更永久地)被存储在一个或多个存储设备1520上和/或可以经由一个或多个输入界面单元1530从外部源被接收。机器可执行指令可以被存储为各种软件模块,每个模块执行一个或多个操作。功能软件模块是本发明的组件的示例。
在与本发明一致的一些实施例中,处理器1510可以是一个或多个微处理器和/或ASIC。总线1540可以包括系统总线。存储设备1520可以包括系统存储器,诸如只读存储器(ROM)和/或随机存取存储器(RAM)。存储设备1520还可以包括:硬盘驱动器,其用于读取和写入硬盘;磁盘驱动器,其用于读取或写入(例如可移除)磁盘;光盘驱动器,其用于读取或写入可移除(磁)光盘,诸如激光磁盘或其他(磁)光介质,或固态非易失性存储装置。
与本发明一致的一些示例实施例也可以被提供作为用于存储机器可执行指令的机器可读介质。机器可读介质可以是非瞬态的,并且可以包括但不限于闪速存储器、光盘、CD-ROM、DVD ROM、RAM、EPROM、EEPROM、磁卡或光卡或适用于存储电子指令的任何其他类型的机器可读介质。例如,与本发明一致的示例实施例可以被下载为计算机程序,该计算机程序可以通过通信链路(例如调制解调器或网络连接)从远程计算机(例如服务器)被传递至请求的计算机(例如客户端)并被存储在非瞬态存储介质上。机器可读介质也可以被称为处理器可读介质。
与本发明(或其组件或模块)一致的示例实施例可以被实现于硬件中,该硬件诸如一个或多个现场可编程门阵列(“FPGA”)、一个或多个集成电路(诸如ASIC)、一个或多个网络处理器等。备选地或另外,与本发明(或其组件或模块)一致的实施例可以被实现为由处理器执行的所存储的程序指令。这种硬件和/或软件可以被提供在寻址的数据(例如分组、单元等)转发设备(例如交换机、路由器等)、膝上型计算机、台式计算机、服务器(例如,软件定义的网络控制器)、平板计算机、移动电话或具有计算和联网能力的任何设备中。
§4.4示例方法的示例说明操作
现在描述两种使用情况,这些使用情况说明了示例方法800和850的效用。
假定第一种场景,其中BGP连接IGP隔离域以提供访问域之间的端到端连接性。每个域中的边界节点在它们之间建立内部BGP(iBGP)邻接,以交换域间可达性信息。BGP目的地(例如,接入提供方边缘设备(PE))可能希望在受限路径上(例如,在GREEN平面路径上或在RED平面路径上)是可到达的。在该第一种场景下,接入PE可以向PE前缀NLRI通告附接到其的SR BGP前缀SID TLV并设置算法标识符(例如针对RED约束的算法ID=128,或针对GREEN约束的算法ID=129)。这种情况是由其(多个)BGP对等方接收的。(回顾,例如图8A的815和817)。假定接入PE先前已经在BGP LS节点NLRI中向FAD通告了算法ID=128。这种情况是由其(多个)BGP对等方先前接收并存储的。(回顾,例如图8A的805、807、810和812)。
当BGP边界节点接收到具有SR BGP前缀TLV以及算法字段集(例如,针对RED约束的算法ID=128,或针对GREEN约束的算法ID=129)的前缀NLRI时,它将针对由接入PE先前所通告的FAD搜索其BGP LS数据库,该接入PE描述了要运行的算法(回顾,例如图8A的820),并且使用FAD来确定(例如选择)针对目的地的最佳路径(回顾,例如图8A的825)。例如,如果算法ID=128指示仅包括RED链路/路径的约束,则BGP路径选择过程可以检查满足(多个)FAD约束的路径并确定(例如选择)最佳路径。例如,如果存在将入口边界节点连接到出口边界节点的底层路径(LSP),则入口边界节点(作为BGP跳)可以检查连接到出口边界节点的底层路径的“属性”,以确定其是否满足算法ID=128要求的约束,并且如果其满足算法的(多个)约束(例如,如果其是RED路径),则可以选择底层LSP。类似地,如果算法ID=129指示仅包括GREEN链路/路径的约束,则BGP路径选择过程可以检查满足(多个)FAD约束的路径并确定(例如选择)最佳路径。例如,如果存在将入口边界节点连接到出口边界节点的底层路径(LSP),则入口边界节点(作为BGP跳)可以检查连接到出口边界节点的底层路径的“属性”,以确定其是否满足算法ID=129要求的约束,并且如果其满足算法的(多个)约束(例如,如果是GREEN路径),则可以选择底层LSP。
注意,应用图8B的第二示例方法850将提供相同的结果。
参照图16,现在考虑第二种场景,其中接收NLRI可达性以服务前缀P(以GOLD颜色着色并且其出口PE为A4)的入口PE(节点A1)可以选择通过将其SR SID推送到目的地为前缀P的相应分组上来通过BGP前缀SID(算法=最小时延)将分组引导到A4。(注意,在域内,域内区域边界路由器到区域边界路由器的路径可以通过将BGP前缀SID(算法=最小时延)映射到IGP前缀SID(算法=最小时延)来达成。
如根据该示例可以了解,与本描述一致的示例实施例对于在仅BGP域内并且跨不同AS承载灵活算法是有用的。SR路径可以被逐跳确定(并且然后将其级联)。
§4.5结论
与前文描述一致的示例实施例可以被用于允许通过使用特定路径计算算法所确定的路径可到达BGP目的地,该特定路径计算算法可以考虑一个或多个约束。
Claims (20)
1.一种计算机实现的方法,包括:
a)由边界网关协议(BGP)对等节点接收与前缀相关联的分段路由(SR)前缀分段标识符(SID);
b)由所述BGP对等节点接收灵活算法定义(FAD);以及
c)由所述BGP对等节点使用所接收到的所述FAD来确定朝向由所述前缀标识的目的地的路由中的下一跳。
2.根据权利要求1所述的计算机实现的方法,其中所述SR前缀SID和所述前缀两者均被承载为BGP更新消息的网络层可达性信息(NLRI)。
3.根据权利要求2所述的计算机实现的方法,其中所述边界网关协议(BGP)对等节点接收所述FAD作为承载所述SR前缀SID和所述前缀的所述BGP NLRI的一部分。
4.根据权利要求3所述的计算机实现的方法,其中所述BGPSR前缀SID被编码在所述NLRI的类型长度值(TLV)中,并且其中所述FAD被编码为所述SR前缀SID TLV的子TLV。
5.根据权利要求1所述的计算机实现的方法,还包括:
d)由所述BGP对等节点确定其是否具有到由所述前缀标识的所述节点的可行路径;以及
e)响应于所述BGP对等节点具有到由所述SR前缀SID中所承载的所述前缀标识的所述节点的可行路由的确定,
-将针对所述前缀的可达性信息传播到上游BGP对等方,以及
否则,响应于所述BGP节点不具有到由所述前缀标识的所述节点的可行路由的确定,
-不将针对所述前缀的可达性信息传播到所述上游BGP对等方。
6.根据权利要求1所述的计算机实现的方法,其中所述BGP对等节点接收BGP更新消息的BGP链路状态(LS)节点网络层可达性信息(NLRI)字段中的所述FAD和FAD标识符,并且其中SR前缀SID包括所述FAD标识符,所述计算机实现的方法还包括:
d)由所述BGP对等节点在其链路状态数据库中存储所述FAD和所述FAD标识符;以及
e)响应于接收到所述SR前缀SID,使用被包括在所述SR前缀SID中的所述FAD标识符来找到被存储在其链路状态数据库中的所述FAD。
7.根据权利要求6所述的计算机实现的方法,其中所述SR前缀SID被编码在BGP更新消息的BGP网络层可达性信息(NLRI)字段的类型长度值(TLV)中。
8.根据权利要求6所述的计算机实现的方法,其中所述FAD标识符具有介于0与255之间的值。
9.根据权利要求1所述的计算机实现的方法,其中BGP被用以选择朝向数据中心的对等节点的(多个)可行路径。
10.根据权利要求1所述的计算机实现的方法,其中所述BGP对等节点不运行内部网关协议(IGP)。
11.根据权利要求1所述的计算机实现的方法,其中所述FAD包括至少一个路径计算约束。
12.根据权利要求1所述的计算机实现的方法,其中所述BGP对等节点接收至少两个FAD,并且其中所述BGP对等节点使用所述至少两个FAD来确定到所述SR前缀SID中所承载的所述前缀的至少两条不同路径。
13.根据权利要求1所述的计算机实现的方法,还包括:
d)为所述前缀分配本地标签;以及
e)使所述本地标签与针对所述前缀的所确定的所述下一跳相关联。
14.根据权利要求1所述的计算机实现的方法,其中由所述前缀标识的所述节点是用于访问运输网络的提供方边缘设备(PE)。
15.一种存储处理器可执行指令的非瞬态计算机可读介质,所述处理器可执行指令在由至少一个处理器执行时使得所述至少一个处理器执行方法,所述方法包括:
a)由边界网关协议(BGP)对等节点接收与前缀相关联的分段路由(SR)前缀分段标识符(SID);
b)由所述BGP对等节点接收灵活算法定义(FAD);以及
c)由所述BGP对等节点使用所接收到的所述FAD来确定朝向由所述前缀标识的目的地的路由中的下一跳。
16.根据权利要求15所述的非瞬态计算机可读介质,其中所述SR前缀SID和所述前缀两者均被承载为BGP更新消息的网络层可达性信息(NLRI)。
17.根据权利要求15所述的非瞬态计算机可读介质,其中所述BGP对等节点接收BGP更新消息的BGP链路状态(LS)节点网络层可达性信息(NLRI)字段中的所述FAD和FAD标识符,并且其中SR前缀SID包括所述FAD标识符,所述方法还包括:
d)由所述BGP对等节点在其链路状态数据库中存储所述FAD和所述FAD标识符;以及
e)响应于接收到所述SR前缀SID,使用被包括在所述SR前缀SID中的所述FAD标识符来找到被存储在其链路状态数据库中的所述FAD。
18.一种边界网关协议(BGP)对等节点,包括:
a)至少一个处理器;
b)存储设备,其存储处理器可执行指令,所述处理器可执行指令在由所述至少一个处理器执行时使所述至少一个处理器执行方法,所述方法包括:
1)由边界网关协议(BGP)对等节点接收与前缀相关联的分段路由(SR)前缀分段标识符(SID),
2)由所述BGP对等节点接收灵活算法定义(FAD),以及
3)由所述BGP对等节点使用所接收到的所述FAD来确定朝向由所述前缀标识的目的地的路由中的下一跳。
19.根据权利要求18所述的边界网关协议(BGP)对等节点,其中所述SR前缀SID和所述前缀两者均被承载为BGP更新消息的网络层可达性信息(NLRI)。
20.根据权利要求18所述的边界网关协议(BGP)对等节点,其中所述BGP对等节点接收BGP更新消息的BGP链路状态(LS)节点网络层可达性信息(NLRI)字段中的所述FAD和FAD标识符,并且其中SR前缀SID包括所述FAD标识符,所述方法还包括:
4)由所述BGP对等节点在其链路状态数据库中存储所述FAD和所述FAD标识符,以及
5)响应于接收到所述SR前缀SID,使用被包括在所述SR前缀SID中的所述FAD标识符来找到被存储在其链路状态数据库中的所述FAD。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/794,190 US11438259B2 (en) | 2020-02-18 | 2020-02-18 | Flexible algorithm aware border gateway protocol (BGP) prefix segment routing identifiers (SIDs) |
US16/794,190 | 2020-02-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113347091A true CN113347091A (zh) | 2021-09-03 |
CN113347091B CN113347091B (zh) | 2023-06-27 |
Family
ID=70613587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010378630.8A Active CN113347091B (zh) | 2020-02-18 | 2020-05-07 | 灵活算法感知边界网关协议前缀分段路由标识符 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11438259B2 (zh) |
EP (2) | EP4293981A3 (zh) |
CN (1) | CN113347091B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118612135A (zh) * | 2019-03-20 | 2024-09-06 | 华为技术有限公司 | 一种区域间srmpls igp网络中进行最优路由的方法、节点及其系统 |
US11271854B2 (en) * | 2020-02-21 | 2022-03-08 | Ciena Corporation | Resolving label depth and protection in segment routing |
US11516112B2 (en) * | 2020-10-20 | 2022-11-29 | Ciena Corporation | Optimized layer 3 VPN control plane using segment routing |
CN113810275B (zh) * | 2020-06-17 | 2023-08-04 | 华为技术有限公司 | 发送报文的方法及设备 |
CN113839867A (zh) * | 2020-06-24 | 2021-12-24 | 华为技术有限公司 | 一种路由信息的发送方法、报文发送方法及相关装置 |
CN113872854B (zh) * | 2020-06-30 | 2022-12-30 | 华为技术有限公司 | 一种丢包处理方法及网络设备 |
US11750498B2 (en) * | 2021-07-15 | 2023-09-05 | Microsoft Technology Licensing, Llc | Guarantying SLA thru edge cloud path orchestration |
CN113709031B (zh) * | 2021-08-30 | 2022-10-21 | 烽火通信科技股份有限公司 | 一种约束路由传输分发的方法和装置 |
US11824769B2 (en) * | 2021-11-08 | 2023-11-21 | Ciena Corporation | Incrementally eliminating BGP-LU using SR policies and PCE |
CN116471220A (zh) * | 2022-01-11 | 2023-07-21 | 华为技术有限公司 | 一种信息上报方法、信息处理方法及装置 |
CN114826999B (zh) * | 2022-03-22 | 2023-06-20 | 北京邮电大学 | 卫星网络数据传输方法及装置 |
US20240073135A1 (en) * | 2022-08-26 | 2024-02-29 | Ciena Corporation | BGP Segment Routing optimization by packing multiple prefixes in an update |
US20240214297A1 (en) * | 2022-12-27 | 2024-06-27 | Nokia Solutions And Networks Oy | Autonomous path construction and routing |
CN118301050A (zh) * | 2023-01-04 | 2024-07-05 | 中国移动通信有限公司研究院 | 信息传输方法、装置、相关设备及存储介质 |
US20240323048A1 (en) * | 2023-03-24 | 2024-09-26 | Juniper Networks, Inc. | X-over-y tunnel signaling and configuration, and use of configured x-over-y tunnel(s) |
EP4492749A1 (en) * | 2023-07-13 | 2025-01-15 | Ciena Corporation | Zero touch configuration for a mesh of nodes using segment routing flexible algorithm |
CN119316334A (zh) * | 2023-07-14 | 2025-01-14 | 华为技术有限公司 | 一种信息处理方法及装置 |
CN117201365A (zh) * | 2023-09-05 | 2023-12-08 | 杭州阿里巴巴飞天信息技术有限公司 | 流量确定方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1435068A (zh) * | 1999-12-22 | 2003-08-06 | 诺基亚移动电话有限公司 | 灵活的、基于特性的系统选择协议 |
CN101133596A (zh) * | 2005-04-13 | 2008-02-27 | 思科技术公司 | 加快边界网关协议收敛的方法和装置 |
US20180077051A1 (en) * | 2016-09-15 | 2018-03-15 | Cisco Technology, Inc. | Reroute Detection in Segment Routing Data Plane |
CN109831382A (zh) * | 2019-02-13 | 2019-05-31 | 华为技术有限公司 | 一种路径计算方法、装置及设备 |
US20200008067A1 (en) * | 2018-07-02 | 2020-01-02 | Cisco Technology, Inc. | Resource partitioning for network slices in segment routing networks |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109873760B (zh) * | 2017-12-01 | 2020-08-07 | 华为技术有限公司 | 处理路由的方法和装置、以及数据传输的方法和装置 |
CN114070782B (zh) * | 2018-06-30 | 2023-05-16 | 华为技术有限公司 | 一种传输路径故障的处理方法、装置及系统 |
US10601724B1 (en) * | 2018-11-01 | 2020-03-24 | Cisco Technology, Inc. | Scalable network slice based queuing using segment routing flexible algorithm |
-
2020
- 2020-02-18 US US16/794,190 patent/US11438259B2/en active Active
- 2020-05-06 EP EP23205023.7A patent/EP4293981A3/en active Pending
- 2020-05-06 EP EP20173163.5A patent/EP3869751B1/en active Active
- 2020-05-07 CN CN202010378630.8A patent/CN113347091B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1435068A (zh) * | 1999-12-22 | 2003-08-06 | 诺基亚移动电话有限公司 | 灵活的、基于特性的系统选择协议 |
CN101133596A (zh) * | 2005-04-13 | 2008-02-27 | 思科技术公司 | 加快边界网关协议收敛的方法和装置 |
US20180077051A1 (en) * | 2016-09-15 | 2018-03-15 | Cisco Technology, Inc. | Reroute Detection in Segment Routing Data Plane |
US20200008067A1 (en) * | 2018-07-02 | 2020-01-02 | Cisco Technology, Inc. | Resource partitioning for network slices in segment routing networks |
CN109831382A (zh) * | 2019-02-13 | 2019-05-31 | 华为技术有限公司 | 一种路径计算方法、装置及设备 |
Non-Patent Citations (3)
Title |
---|
C. REED等: "URN Namespace for the Defence Geospatial Information Working Group (DGIWG)", 《IETF RFC6288》 * |
K. TALAULIKAR等: "Flexible Algorithm Definition Advertisement with BGP Link-State draft-ietf-idr-bgp-ls-flex-algo-01", 《IETF 》 * |
P. PSENAK等: "IGP Flexible Algorithm draft-ietf-lsr-flex-algo-00.txt", 《IETF 》 * |
Also Published As
Publication number | Publication date |
---|---|
EP4293981A2 (en) | 2023-12-20 |
EP4293981A3 (en) | 2024-02-21 |
CN113347091B (zh) | 2023-06-27 |
US20210258249A1 (en) | 2021-08-19 |
EP3869751A1 (en) | 2021-08-25 |
EP3869751B1 (en) | 2023-11-15 |
US11438259B2 (en) | 2022-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113347091B (zh) | 灵活算法感知边界网关协议前缀分段路由标识符 | |
US10887225B1 (en) | Building a label sequence in Border Gateway Protocol (BGP) labeled network layer reachability information (NLRI) on next hop (NH) attribute change | |
US10594592B1 (en) | Controlling advertisements, such as Border Gateway Protocol (“BGP”) updates, of multiple paths for a given address prefix | |
US11546246B2 (en) | Minimizing or reducing traffic loss when an external border gateway protocol (eBGP) peer goes down | |
US11909556B2 (en) | Resilient multiprotocol label switching (MPLS) rings using segment routing | |
CN112311675B (zh) | 用于分段路由(sr)路径的保证型带宽 | |
EP1997017B1 (en) | Technique for preventing routing loops by disseminating bgp attribute information in an ospf-configured network | |
US12034635B2 (en) | Using and processing per slice segment identifiers in a network employing segment routing | |
US12184532B1 (en) | Using anycast as an abstract next hop (ANH) to reduce information related to border gateway protocol (BGP) next hops received by autonomous system border routers (ASBRs) and/or to improve BGP path convergence | |
US20200304427A1 (en) | A Communication Routing System | |
US11336569B2 (en) | Ping and traceroute in inter-autonomous system (AS) segment routing (SR) networks without requiring headend router or path monitoring system (PMS) controller knowledge of topology outside of origin as | |
US11876706B2 (en) | Avoiding loops by preventing further fast reroute (FRR) after an earlier FRR | |
EP3754914A1 (en) | Class-based traffic engineering in an ip network | |
US9049142B1 (en) | Method and apparatus to enable protection for selective traffic in an MPLS network | |
US11070468B1 (en) | Serverless segment routing (SR)-label distribution protocol (LDP) stitching | |
US10305780B1 (en) | Controlling accumulated interior gateway protocol (“AIGP”) attribute updates |
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 |