静态 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:
set protocols source-packet-routing source-routing-path path_name srv6-binding-sid | micro-srv6-binding-sid locator loc_name static_sid set protocols source-packet-routing source-routing-path path_name srv6-binding-sid | micro-srv6-binding-sid locator loc_name no-reduced-srh
配置经典 SRv6 SID 时,必须提供整个经典 BSID 以及定位符名称。例如:
set protocols source-packet-routing source-routing-path to_PE srv6-binding-sid locator classic-srv6-loc 2001:db8:a1:2:1::
配置微型 SRv6 SID 时,只需提供功能部分以及定位器名称。例如:
set protocols source-packet-routing source-routing-path to-PE2 micro-srv6-binding-sid locator uNSID20 0xfc58
- 入口路由器配置了第一个分段列表跃点作为绑定 SID。在下面的配置代码段中,
5f00:0:200:fc58::是在传输路由器上配置的微绑定 SID。请注意,配置未提及这是绑定 SID,因为此信息对入口路由器并不重要。SRv6 微服务 SID5f00:0:2020::是分段列表中的最后一个跃点。例如:set protocols source-packet-routing segment-list sl_to_PE2 p2 micro-srv6-sid 5f00:0:200:fc58:: set protocols source-packet-routing segment-list sl_to_PE2 pe2 micro-srv6-sid 5f00:0:2020::
- 该功能支持在流量工程路径中具有绑定 SID 的多个中转路由器。必须将入口路由器将每个绑定 SID 传输路由器配置为分段列表跃点。在下面的示例中,P2 和 P4 是配置了绑定 SID 的流量工程路径上的两台中转路由器。
set protocols source-packet-routing segment-list sl_to_PE2 p2 micro-srv6-sid 5f00:0:200:fc58:: set protocols source-packet-routing segment-list sl_to_PE2 p4 micro-srv6-sid 5f00:0:400:fc68:: set protocols source-packet-routing segment-list sl_to_PE2 pe2 micro-srv6-sid 5f00:0:2020::
-
您可以启用特定于 SRv6 绑定 SID 的跟踪。
set protocols source-packet-routing traceoptions flag srv6-binding-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)
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,其中内部报头在其中解封装,并使用最长前缀匹配进行解析。然后,有效负载会被转发到目的地。
验证绑定 SID 配置
目的
这些验证命令通过路由器的控制平面跟踪绑定 SID (BSID) 和 SR-流量工程策略的生命周期。
行动
-
使用命令
show srv6 locator loc_name验证中转路由器上定位器的绑定 SID 分配。在下面的输出中,您可以观察到BSID是从定位器前缀分配的。SID 行为配置为 End.B6.Encaps with Next-CSID,这意味着在收到匹配的数据包后,路由器将使用 SRH 封装它。user@P2> show srv6 locator uNSID20 Locator: uNSID20 Locator prefix: 5f00:0:1010::, Locator length: 48 Block length: 32, Node length: 16 Function length: 16, Argument length: 0 Micro SID Locator, Flavor [ USD ] Micro SID Block Name: adjblock1 SID SID-Owner SID-Type SID-Behavior 5f00:0:200:fc58:: SRTE STATIC End.B6.Encaps with NEXT-CSID
-
使用命令
show spring-traffic-engineering srv6-binding-sid database验证中转路由器的 SR-流量工程数据库中的 SRv6 绑定 SID 信息。在下面的输出中,您可以验证 BSID 是否安装在 SR-流量工程策略数据库中,以及它是否与配置的策略和隧道进行了映射。user@P2> show spring-traffic-engineering srv6-binding-sid database * = Allocated SRv6 Binding SID Policy Ep-Bhv = Endpoint-Behavior Endpoint Behaviors 14 = End.B6.Encaps 93 = End.B6.Encaps with NEXT-CSID 27 = End.B6.Encaps.Red 94 = End.B6.Encaps.Red with NEXT-CSID SRv6 Binding SID Ep-Bhv Policy Tunnels 5f00:0:200:fc58::/64 93 * 2001:db8:20::20-4001 to-PE2
-
使用
show spring-traffic-engineering lsp detail name path_name验证中转路由器上源路由路径的 SR-流量工程入口 LSP 详细信息。在下面的输出中,您可以验证 LSP 状态、BSID 关联和实际分段列表 (SR-ERO)。这意味着路由器知道用于流量引导的策略路径和分段。user@P2> show spring-traffic-engineering lsp detail name to-PE2 E = Entropy-label Capability Name: to-PE2 Tunnel-source: Static configuration Tunnel Forward Type: SRV6 To: 2001:db8:20::20-4001<c6> From: 2001:db8:1::1 SRv6 Binding SID: 5f00:0:200:fc58::, State: Allocated Locator: uNSID20 Endpoint Behavior: End.B6.Encaps with NEXT-CSID (93) SSTLV: BL:32, NL:16, FL:16, AL:0 State: Up Path: sl_to_PE2 Path Status: Up Outgoing interface: NA Auto-translate status: Disabled Auto-translate result: N/A Compute Status:Disabled , Compute Result:N/A , Compute-Profile Name:N/A BFD status: N/A BFD name: N/A BFD remote-discriminator: N/A Segment ID : 128 ERO Valid: true SR-ERO hop count: 2 Hop 1 (Strict): NAI: None SID type: Micro SRv6 SID, Value: 5f00:0:400:: SSTLV: BL: 32, NL: 16, FL: 0, AL: 80 Hop 2 (Strict): NAI: None SID type: Micro SRv6 SID, Value: 5f00:0:600:: SSTLV: BL: 32, NL: 16, FL: 0, AL: 80 Total displayed LSPs: 1 (Up: 1, Down: 0, Initializing: 0) -
使用命令
show spring-traffic-engineering route detail验证中转路由器上绑定 SID 和微服务 SID 的 SR-流量工程路由器信息。以下输出确认存在指向 BSID 和端点的路由。它还显示关联的 LSP 转发。user@P2> show spring-traffic-engineering route detail To : 5f00:0:200:fc58::/64 SRv6 Binding SID Endpoint Behavior: End.B6.Encaps with NEXT-CSID (93) SSTLV: BL:32, NL:16, FL:16, AL:0 Distinguisher : 0 Tunnel-source : Static configuration Route Nexthop Type: Indirect Route Metric2 : 30 Route Forward Type : SRV6, Encap Mode : Non-Reduced SRH LSP Name: to-PE2 SR Preference : 100, SR Preference Override : 100 Metric : 1 State : Up LSP ID : 4 LSP Path Name: sl_to_PE2 LSP Path Bandwidth: 1 Weight: 1, Balance: 1 SR-ERO hop count: 2 Hop 1 (Strict): NAI: None SID type: Micro SRv6 SID, Value: 5f00:0:400:: SSTLV: BL: 32, NL: 16, FL: 0, AL: 80 Hop 2 (Strict): NAI: None SID type: Micro SRv6 SID, Value: 5f00:0:600:: SSTLV: BL: 32, NL: 16, FL: 0, AL: 80 To : 2001:db8:20::20-4001<c6> Distinguisher : 0 Tunnel-source : Static configuration Route Nexthop Type: Indirect Route Metric2 : 30 Route Forward Type : SRV6, Encap Mode : Non-Reduced SRH Using Transport class : true LSP Name: to-PE2 SR Preference : 100, SR Preference Override : 100 Metric : 1 State : Up LSP ID : 4 LSP Path Name: sl_to_PE2 LSP Path Bandwidth: 1 Weight: 1, Balance: 1 SR-ERO hop count: 2 Hop 1 (Strict): NAI: None SID type: Micro SRv6 SID, Value: 5f00:0:400:: SSTLV: BL: 32, NL: 16, FL: 0, AL: 80 Hop 2 (Strict): NAI: None SID type: Micro SRv6 SID, Value: 5f00:0:600:: SSTLV: BL: 32, NL: 16, FL: 0, AL: 80 -
使用命令
show ted spring-te-policy extensive验证传输路由器上流量工程数据库中的 SRv6 策略信息。以下输出显示了 SRv6 策略的来源、颜色和分段列表。user@P2> show ted spring-te-policy extensive TED database: 1 ISIS nodes 0 INET nodes 0 INET6 nodes NodeID: R1.00(1.1.1.1)(2001:db8:1::1) Type: RtrAge: 194 secs Protocol: SPRING-TE(0) Color: 4001, Endpoint: 2001:db8:20::20 Candidate Path Name: to-PE2, Flags: 0x8 Origin: 3, Origin Address: 2001:db8:1::1 , AS: 0, Discriminator: 0 Preference: 100, Priority: 128 BSID Flags: 0x1, SRV6 BSID: 5f00:0:200:fc58::, SRV6 SPECIFIED BSID: 5f00:0:200:fc58:: BSID Endpoint Behavior: 93, Flags: 0x0, Algo: 0 SSTLV: BL:32, NL:16, FL:16, AL:0 Number of Segments: 2 Segments: SRV6 SID: 5f00:0:400::, Segment Flags: 0x7 SID Structure: LB Length - 32, LN Length - 16, Function Length - 0, Argument Length - 80 SRV6 SID: 5f00:0:600::, Segment Flags: 0xf SID Structure: LB Length - 32, LN Length - 16, Function Length - 0, Argument Length - 80 -
使用
show spring-traffic-engineering lsp detail name path_name命令验证 入口路由器 上源路由路径的 SR 流量工程入口 LSP 详细信息。在下面的输出中,Hop 1是入口在新的 IPv6 报头 DA 中推送的 BSID,无论是否带有 SRH。Hop 2是服务 micro-SID。user@PE1> show spring-traffic-engineering lsp detail name to-PE2 E = Entropy-label Capability Name: to-PE2 Tunnel-source: Static configuration Tunnel Forward Type: SRV6 To: 2001:db8:20::20-4001<c6> From: 2001:db8:10::10 State: Up Path: sl_to_PE2 Path Status: Up Outgoing interface: NA Auto-translate status: Disabled Auto-translate result: N/A Compute Status:Disabled , Compute Result:N/A , Compute-Profile Name:N/A BFD status: N/A BFD name: N/A BFD remote-discriminator: N/A Segment ID : 128 ERO Valid: true SR-ERO hop count: 2 Hop 1 (Strict): NAI: None SID type: Micro SRv6 SID, Value: 5f00:0:200:fc58:: SSTLV: BL: 32, NL: 16, FL: 16, AL: 64 Hop 2 (Strict): NAI: None SID type: Micro SRv6 SID, Value: 5f00:0:2020:: SSTLV: BL: 32, NL: 16, FL: 0, AL: 80 Total displayed LSPs: 1 (Up: 1, Down: 0, Initializing: 0) -
验证通过 SR-流量工程路径的流量。请注意,
2001:db8:1000::100,和2001:db8:1000:2002001:db8:1000::2020是路由器 P1、P2 和 PE2 的入口接口 IP。2001:db8:6::6是 P6 路由器的环路地址。user@PE1> traceroute srv6 spring-te micro-sids-stack usids [ 5f00:0:2020:: 5f00:0:200:fc58:: 5f00:0:100:: ] nexthop-interface xe-0/0/0:0.0 nexthop-address 2001:db8:f500:20c:4600 traceroute to destination 5f00:0:100:200:fc58:2020::, from source 2001:db8:10::10, 64 hops max, retries 3 1 2001:db8:1000::100 21.677 ms 21.932 ms 22.347 ms DA: 5f00:0:100:200:fc58:2020:: 2 2001:db8:1000::200 263.668 ms 197.990 ms 32.973 ms DA: 5f00:0:200:fc58:2020:: 3 2001:db8:6::6 55.073 ms 54.673 ms 66.859 ms DA: 5f00:0:2020:: 4 2001:db8:1000::2020 78.142 ms 99.980 ms 98.830 ms DA: 5f00:0:2020:: Traceroute status: Success额外验证
-
如果路由器启用了 BGP-LS,则可以使用命令
show route table lsdist.0 te-policy-spring-te-color color extensive验证中转路由器上的 BGP-LS 分配表。以下输出确认策略是通过 BGP-LS 导出,用于控制器或网络范围的分布。该策略将使用颜色、端点、BSID 和分段列表信息进行通告。user@P2> show route table lsdist.0 te-policy-spring-te-color 4001 extensive lsdist.0: 113 destinations, 113 routes (113 active, 0 holddown, 0 hidden) SPRING_TE_POLICY { Node { AS:100 IPv4:1.1.1.1 } Policy { Color: 4001 Endpoint: 2001:db8:20::20 AS: 0 Origin Address: 2001:db8:1::1 Origin: 3 Discriminator: 0 } } SPRING-TE:0 }/1216 (1 entry, 1 announced) TSI: Page 0 idx 0, (group to-RRv6 type Internal) Type 1 val 0x1144b2e0 (adv_entry) Advertised metrics: Flags: Nexthop Change Nexthop: Self Localpref: 100 AS path: [100] I Communities: Advertise: 00000001 Path SPRING_TE_POLICY { Node { AS:100 IPv4:1.1.1.1 } Policy { Color: 4001 Endpoint: 2001:db8:20::20 AS: 0 Origin Address: 2001:db8:1::1 Origin: 3 Discriminator: 0 } } SPRING-TE:0 } Vector len 4. Val: 0 *SPRING-TE Preference: 8 Next hop type: Fictitious, Next hop index: 0 Address: 0x8e5b290 Next-hop reference count: 133 Kernel Table Id: 0 Next hop: State: <Active NotInstall> Local AS: 100 Age: 7:35 Validation State: unverified Task: SPRING-TE Announcement bits (1): 0-BGP_RT_Background AS path: I Candidate Path Name: to-PE2, Flags: 0x8 Preference: 100, Priority: 128 BSID Flags: 0x1, SRV6 BSID: 5f00:0:200:fc58::, SRV6 SPECIFIED BSID: 5f00:0:200:fc58:: BSID Endpoint Behavior: 93, Flags: 0x0, Algo: 0 SSTLV: BL:32, NL:16, FL:16, AL:0 Number of Segment Lists: 1 Segment List: 1, Segment List Flags: 0xb, MTID: 0, Weight: 1, Algo: 0 Number of Segments: 2 Segments: SRV6 SID: 5f00:0:400::, Segment Flags: 0x7 SID Structure: LB Length - 32, LN Length - 16, Function Length - 0, Argument Length - 80 SRV6 SID: 5f00:0:600::, Segment Flags: 0xf SID Structure: LB Length - 32, LN Length - 16, Function Length - 0, Argument Length - 80 Thread: junos-main