如何启用严格的 SPF SID 和 IGP 快捷方式

了解严格的 SPF (SR-Algo 1) 和 IGP 快捷键

严格的 SPF (SR-Algo 1) 和 IGP 快捷方式提供以下优势

严格 SPF (SR-Algo 1) 和 IGP 快捷方式的好处

  • 增强分段路由功能。

  • 通过创建 SR-TE 隧道以使用最短 IGP 路径转发流量来帮助避免环路。

  • 启用 SPRING 时,默认情况下能够使用 SR-Algo 1(严格 SPF)和 SR-Algo 0(默认 SPF)。

严格 SPF (SR-Algo 1) 和 IGP 快捷键概述

分段路由 (SR) 可以去除中间路由器中的网络状态信息并将路径信息置于入口节点的数据包标头中,以此简化运维并降低网络对资源的需求。但是,在某些情况下,当存在嵌套的 SR-TE 隧道,并且设备通过这些 SR-TE 隧道转发流量时,流量可能会循环,从而造成拥塞,并且不会通过最短 IGP 路径转发流量。

从 Junos OS 21.1R1 版开始,您可以播发 SR 算法 1(严格 SPF)并使用严格 SPF SID 创建 SR-TE 隧道。此类 SR-TE 隧道仅使用严格路径 SPF(而非本地策略)来到达隧道端点。您可以在导入策略中指定前缀,隧道根据这些前缀将流量重定向到特定目标。此外,启用 SPRING 时,默认情况下可以使用 SR-Algo 1(严格 SPF)和 SR-Algo 0(默认 SPF)。

您可以在 IS-IS LSPDU 中播发严格 SPF SID,并使用这些 SID 创建 SR-TE 隧道,以便在不造成环路的情况下通过最短 IGP 路径转发流量。然后,标记为 IS-IS 的路由将在您愿意spring-te tunnel时在 inet-mpls family 或 inet6-mpls family 配置中使用带有预定义快捷方式语句的隧道。

下图描述了在没有严格 SPF SID 的情况下创建的 SR-TE 隧道与使用严格 SPF (SR-Algo 1) SID 创建的 SR-TE 隧道之间的区别:

Segment Routing Traffic Engineering SR-TE tunnels with and without strict Shortest Path First SIDs, highlighting congestion and routing loops prevention.

图 A 显示了一个网络拓扑,其中当预先存在的 SR-TE 隧道(或 RSVP 隧道)被选为 R1 的入口时,不会使用最短 IGP 路径创建 SR-TE 隧道来转发流量。此拓扑中存在两个 SR-TE 隧道。一个隧道从 R1 经由 R0 到 R6(隧道 a,蓝色),另一个隧道是通过 R6 从 R1 到 R7(隧道 b,绿色)。在这种情况下,不会使用最短 IGP 路径创建隧道 (b)。因此,由于 inet-mpls 在 R1 上启用了快捷方式语句,标签 IS-IS 路由不是利用现有隧道到达 R6,然后转发到 R7,而是使用 SR-TE 隧道 (a) 转发发往 R7 的流量,避开最短 IGP 路径,从而导致隧道 (a) 上的流量拥塞。

图 B 显示了流量环路的拓扑。当标记的 IS-IS 路由选择 SR-TE 隧道作为入口并重定向到另一个 SR-TE 隧道时,流量将循环。在此拓扑中,我们有两个 SR-TE 隧道,一个从 R0 经由 R2 到 R6,另一个隧道从 R1 经由 R6 到 R2。对于从 R0 发送到 R6 节点的数据包,在 R0,如果此节点选择 SR-TE 隧道作为目标 2.2.2.6 的入口,则会推送 R2 标签并转发到 R1。在 R1 处,通过 R6 存在另一个 SR-TE 隧道,并在 mpls.0 表中带有标签。当 R1 接收到此流量以到达 R2 时,它将使用 SR-TE 隧道上的 L-ISIS 路由快捷方式,并使用相同的标签推送 R6,然后转发到 R0 节点。在 R0 处,顶部标签与 R6 相同,这意味着如果 SR-TE 再次建立隧道,它将推送 R2 标签并将流量转发到 R1,后者将循环。

图 C 显示了使用严格 SPF SID 创建的 SR-TE 隧道,这些隧道现在支持 SR-Algo 1 和预先存在的 SR-Algo 0。仅当下一跳节点也支持 SR 算法 1 时,才会在 IS-IS 中安装 Strict-SPF SID 路由。否则,流量将被丢弃。如果您使用严格的 SPF SID 创建了 SR-TE 隧道,并且路径上设备未播发对 SR 算法 1 的支持,则隧道将保持关闭状态。当使用严格 SPF SID 创建隧道时,它将采用最短的 IGP 路径到达另一个隧道端点,从而避免拥塞。在流量环路(如图 2 所示)的场景中,严格 SPF SID 只会由参与支持 SR 算法 1 的 SR 域中的每个节点在 IS-IS LSPDU 中通告。可以有多个 SR-TE 隧道,这些隧道既可以是使用 Strict-SPF SIDS 创建的,也可以是普通 SID 创建的。当操作员在创建显式路由对象 (ERO) 之前配置语句 “use-for-shortcut” 时,将使用严格的 SPF SID 创建隧道。

示例:在 SPRING 中为 IS-IS 协议配置严格的 SPF SID 并启用 IGP 快捷方式

概述

通常,当网络中存在嵌套的 SR-TE 隧道,并且设备通过这些 SR-TE 隧道转发流量时,流量可能不会通过最短 IGP 路径进行转发。因此,流量可能会循环。

从 Junos OS 21.1R1 版开始,您可以播发 SR 算法,并使用严格的 SPF SID 创建 SR-TE 隧道,以便使用最短 IGP 路径转发流量,以避免环路。当您启用spring-te时,标记为 IS-IS 的路由现在将使用此隧道,并在 family(或 inet6-mpls family)下inet-mpls显示预定义的快捷方式旋钮。

要求

此示例使用以下硬件和软件组件:

  • 八台 MX 系列路由器

  • 在所有设备上运行的 Junos OS 21.1R1 或更高版本

拓扑学

在以下示例中,我们将演示环路如何在具有多个 SR-TE 隧道的网络中发生,以及如何使用由 SR 算法 1 创建的严格 SPF SID 来解析环路。示例拓扑有两个 SR-TE 隧道。R0>R2>R6 的隧道 A 和 R1>R6>R2 的隧道 B。

在 R0 上,发往 R6 的数据包通常使用 IGP 最短路径:即 R0>R5>R6。当您将 SR-TE 隧道的入口节点配置为 R0(隧道 A)时,数据包需要通过 R2 作为其第一跳(目标:R6,标签:403002),这意味着发往 R6 的流量需要采用 R0>R2>R6 路径。要到达 R2,数据包需要首先到达 R0—R1 接口上的 R1,并403002第一个标签。R2 的标签403002应从 R1>R2 转发,标签堆栈没有更改。但是,在 R1 (R1>R6>R2) 上配置了第二个 SR-TE 隧道(隧道 B),目标为 R2,标签为 403006。来自 R0 的数据包在 R1 上顶部标签为 R2 (403002),最终使用第二个隧道到达 R6。但要到达 R1 上的 R6,R1—R0 (R1>R0>R5>R6) 是它需要使用的接口。因此,数据包再次到达 R0,整个过程重复,从而产生循环。

在所有设备上激活 SR 算法 1 并在相关设备上激活其标签后,当从入口设备 R0 到目标设备 R6 的数据包到达 R1(隧道 A)时,数据包将被转发至 R2。即使 R1 将 LSP 配置为将 R6 视为其下一跃点(隧道 B),它也会采用 IGP 最短路径 (R1>R2)。从 R2 通过隧道 A 到达 R6。

Network diagram with interconnected routers R0 to R7. Routers linked via interfaces ge-0/0/0 or ge-0/0/1 with IPs in 10.0.x.x/24 subnets. Each router has a loopback address in 192.168.255.x/32 format.

配置

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到 [编辑] 层次结构级别的 CLI 中。

注意:

根据 MX 系列路由器中的 MPC 类型,您可能需要显式启用增强型 IP 服务来支持 IS-IS 延迟功能。提交 set chassis network-services enhanced-ip 配置语句时,系统将提示您重新启动系统。

R0

R1

R2

R3

R4

R5

R6

R7

在 SPRING 中启用默认 SID(算法 0)

  1. 在所有八个路由器上配置基本设备设置,例如主机名、IPv4 地址、环路接口地址、NET 地址、系列 ISO、系列 MPLS(为分段路由路由路径提供最大标签数)、 enhanced-ip 模式、路由器 ID 和自治系统 (AS) 编号。

  2. 在所有 8 台设备的所有接口上启用 IS-IS、RSVP 和 MPLS 协议。还可以为 MPLS 指定跟踪文件和作。

  3. 配置所有路由器以通告其环路地址,并指定前缀分段的索引和节点分段。

  4. 配置 SPRING 的 SRGB 的起始标签和索引范围。配置 IPv4 节点分段索引的值并分配 128 flex 算法。

  5. 配置 IS-IS 协议中的最短路径优先 (SPF) 算法选项,以启用源数据包路由节点分段标签,用于计算 R0、R1 和 R2 上的备份路径。将最大标签设置为 8。

  6. 配置流量工程选项,以便从中 spring-te 选择标签交换路径,并将 MPLS 路径用作 R0、R1 和 R2 上的下一跃点。设置 IS-IS 导出策略。

  7. 在 R0 上配置 R2 标签403002(为算法 0 创建,以创建默认 SPF SID),其中 R2 作为其到目标 R6 的下一跃点并启用 use-for-shortcut。在 R1 和 R2 上创建标签。

  8. 输入 commit 命令以提交配置。

在 SPRING 中启用严格的 SPF SID(算法 1)

  1. 要将用于默认 SPF SID 的标签替换为用于严格 SPF SID 的标签,请配置以下内容:

  2. 在网络中的所有其他路由器上设置/激活算法 1。

  3. 输入 commit 命令以提交所有配置。

结果

检查配置结果:

验证

验证 IS-IS 邻接

目的

验证路由设备上预期的 IS-IS 邻接。

行动

在作模式下,输入 show isis adjacency 命令。

意义

输出指示 R0 已在其ge-0/0/0.0ge-0/0/1.0和接口上成功形成 IS-IS 邻接,这些接口分别连接到其 R1 和 R5 路由器。

验证路由表 inet.3

目的

使用播发的路由表验证 inet.3 。

行动

在作模式下,输入 show route table inet.3 命令。

意义

输出显示 inet.3 表上的路由。

验证路由标签(默认 SPF)

目的

验证在路由设备上为默认 SPF 创建的路由标签。

行动

在作模式下,输入 show route label 403002 命令。

意义

输出指示数据包正在将 R2 的标签403002推送到 R1,以到达其下一跃点 R2。但在 R1 上,它拾取隧道 B 并推送下一跃点 R6-403006 的标签,而不是在隧道 A 上从 R1 转发到 R2。

验证路由标签(严格 SPF)

目的

验证在路由设备上为严格 SPF 创建的路由标签。

行动

在作模式下,输入 show route label 403102 命令。

意义

第一个输出表示带有 R2 标签的数据包已到达 R1。第二个输出表示数据包现在被转发到 R2(在隧道 A 上),而不是由 R1 上的隧道 B 选取。到达 R2 后,即可完成隧道 A 路径并到达 R6。