5G时代,运营商希望能根据自己的需求去定义IGP路径的计算规则,以满足各种差异化的业务需求。在这个背景下,Flex-algo(灵活算法,Flexible Algorithm)技术应运而生。
Flex-algo允许创建自定义的IGP度量作为其路径计算算法,该算法可以基于非默认的metric度量计算出最佳路径,如延迟、累积延迟和TE度量甚至链路亲和性(意味着包括或排除特定链路)等。而IGP协议中的ISIS/OSPF则使用默认Cost度量值作为计算最佳路径的默认度量。
我们应该清楚,SR-TE(段路由流量工程)不是Flex-algo的替代方案,而是Flex-algo对SRTE的补充,它们相辅相成。将SR-TE(如ODN(按需下一跳策略)、每个目的地或每个流量的自动流量控制与Flex algo相结合,在传输网络中创建端到端网络切片。
每个节点通过IGP(ISIS/OSPF)将Flex-algo信息作为附加前缀Prefix-SID进行广告,并使用Flex-algo中定义的度量计算最短路径树和拓扑数据库。每个Flex-algo拓扑数据库在逻辑上彼此独立,并且还运行TI-LFA(Topology independent loop free alternate)以在链路和节点故障期间快速重新路由。
让我们通过下面的例子更好地理解它,
在上面的示例拓扑中,假设流量类型A需要低延迟路径,流量类型B需要通过默认路径传送。那么我们就可以创建具有自定义的延迟作为度量的Flex-algo,这样流量A被引导通过网络中计算的基于较低延迟的路径。同样地,流量B采用默认SPF算法的基于度量cost的路径传送。
在文章开头,我们说到Flex-algo是对SR-TE功能的补充,Flex-algo和SR-TE相辅相成,Flex-algo不仅丰富了SR-TE功能以提供SLA路径,并且与其他SR-TE机制(例如自动转向和按需下一跳(ODN))集成在一起使用。
下面让我们通过如下示例拓扑来认识Flex-algo是如何与SR-TE配合的。
上面的例子中,默认情况下,使用IGPcost作为链路的所有节点的度量,并启用IGP algo(0)(0表示基于链路cost值的SPF算法)。另外我们假设algo(130)配置了并定义延迟为度量,并在拓扑中所有节点上启用。除了节点S2到S3之间的链路为100(链路cost)之外,所有链路的IGP 度量均为10,并且每个链路的延迟如上图所示。
下面我们通过这两种metric来计算从节点S1到节点S4的动态路径。
-
Flex-algo(0):使用IGP cost作为度量定义SR策略时,计算出的路径将是S1-S2-S5-S4作为最低cost路径。SR-TE会将此路径编码为SID仅列出属于默认算法0的SID list 16004;
-
Flex-algo(130):使用延迟作为度量定义SR策略时,计算的路径将是S1-S2-S3-S4作为最低延迟路径。SR-TE会将此路径编码为仅属于灵活算法130的SID list 16304。
在这里,Flex-algo SID允许将路径表示为单个SID,而不是SID堆栈。SR-TE编码Flex-algo SID在可扩展性(SID list规模)和弹性方面提供了好处。即使链路发生故障,SR-TE也不必更新SID list,因为IGP将更新路径到Prefix-SID。
此外,TI-LFA将计算Flex-algo SID 16304的端口收敛备份路径(带有延迟度量),并计算Flex-algo Prefix-SID 16004 的备份路径(带有cost度量)。总之,任何参与Flex-algo的节点都会计算到该Flex-algo的前缀Prefix-SID的路径。
往期相关文章: