实现非灵活算法路由器参与灵活算法路由协议转让专利
申请号 : CN201910570533.6
文献号 : CN111147373B
文献日 : 2021-04-13
发明人 : W·B·A·约瑟夫 , S·赫格德
申请人 : 瞻博网络公司
摘要 :
权利要求 :
1.一种灵活算法路径计算的方法,包括:由被启用用于灵活算法路径计算的多个网络设备中的网络设备来生成分组,所述分组包括对未被启用用于所述灵活算法路径计算的非灵活算法网络设备进行标识的信息,其中所述信息包括所述非灵活算法网络设备的回环地址、针对所述灵活算法路径计算的标识符、以及标识用于所述灵活算法路径计算的所述非灵活算法网络设备的标识符;以及由所述多个网络设备中的所述网络设备向所述多个网络设备中的至少一个其它网络设备发送所述分组,以使所述非灵活算法网络设备在所述灵活算法路径计算中被所述至少一个其它网络设备考虑。
2.根据权利要求1所述的方法,其中针对所述灵活算法路径计算的所述标识符包括灵活算法标签和灵活算法定义,其中所述灵活算法定义包括对所述灵活算法路径计算的一组约束的描述、计算类型的标识和度量类型的标识,并且
其中所述灵活算法标签是标识所述灵活算法路径计算的标签。
3.根据权利要求1所述的方法,其中所述分组包括中间系统到中间系统(ISIS)分组,并且其中标识所述非灵活算法网络设备的所述信息被包括在所述ISIS分组的子类型、长度和值中。
4.根据权利要求1所述的方法,其中所述分组包括开放式最短路径优先(OSPF)分组,并且其中标识所述非灵活算法网络设备的所述信息被包括在所述OSPF分组的类型、长度和值(TLV)中。
5.根据权利要求1所述的方法,其中所述网络设备是分段路由映射服务器。
6.根据权利要求1所述的方法,其中所述分组包括第一分组,所述第一分组包括标识第一非灵活算法网络设备的信息,其中所述信息包括未被启用用于所述灵活算法路径的第一网络设备的回环地址,所述方法进一步包括:由所述网络设备生成第二分组,所述第二分组包括标识第二非灵活算法网络设备的信息,其中标识所述第二非灵活算法网络设备的所述信息包括未被启用用于所述灵活算法路径计算的第二网络设备的回环地址、用于所述灵活算法路径计算的所述标识符以及针对用于所述灵活算法路径计算的所述第二非灵活算法网络设备的标识符;以及由所述网络设备向所述多个网络设备中的所述至少一个其它网络设备发送所述第二分组,以使所述第二非灵活算法网络设备在所述灵活算法路径计算中被所述至少一个其它网络设备考虑。
7.一种灵活算法路径计算的方法,包括:由被启用用于灵活算法路径计算的多个网络设备中的网络设备接收分组,所述分组包括标识未被启用用于所述灵活算法路径计算的非灵活算法网络设备的信息,其中所述信息包括所述非灵活算法网络设备的回环地址、针对所述灵活算法路径计算的标识符、以及针对用于所述灵活算法路径计算的所述非灵活算法网络设备的标识符;
由所述网络设备确定所述网络设备是否与被包括在所述分组中的针对所述灵活算法路径计算的所述标识符相关联;以及由所述网络设备响应于确定所述网络设备与被包括在所述分组中的针对所述灵活算法路径计算的所述标识符相关联,执行包括所述非灵活算法网络设备的所述灵活算法路径计算。
8.根据权利要求7所述的方法,进一步包括:由所述网络设备确定所述网络设备的下一跳是否是所述非灵活算法网络设备;以及由所述网络设备响应于确定所述网络设备的所述下一跳是所述非灵活算法网络设备,对转发信息进行配置以将流量转向所述非灵活算法网络设备。
9.根据权利要求8所述的方法,其中对所述转发信息进行配置以将流量转向所述非灵活算法网络设备包括:
对转发信息进行配置以引起所述网络设备推送与所述非灵活算法网络设备相关联的邻接标签。
10.根据权利要求9所述的方法,进一步包括:由所述网络设备接收来自源设备的流量;
由所述网络设备将与所述非灵活算法网络设备相关联的所述邻接标签推送至被附加到所述流量的标签堆栈的顶部;以及由所述网络设备将所述流量转发到所述非灵活算法网络设备。
11.根据权利要求10所述的方法,进一步包括:由所述非灵活算法网络设备接收所述流量;
由所述非灵活算法网络设备使所述邻接标签从所述流量的所述标签堆栈弹出;以及由所述非灵活算法网络设备朝向被包括在所述多个网络设备中的下一跳网络设备转发所述流量。
12.根据权利要求7所述的方法,其中接收所述分组包括接收来自分段路由映射服务器(SRMS)的所述分组,其中所述SRMS被包括在与所述灵活算法相关联的所述多个网络设备中。
13.一种被启用用于灵活算法路径计算的多个网络设备中的网络设备,包括:存储器;
一个或多个可编程处理器,所述一个或多个可编程处理器可操作地被耦合到所述存储器,其中所述一个或多个可编程处理器被配置为:生成分组,所述分组包括标识未针对所述灵活算法路径计算而启用的非灵活算法网络设备的信息,其中所述信息包括所述非灵活算法网络设备的回环地址、针对所述灵活算法路径计算的标识符、以及标识用于所述灵活算法路径计算的所述非灵活算法网络设备的标识符;以及
向所述多个网络设备中的至少一个其它网络设备发送所述分组,以使所述非灵活算法网络设备在所述灵活算法路径计算中被所述至少一个其它网络设备考虑。
14.根据权利要求13所述的网络设备,其中针对所述灵活算法路径计算的所述标识符包括灵活算法标签和灵活算法定义,其中所述灵活算法定义包括对所述灵活算法路径计算的一组约束的描述、计算类型的标识和度量类型的标识,并且
其中所述灵活算法标签是标识所述灵活算法路径计算的标签。
15.根据权利要求13所述的网络设备,其中所述分组包括中间系统到中间系统(ISIS)分组,并且其中标识所述非灵活算法网络设备的所述信息被包括在所述ISIS分组的子类型、长度和值中。
16.根据权利要求13所述的网络设备,其中所述分组包括开放式最短路径优先(OSPF)分组,并且其中标识所述非灵活算法网络设备的所述信息被包括在所述OSPF分组的类型、长度和值(TLV)中。
17.根据权利要求13所述的网络设备,其中所述网络设备是分段路由映射服务器。
18.根据权利要求13所述的网络设备,其中所述一个或多个可编程处理器进一步被配置为:
从所述多个网络设备的分段路由映射服务器接收分组,所述分组包括标识非灵活算法网络设备的信息,其中所述信息包括未针对所述灵活算法而启用的网络设备的回环地址、针对所述灵活算法路径计算的标识符、以及针对用于所述灵活算法路径计算的所述非灵活算法网络设备的标识符;
确定所述网络设备是否与被包括在所述分组中的针对所述灵活算法路径计算的所述标识符相关联;以及
响应于确定所述网络设备与被包括在所述分组中的针对所述灵活算法路径计算的所述标识符相关联,执行包括所述非灵活算法网络设备的所述灵活算法路径计算。
19.根据权利要求13所述的网络设备,其中所述一个或多个可编程处理器进一步被配置为:
确定所述网络设备的下一跳是否是所述非灵活算法网络设备;以及响应于确定所述网络设备的所述下一跳是所述非灵活算法网络设备,对转发信息进行配置以将流量转向所述非灵活算法网络设备。
20.根据权利要求19所述的网络设备,其中为了对所述转发信息进行配置以将流量转向所述非灵活算法网络设备,所述一个或多个可编程处理器进一步被配置为:对转发信息进行配置以引起所述网络设备推送与所述非灵活算法网络设备相关联的邻接标签。
说明书 :
实现非灵活算法路由器参与灵活算法路由协议
本文。
技术领域
背景技术
备跨过网络被路由至目的地设备。目的地设备从分组提取数据并且将数据集合成其原始形
式。
组内的密钥信息并且根据积累的拓扑信息转发分组。
常依赖于需要路由器中的每个路由器都具有针对给定域(被称为IGP区域或者域)的同步路
由拓扑信息的路由算法。根据链路状态路由协议维护的链路状态数据库(LSDB)或者流量工
程数据库(TED)的内容具有IGP域的范围。IGP路由协议通常要求IGP路由域中的所有路由器
将已经根据IGP协议分发的所有路由信息存储在内部LSDB或者TED内。在操作中,每个路由
器通常都维护内部链路状态数据库并且以定义间隔扫描整个数据库以生成和输出链路状
态消息,以使数据库与路由域内的相邻路由器同步。以这种方式,链路状态跨整个路由域而
被传播并且全部被存储在域内的每个路由器处。
网络内的流量模式的机制。通过利用MPLS协议,诸如,具有流量设计的资源预留协议(RSVP‑
TE),标签交换路由器可以使用被前置到流量的标签、沿着通过网络到目的地设备的特定路
径(即,标签交换路径(LSP))转发流量。LSP定义通过网络的、将MPLS分组从源设备承载到目
的地设备的不同路径。使用MPLS协议,沿LSP的每个路由器分配与目的地相关联的标签,并
且将标签传播至沿路径的最近的上游路由器。沿路径的路由器添加(推送(push))、去除(弹
出)或者更换标签并且执行其它MPLS操作以沿建立的路径转发MPLS分组。
包括多个不同的标签类型,该标签类型包括“邻接”标签和“节点”标签。为了通过网络转发
分组,路由器可以推送、弹出或者更换标签堆栈(例如,分段列表)中的一个或多个标签,当
分组通过网络而被转发时,该标签堆栈应用于该分组。
平面上的路径进行配置。路径计算的一个示例是所谓的“灵活算法技术”,在该灵活算法技
术中,路由器基于计算类型、度量类型和约束集合来执行路径计算。例如,计算类型可以包
括最短路径优先或者路径的其它计算。度量类型可以包括被用于计算沿约束拓扑的最佳路
径的度量的类型。约束集合可以将路径限制为具有特定密切关系的链路或者避免具有特定
密切关系的链路。实现灵活算法技术的路由器可以沿基于约束的分段路由路径来转向流
量。
发明内容
活算法路径计算而启用的路由器(在本文中被称为“灵活算法路由器”)将与非灵活算法路
由器相关联的信息通知给网络中的其它灵活算法路由器,使得在执行路径计算时该非灵活
算法路由器被包括。作为一个示例,灵活算法路由器(在本文中被称为“分段路由映射服务
器(SRMS)”)中的一个灵活算法路由器可以向针对灵活算法路径计算而启用的其他路由器
通告:包括非灵活算法路由器的回环地址的路由分组(在本文被称为“SRMS分组”)、灵活算
法分段标识符(“灵活算法SID”)以及灵活算法定义,针对该定义非灵活算法路由器将被考
虑用于路径计算,以及与灵活算法相关联的非灵活算法路由器的节点SID(统称为“非灵活
算法路由器信息”)。作为一个示例,SRMS可以将非灵活算法路由器信息包括在开放式最短
路径优先(OSPF)分组的类型、长度和值(“TLV”)或者中间系统到中间系统(ISIS)分组的子
TLV内。
算法路由器信息,使得路由器可以在路径计算期间包括非灵活算法路由器信息。如果路由
器没有被启用用于标识的灵活算法路径计算,则路由器忽略SRMS分组。在路径计算期间,存
储非灵活算法路由器信息的每个路由器凭借SRMS分组来确定其下一跳路由器是否是针对
灵活算法路径计算而启用的路由器或者下一跳路由器是否在灵活算法拓扑中。如果路由器
确定下一跳路由器是在SRMS分组中标识的路由器,则路由器可以对附加转发信息进行配置
以引起路由器将流量转向非灵活算法路由器。作为一个示例,路由器可以配置转发信息,该
转发信息引起路由器推送与非灵活算法路由器相关联的邻接标签。
中一个或多个路由器不支持灵活算法的多供应商网络中,本文所描述的技术通过分阶段地
启用灵活算法的实现、而不需要必须同时针对网络中的所有路由器实现灵活算法,来简化
灵活算法的实现。
设备的信息,其中该信息包括非灵活算法网络设备的回环地址、用于灵活算法路径计算的
标识符、以及标识用于灵活算法路径计算的非灵活算法网络设备的标识符;以及,由网络设
备并且向多个网络设备中的至少一个其它网络设备发送分组,以引起至少一个其它网络设
备来将非灵活算法网络设备包括在灵活算法路径计算中。
设备的信息,其中该信息包括非灵活算法网络设备的回环地址、用于灵活算法路径计算的
标识符、以及针对用于灵活算法路径计算的非灵活算法网络设备的标识符;由网络设备确
定网络设备是否与被包括在分组中的用于灵活算法路径计算的标识符相关联;以及由网络
设备、并且响应于确定网络设备与被包括在分组中的用于灵活算法路径计算的标识符相关
联,来执行包括非灵活算法网络设备的灵活算法路径计算。
理器被配置为:生成分组,该分组包括标识不是针对灵活算法路径计算而启用的非灵活算
法网络设备的信息,其中该信息包括非灵活算法网络设备的回环地址、用于灵活算法路径
计算的标识符、以及标识用于灵活算法路径计算的非灵活算法网络设备的标识符;以及,向
多个网络设备中的至少一个其它网络设备发送分组,以引起该至少一个其它网络设备将非
灵活算法网络设备包括在灵活算法路径计算中。
附图说明
具体实施方式
网络4的示例系统2的框图。网络4可以包括网络设备以建立一个或多个标签交换路径
(“LSP”),例如,PE路由器12A至12J(路由器“12”),该一个或多个标签交换路径(“LSP”)定义
通过网络4的、用以将分组从源PE路由器(例如,入口路由器12A或者12F)承载到目的地PE路
由器(例如,出口路由器12E或者12J)的不同路径。
12F的互联网。在LSP上被转发的网络流量的目的地可以包括一个或多个目的地设备和/或
可以包括LAN或者广域网(WAN)的网络,该LAN或者该广域网(WAN)包括入口路由器12E或者
12J可到达的多个设备。目的地设备可以包括个人计算机、膝上型计算机、工作站、个人数字
助理(PDA)、无线设备、网络就绪应用设备、文件服务器、打印服务器或者经由网络4访问源
的其它设备。
由器12E、或者从入口路由器12F到出口路由器12J的路径配置标签。IGP域(例如,网络4)内
的分段路由允许路由器通告IGP域内的单跳或者多跳LSP,诸如,分段路由LSP。针对分段路
由,“路径”信息作为域的IGP链路状态信息的部分在路由器之间被散布。路由器能够通过将
分段路由报头(例如,标签/分段标识符(SID))前置到分组来转向分组通过所控制的指令集
(所谓的分段)。分段路由允许路由器迫使流通过任何拓扑路径和服务链,同时仅在去往分
段路由域的入口节点保持每流状态。
节点分段并且分段路由内部网关协议(IGP)控制平面自动建立从路由器到任何其它路由器
的所需MPLS转发构造。于2013年6月提交的Filsfil等人所著的标题为“Segment Routing
Architecture”的Internet‑Draft draft‑filsfils‑rtgwg‑segment‑routing‑00进一步描
述了分段路由,而于2013年7月提交的Filsfil等人所著的标题为“Segment Routing Use
Cases”的Internet‑Draft draft‑filsfils‑rtgwg‑segment‑routing‑use‑cases‑01描述
了分段路由用户情况,其中的每一个的全部内容通过引用的方式而被并入本文。在(1)于
2014年7月3日提交的标题为“Segment Routing Archite cture”的IETF draft:draft‑
filsfils‑spring‑segment‑routing‑04、(2)于2016年5月提交的S.Previdi等人所著的标
题为“Source Packet Rout ing in Networking(SPRING)Problem Statement and
Requirements”的RFC 7855以及(3)于2014年6月31日提交的标题为“Segment Routing
with MPLS data plane”的IETF draft:draft‑filsfils‑spring‑s egment‑routing‑
mpls‑03中找到关于SPRING的细节,其中的每一个的全部内容通过引用的方式而被并入本
文。
的相邻LSR以支持沿网络4内的路由的路径的SPRING转发。如下面进一步描述的,SPRING包
括多个不同的标签类型,包括“邻接”标签和“节点”标签。为了通过网络4转发分组,被
SPRING启用的路由器可以推送、弹出或者更换标签堆栈(例如,“分段列表”)中的一个或多
个标签,当通过网络4转发分组时,该标签堆栈(例如,“分段列表”)应用于该分组。标签堆栈
可以编码分组的拓扑和服务源路线。
如,通信链路和/或接口)或者邻接集合上。因此,邻接标签可以与特定路由器相关。为了使
用邻接标签,路由器最初可以将邻接标签指派给特定邻接并且使用中间系统到中间系统
(ISIS)协议或者开放式最短路径优先(OSPF)协议将邻接标签通告给分段路由域中的其它
路由器。路由器可以是在分段路由域中使用特定邻接标签的唯一路由器。当路由器使用邻
接标签转发分组时,路由器可以引起分组使用针对与该邻接标签相关联的路由器的邻接。
以这种方式,可以使用邻接标签建立网络4内的一跳通道。
唯一的所定义的节点标签范围(通常被称为分段路由全局块(SRGB))。网络4的操作者可以
确保从全局范围到不同路由器的范围的不同节点标签的唯一分配。除了节点标签范围之
外,每个特定路由器也都可以具有特定节点分段标识符,该特定节点分段标识符独特地标
识分段路由域中的特定路由器。每个相应路由器可以使用ISIS或者OSPF将其相应节点分段
标识符和节点标签范围通告给分段路由域中的其它路由器。针对在本公开中描述的示例,
每个路由器12可以通告被添加到SRGB的开始标签的节点标签。
使用所确定的路线将这种分组转发至目的地。例如,路由器12中的每个路由器可以使用通
过IGP学习的拓扑信息来执行路径选择,以基于路由器所维护的路由信息以逐跳为基础计
算网络4内的最短路径。然后,路由器12中的每个路由器都可以沿局部计算的最短路径选择
下一跳并且将与选择的下一跳相关联的转发信息安装在路由器的转发平面中,其中,转发
信息标识要在转发流量时使用的网络接口和要在将流量转发到接口之外时应用的一个或
多个标签。路由器使用具有指派的标签的下一跳来逐跳转发流量。
路由器12A、12B、12D和12E可以被配置作为第一平面(例如,第一灵活算法)的一部分和/或
路由器12F、12G、12H、12I和12J可以被配置作为第二平面(例如,第二灵活算法)的一部分。
也就是说,路由器12可以实现灵活算法以沿基于约束的分段路由路径(诸如,沿特定平面的
路径)转向流量。
型、度量类型和约束的组合被称为“灵活算法定义(FAD)”,并且可以由灵活算法标识符(“灵
活算法SID”或者“灵活算法标签”)来标识,例如,128与255之间的值。作为一个示例,路由器
12可以将FAD和灵活算法标签包括在OSPF分组的类型、长度和值(“TLV”)或者ISIS分组的子
TLV内。于208年5月15日提交的P.Psenak,Ed.等人所著的标题为“IGP Flexible
Algorithm”的draft‑ietf‑lsr‑flex‑algo‑00.txt描述了灵活算法的进一步的示例,其全
部内容通过引用的方式而被并入本文。
的灵活算法的节点标签以及相关联的灵活算法定义和灵活算法标签。
算法路径计算。在该示例中,路由器12A可以通告默认分段路线的节点标签103(例如,灵活
算法标签0)和第一灵活算法的节点标签803,该节点标签803是默认分段路线偏移700的节
点标签,以将路由器在第一灵活算法内可由节点标签803到达通知给其它路由器。尽管利用
与第一灵活算法相对应的偏移值700进行了说明,但是偏移值可以是使默认分段路线偏移
至SRGB内的值的任何值。路由器12A可以通告具有与第一灵活算法相关联的灵活算法标签
(例如,128)和灵活算法定义的标签803。
活算法的节点标签805。路由器12D可以通告:针对默认分段路线的节点标签109、用以指示
路由器12D对第一灵活算法的参与的灵活算法标签128和相关联的灵活算法定义、以及用于
第一灵活算法的节点标签809。路由器12E可以通告针对默认分段路线的节点标签111、用以
指示路由器12E对第一灵活算法的参与的灵活算法标签128和相关联的灵活算法定义、以及
用于第一灵活算法的节点标签811。
以计算基于约束的最短路径。基于从路径计算确定的路线,路由器12A、12B、12D和12E中的
每个路由器可以对转发信息进行配置以引起路由器将流量转向针对第一灵活算法路径计
算而启用的路由器。例如,路由器12A、12B、12D和12E中的每个路由器可以对转发信息进行
配置,该转发信息可以利用出口路由器12E(例如,811)的节点标签更换标签堆栈的顶部标
签并且沿参与第一灵活算法的路由器发送分组。
标签、和灵活算法标签(例如,129)。在图1的示例中,路由器12F可以通告:针对默认分段路
线的节点标签104、和用于第二灵活算法的节点标签904(该节点标签904是默认分段路线偏
移800的节点标签),以将路由器12F在第二灵活算法内由节点标签904可到达通知给第二灵
活算法的其它路由器。在该示例中,参与第二灵活算法的路由器可以通告从默认分段路线
偏移了值800的节点标签。路由器12F可以通告具有与第二灵活算法相关联的灵活算法标签
(例如,129)和灵活算法定义的节点标签904。
点标签906。路由器12H可以通告:针对默认分段路线的节点标签108、指示路由器12H对第二
灵活算法的参与的灵活算法标签129和相关联的灵活算法定义、以及用于第二灵活算法的
节点标签908。路由器12I可以通告:针对默认分段路线的节点标签110、指示路由器12I对第
二灵活算法的参与的灵活算法标签129和相关联的灵活算法定义、以及用于第二灵活算法
的节点标签910。路由器12J可以通告:针对默认分段路线的节点标签112、指示路由器12J对
第二灵活算法的参与的灵活算法标签129和相关联的灵活算法定义、以及用于第二灵活算
法的节点标签912。
的查找以计算基于约束的最短路径。基于从路径计算确定的路线,路由器12F、12G、12H、12I
和12J中的每个路由器可以对转发信息进行配置以引起路由器将流量转向被启用以被包括
在第二灵活算法路径计算中的路由器。例如,路由器12F、12G、12H、12I和12J中的每个路由
器可以对转发信息进行配置,该转发信息可以利用针对出口路由器12J(例如,912)的节点
标签更换标签堆栈的顶部标签并且沿参与第二灵活算法的路由器发送分组。
用于分段路由的基于约束的路径计算中。
由器12C作为第一灵活算法(例如,包括路由器12A、12B、12D和12E的第一平面)的路径计算
的一部分。在该示例中,针对第一灵活算法路径计算而启用的任何路由器(例如,12E)可以
通知包括标识非灵活算法路由器12C的信息的分组,以将路由器12C也被包括在用于第一灵
活算法路径计算的路径计算中通知给针对第一灵活算法路径计算而启用的其它路由器。例
如,路由器12E可以通告分组,该分组包括非灵活算法路由器12C的回环地址、针对将被包括
用于路径计算的路由器12C的灵活算法标签、和针对用于标识的灵活算法路径计算的路由
器12C的节点标签(统称为“非灵活算法路由器信息”)。发送包括非灵活算法路由器信息的
路线的路由器在本文中可以被称为分段路由映射服务器(SRMS)。在一些示例中,SRMS可以
将非灵活算法路由器信息包括在ISIS的SID/标签绑定TLV中(如图2A中进一步描述的)。在
其它示例中,SRMS可以将非灵活算法路由器信息包括在OSPF的扩展前缀范围TLV中(如图2B
中进一步描述的)。在图1的示例中,SRMS(例如,路由器12E)通告分组(在本文中被称为
“SRMS”分组),该分组包括非灵活算法路由器12C的回环地址(例如,7.7.7.7)、与第一灵活
算法路径计算(例如,128)相关联的灵活算法标签和用于第一灵活算法路径计算(例如,
807)的路由器12C的节点标签。
算而启用的,则路由器存储非灵活算法路由器信息,使得路由器可以在路径计算期间执行
对信息的查找。如果路由器不是针对灵活算法路径计算而启用的,则路由器忽略SRMS分组。
在路径计算期间,路由器确定下一跳路由器是否是针对灵活算法路径计算而启用的路由
器,或者下一跳路由器是否是在SRMS分组中标识的非灵活算法路由器。如果路由器确定下
一跳路由器是针对灵活算法而启用的路由器,则路由器可以根据上面以引用方式并入的
“draft‑ietf‑lsr‑flex‑algo‑00.txt”对转发信息进行配置。如果路由器确定下一跳路由
器是在SRMS分组中标识的路由器,则路由器可以对其转发信息进行配置以引起路由器将流
量转向非灵活算法路由器。
活算法路由器12C的回环地址(例如,7.7.7.7)并且使用回环地址以用于第一灵活算法路径
计算。
信息进行配置以引起路由器12A将流量转向非灵活算法路由器12C。作为一个示例,路由器
12A可以对其转发信息进行配置,该转发信息引起路由器12A将与路由器12A同路由器12C之
间的链路相关联的邻接标签推送到数据分组的标签堆栈的顶部,该数据分组被转发到路由
器12C。也就是说,确定下一跳路由器是非灵活算法路由器的路由器可以推送邻接标签以将
流量转向非灵活算法路由器。
的内节点标签和标签堆栈的顶部处的邻接标签。当非灵活算法路由器12C接收分组时,路由
器12C可以从标签堆栈弹出邻接标签,使得路由器12E的节点标签处于标签堆栈顶部并且朝
向出口路由器12E发送分组。
签(例如,用于第一灵活算法的灵活算法标签128)标识的灵活算法路径计算而启用的。在这
种情况下,路由器12F、12G、12H、12I和12J忽略SRMS分组。
器12E)可以分别通告用于路由器12C和12D的SRMS分组,如上所述SRMS分组各自包括对应的
非灵活算法路由信息。路由器12A可以接收相应的SRMS分组并且确定SRMS分组各自包括被
启用路由器12A的灵活算法标签(例如,128)。路由器12A可以存储非灵活算法路由器12C和
12D的回环地址(例如,7.7.7.7和9.9.9.9)并且使用回环地址以用于路径计算。
将针对路由器12A与路由器12C之间的链路的第一邻接标签推送到第二邻接标签所遵循的
标签堆栈的顶部,该第二连接标签针对的是在路由器12C与路由器12D之间的链路。以这种
方式,当路由器12C从路由器12A接收具有上述标签堆栈的分组时,路由器12C可以从标签堆
栈顶部弹出第一邻接标签并且将分组转发至具有在标签堆栈顶部的第二邻接标签的路由
器12D,使得在路由器12D接收具有在标签堆栈顶部的第二邻接标签的分组时,路由器12D可
以从标签堆栈弹出第二邻接标签并且朝向出口路由器12E转发分组。
由器中的一个或多个路由器不支持灵活算法路径计算的多供应商网络中,本文所描述的技
术通过分阶段地启用灵活算法的实现、而不需要必须同时针对网络中的所有路由器实现灵
活算法,来简化灵活算法的实现。
200,TLV包括非灵活算法路由信息。在图2A的示例中,分组200可以代表ISIS的SID/标签绑
定TLV。分组200尤其可以包括字段,该字段包括:(1)非灵活算法路由器的回环地址、(2)灵
活算法标签(图2A中的“Algo”)、和用于灵活算法路径计算的节点标签(图2A中的“index”)。
分组200可以包括其它字段,该其它字段可以根据于2016年10月提交的L.Ginsberg等人所
著的标题为“IS‑IS Extensions for Advertising Router Information”的RFC 7981来配
置,其全部内容通过引用而被并入本文。
的回环地址(例如,7.7.7.7/32)。
灵活算法路径计算的值为128的灵活算法标签。尽管利用值为128的灵活算法标签进行了说
明,但是灵活算法标签可以是128与255之间的任何值。例如,针对第二灵活算法路径计算,
分组200包括具有值为129的灵活算法标签。
由器指示非灵活算法路由器在通过第一灵活算法计算的路径中由节点标签值807可到达。
范围TLV。分组210尤其可以包括字段,该字段包括:(1)非灵活算法路由器的回环地址、(2)
灵活算法标签SID(图2B中的“Algo”)和与非灵活算法路径计算相关联的节点SID(图2B中的
“index”)。分组210可以包括其它字段,该其它字段可以根据于2016年2月提交的A Lindem,
Ed.等人所著的标题为“Extensions to OSPF for Advertising Optional Router
Capabilities”的RFC 7770来配置,其全部内容通过引用而被并入本文。
12C的回环地址(例如,7.7.7.7)。
灵活算法路径计算的值为128的灵活算法标签。虽然利用具有值为128的灵活算法标签进行
了说明,但是灵活算法标签可以是128与255之间的任何值。例如,针对第二灵活算法路径计
算,分组210包括具有值129的灵活算法标签。
由器指示非灵活算法路由器在通过第一灵活算法计算的路径中由节点标签值807可到达。
可以由能够至少实现包括分段路由协议的路由协议的任何其它类型的网络设备来实现。因
此,尽管关于路由器300进行了描述,但是技术不应受限于关于图3的示例所描述的路由器
300。
(未示出),该机架包括用于容纳包括IFC 310在内的卡组的多个槽。每个卡可以被插入到机
架的对应槽以经由高速交换机(未示出)将该卡电耦合到路由组件306,该高速交换机可以
包括例如交换架构、开关装置、可配置网络交换机或者集线器、或者其它高速交换机制。IFC
310可以经由多个物理接口端口(未示出)而被耦合到网络链路312A至312N和314A至314N。
通常,IFC 310可以各自代表一个或多个网络接口,路由器300可以通过该一个或多个网络
接口与网络的链路进行接口。
制平面),该路由组件304(控制平面)配置和控制由分组转发组件306(数据平面)应用的分
组转发操作。
拓扑。具体地,路由协议周期性地更新路由信息330以基于路由器300所接收到的路由协议
消息准确地反映出网络和其它实体的拓扑。协议可以是在一个或多个处理器上执行的软件
进程。例如,路由组件304包括在网络堆栈的网络层处操作的网络协议,该网络协议通常被
实现为可执行软件指令。
示例中,IGP‑TE组件322可以包括根据以下中的一个或多个的OSPF路由协议:于1998年4月
提交的J.Moy所著的标题为“OSPF Version 2”的RFC 2328、于2008年7月提交的R.Coltun等
人所著的标题为“OSPF for IPv6”的RFC 5340、于2013年1月提交的N.Sheth等人所著的标
题为“O SPF Hybrid Broadcast and Point‑to‑Multipoint Interface Type”的RF C
6845、于2013年7月提交的A.Lindem等人所著的标题为“OSP Fv3LSA Extendibility”的网
络工作组互联网草案draft‑acee‑ospfv3‑l sa‑extend‑01.txt、以及于2016年2月提交的A
Lindem,Ed.等人所著的标题为“Extensions to OSPF for Advertising Optional Router
Cap abilities”的RFC 7770,其中的每一个通过引用而被并入,如同在他们各自的整体中
阐述的那样。在一些示例中,IGP‑TE组件322可以包括IS‑IS路由协议,该IS‑IS路由协议实
现IGP以用于根据于1990年2月提交的D.Oran所著的标题为“OSI IS‑IS Intra‑domain
Routi ng Protocol”的RFC 1142在路由域内交换路由和可达性信息,其通过引用的而被整
体并入本文。IGP‑TE组件可以包括流量扩展,该流量扩展支持具有多协议标签交换(MPLS)
的流量设计,如在于1999年2月提交的Tony Li等人所著的标题为“IGP Requirements for
Tr affic Engineering with MPLS”的网络工作组互联网草案draft‑li‑mpl s‑igp‑te‑
00.txt所描述的,其通过引用而被整体并入本文。IGP‑TE组件也可以包括如在于2016年10
月提交的L.Ginsberg等人所著的标题为“IS‑IS Extensions for Advertising Router
Information”的RFC7981中所描述的扩展,其通过引用的而被整体并入本文。
标签。如图1中描述的,这些节点或者邻接标签可以通过将分组前置有分段路由报头,来转
向分组通过所控制的指令集(所谓的分段)。
以通告灵活算法通告,以向网络中的其它路由器通知路由器300是针对灵活算法路径计算
而启用的,和/或接收灵活算法通告以学习网络中的针对灵活算法路径计算而启用的其它
路由器。
包括输出链路314的目的地的转发信息334。转发信息340可以根据路由信息330而被生成。
标识符信息。在一些示例中,TED 332还可以包括灵活算法信息334,该灵活算法信息334包
括针对灵活算法路径计算而启用的路由器的节点标签以及相关联的灵活算法标签和灵活
算法定义。TED 332可以具有各种数据结构的形式,诸如,多个表格、链路列表、根基树、数据
库、平面文件或者其它数据结构。
对灵活算法(例如,第一灵活算法)而启用的路由器的示例中,路由器300可以生成分组(例
如,SRMS分组),该分组包括非灵活算法路由器信息,该非灵活算法路由器信息被通告给针
对灵活算法路径计算而启用的其它路由器以向针对灵活算法路径计算而启用的其它路由
器通知在执行灵活算法路径计算时也包括非灵活算法路由器。例如,路由器300的路由组件
304可以使用IGP‑TE组件322来将ISIS分组(根据RFC 7981)配置为包括非灵活算法路由器
(例如,图1的路由器12C)的回环地址、针对将被包括用于路径计算的非灵活算法路由器的
灵活算法标签、以及用于ISIS分组的SID/标签捆绑TLV中的灵活算法路径计算的非灵活算
法路由器的节点标签。在一些示例中,路由器300的路由组件304可以使用IGP‑TE组件322来
将OSPF分组(根据RFC 7770)配置为包括非灵活算法路由器(例如,图1的路由器12C)的回环
地址、针对将被包括用于路径计算非灵活算法路由器的灵活算法标签、以及用于OSPF分组
的扩展前缀范围TLV中的灵活算法的非灵活算法路由器的节点标签。路由器300可以将SRMS
通告给网络中的其它路由器。
路由组件304确定路由器300参与在SRMS分组中标识的灵活算法,则路由组件304可以将非
灵活算法路由器信息存储在TED 332中。以这种方式,当路由组件304执行灵活算法路径计
算时,路由组件304也可以包括被存储在TED 332中的非灵活算法路由器信息,作为路径计
算的部分。
组中标识的非灵活算法路由器。如果路由组件304确定下一跳路由器是非灵活算法路由器,
则路由组件304可以将转发信息340配置为包括用以将流量转向非灵活算法路由器的信息。
例如,路由组件304可以将转发信息340配置为包括指令,以引起路由器300将邻接标签342
推送到标签堆栈的顶部的指令。以这种方式,当路由器300接收到分组并且确定分组将朝向
非灵活算法路由器而被发送到出接口(例如,IFC 310中的一个)时,路由器300可以在将分
组转发到非灵活算法路由器之前将邻接标签342推送到标签堆栈的顶部。
的标签堆栈顶部弹出邻接标签。以这种方式,当路由器300接收到包括具有在标签堆栈顶部
的邻接标签的标签堆栈的分组时,路由器300可以从其转发信息340确定在将分组转发至下
一跳之前从标签堆栈的顶部弹出邻接标签。
是出于示例的目的被示出。本公开的技术并不限于该架构。在其它示例中,路由器300可以
按照多种方式被配置。在一个示例中,控制单元302的功能中的一些功能可以被分布在IFC
310内。在另一示例中,控制单元302可以包括作为从属路由器操作的多个分组转发引擎。
理器。在这种情况下,控制单元302的各个软件组件/模块可以包括被存储在诸如计算机存
储器或者硬盘等计算机可读存储介质上的可执行指令。
用的其它路由器以在执行灵活算法路径计算时包括非灵活算法路由器(400)。例如,路由器
300的路由组件304可以使用IGP‑TE组件322来将ISIS分组(根据RFC 7981)或者OSPF分组
(根据RFC7770)配置为包括非灵活算法路由器(例如,图1的路由器12C)的回环地址、针对将
被考虑用于路径计算非灵活算法路由器的灵活算法标签、以及针对非灵活算法路由器的、
可以用于将流量转向非灵活算法路由器的节点标签。
算而启用的(406)。例如,路由器12A的路由组件304可以执行对TED 332的查找以确定灵活
算法信息334是否包括被包括在SRMS分组中的灵活算法标签。如果路由器12A的路由组件
304确定路由器12A是针对在SRMS分组中标识的灵活算法路径计算而启用的(步骤406的
“YES”分支),则路由组件304可以将非灵活算法路由器信息存储在TED 332中。以这种方式,
当路由器12A执行灵活算法路径计算时,路由器12A可以包括路由器12C,作为路径计算的部
分(410)。如果路由器12A的路由组件304确定路由器12A不是针对在SRMS分组中标识的灵活
算法路径计算而启用的(步骤406的“NO”分支)则路由器12A忽略SRMS分组(408)。
的“YES”分支),则路由器12A可以对转发信息进行配置以将流量转向非灵活算法路由器
(414)。例如,路由器12A的路由组件304可以将转发信息340配置为包括指令以引起路由器
12A将邻接标签342推送至标签堆栈的顶部。以这种方式,当路由器12A接收数据分组并且确
定该数据分组要朝向非灵活算法路由器而被发送至出接口(例如,IFC 310中的一个)时,路
由器12A可以在将分组转发到非灵活算法路由器之前将邻接标签342推送到标签堆栈的顶
部。
(416)。例如,如果路由器12A确定下一跳路由器是参与灵活算法的路由器,则路由器可以根
据上面以引用的方式并入的“draft‑ietf‑lsr‑flex‑algo‑00.txt”对转发信息340进行配
置。
离散但是彼此协作的逻辑设备或其他硬件设备中。在一些情况下,电子电路系统的各种特
征可以被实现为一个或多个集成电路设备,诸如,集成电路芯片或者芯片集。
可以至少部分地由计算机可读数据存储介质实现,该计算机可读数据存储介质包括指令,
该指令在被执行时使得处理器执行上述方法中的一个或者多个。例如,计算机可读数据存
储介质可以存储由处理器执行的这种指令。
(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁
性或者光学数据存储介质等。在一些示例中,制品可以包括一个或多个计算机可读存储介
质。
储可以随时间而变化的数据(例如,在RAM或缓存中)。
路(ASIC)、现场可编程序逻辑阵列(FPGA)、或者其它等效的集成或者离散逻辑电路系统。因
此,本文所使用的术语“处理器”可以指任何前述结构或者适用于实现本文所描述的技术的
任何其它结构。另外,在一些方面中,本公开所描述的功能可以被设置在软件组件或者硬件
组件内。