实现非灵活算法路由器参与灵活算法路由协议转让专利

申请号 : CN201910570533.6

文献号 : CN111147373B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 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所述的网络设备,其中为了对所述转发信息进行配置以将流量转向所述非灵活算法网络设备,所述一个或多个可编程处理器进一步被配置为:对转发信息进行配置以引起所述网络设备推送与所述非灵活算法网络设备相关联的邻接标签。

说明书 :

实现非灵活算法路由器参与灵活算法路由协议

[0001] 本申请要求于2018年12月18日提交的美国专利申请号16/223,946和于2018年11月2日提交的印度临时专利申请号201841041514的权益,其全部内容通过引用的而被并入
本文。

技术领域

[0002] 本公开涉及计算机网络并且更具体地涉及在计算机网络内设计(engineering)流量。

背景技术

[0003] 计算机网络是交换数据和共享资源的互连计算设备的集合。在基于分组的网络(诸如,互联网)中,计算设备通过将数据分成被称为分组的小块来传递数据,该分组从源设
备跨过网络被路由至目的地设备。目的地设备从分组提取数据并且将数据集合成其原始形
式。
[0004] 网络内的某些设备,被称为路由器,使用路由协议来交换和积累描述网络的拓扑信息。这允许路由器构建其自己的网络的路由拓扑图。在接收到输入分组时,路由器检查分
组内的密钥信息并且根据积累的拓扑信息转发分组。
[0005] 许多路由协议落入在被称为内部网关协议(IGP)的协议类中,在该IGP中,基于泛洪(flooding‑based)的分发机制被用于向网络内的路由器宣布拓扑信息。这些路由协议通
常依赖于需要路由器中的每个路由器都具有针对给定域(被称为IGP区域或者域)的同步路
由拓扑信息的路由算法。根据链路状态路由协议维护的链路状态数据库(LSDB)或者流量工
程数据库(TED)的内容具有IGP域的范围。IGP路由协议通常要求IGP路由域中的所有路由器
将已经根据IGP协议分发的所有路由信息存储在内部LSDB或者TED内。在操作中,每个路由
器通常都维护内部链路状态数据库并且以定义间隔扫描整个数据库以生成和输出链路状
态消息,以使数据库与路由域内的相邻路由器同步。以这种方式,链路状态跨整个路由域而
被传播并且全部被存储在域内的每个路由器处。
[0006] 基于分组的网络越来越多地利用标签交换协议以用于流量设计和其它目的。多协议标签交换(MPLS)是用于根据由网络中的路由器维护的路由信息来设计互联网协议(IP)
网络内的流量模式的机制。通过利用MPLS协议,诸如,具有流量设计的资源预留协议(RSVP‑
TE),标签交换路由器可以使用被前置到流量的标签、沿着通过网络到目的地设备的特定路
径(即,标签交换路径(LSP))转发流量。LSP定义通过网络的、将MPLS分组从源设备承载到目
的地设备的不同路径。使用MPLS协议,沿LSP的每个路由器分配与目的地相关联的标签,并
且将标签传播至沿路径的最近的上游路由器。沿路径的路由器添加(推送(push))、去除(弹
出)或者更换标签并且执行其它MPLS操作以沿建立的路径转发MPLS分组。
[0007] 路由器可以进一步采用分段路由技术,诸如通过使用网络中的源分组路由(SPRING)协议,该分段路由技术在IGP域内提供分段路由以通知单跳或者多跳LSP。SPRING
包括多个不同的标签类型,该标签类型包括“邻接”标签和“节点”标签。为了通过网络转发
分组,路由器可以推送、弹出或者更换标签堆栈(例如,分段列表)中的一个或多个标签,当
分组通过网络而被转发时,该标签堆栈应用于该分组。
[0008] 支持分段路由技术的路由器也可以支持基于约束的路径计算,在基于约束的路径计算中,路径计算是基于各种约束而被执行的,诸如对与多个平面一起部署的网络的特定
平面上的路径进行配置。路径计算的一个示例是所谓的“灵活算法技术”,在该灵活算法技
术中,路由器基于计算类型、度量类型和约束集合来执行路径计算。例如,计算类型可以包
括最短路径优先或者路径的其它计算。度量类型可以包括被用于计算沿约束拓扑的最佳路
径的度量的类型。约束集合可以将路径限制为具有特定密切关系的链路或者避免具有特定
密切关系的链路。实现灵活算法技术的路由器可以沿基于约束的分段路由路径来转向流
量。

发明内容

[0009] 一般而言,描述了促进将待被包括在灵活算法路径计算中的不是针对灵活算法路径计算而启用的路由器(在本文中被称为“非灵活算法路由器”)包括的技术。例如,针对灵
活算法路径计算而启用的路由器(在本文中被称为“灵活算法路由器”)将与非灵活算法路
由器相关联的信息通知给网络中的其它灵活算法路由器,使得在执行路径计算时该非灵活
算法路由器被包括。作为一个示例,灵活算法路由器(在本文中被称为“分段路由映射服务
器(SRMS)”)中的一个灵活算法路由器可以向针对灵活算法路径计算而启用的其他路由器
通告:包括非灵活算法路由器的回环地址的路由分组(在本文被称为“SRMS分组”)、灵活算
法分段标识符(“灵活算法SID”)以及灵活算法定义,针对该定义非灵活算法路由器将被考
虑用于路径计算,以及与灵活算法相关联的非灵活算法路由器的节点SID(统称为“非灵活
算法路由器信息”)。作为一个示例,SRMS可以将非灵活算法路由器信息包括在开放式最短
路径优先(OSPF)分组的类型、长度和值(“TLV”)或者中间系统到中间系统(ISIS)分组的子
TLV内。
[0010] 接收SRMS分组的路由器可以确定是否针对在SRMS分组中识别到的灵活算法路径计算启用路由器。如果路由器被启用用于标识的灵活算法路径计算,则路由器存储非灵活
算法路由器信息,使得路由器可以在路径计算期间包括非灵活算法路由器信息。如果路由
器没有被启用用于标识的灵活算法路径计算,则路由器忽略SRMS分组。在路径计算期间,存
储非灵活算法路由器信息的每个路由器凭借SRMS分组来确定其下一跳路由器是否是针对
灵活算法路径计算而启用的路由器或者下一跳路由器是否在灵活算法拓扑中。如果路由器
确定下一跳路由器是在SRMS分组中标识的路由器,则路由器可以对附加转发信息进行配置
以引起路由器将流量转向非灵活算法路由器。作为一个示例,路由器可以配置转发信息,该
转发信息引起路由器推送与非灵活算法路由器相关联的邻接标签。
[0011] 该技术可以提供一个或多个示例技术优势。例如,通过使用ISIS或OSPF的现有TLV,针对不支持或者不启用灵活算法的路由器实现灵活算法不需要改变协议。而且,在其
中一个或多个路由器不支持灵活算法的多供应商网络中,本文所描述的技术通过分阶段地
启用灵活算法的实现、而不需要必须同时针对网络中的所有路由器实现灵活算法,来简化
灵活算法的实现。
[0012] 在一个示例中,方法包括:由针对灵活算法路径计算而启用的多个网络设备中的网络设备生成分组,该分组包括标识不是针对灵活算法路径计算而启用的非灵活算法网络
设备的信息,其中该信息包括非灵活算法网络设备的回环地址、用于灵活算法路径计算的
标识符、以及标识用于灵活算法路径计算的非灵活算法网络设备的标识符;以及,由网络设
备并且向多个网络设备中的至少一个其它网络设备发送分组,以引起至少一个其它网络设
备来将非灵活算法网络设备包括在灵活算法路径计算中。
[0013] 在另一示例中,方法包括:由针对灵活算法路径计算而启用的多个网络设备中的网络设备接收分组,该分组包括标识不是针对灵活算法路径计算而启用的非灵活算法网络
设备的信息,其中该信息包括非灵活算法网络设备的回环地址、用于灵活算法路径计算的
标识符、以及针对用于灵活算法路径计算的非灵活算法网络设备的标识符;由网络设备确
定网络设备是否与被包括在分组中的用于灵活算法路径计算的标识符相关联;以及由网络
设备、并且响应于确定网络设备与被包括在分组中的用于灵活算法路径计算的标识符相关
联,来执行包括非灵活算法网络设备的灵活算法路径计算。
[0014] 在另一示例中,针对灵活算法路径计算而启用的多个网络设备中的网络设备包括:存储器;可操作地耦合到存储器的一个或多个可编程处理器,其中一个或多个可编程处
理器被配置为:生成分组,该分组包括标识不是针对灵活算法路径计算而启用的非灵活算
法网络设备的信息,其中该信息包括非灵活算法网络设备的回环地址、用于灵活算法路径
计算的标识符、以及标识用于灵活算法路径计算的非灵活算法网络设备的标识符;以及,向
多个网络设备中的至少一个其它网络设备发送分组,以引起该至少一个其它网络设备将非
灵活算法网络设备包括在灵活算法路径计算中。
[0015] 在附图或以下描述中陈述一个或多个示例的细节。其它特征、目的和优点通过本说明书和附图以及通过权利要求书将变得显而易见。

附图说明

[0016] 图1是图示了根据本文所描述的技术的用于促进将不是针对灵活算法而启用的路由器包括在灵活算法路径计算中的示例系统的框图。
[0017] 图2A图示了根据本文所描述的技术的包括类型/长度/值(TLV)的示例中间系统到中间系统(ISIS)分组,该TLV包括非灵活算法路由信息。
[0018] 图2B图示了根据本文所描述的技术的包括类型/长度/值(TLV)的示例开放式最短路径优先(OSFP)分组,该TLV包括非灵活算法路由信息。
[0019] 图3是图示了能够根据本文所描述的技术来操作的示例路由器的框图。
[0020] 图4是图示了能够根据本文所描述的技术来操作的路由器的示例操作的流程图。

具体实施方式

[0021] 图1是图示了根据本公开所描述的技术的包括用于促进将不是针对灵活算法而启用的路由器(在本文中被称为“非灵活算法路由器”)包括在灵活算法路径计算中的计算机
网络4的示例系统2的框图。网络4可以包括网络设备以建立一个或多个标签交换路径
(“LSP”),例如,PE路由器12A至12J(路由器“12”),该一个或多个标签交换路径(“LSP”)定义
通过网络4的、用以将分组从源PE路由器(例如,入口路由器12A或者12F)承载到目的地PE路
由器(例如,出口路由器12E或者12J)的不同路径。
[0022] 由入口路由器12A或者路由器12F接收到的网络流量的源可以包括一个或多个设备(未示出)和/或任何公共或者私有网络或者将流量提供至网络4中的入口路由器12A或者
12F的互联网。在LSP上被转发的网络流量的目的地可以包括一个或多个目的地设备和/或
可以包括LAN或者广域网(WAN)的网络,该LAN或者该广域网(WAN)包括入口路由器12E或者
12J可到达的多个设备。目的地设备可以包括个人计算机、膝上型计算机、工作站、个人数字
助理(PDA)、无线设备、网络就绪应用设备、文件服务器、打印服务器或者经由网络4访问源
的其它设备。
[0023] 在图1的示例中,路由器12可以使用分段路由技术,例如,网络中的源分组路由(SPRING)协议,以用于建立LSP。例如,使用分段路由技术来针对从入口路由器12A到出口路
由器12E、或者从入口路由器12F到出口路由器12J的路径配置标签。IGP域(例如,网络4)内
的分段路由允许路由器通告IGP域内的单跳或者多跳LSP,诸如,分段路由LSP。针对分段路
由,“路径”信息作为域的IGP链路状态信息的部分在路由器之间被散布。路由器能够通过将
分段路由报头(例如,标签/分段标识符(SID))前置到分组来转向分组通过所控制的指令集
(所谓的分段)。分段路由允许路由器迫使流通过任何拓扑路径和服务链,同时仅在去往分
段路由域的入口节点保持每流状态。
[0024] 分段路由的一个潜在优势可以是,分段路由架构可以在转发平面没有变化的情况下直接被应用于多协议标签交换(MPLS)数据平面。网络管理员仅需要每个路由器分配一个
节点分段并且分段路由内部网关协议(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的细节,其中的每一个的全部内容通过引用的方式而被并入本
文。
[0025] 在图1的示例中,被包括在分段路由域中的路由器12可以根据SPRING协议交换标签。路由器12作为标签交换路由器(LSR)进行操作,标签交换路由器将标签分发给网络4内
的相邻LSR以支持沿网络4内的路由的路径的SPRING转发。如下面进一步描述的,SPRING包
括多个不同的标签类型,包括“邻接”标签和“节点”标签。为了通过网络4转发分组,被
SPRING启用的路由器可以推送、弹出或者更换标签堆栈(例如,“分段列表”)中的一个或多
个标签,当通过网络4转发分组时,该标签堆栈(例如,“分段列表”)应用于该分组。标签堆栈
可以编码分组的拓扑和服务源路线。
[0026] 邻接标签(在本文中也被称为“邻接分段标识符(SID)”)对特定分段路由节点(诸如,路由器12中的一个路由器)可能具有局部语义。具体地,邻接标签将流量转向到邻接(例
如,通信链路和/或接口)或者邻接集合上。因此,邻接标签可以与特定路由器相关。为了使
用邻接标签,路由器最初可以将邻接标签指派给特定邻接并且使用中间系统到中间系统
(ISIS)协议或者开放式最短路径优先(OSPF)协议将邻接标签通告给分段路由域中的其它
路由器。路由器可以是在分段路由域中使用特定邻接标签的唯一路由器。当路由器使用邻
接标签转发分组时,路由器可以引起分组使用针对与该邻接标签相关联的路由器的邻接。
以这种方式,可以使用邻接标签建立网络4内的一跳通道。
[0027] 相反,节点标签(在本文中也被称为“节点SID”)在分段路由域内具有全局语义。也就是说,被SPRING启用的每个路由器12都可以被指派对分段路由域内的每个相应路由器是
唯一的所定义的节点标签范围(通常被称为分段路由全局块(SRGB))。网络4的操作者可以
确保从全局范围到不同路由器的范围的不同节点标签的唯一分配。除了节点标签范围之
外,每个特定路由器也都可以具有特定节点分段标识符,该特定节点分段标识符独特地标
识分段路由域中的特定路由器。每个相应路由器可以使用ISIS或者OSPF将其相应节点分段
标识符和节点标签范围通告给分段路由域中的其它路由器。针对在本公开中描述的示例,
每个路由器12可以通告被添加到SRGB的开始标签的节点标签。
[0028] 基于使用例如最短路径路由确定的路线,路由器12中的每个路由器都可以对其转发状态进行配置以将节点标签(与网络中的其它节点对应)推送、弹出或者更换到分组上以
使用所确定的路线将这种分组转发至目的地。例如,路由器12中的每个路由器可以使用通
过IGP学习的拓扑信息来执行路径选择,以基于路由器所维护的路由信息以逐跳为基础计
算网络4内的最短路径。然后,路由器12中的每个路由器都可以沿局部计算的最短路径选择
下一跳并且将与选择的下一跳相关联的转发信息安装在路由器的转发平面中,其中,转发
信息标识要在转发流量时使用的网络接口和要在将流量转发到接口之外时应用的一个或
多个标签。路由器使用具有指派的标签的下一跳来逐跳转发流量。
[0029] 在一些示例中,路由器12可以进一步支持用于分段路由的基于约束的路径计算(例如,灵活算法)。约束的类型可能是为了计算沿特定平面的路由器的子集的路径。例如,
路由器12A、12B、12D和12E可以被配置作为第一平面(例如,第一灵活算法)的一部分和/或
路由器12F、12G、12H、12I和12J可以被配置作为第二平面(例如,第二灵活算法)的一部分。
也就是说,路由器12可以实现灵活算法以沿基于约束的分段路由路径(诸如,沿特定平面的
路径)转向流量。
[0030] 为了实现灵活算法,路由器12可以例如通告分组,该分组(a)描述对拓扑的约束的集合,(b)标识计算类型、和(c)识别要用于计算沿约束拓扑的最佳路径的度量类型。计算类
型、度量类型和约束的组合被称为“灵活算法定义(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描述了灵活算法的进一步的示例,其全
部内容通过引用的方式而被并入本文。
[0031] 为了配置灵活算法的参与,除了通告独特地标识默认分段路线域(例如,不具有灵活算法的分段路由)中的路由器的节点标签之外,路由器12还可以通告用于路由器将参与
的灵活算法的节点标签以及相关联的灵活算法定义和灵活算法标签。
[0032] 例如,假设路由器12A、12B、12C和12E被启用用于与第一平面相对应的第一灵活算法路径计算,并且路由器12F、12G、12H、12I和12J被启用用于与第二平面相对应的第二灵活
算法路径计算。在该示例中,路由器12A可以通告默认分段路线的节点标签103(例如,灵活
算法标签0)和第一灵活算法的节点标签803,该节点标签803是默认分段路线偏移700的节
点标签,以将路由器在第一灵活算法内可由节点标签803到达通知给其它路由器。尽管利用
与第一灵活算法相对应的偏移值700进行了说明,但是偏移值可以是使默认分段路线偏移
至SRGB内的值的任何值。路由器12A可以通告具有与第一灵活算法相关联的灵活算法标签
(例如,128)和灵活算法定义的标签803。
[0033] 同样,路由器12B可以通告:针对默认分段路线的节点标签105、用以指示路由器12B对第一灵活算法的参与的灵活算法标签128和相关联的灵活算法定义、以及用于第一灵
活算法的节点标签805。路由器12D可以通告:针对默认分段路线的节点标签109、用以指示
路由器12D对第一灵活算法的参与的灵活算法标签128和相关联的灵活算法定义、以及用于
第一灵活算法的节点标签809。路由器12E可以通告针对默认分段路线的节点标签111、用以
指示路由器12E对第一灵活算法的参与的灵活算法标签128和相关联的灵活算法定义、以及
用于第一灵活算法的节点标签811。
[0034] 响应于接收到灵活算法通告,路由器12A、12B、12D和12E中的每个路由器可以例如将节点标签存储在一个或多个路由表中,使得路由器可以执行对一个或多个路由表的查找
以计算基于约束的最短路径。基于从路径计算确定的路线,路由器12A、12B、12D和12E中的
每个路由器可以对转发信息进行配置以引起路由器将流量转向针对第一灵活算法路径计
算而启用的路由器。例如,路由器12A、12B、12D和12E中的每个路由器可以对转发信息进行
配置,该转发信息可以利用出口路由器12E(例如,811)的节点标签更换标签堆栈的顶部标
签并且沿参与第一灵活算法的路由器发送分组。
[0035] 为了配置第二灵活算法的参与,路由器12F、12G、12H、12I和12J可以各自通告:针对默认分段路线的节点标签、用于路径计算的、标识路由器要被包括到的灵活算法的节点
标签、和灵活算法标签(例如,129)。在图1的示例中,路由器12F可以通告:针对默认分段路
线的节点标签104、和用于第二灵活算法的节点标签904(该节点标签904是默认分段路线偏
移800的节点标签),以将路由器12F在第二灵活算法内由节点标签904可到达通知给第二灵
活算法的其它路由器。在该示例中,参与第二灵活算法的路由器可以通告从默认分段路线
偏移了值800的节点标签。路由器12F可以通告具有与第二灵活算法相关联的灵活算法标签
(例如,129)和灵活算法定义的节点标签904。
[0036] 路由器12G可以通告:针对默认分段路线的节点标签106、指示路由器12G对第二灵活算法的参与的灵活算法标签129和相关联的灵活算法定义、以及用于第二灵活算法的节
点标签906。路由器12H可以通告:针对默认分段路线的节点标签108、指示路由器12H对第二
灵活算法的参与的灵活算法标签129和相关联的灵活算法定义、以及用于第二灵活算法的
节点标签908。路由器12I可以通告:针对默认分段路线的节点标签110、指示路由器12I对第
二灵活算法的参与的灵活算法标签129和相关联的灵活算法定义、以及用于第二灵活算法
的节点标签910。路由器12J可以通告:针对默认分段路线的节点标签112、指示路由器12J对
第二灵活算法的参与的灵活算法标签129和相关联的灵活算法定义、以及用于第二灵活算
法的节点标签912。
[0037] 响应于接收到灵活算法通知,路由器12F、12G、12H、12I和12J中的每个路由器都可以例如将节点SID存储在一个或多个路由表中,使得路由器可以执行对一个或多个路由表
的查找以计算基于约束的最短路径。基于从路径计算确定的路线,路由器12F、12G、12H、12I
和12J中的每个路由器可以对转发信息进行配置以引起路由器将流量转向被启用以被包括
在第二灵活算法路径计算中的路由器。例如,路由器12F、12G、12H、12I和12J中的每个路由
器可以对转发信息进行配置,该转发信息可以利用针对出口路由器12J(例如,912)的节点
标签更换标签堆栈的顶部标签并且沿参与第二灵活算法的路由器发送分组。
[0038] 为了便于说明,下面提供的表格图示了用于默认分段路线的节点标签、具有第一灵活算法的分段路线和具有第二灵活算法的分段路线的所通告的节点标签。
[0039]
[0040]
[0041] 在其中系统2可以包括多供应商网络的一些示例中,一个或多个路由器可能不支持灵活算法技术。在这些示例中,不支持或不启用灵活算法技术的路由器通常不被包括在
用于分段路由的基于约束的路径计算中。
[0042] 根据本文所描述的技术,非灵活算法路由器(例如,路由器12C)被包括在灵活算法路径计算中,即使路由器12C不支持灵活算法技术。在图1的示例中,管理员可能想要包括路
由器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的节点标签。
[0043] 响应于接收到SRMS分组,路由器12中的每个路由器可以确定路由器是否是针对SRMS分组中标识的灵活算法路径计算而启用的。如果路由器是针对标识的灵活算法路径计
算而启用的,则路由器存储非灵活算法路由器信息,使得路由器可以在路径计算期间执行
对信息的查找。如果路由器不是针对灵活算法路径计算而启用的,则路由器忽略SRMS分组。
在路径计算期间,路由器确定下一跳路由器是否是针对灵活算法路径计算而启用的路由
器,或者下一跳路由器是否是在SRMS分组中标识的非灵活算法路由器。如果路由器确定下
一跳路由器是针对灵活算法而启用的路由器,则路由器可以根据上面以引用方式并入的
“draft‑ietf‑lsr‑flex‑algo‑00.txt”对转发信息进行配置。如果路由器确定下一跳路由
器是在SRMS分组中标识的路由器,则路由器可以对其转发信息进行配置以引起路由器将流
量转向非灵活算法路由器。
[0044] 例如,路由器12A可以接收由SRMS(例如,路由器12E)通告的SRMS分组并且确定SRMS分组包括路由器12A参与在其中的灵活算法标签(例如,128)。路由器12A可以存储非灵
活算法路由器12C的回环地址(例如,7.7.7.7)并且使用回环地址以用于第一灵活算法路径
计算。
[0045] 在用于第一灵活算法的路径计算期间,路由器12A可以确定路由器12C是到出口路由器12E的最短路径中的一条路径的下一跳路由器。在这种情况下,路由器12A可以对转发
信息进行配置以引起路由器12A将流量转向非灵活算法路由器12C。作为一个示例,路由器
12A可以对其转发信息进行配置,该转发信息引起路由器12A将与路由器12A同路由器12C之
间的链路相关联的邻接标签推送到数据分组的标签堆栈的顶部,该数据分组被转发到路由
器12C。也就是说,确定下一跳路由器是非灵活算法路由器的路由器可以推送邻接标签以将
流量转向非灵活算法路由器。
[0046] 当路由器12A接收来自源设备(未示出)的分组时,路由器12A可以利用标签堆栈来将分组注入到网络4,以将分组转向非灵活算法路由器12C,该标签堆栈包括出口路由器12E
的内节点标签和标签堆栈的顶部处的邻接标签。当非灵活算法路由器12C接收分组时,路由
器12C可以从标签堆栈弹出邻接标签,使得路由器12E的节点标签处于标签堆栈顶部并且朝
向出口路由器12E发送分组。
[0047] 路由器12F、12G、12H、12I和12J(例如,针对第二灵活算法而启用的路由器)可以各自接收由路由器12E通告的SRMS分组并且确定路由器不是针对由SRMS分组中的灵活算法标
签(例如,用于第一灵活算法的灵活算法标签128)标识的灵活算法路径计算而启用的。在这
种情况下,路由器12F、12G、12H、12I和12J忽略SRMS分组。
[0048] 在一些示例中,管理员可能希望在执行灵活算法路径计算时包括多个非灵活算法路由器。例如,假设路由器12C和路由器12D不支持灵活算法。在该示例中,SRMS(例如,路由
器12E)可以分别通告用于路由器12C和12D的SRMS分组,如上所述SRMS分组各自包括对应的
非灵活算法路由信息。路由器12A可以接收相应的SRMS分组并且确定SRMS分组各自包括被
启用路由器12A的灵活算法标签(例如,128)。路由器12A可以存储非灵活算法路由器12C和
12D的回环地址(例如,7.7.7.7和9.9.9.9)并且使用回环地址以用于路径计算。
[0049] 在路径计算期间,路由器12A可以确定下一跳路由器包括路由器12C,并且路由器12D是路由器12C的下一跳路由器。在这种情况下,路由器12A可以对其转向信息进行配置以
将针对路由器12A与路由器12C之间的链路的第一邻接标签推送到第二邻接标签所遵循的
标签堆栈的顶部,该第二连接标签针对的是在路由器12C与路由器12D之间的链路。以这种
方式,当路由器12C从路由器12A接收具有上述标签堆栈的分组时,路由器12C可以从标签堆
栈顶部弹出第一邻接标签并且将分组转发至具有在标签堆栈顶部的第二邻接标签的路由
器12D,使得在路由器12D接收具有在标签堆栈顶部的第二邻接标签的分组时,路由器12D可
以从标签堆栈弹出第二邻接标签并且朝向出口路由器12E转发分组。
[0050] 技术可以提供一个或多个技术优势。例如,通过使用用于ISIS或者OSPF的现有TLV,针对不支持或者不启用灵活算法的路由器实现灵活算法不需要改变协议。而且,在路
由器中的一个或多个路由器不支持灵活算法路径计算的多供应商网络中,本文所描述的技
术通过分阶段地启用灵活算法的实现、而不需要必须同时针对网络中的所有路由器实现灵
活算法,来简化灵活算法的实现。
[0051] 图2A和图2B各自图示了根据本文所描述的技术的包括非灵活算法路由信息的示例分组。例如,图2A图示了根据本文所描述的技术的包括类型/长度/值(TLV)的示例分组
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来配
置,其全部内容通过引用而被并入本文。
[0052] 分组200的回环地址字段可以是非灵活算法路由器的回环地址,其指示了将在灵活算法路径计算中包括的前缀。根据图1中描述的示例,图2A的分组200可以包括路由器12C
的回环地址(例如,7.7.7.7/32)。
[0053] 灵活算法标签字段是与灵活算法路径计算相关联的唯一标识符。标识符可以是在128与255之间的单个八位字节值。在图2A的示例中,分组200可以包括具有独立地标识第一
灵活算法路径计算的值为128的灵活算法标签。尽管利用值为128的灵活算法标签进行了说
明,但是灵活算法标签可以是128与255之间的任何值。例如,针对第二灵活算法路径计算,
分组200包括具有值为129的灵活算法标签。
[0054] 节点标签字段是用于第一灵活算法路径计算的非灵活算法路由器的独特标识符。例如,分组200包括节点标签值807,该节点标签值807向针对第一灵活算法而启用的其它路
由器指示非灵活算法路由器在通过第一灵活算法计算的路径中由节点标签值807可到达。
[0055] 图2B图示了根据本公开所描述的技术的包括类型/长度/值(TLV)的示例分组210,该TLV包括非灵活算法路由信息。在图2B的示例中,分组210可以代表用于OSPE的扩展前缀
范围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来配置,其全部内容通过引用而被并入本文。
[0056] 分组210的回环地址字段可以是非灵活算法路由器的回环地址,其指示了将在在灵活算法路径计算中包括的前缀。根据图1中描述的示例,图2B的分组210可以包括路由器
12C的回环地址(例如,7.7.7.7)。
[0057] 灵活算法标签字段是与灵活算法路径计算相关联的唯一标识符。标识符可以是在128与255之间的单个八位字节值。在图2B的示例中,分组210可以包括具有独立地标识第一
灵活算法路径计算的值为128的灵活算法标签。虽然利用具有值为128的灵活算法标签进行
了说明,但是灵活算法标签可以是128与255之间的任何值。例如,针对第二灵活算法路径计
算,分组210包括具有值129的灵活算法标签。
[0058] 节点标签字段是用于第一灵活算法路径计算的非灵活算法路由器的唯一标识符。例如,分组210包括节点标签值807,该节点标签值807向针对第一灵活算法而启用的其它路
由器指示非灵活算法路由器在通过第一灵活算法计算的路径中由节点标签值807可到达。
[0059] 图3是图示了执行本公开所描述的技术的各个方面的示例路由器300的框图。路由器300可以代表图1的路由器12中的任何路由器。尽管关于路由器300进行了描述,但是技术
可以由能够至少实现包括分段路由协议的路由协议的任何其它类型的网络设备来实现。因
此,尽管关于路由器300进行了描述,但是技术不应受限于关于图3的示例所描述的路由器
300。
[0060] 在图3的示例中,路由器300包括分别经由网络链路312A至312N和314A至314N接收和发送诸如分组流的数据单元的接口卡310A至310N(“IFC 310”)。路由器300可以包括机架
(未示出),该机架包括用于容纳包括IFC 310在内的卡组的多个槽。每个卡可以被插入到机
架的对应槽以经由高速交换机(未示出)将该卡电耦合到路由组件306,该高速交换机可以
包括例如交换架构、开关装置、可配置网络交换机或者集线器、或者其它高速交换机制。IFC 
310可以经由多个物理接口端口(未示出)而被耦合到网络链路312A至312N和314A至314N。
通常,IFC 310可以各自代表一个或多个网络接口,路由器300可以通过该一个或多个网络
接口与网络的链路进行接口。
[0061] 一般而言,路由器300可以包括控制单元302,该控制单元302确定接收到的分组的路线并且相应地经由IFC 310转发分组。在图3的示例中,控制单元302包括路由组件304(控
制平面),该路由组件304(控制平面)配置和控制由分组转发组件306(数据平面)应用的分
组转发操作。
[0062] 路由组件304为在网络堆栈的不同层处执行的各种路由协议320提供操作环境。路由组件304负责维护路由信息330以反映路由器300被连接到的网络和其它网络实体的当前
拓扑。具体地,路由协议周期性地更新路由信息330以基于路由器300所接收到的路由协议
消息准确地反映出网络和其它实体的拓扑。协议可以是在一个或多个处理器上执行的软件
进程。例如,路由组件304包括在网络堆栈的网络层处操作的网络协议,该网络协议通常被
实现为可执行软件指令。
[0063] 在图3的示例中,协议320可以包括IGP‑TE 322以实现具有流量设计扩展的IGP协议来交换链路状态信息,并且促进在端点设备之间分组或者其它数据单元的转发。在一些
示例中,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中所描述的扩展,其通过引用的而被整体并入本文。
[0064] 路由组件304包括分段路由(SR)组件328,该分段路由(SR)组件328用于涌现IGP协议(例如,IS‑IS和OSPF)的分段路由技术以用于指明路由器300可以如何通告节点或者邻接
标签。如图1中描述的,这些节点或者邻接标签可以通过将分组前置有分段路由报头,来转
向分组通过所控制的指令集(所谓的分段)。
[0065] 协议320还可以包括灵活算法协议324。例如,灵活算法协议326可以是根据上面描述的“draft‑ietf‑lsr‑flex‑algo‑00.txt”。例如,路由组件304可以执行灵活算法协议324
以通告灵活算法通告,以向网络中的其它路由器通知路由器300是针对灵活算法路径计算
而启用的,和/或接收灵活算法通告以学习网络中的针对灵活算法路径计算而启用的其它
路由器。
[0066] 通过执行路由协议,路由组件304标识通过网络的现有路线并且确定通过网络确定新路线。路由组件304通过网络存储包括例如已知路线的路由信息330。转发组件306存储
包括输出链路314的目的地的转发信息334。转发信息340可以根据路由信息330而被生成。
[0067] 路由组件304可以包括用于存储例如分段路由LSP的路径信息的流量工程数据库(TED)332。在路由器300支持分段路由(例如,SPRING)的一些示例中,TED 332可以包括分段
标识符信息。在一些示例中,TED 332还可以包括灵活算法信息334,该灵活算法信息334包
括针对灵活算法路径计算而启用的路由器的节点标签以及相关联的灵活算法标签和灵活
算法定义。TED 332可以具有各种数据结构的形式,诸如,多个表格、链路列表、根基树、数据
库、平面文件或者其它数据结构。
[0068] 根据本公开中所描述的技术,路由器300可以促进将非灵活算法路由器包括在灵活算法路径计算中,即使非灵活算法路由器不支持或者不启用灵活算法。在路由器300是针
对灵活算法(例如,第一灵活算法)而启用的路由器的示例中,路由器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
通告给网络中的其它路由器。
[0069] 在路由器300是接收SRMS分组的灵活算法路由器的示例中,路由组件304可以执行对TED 332的查找以确定灵活算法信息334包括被包括在SRMS分组中的灵活算法标签。如果
路由组件304确定路由器300参与在SRMS分组中标识的灵活算法,则路由组件304可以将非
灵活算法路由器信息存储在TED 332中。以这种方式,当路由组件304执行灵活算法路径计
算时,路由组件304也可以包括被存储在TED 332中的非灵活算法路由器信息,作为路径计
算的部分。
[0070] 在路径计算期间,路由组件304可以例如从路由信息330确定路由器300的下一跳路由器是否是针对灵活算法路径计算而启用的路由器,或者下一跳路由器是否是在SRMS分
组中标识的非灵活算法路由器。如果路由组件304确定下一跳路由器是非灵活算法路由器,
则路由组件304可以将转发信息340配置为包括用以将流量转向非灵活算法路由器的信息。
例如,路由组件304可以将转发信息340配置为包括指令,以引起路由器300将邻接标签342
推送到标签堆栈的顶部的指令。以这种方式,当路由器300接收到分组并且确定分组将朝向
非灵活算法路由器而被发送到出接口(例如,IFC 310中的一个)时,路由器300可以在将分
组转发到非灵活算法路由器之前将邻接标签342推送到标签堆栈的顶部。
[0071] 在路由器300是非灵活算法路由器的示例中,路由组件304可以将转发信息340配置为包括指令,该指令引起路由器300在将分组转发至其下一跳之前从被应用于输入流量
的标签堆栈顶部弹出邻接标签。以这种方式,当路由器300接收到包括具有在标签堆栈顶部
的邻接标签的标签堆栈的分组时,路由器300可以从其转发信息340确定在将分组转发至下
一跳之前从标签堆栈的顶部弹出邻接标签。
[0072] 虽然关于路由器出于示例的目的进行了描述,但是更一般而言路由器300可以是具有路由功能的网络设备,并且不必须是专用路由设备。图3所示的路由器300的架构仅仅
是出于示例的目的被示出。本公开的技术并不限于该架构。在其它示例中,路由器300可以
按照多种方式被配置。在一个示例中,控制单元302的功能中的一些功能可以被分布在IFC 
310内。在另一示例中,控制单元302可以包括作为从属路由器操作的多个分组转发引擎。
[0073] 控制单元302仅可以用软件或者硬件来实现或者可以被实现为软件、硬件或者固件的组合。例如,控制单元302可以包括执行具有软件指令形式的程序代码的一个或多个处
理器。在这种情况下,控制单元302的各个软件组件/模块可以包括被存储在诸如计算机存
储器或者硬盘等计算机可读存储介质上的可执行指令。
[0074] 图4是图示了能够根据本文描述的技术进行操作的路由器的示例操作的流程图。图4将参考图1的路由器12和图3的路由器300进行阐释。
[0075] 在图4的示例中,作为SRMS的路由器12E可以生成分组(例如,SRMS分组),该分组包括非灵活算法路由器(例如,路由器12C)信息,该信息被通告给针对灵活算法路径计算而启
用的其它路由器以在执行灵活算法路径计算时包括非灵活算法路由器(400)。例如,路由器
300的路由组件304可以使用IGP‑TE组件322来将ISIS分组(根据RFC 7981)或者OSPF分组
(根据RFC7770)配置为包括非灵活算法路由器(例如,图1的路由器12C)的回环地址、针对将
被考虑用于路径计算非灵活算法路由器的灵活算法标签、以及针对非灵活算法路由器的、
可以用于将流量转向非灵活算法路由器的节点标签。
[0076] 路由器12E可以向网络中的其它路由器发送SRMS分组(402)。路由器12A可以接收SRMS分组(404)并且可以确定路由器12A是否是针对在SRMS分组中标识的灵活算法路径计
算而启用的(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)。
[0077] 在路径计算期间,路由器12A可以确定下一跳路由器是否是在SRMS分组中标识的非灵活算法路由器(412)。如果路由器12A确定下一跳路由器是非灵活算法路由器(步骤412
的“YES”分支),则路由器12A可以对转发信息进行配置以将流量转向非灵活算法路由器
(414)。例如,路由器12A的路由组件304可以将转发信息340配置为包括指令以引起路由器
12A将邻接标签342推送至标签堆栈的顶部。以这种方式,当路由器12A接收数据分组并且确
定该数据分组要朝向非灵活算法路由器而被发送至出接口(例如,IFC 310中的一个)时,路
由器12A可以在将分组转发到非灵活算法路由器之前将邻接标签342推送到标签堆栈的顶
部。
[0078] 如果路由器12A确定下一跳路由器不是非灵活算法路由器(步骤412的“NO”分支),则路由器12A可以对转发信息进行配置以将流量转发到参与灵活算法的下一跳路由器
(416)。例如,如果路由器12A确定下一跳路由器是参与灵活算法的路由器,则路由器可以根
据上面以引用的方式并入的“draft‑ietf‑lsr‑flex‑algo‑00.txt”对转发信息340进行配
置。
[0079] 本文所描述的技术可以以硬件、软件、固件或者其任何组合来实现。被描述为组件、单元或者模块的各种特征可以一起被实现在集成逻辑设备中或者被单独地被实现作为
离散但是彼此协作的逻辑设备或其他硬件设备中。在一些情况下,电子电路系统的各种特
征可以被实现为一个或多个集成电路设备,诸如,集成电路芯片或者芯片集。
[0080] 如果被实现在硬件中,本公开可以涉及一种装置,诸如,处理器或者集成电路设备,诸如,集成电路芯片或者芯片集。备选或附加地,如果被实现在软件或者固件中,则技术
可以至少部分地由计算机可读数据存储介质实现,该计算机可读数据存储介质包括指令,
该指令在被执行时使得处理器执行上述方法中的一个或者多个。例如,计算机可读数据存
储介质可以存储由处理器执行的这种指令。
[0081] 计算机可读介质可以形成计算机程序产品的部分,该部分可以包括封装材料。计算机可读介质可以包括计算机数据存储介质,诸如,随机存取存储器(RAM)、只读存储器
(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁
性或者光学数据存储介质等。在一些示例中,制品可以包括一个或多个计算机可读存储介
质。
[0082] 在一些示例中,计算机可读存储介质可以包括非瞬态介质。术语“非瞬态”可以指示存储介质并不是被体现为载波或者传播信号。在某些示例中,非暂时性存储介质可以存
储可以随时间而变化的数据(例如,在RAM或缓存中)。
[0083] 代码或者指令可以是由处理电路系统执行的软件和/或固件,该处理电路系统包括一个或多个处理器,诸如,一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电
路(ASIC)、现场可编程序逻辑阵列(FPGA)、或者其它等效的集成或者离散逻辑电路系统。因
此,本文所使用的术语“处理器”可以指任何前述结构或者适用于实现本文所描述的技术的
任何其它结构。另外,在一些方面中,本公开所描述的功能可以被设置在软件组件或者硬件
组件内。