Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

静态 SRv6 流量工程隧道的绑定 SID (BSID)

SRv6 绑定 SID (BSID) 是向过渡路由器发出的指令,用于将传入的 SRv6 数据包引导到流量工程路径上。这是通过将新的 IPv6 报头推送到数据包上来实现的,可能使用新的 SRH,其中包含定义流量工程路径的 SRv6 SID 堆栈。这在网络稳定性方面有许多用途,例如启用具有浅层 SID 堆栈功能的硬件沿大型流量工程路径发送流量,或帮助隔离或解耦不同的源路由域。BSID 允许将网络隔离为多个流量工程隧道,每个隧道都包含自己的 SID 堆栈和计算模型。此功能使静态 SRv6 流量工程隧道能够实现传输功能。

绑定 SID 概述

当入口路由器配置了具有流量工程的 IPv6 分段路由 (SRv6-流量工程) 功能时,传入服务有效负载将封装在 IPv6 隧道中,也可以选择使用 SRH,根据配置的 SRv6 策略,将流量定向到网络中的特定流量工程路径。

通常,SID 堆栈的大小会增长,从而导致数据包开销。网络中的某些设备可能无法写入、弹出或处理具有大型 SRv6 SID 堆栈的数据包。除此之外,入口节点有时对域间网络的整个堆栈进行编码可能是不切实际的,因为入口路由器可能不知道其流量工程数据库 (TED) 中的远程拓扑和 SID。在路由域之间泄露此信息会带来各自的利弊,包括开销和融合问题。如果存在中转 MPLS 域,则标签和 SRv6 SID 也可能会产生大量开销。

SRv6 绑定 SID (BSID) 通过将端到端路径隔离到多个流量工程隧道中,提供了一种解决方案。绑定 SID 是一种分段类型,其中一个传入 SID 充当使用包含传出 SID 堆栈的全新 IPv6 标头封装现有 IPv6 传输标头的指令。

配置了绑定 SID 的传输路由器能够充当较大路径上较短流量工程隧道的入口路由器。这通常被描述为将传入数据包引导至 SR 策略。当数据包被引导到带有 BSID 的 SR 策略中时,拥有该 BSID 的节点会将该 SID 展开到关联策略的完整分段列表中。

在绑定 SID 实现中,入口路由器不再需要将整个端到端 SID 堆栈推送到数据包上。相反,有策略地将较少数量的绑定 SID 推送到数据包上就足够了。因此,入口节点不需要完全了解整个更广泛的网络,只需了解网络中的绑定 SID 即可创建流量工程路径。更广泛的网络融合在使用绑定 SID 调配的传输节点上处理。

远程传输路由器会从 IPv6 目标地址 (DA) 字段中移除这些 SID,并在新的 IPv6 报头中推送其他流量工程分段。在这方面,路径上的每个流量工程隧道都可以由自己的堆栈、它自己选择是否使用备用路径以及它自己的计算模型组成。

当配置了绑定 SID 的中转节点收到传入数据包,其 IPv6 DA 通过最长前缀匹配与 BSID 匹配时,中转路由器首先弹出绑定 SID。对于经典 SRv6,这涉及将 SRH 中的下一个地址写入 IPv6 DA。对于带有微 SID 的 SRv6,这涉及从 IPv6 DA 弹出活动微 SID,然后根据需要重写 IPv6 DA,或将 SRH 中的下一个地址写入 IPv6 DA。然后,中转路由器使用新的 IPv6 报头封装数据包,该报头包含前进流量工程路径的 SID。如果是经典 SRv6,此 IPv6 报头可能会包含一个带有附加分段的 SRH。对于带有微型 SID 的 SRv6,新 IPv6 报头中的 DA 可能足以承载所有必需的 SID。否则,新的 IPv6 报头可以携带新的 SRH。这会导致入口节点上的堆栈大小相对减小,因为附加的 SID 由中转路由器写入数据包。

支持四种类型的 SRv6 绑定 SID:

  • 经典 SRv6 绑定 SID

    • 结束。B6.封装: 当配置了绑定 SID 的中转节点处理匹配的数据包时,它始终使用包含新流量工程隧道的 SID 堆栈的新 IPv6 报头和 SRH 封装传出数据包。这是非缩减模式实现,因此新 IPv6 DA 中的地址也会写入 SRH。
    • 结束。B6.Encaps.Red: 这是简化模式实现,其中堆栈中的第一个 SRv6 地址仅写入新 IPv6 地址的 DA,而不是写入 SRH。配置了绑定 SID 的过渡节点在处理匹配的数据包时,会使用新的 IPv6 报头和可选的 SRH 封装传出数据包。如果 SRv6 策略仅包含一个 SID,则外部 IPv6 封装可能没有 SRH。这是默认模式。
  • 微 SRv6 绑定 SID
    • 结束。B6.使用 Next-C-SID 封装: 配置了绑定 SID 的中转节点处理匹配的数据包时,它会使用新的 IPv6 报头和包含新流量工程隧道的 SID 堆栈的 SRH 封装传出数据包。这是非简化模式实现,因此新 IPv6 报头中的 DA 也会写入 SRH。即使微 SID 堆栈可以包含在单个 IPv6 DA 中,也是如此。

    • 结束。B6.Encaps.Red 与 Next-C-SID: 配置了绑定 SID 的中转节点处理匹配数据包时,它会使用新的 IPv6 标头和可选的 SRH 封装传出数据包。外部 IPv6 报头的 DA 不会添加到 SRH 中。如果 SRv6 策略包含可写入单个 IPv6 DA 的微型 SID 堆栈,或者 SRv6 策略仅包含一个 SID,则数据包将不包含 SRH。这是默认模式。

绑定 SID 配置在传输路由器上执行。您可以直接在绑定到它的 SR 策略中定义绑定 SID。这会立即将该绑定 SID 与正确的流量工程路径相关联。

以下选项可用于在层次结构下 [edit protocols source-packet-routing source-routing-path] 配置绑定 SID。您可以配置经典 SRv6 绑定 SID 或微型 SRv6 绑定 SID。定位器必须在层次结构下 [edit routing-options source-packet-routing srv6 locator] 预先配置。静态 SID 是必需的,并且必须来自为层次结构下的 [edit routing-options source-packet-routing srv6 block] 块定义的本地微 SID 静态 SID 范围内。

  • 您可以配置经典 SRv6 绑定 SID 或微型 SRv6 绑定 SID:

    配置经典 SRv6 SID 时,必须提供整个经典 BSID 以及定位符名称。例如:

    配置微型 SRv6 SID 时,只需提供功能部分以及定位器名称。例如:

  • 入口路由器配置了第一个分段列表跃点作为绑定 SID。在下面的配置代码段中, 5f00:0:200:fc58:: 是在传输路由器上配置的微绑定 SID。请注意,配置未提及这是绑定 SID,因为此信息对入口路由器并不重要。SRv6 微服务 SID 5f00:0:2020:: 是分段列表中的最后一个跃点。例如:
  • 该功能支持在流量工程路径中具有绑定 SID 的多个中转路由器。必须将入口路由器将每个绑定 SID 传输路由器配置为分段列表跃点。在下面的示例中,P2 和 P4 是配置了绑定 SID 的流量工程路径上的两台中转路由器。
  • 您可以启用特定于 SRv6 绑定 SID 的跟踪。

绑定 SRv6 SID 的好处

  • 入口节点只需要其他域的流量工程数据库的一个子集。

  • 在使用绑定 SID 调配的每个传输节点上都会处理融合

  • 您可以通过配置绑定 SID 来弹出外部 IPv6 标头,然后推送一个或多个传出 MPLS 标签,来部署跨数据平面交换机(SRv6 到 MPLS)。

限制和注意事项

  • 绑定 SID 不支持与 SRv6 BSID 关联的端点行为类型(如 USD、USP 或 PSP)。
  • 不支持插入模式 SRv6 绑定 SID 端点行为,例如 END。B6.插入,结束。B6.插入 Next-C-SID 和 END.BM。
  • END 仅支持默认长度 SID 结构。B6.使用 Next-C-SID 和 END 封装。B6.Encaps.Red 与 Next-C-SID(BL:32,NL:16,FL:16,AL:64)。
  • 定位器配置中的更改需要重新启动路由才能使更改生效。

  • 仅支持运输等级和彩色 SR-流量工程。

  • 支持 SRv6 经典绑定 SID 和微绑定 SID 的 BGP-LS 分布。

  • 支持将 SID 配置及其分段列表以 SRv6 隧道的出口节点结尾。

为具有微 SID 的静态 SRv6 流量工程配置绑定 SID (BSID)

注意:本主题中提供的配置仅特定于将 SID 与 SRv6 流量工程进行绑定,并假定已预配置接口、IGP 和分段路由。此处介绍了静态 SRv6 流量工程的广泛配置示例。
考虑 图 1 中所示的实现微型 END 的网络拓扑。B6.使用在中转路由器上实例化的分段封装 BSID。
在入口节点 PE1 上,SRv6-流量工程入口策略配置了分段列表,其中一个跃点配置了 SRv6 微绑定 SID。BSID 在 P2 处实例化。
PE1 使用 IPv6 标头 DA 封装有效负载,该 DA 包括下一跳 SID (100)、P2 的 SRv6 微 BSID (200:ffd1) 和 PE2 的微服务 SID (2020:ff01)。

PE1 总共向 IPv6 DA 写入了 5 个 micro-SID。实际上,某些平台可能只能将有限数量的 SRv6 micro-SID 写入 IPv6 DA,因此此 SID 堆栈需要 SRH。实现方式因平台而异。但是,此示例中描述的常规行为是通用的。

当配置了绑定 SID 的 P2 通过最长前缀匹配接收与或本地 SID 匹配的数据END.B6.Encaps with Next-C-SIDEND.B6.Encaps.Red with NEXT-C-SID包时,它首先从 IPv6 DA 中弹出其绑定 SID,并相应地重写 IPv6 DA。然后,P2 将传出数据包与新 IPv6 标头的 DA 中包含 P4 的 SRv6 微 SID 和 P6 的 SRv6 微 SID 的分段列表。此新标头可能包含也可能不包含 SRH,具体取决于 SID 是配置为缩减模式还是非缩减模式行为。

P6 是从 P2 开始的新隧道的出口路由器。当数据包到达 P6 时,外部报头将与任何 SRH 一起解封装。然后,数据包被转发到出口节点 PE2,其中内部报头在其中解封装,并使用最长前缀匹配进行解析。然后,有效负载会被转发到目的地。

图 1:使用 Micro END 进行数据包转发。B6.使用 P2 处实例化的段封装 BSID Packet forwarding with Micro END.B6.Encap BSID with segments instantiated at P2
  1. 在传输路由器上配置绑定 SID 之前,请确保已配置指定的 SRv6 块,并保留此块的一部分,以便分配给本地定位器的静态 SID。
  2. 定义绑定到 SRv6 块的微 SID 定位器以派生 SID。确保在 IS-IS 中通告微 SID。
    注意:
    • USD、USP 或 PSP 等端点行为类型不适用于绑定 SID。
    • 全局配置该 no-reduced-srh 选项时,还必须使用绑定 SID 配置进行配置。

  3. 仍在传输路由器上,配置分段列表以定义将确定前进流量工程路径的 SID 列表。封装传出数据包时,中转路由器将使用此分段列表根据实施情况 no-reduced-srh 使用 SRH 构造新 IPv6 报头的 DA。
  4. 仍在传输路由器上,使用绑定 SID 配置基于微 SID 的彩色 SRv6-流量工程路径。
    1. 配置新的基于微 SID 的 SRv6-流量工程路径,传入数据包应被引导到该路径。请参阅刚刚创建的区段列表,并使用适当的颜色值标记 SR-流量工程路径。
    2. 定义应与此 SR-流量工程路径关联的传入绑定 SID。从分配给静态使用的范围内选择未使用的 SID 值。您可以使用命令 show srv6 block block_name 验证静态 SID 范围。这是 no-reduced-srh 可选的,但如果全局配置,则必须使用绑定 SID 配置进行配置。默认情况下,实现了简化模式。当路由器收到与微绑定 SID 匹配的数据包时,它会根据主路径的指令封装数据包。每个源路由路径仅支持一个绑定 SID。
  5. 现在在入口路由器上,配置 SRv6 块和 micro-SID 定位器。
  6. 仍然在入口路由器上,配置分段列表以定义将确定前进流量工程路径的 SID 列表。确保第一个跃点是中转节点的 SRv6 微型 BSID。PE1 使用 IPv6 标头 DA 封装有效负载,该 DA 包含工程路径中的第一个 SID,后跟 P2 的 SRv6 微型 BSID。SRv6 微服务 SID 可以是 DA 的一部分,也可以是 SRH 中的单独微 SID 容器。
  7. 入口路由器上配置基于微 SID 的 SRv6-流量工程路径。

验证绑定 SID 配置

目的

这些验证命令通过路由器的控制平面跟踪绑定 SID (BSID) 和 SR-流量工程策略的生命周期。

行动

  • 使用命令 show srv6 locator loc_name 验证中转路由器上定位器的绑定 SID 分配。在下面的输出中,您可以观察到BSID是从定位器前缀分配的。SID 行为配置为 End.B6.Encaps with Next-CSID,这意味着在收到匹配的数据包后,路由器将使用 SRH 封装它。

  • 使用命令 show spring-traffic-engineering srv6-binding-sid database 验证中转路由器的 SR-流量工程数据库中的 SRv6 绑定 SID 信息。在下面的输出中,您可以验证 BSID 是否安装在 SR-流量工程策略数据库中,以及它是否与配置的策略和隧道进行了映射。

  • 使用 show spring-traffic-engineering lsp detail name path_name验证中转路由器上源路由路径的 SR-流量工程入口 LSP 详细信息。在下面的输出中,您可以验证 LSP 状态、BSID 关联和实际分段列表 (SR-ERO)。这意味着路由器知道用于流量引导的策略路径和分段。

  • 使用命令 show spring-traffic-engineering route detail 验证中转路由器上绑定 SID 和微服务 SID 的 SR-流量工程路由器信息。以下输出确认存在指向 BSID 和端点的路由。它还显示关联的 LSP 转发。

  • 使用命令 show ted spring-te-policy extensive 验证传输路由器上流量工程数据库中的 SRv6 策略信息。以下输出显示了 SRv6 策略的来源、颜色和分段列表。

  • 使用 show spring-traffic-engineering lsp detail name path_name 命令验证 入口路由器 上源路由路径的 SR 流量工程入口 LSP 详细信息。在下面的输出中, Hop 1 是入口在新的 IPv6 报头 DA 中推送的 BSID,无论是否带有 SRH。 Hop 2 是服务 micro-SID。

  • 验证通过 SR-流量工程路径的流量。请注意, 2001:db8:1000::100,和 2001:db8:1000:200 2001:db8:1000::2020 是路由器 P1、P2 和 PE2 的入口接口 IP。 2001:db8:6::6 是 P6 路由器的环路地址。

    额外验证

  • 如果路由器启用了 BGP-LS,则可以使用命令 show route table lsdist.0 te-policy-spring-te-color color extensive 验证中转路由器上的 BGP-LS 分配表。以下输出确认策略是通过 BGP-LS 导出,用于控制器或网络范围的分布。该策略将使用颜色、端点、BSID 和分段列表信息进行通告。