IGP 中用于分段路由的灵活算法
灵活的算法允许 IGP 单独计算基于约束的网络路径,从而提供简单的流量工程,而无需使用网络控制器。这是一个轻量级的解决方案,适用于尚未实施具有完整分段路由的控制器,但仍希望在其网络中获得分段路由优势的网络。
了解分段路由的 IGP 灵活算法
定义灵活的算法,使用不同的参数和链路约束计算路径,从而根据您的要求对网络进行精简切片。例如,您可以定义一种灵活的算法来计算路径以最小化 IGP 指标,并定义另一种灵活的算法来计算基于流量工程指标的路径,从而将网络划分为不同的平面。利用这一功能,没有控制器的网络无需实际实施网络控制器,即可使用分段路由来配置流量工程。您可以使用前缀 SID 沿基于约束的路径引导数据包。您可以通过策略配置配置前缀 SID 以实现灵活的算法。
IGP 协议使用链路指标来计算最佳路径。但是,对于某些类型的流量,最佳 IGP 路径可能并不总是最佳路径。因此,由于IGP指标未反映流量要求,基于最短IGP指标计算的IGP最佳路径通常会替换为流量工程路径。通常,RSVP-流量工程或 SR 流量工程用于根据附加指标和约束计算路径,以克服此限制。Junos 会在转发表中安装此类路径,作为 IGP 计算的原始路径的替代。
- 配置灵活算法的好处
- 什么是灵活算法定义 (FAD)?
- 参与灵活的算法
- 使用灵活的算法定义配置的网络拓扑
- 灵活的算法 RIB
- BGP 社区和灵活的算法
- 基于特定于应用的链路属性的灵活算法
- 基于严格应用特定链路属性的灵活算法
- 支持和不支持的功能
配置灵活算法的好处
-
分段路由流量工程的轻量级版本,可用于网络核心。
-
即使无需安装网络控制器,也可以使用分段路由配置流量工程。
-
使用相同的灵活算法定义和约束计算计算 TI-LFA 备份路径。
-
能够基于单个标签配置受限主路径。
什么是灵活算法定义 (FAD)?
灵活的算法允许 IGP 根据指定的约束计算额外的最佳路径,从而提供简单的流量工程,而无需使用网络控制器。这是一个轻量级的解决方案,适用于尚未实施具有完整分段路由的控制器,但仍希望在其网络中获得分段路由优势的网络。每个都可以根据自己的要求定义单独的约束或颜色。
要定义灵活的算法,请在层次结构级别上[edit routing-options]使用 include flex-algorithm id 语句。灵活算法定义 (FAD) 分配的标识符范围为 128 到 255。这种灵活的算法可以在网络中的一个或多个路由器上定义。灵活的算法可根据以下参数计算最佳路径:
-
Calculation type- SPF 或严格 SPF 是两个可用的计算类型选项。您可以在 FAD 中指定其中一种计算类型。如果要根据特定本地策略(例如流量工程快捷方式)影响设备上的 SPF 计算,请选择 SPF 计算类型。如果选择严格 SPF,则本地策略不会影响 SPF 路径选择。
-
Metric type- IGP 指标、流量工程指标或延迟指标是可用的指标类型选项。您可以根据网络要求在 FAD 中指定其中一种指标类型。如果您不想对特定链路使用 IGP 指标,可以配置 IS-IS 可用于计算路由的流量工程指标。
-
Priority- 您可以根据需要为您的 FAD 分配优先级,IS-IS 会根据您分配的优先级将特定 FAD 通告优先于另一个 FAD。
注意:要使具有链路约束的 FAD 正常工作,所有相关链路都应在 IS-IS 中通告管理颜色,这意味着接口上已启用 RSVP 或
set protocols isis traffic-engineering advertise always已配置 RSVP。 -
Set of Link constraints- 您可以在层次结构级别为
[edit protocols mpls admin-groups]多个协议配置管理员组,以为单个链路着色。然后可以将这些定义admin-groups为include any或include-allexclude在层次结构级别上[edit routing-options flex-algorithm definition admin-groups]定义。
建议仅在少数路由器上配置灵活的算法定义,以提供冗余并避免冲突。灵活的算法定义在 IGP 中播发为 FAD sub-TLVs。在非常大的网络中,我们不建议配置超过 8 个灵活的算法,因为每个灵活的算法都会计算自己的路径,并且可能会导致超出此水平的性能问题。
此外,建议在配置任何设备加入该 FAD 之前,先在特定的 ISIS 级别中配置多个 FAD 服务器。对于 ISIS L1/L2 节点 (ABR),我们还建议在 ISIS 级别 1 和级别 2 上配置 FAD。如果仅在单个 ABR 上配置 FAD,则当路由进程在该 ABR 上重新启动时,流量可能会通过 Flex 算法路径进行丢弃。因此,拥有多个 ABR 是一种很好的设计实践,每个 ABR 在两个 ISIS 级别都配置了 FAD。
默认 FAD 具有以下参数:
-
计算类型:SPF
-
指标类型:IGP-Metric
-
优先级:0
-
链路约束:无
在实时网络中或动态修改灵活的算法定义可能会导致流量中断,直到所有节点都汇聚到新路径上。
我们在TED中支持“灵活算法定义(FAD)”和“灵活算法前缀度量(FAPM)”,并在BGP-LS中实现了两个新的对应TLV“FAD TLV”和“FAPM TLV”。FAD TLV 的值包含 Flex-Algorithm、Metric-Type、Calculation-Type 和 Priority,所有这些都是一个字节。TLV 可能包含零个或多个子 TLV。这五个子 tlv 是 Flex Algo Exclude Any Affinity、Flex Algo include Any Affinity、Flex Algo include All Affinity、Flex Algo Definition Flags 和 Flex Algo Exclude SRLG。
只有当相应的节点源自底层IGP TLV或子TLV时,才能将 FAD TLV添加到节点 NLRI 的 BGP-LS 属性中。与节点 NLRI 关联的 BGP-LS 属性可能包括一个或多个 FAD TLV,这些 FAD TLV 对应于节点播发的每个算法的灵活算法定义。
FAPM TLV 的值包含 Flex-Algorithm(1 字节)、保留(3 字节)和度量(4 字节)。只有当相应的节点源自前缀时,才能将 FAPM TLV 添加到源自节点的前缀 NLRI 的 BGP-LS 属性中。
我们定义了灵活算法前缀指标 (FAPM),以允许区域间前缀的最佳端到端路径。在给定灵活算法(flex algo)中可访问的区域之间播发前缀时,区域边界路由器(ABR)必须包含FAPM。当前缀无法访问时,ABR 在区域之间播发时不得将该前缀包含在该 flex 算法中。定义的 FAPM 提供区域间支持。
我们支持与 RFC 9350“IGP 灵活算法中定义的与管理员组和共享风险链路组 (SRLG) 相关的延迟规范化和灵活算法定义 (FAD) 定义的约束。
在灵活的算法计算过程中,当测得的延迟值不相等且差异不显著时,IS-IS 会将这个略高的延迟值作为指标进行通告。IS-IS 使用此标准化延迟延迟值,而不是测量的延迟值。
要配置灵活算法应用特定的 SRLG 值,请在[edit protocols isis interface interface-name level level]层次结构级别包含特定于应用的语句。要在 FAD 中排除 SRLG 约束,请在层次结构级别包含[edit routing-options flex-algorithm name definition] 该exclude-srlg语句。
您可以通过配置 和 路由表中的 inetcolor.0 mpls.0 OSPF 灵活算法路由首选项来控制路径选择。
Configure flex-algorithm-preference 语句 [edit protocols ospf] 来确定所需路由的优先级,并改进跨 IP 和 MPLS 域的流量工程。
参与灵活的算法
您可以根据需要将特定路由器配置为参与特定的灵活算法。各种应用会使用基于灵活的算法定义计算出的路径,每个应用都有可能使用自己的特定数据平面在此类路径上转发数据。参与设备必须向分段路由灵活算法子 TLV 中的每个应用程序显式通告其参与特定灵活算法 IS-IS。您可以将节点配置为参与某种灵活的算法,前提是该节点能够支持该 FAD 中指定的约束。
要配置灵活算法的参与,请在层次结构级别包含flex-algorithm[edit protocols isis source-packet- routing]该语句。同一设备可以通告 FAD,也可参与灵活的算法。
使用灵活的算法定义配置的网络拓扑
图 1 显示了示例拓扑,有 8 台路由器 R0、R1、R2、R3、R4、R5、R6 和 R7。使用管理组定义和配置了四种灵活的算法 128、129、130 和 135,如下表所示:
| Flex 算法定义 (FAD) |
颜色 |
|---|---|
| 128 |
包括任何红色 |
| 129 |
包括任何绿色 |
| 130 |
包括任何绿色和蓝色 |
| 135 |
排除红色 |
图 2 显示了 FAD 128 如何在配置了管理组 red 的任何接口上路由流量。
图 3 显示了 FAD 129 如何在配置为管理员组绿色的任何接口上路由流量。
图 4 显示了 FAD 130 如何在配置了绿色和蓝色管理组的任何接口上路由流量。
图 5 显示了 FAD 135 如何在未配置管理员组 red 的任何接口上路由流量。
灵活的算法 RIB
对于路由器参与的每个灵活算法,相应的灵活算法路由都会安装在相应的灵活算法 RIB 组中,也称为路由表。默认情况下,带标签的灵活算法路由安装在 inet.color inet(6)color.0 和 mpls.0 RIB 中。它们也可以安装在彩色 RIB 中,例如 junos-rti-tc-<color>.inet(6).3 ,当 use-transport-class 语句在 下 routing-options flex-algorithm <id>配置时。有关更多信息,请参阅 灵活算法和灵活的算法前缀指标跨 IS-IS 多实例泄漏。
BGP 社区和灵活的算法
灵活的算法可以与颜色相关联。当服务前缀(如 VPN 服务)携带 BGP 颜色扩展社区时,默认情况下,BGP 服务前缀解析具有相同关联颜色值的 flex-algo 路由。表中 inet(6)color.0 安装的灵活算法入口路由将具有与路由关联的此颜色值。但是,您可以在层次结构级别配置 [edit routing-options flex-algorithm id color color] 不同的关联颜色值。
在灵活的算法中更改关联的颜色值可能会导致流量中断。如果修改灵活算法定义中的颜色,则与该灵活算法相关的所有路由都将从 RIB 中移除,并使用新颜色再次添加。
您可以使用灵活的算法前缀 SID 将 BGP-LU 前缀泄漏到 IGP 中。有关更多信息,请参阅 将 BGP-LU 前缀泄露到灵活算法中。
您现在可以将 BGP-CT 前缀泄漏到灵活的算法中,反之亦然。有关更多信息,请参阅 将 BGP-CT 前缀泄露到灵活算法中。
基于特定于应用的链路属性的灵活算法
您可以在同一链路上通告不同的 te 属性,例如 te-metric、delay-metric 或 admin-groups for RSVP 和灵活的算法。这是使用 RFC 8920 中定义的灵活算法特定于应用的链路属性来完成的。
使用灵活的算法 特定于应用的链路属性通告 te-metric、delay-metric 或 admin-groups 的优势在于,单个链路可以为传统应用(如 RSVP)通告不同的 te-link-attribute,并为灵活的算法通告不同的 te-link-attributes。
要配置灵活算法 特定于应用的 te-attribute,请在层次结构级别添加语句[edit protocols ospf area interface],strict-asla-based-flex-algorithm在层次结构级别添加application-specific[edit protocols ospf source-packet-routing]语句。通过此实施,不再强制要求链路启用和[edit protocols ospf traffic-engineering advertisement always]配置 RSVP,就像播发流量工程属性的现有行为一样。
特定于应用的链路属性的 Junos OS 和 Junos OS 演化版实施仅支持灵活的算法应用。
基于严格应用特定链路属性的灵活算法
特定于应用程序的灵活算法的默认行为是对链路使用灵活算法特定于应用程序的 te 属性(如果可用),如果没有,则回退到常见的特定于应用程序的 te 属性,如果两者都不可用,则使用旧的 te 属性。
必须[edit protocols ospf source-packet-routing]将 的配置语句strict-asla-based-flex-algorithm应用于网络中设备上运行的所有灵活算法,以避免路由环路。
如果在所有设备上都配置了 ,则 strict-asla-based-flex-algorithm 必须为每个灵活算法链路通告一个通用应用特定的 te 属性或灵活算法特定于应用的 te 属性。在没有特定于应用的 te 属性的情况下,设备不会回退到传统的 te 属性,而只是忽略链路。
该作系统支持以下功能与基于特定于应用的链路属性的灵活算法结合使用:
-
特定于应用的 te 属性 subTLV,符合 RFC 8920 的要求。特定于应用的 te 属性子TLV是 RFC 7684 中定义的 OSPFv2 扩展链路TLV的一个子TLV。
-
部分支持标准应用程序标识符位掩码以通告 X 位以实现灵活的算法。只有 te-metric、delay-metric 或 admin-groups 才会作为特定于应用的链路属性子 TLV 的一部分进行播发。
作系统不支持以下功能与基于特定应用的链路属性灵活算法结合使用:
- 不支持播发用户定义的应用程序标识符位掩码。
- 不支持使用 BGP-LS 重新播发灵活的算法、特定于应用的链路属性,或者更确切地说,任何特定于应用的链路属性,因为流量工程数据库 (TED) 不支持特定于应用的链路属性。
-
不支持将标准应用程序标识符位掩码和用户定义的应用程序标识符位掩码长度设置为零来播发特定于应用程序的通用链路属性。
-
不支持在灵活算法中播发 SRLG 链路约束。
-
除了灵活的算法外,不支持支持多种应用的流量工程。
-
不支持定义独立于 MPLS 的管理员组。
支持和不支持的功能
Junos OS 在以下场景中支持灵活的算法:
-
支持为不同的灵活算法配置和播发前缀 SID。
-
部分支持 RFC 9350、 IGP 灵活算法
-
支持灵活算法前缀 SID 的级别间 (IS_IS) 泄漏。
- 灵活算法的当前实现仅支持 OSPFv2,因为只有 OSPFv2 支持分段路由。
Junos OS 不支持以下功能与灵活的算法组合使用:
-
灵活算法仅适用于默认单播拓扑,不支持 OSPFv2 多拓扑。
-
IS-IS 快捷键和其他 IS-IS 流量工程配置选项不适用于灵活的算法计算
-
不支持前缀和 SID 冲突解决。
-
不支持远程无环路替代功能,因为 TI-LFA 是首选 FRR 计算
- OSPFv2 快捷方式和其他 OSPFv2 流量工程配置选项不适用于灵活的算法计算。
-
OSPFv2 不支持在没有灵活算法参与的情况下宣传灵活的算法定义。
-
不支持扩展管理组 (EAG),因为 IS-IS 不支持它们。
也可以看看
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。
inetcolor.0
mpls.0 OSPF 灵活算法路由首选项来控制路径选择。