分段路由概述
Paragon Pathfinder 支持一种基于源的路由技术,称为网络中的源数据包路由 (SPRING),也称为分段路由。在分段路由中,入口路由器引导数据包通过网络中的显式路径,并不依赖网络中的中转节点来确定路径。
您可以通过添加分段路由隧道来配置这些显式路径。有关如何添加单段、多段和多段路由隧道的信息,请参阅 关于隧道选项卡 。
您可以在运行 Junos OS 17.2R1 或更高版本的瞻博网络设备以及支持分段路由的其他供应商设备上配置 SPRING 功能。Paragon Pathfinder 支持将 IS-IS 和 OSPF 作为网络中用于分段路由的内部网关协议 (IGP)。
请参见 Junos OS 文档 ,详细了解运行 Junos OS 的瞻博网络设备上的分段路由概念和支持。
以下章节介绍了 Paragon Pathfinder 中的分段路由行为。
分段标识符 (SID)
Paragon Pathfinder 将满足策略的一组路径编译为 SID。这些路径将作为指令前置到数据包中。SID 表示到网络中节点的路径。节点执行 SID 列表中指定的指令。
您可以在添加或修改隧道时显示的路径选项卡中为分段路由隧道路径在策略中定义跃点数。要定义跃点,请指定希望路径遍历的节点、链路和节点组的顺序。满足您的路径策略的路径也将满足您的其他要求,例如延迟、带宽等。因此,分段路由路径计算的结果是一个 SID 列表,用于指示网络实施满足策略的路径。但是,SID 列表可能与路径策略中指定的跃点不完全一致。
目前,Paragon Pathfinder 支持节点 SID(与节点关联)、邻接 SID(与链路关联)、绑定 SID(与隧道关联)和任播 SID(与任播组关联)。
目前,Paragon Pathfinder 不支持为 SRv6 隧道绑定 SID 和任播 SID。
如果节点 SID 和任播 SID 都可用于路径计算,则路径计算服务器将实现满足策略的路径,如下所示,以便根据路径策略路由流量:
- 如果使用 PCEP 作为预配方法,则路径计算服务器使用任播 SID,而不是节点 SID。
- 如果使用 NETCONF 作为预配方法,则路径计算服务器使用节点 SID,而不是任播 SID。
要在 GUI 中查看 SID,请执行以下作:
-
邻接 SID 标签:
- 要在拓扑图中查看分段路由-MPLS 邻接 SID 标签,请右键单击图中空白区域中的任意位置。从显示的列表中,选择“ 链路标签” ,然后选择“ SID A::Z”。 若要查看映射上链路的 SRv6 SID 标签,请选择 “链路标签” ,然后选择“ SRv6 SID 函数 A::Z”。
-
在网络信息表中,“链路”选项卡显示 SID A 和 SID Z 列中链路的分段路由 MPLS SID 标签。SRv6 SID 标签显示在 SRv6 SID A 和 SRv6 SID Z 列中。
图 1 显示了一个示例拓扑图,其中包含用于链路的分段路由 MPLS SID 标签。
若要查看特定链接的每个 SID 的属性,请在“链接”选项卡中选择一个链接。单击将鼠标悬停在链接上时显示 的“详细信息 ”图标,或选择 “更多”>“显示详细信息”。在显示的“链路 - 链路名称 ”页中,导航到 > endA(或 endZ)>协议> SR > SID [n] 的详细信息选项卡。
注意:目前,Paragon Pathfinder 仅支持每个接口一个分段路由(MPLS SID)和一个 SRv6 SID。
图 1:邻接 SID 标签 -
节点 SID 标签 — 在网络信息表中,“节点”选项卡在 SID 列中显示节点的分段路由 MPLS SID 标签,在 SRv6 SID 列中显示 SRv6 SID 标签。此外,您还可以在拓扑图中查看分段路由-MPLS SID 标签。但是,SRv6 SID 标签不会显示在拓扑图上。
注意:仅当分段路由全局块 (SRGB) 值与网络中所有节点的分段路由全局块 (SRGB) 值在同一范围内时,才能查看 SID 标签。
要从特定节点的角度查看其他节点的节点 SID,请在网络信息表中选择该节点,然后单击 查看所选节点>节点 SID。从所选节点的角度,节点的节点 SID 显示在拓扑图中。例如, 图 2 显示了从节点 ios-xr8 角度查看的节点 SID,而 图 3 显示了从节点 vmx101 角度查看的节点 SID。根据特定节点的透视,节点可以具有不同的节点 SID 值。例如,从节点 ios-xr8 的角度来看,节点 vmx102 的节点 SID 为 80002,而从节点 vmx101 的角度来看,节点 vmx102 的节点 SID 为 1002,如 图 2 和 图 3 所示。
图 2:从 ios-xr8查看的节点 SID
图 3:从 vmx101查看的节点 SID
- 任播 SID 标签 — 在网络信息表中,任播组选项卡将分段路由-MPLS 隧道的任播 SID 标签显示为 SR 列中的索引值。
- 绑定 SID 标签 — 在网络信息表中,隧道选项卡在 BSID 列中显示用于绑定分段路由-MPLS 隧道的 SID 标签。“链接”选项卡在“ SID A ”和“ SID Z ”列中显示 SID 标签。
绑定 SID
您可以使用 NETCONF 作为置备方法置配一对绑定 SID 分段路由-MPLS 隧道(一个从 A 到 Z,一个用于从 Z 到 A 的返回路径)。有关添加隧道的详细信息,请参阅 添加单个隧道 。配置隧道时,会自动创建专用转发邻接。这些邻接的名称采用特定格式,由三个部分组成,用冒号隔开。例如, binding:0110.0000.0105:privatefa57。
- 这些名称都以“binding”开头,后跟冒号。
-
中心部分是始发节点的名称,后跟冒号(在本例中为 0110.0000.0105: )。
-
最后一部分是您在“添加隧道”页面的“属性”选项卡的“名称”字段中为绑定 SID 段路由隧道指定的名称(本例中为 privatefa57 )。
只能通过绑定 SID 分段路由隧道通过非绑定 SID 分段路由隧道通过隧道进行隧道传输(反之亦然)。绑定可减少标签堆栈中的标签数量(专用转发邻接标签可以表示路径中的多个跃点)。
目前,Paragon Pathfinder 不支持绑定 SID 标签分配或冲突检测。Junos OS 内置冲突检测功能。因此,如果指定的绑定 SID 标签超出允许的范围(1000000 到 1048575),则Junos OS不允许提交配置。相应地,网络信息表的 Tunnel 选项卡中的 Controller Status 显示 FAILED(NS_ERR_INVALID_CONFIG)。
要添加一对绑定 SID 段路由隧道,请沿与第一个隧道相反的方向预配第二个绑定 SID 段路由隧道。您必须使用与隧道对中第一个隧道相同的隧道名称,以确保隧道可以正确匹配。配置隧道对时,将自动创建相应的专用转发邻接链路。绑定 SID 标签值也可以与对中的第一个隧道中的值相同,但不是必需的。
然后,当您为非约束性 SID 分段路由隧道指定跃点时,可以选择专用转发邻接链路作为目标。在路由器上使用 show 命令确认隧道对已推送到路由器配置。
在网络信息表中选择绑定 SID 分段路由隧道时,对应的专用转发邻接链路会在拓扑图中显示为虚线,如 图 4 所示。

最大 SID 深度 (MSD)
当控制器计算分段路由路径时,它必须学习它可以在与分段路由路径对应的每个节点上施加的 MSD,以便计算路径的 SID 堆栈深度值不超过节点施加的 SID 数。
为了避免 MSD 上的设备限制,在添加带有节点 SID 的分段路由隧道时,可以选择 RouteByDevice 作为路由方法。此选项使路由器能够控制路由的一部分,因此需要显式指定的标签更少。
添加分段路由隧道时,不使用 routeByDevice 时遇到 MSD 限制的症状是,尽管在网络信息表中添加了新隧道的行,但 Op Status 显示为 Unknown,Controller Status 显示为 Reschedule in x Minutes。不会创建任何隧道来转发流量。因此,对于非工程流量,流量将按照路由表中的最短路径进行转发。要解决此问题,必须请求隧道的参数(如不同的跃点),以便 Paragon Pathfinder 计算出不违反路径中路由器 MSD 的路径。或者,使用绑定 SID 配置一些隧道以创建转发邻接,以便 Paragon Pathfinder 可以在 SID 列表中指定绑定 SID。
添加分段路由隧道时,您在路径选项卡中指定的跃点信息会影响路由。您可以选择不超过对入口路由器施加的 MSD 跃点限制的跃点,并指定 严格 遵守或 松散 遵守。如果将跃点指定为 strict,则隧道必须采用从上一个路由器到此路由器的直接路径(仅包含您为路径指定的链路和节点)。如果将跃点指定为松散跃点,则隧道可以采用任何路径到达此路由器;PCE 选择最佳路径。
重新路由和重新调配
对于 PCEP 调配的分段路由隧道,路由器只能报告第一跃点的运行状态。网络信息表中的“ 作状态” 列显示作状态。在第一跃点之后,控制器负责监视 SID 标签,并报告作状态。如果标签更改或从网络中消失,控制器将尝试重新路由并重新调配处于非运行状态的隧道。
如果控制器找不到符合约束的替代路由路径,则隧道将从网络中删除。但是,这些隧道不会从数据模型中删除(隧道保留在数据存储机制中)。其目标是通过从网络中删除隧道来最大程度地减少不可行分段路由隧道造成的流量损失。删除分段路由隧道时,Op Status 列会将状态显示为 Unknown。“控制器状态”列将状态显示为 “找不到路径 ”或 “在 x 分钟内重新计划”。
您可以通过为隧道创建限制更少或更宽松的辅助路径来降低流量丢失的风险。如果隧道不满足原始约束,控制器将首先尝试使用辅助路径重新路由。如果重新路由有效,隧道将保持 “运行” 状态,并且不会被删除。
控制器允许向分段路由隧道添加辅助路径。但是,它不会预配为 PCC 的辅助路径,因为分段路由隧道协议不支持辅助路径。
如果使用 REST API 创建分段路由隧道,则可以将隧道的重新路由行为设置为 noRerouting。如果拓扑更改导致隧道中的流量偏离最初配置它的路径,则分段路由路径计算服务器会关闭分段路由隧道。如果未指定 noRerouting(即允许重新路由),则路径计算服务器将在网络拓扑发生变化时计算符合用户定义路径策略的新路径。当路径计算服务器可以选择同时使用节点 SID 和任播 SID 来实现路径策略时,路径计算服务器将按如下所示使用 SID:
- 如果指定了 noRerouting,则使用节点 SID 实现路径策略。
-
如果允许重新路由,则使用任播 SID 实施路径策略。拓扑发生更改时,现有 SID 列表仍可通过将隧道从任播组中的一个节点移动到任播组中的另一个节点来实现路径策略。
按需下一跳、域内(实验性功能)
此功能仅用于实验室和演示目的。不建议将此功能用于生产网络。
当路由通过 BGP 下一跳解析时,按需下一跳 (ODN) 功能使控制器能够动态创建分段路由-流量工程 (SR–TE) 隧道。然后,可由路径计算元素 (PCE) 委派和管理 SR–TE 隧道。要使用此功能,请为设备配置支持分段路由 ODN 的最新版本的 Junos OS 20.4 或更高版本(例如 Junos 20.4I-20200910)。
您必须配置 Junos OS 设备才能创建隧道。以下示例显示了先决条件配置:
set routing-options dynamic-tunnels odncf spring-te source-routing-path-template odnmytemplate set routing-options dynamic-tunnels odncf spring-te destination-networks 10.0.0.11/32 set protocols source-packet-routing compute-profile test-compute-prof no-label-stack-compression set protocols source-packet-routing compute-profile test-compute-prof maximum-computed-segment-lists 1 set protocols source-packet-routing source-routing-path-template odnmytemplate lsp-external-controller pccd set protocols source-packet-routing source-routing-path-template odnmytemplate primary test-computer compute test-compute-prof
在 routing-options dynamic-tunnels 配置 部分,指定动态隧道(即目标网络)的模板和端点。目标网络可以是一台设备,也可以是多台设备(由子网指示)。模板(本例中的 odnmytemplate )在 协议 source-packet-routing source-routing-path-template 下指定。设备配置还指向一个计算配置文件,该配置文件可以包含其他参数。
设备上的配置将建立:
- 源路由路径模板
- 目标网络
- 计算配置文件
请参阅 Junos OS 文档 ,了解有关这些特定命令的语法和用法的一般准则。
路由器创建动态隧道后,运行 show dynamic-tunnels database
命令查看新隧道,如以下示例所示。动态隧道也会显示在网络信息表的隧道选项卡中。
northstar@PE1# run show dynamic-tunnels database *- Signal Tunnels #- PFE-down Table: inet.3 Destination-network: 10.0.0.11/32 Tunnel to: 10.0.0.11/32 Reference count: 1 Next-hop type: spring-te 10.0.0.11:dt-srte-odncf State: Established
set protocols source-packet-routing lsp-external-controller pccd set protocols source-packet-routing source-routing-path-template odnmytemplate lsp-external-controller pccd
在上面的命令中, odnmytmeplate 是特定模板的名称。
查看分段路由路径
要查看分段路由路径的详细信息,请执行下列作之一:
- IP 地址和 SID 是显式路由的两个部分。IP 地址部分显示在 ERO 列中,SID 部分显示在网络信息表的 Tunnel 选项卡的 Record Route 列中。
-
在“隧道”选项卡中,将鼠标悬停在隧道上,然后单击出现 的详细信息 图标。或者,选择一个隧道,然后单击 更多>显示详细信息。
此时将显示 Tunnel-<Tunnel Name> 页面。导航到详细信息选项卡,然后单击 ero [n] > liveProperties 以查看 ERO 的详细信息。
- 在路由器上使用 Junos OS show 命令。一些例子是:
-
show spring-traffic-engineering lsp name lsp-name detail
以显示隧道状态和 SID 标签。 show route table inet.3
以显示流量目标与 SPRING 隧道的映射。
-
要记住的要点
以下是关于 SRv6 隧道需要注意的几点:
-
只能在 JUNOS 路由器上配置 SRv6 隧道。
-
Paragon Pathfinder 不支持收集 SRv6 隧道的遥测数据。
-
您必须在进行邻接的 ISIS 接口上配置 End.X SID,以便在 SRv6 路径计算中考虑链路。
-
当您查看 SRv6 隧道的事件时,不会显示此类隧道的当前路径。
-
不能对 SRv6 隧道运行 ping 和 traceroute 命令。
-
只能使用默认路径计算服务器来置备 SRv6 隧道。
-
Paragon Pathfinder 每个节点和每个链路仅支持一个 SRv6 SID。