分段路由 LSP 配置
为分段路由 LSP 启用分布式 CSPF
借助用于分段路由 LSP 的分布式约束最短路径优先 (CSPF) 功能,您可以根据配置的约束在入口设备上本地计算分段路由 LSP。借助此功能,可以根据配置的约束和指标类型(流量工程或 IGP)对 LSP 进行优化。计算 LSP 是为了利用到启用或禁用分段路由标签堆栈压缩的目标的可用 ECMP 路径。
使用 功能资源管理器 确认平台和版本对特定功能的支持。
查看 “ 特定于平台的分段路由 LSP 行为” 部分,了解与您的平台相关的注释。
- 分布式 CSPF 计算约束
- 分布式 CSPF 计算算法
- 分布式 CSPF 计算数据库
- 配置分布式 CSPF 计算约束
- 分布式 CSPF 计算
- 分布式CSPF计算与SR-流量工程特征的交互
- 分布式 CSPF 计算示例配置
分布式 CSPF 计算约束
当满足所有配置的约束时,将计算分段路由 LSP 路径。
分布式 CSPF 计算功能支持互联网草案、draft-ietf-spring-segment-routing-policy-03.txt 分段路由流量工程策略中指定的以下约束子集:
-
行政团体的包容和排除。
-
包含松散或严格的跃点 IP 地址。
注意:您只能在松散或严格跃点约束下指定路由器 ID。在 Junos OS 19.2R1-S1 版中,不能将标签和其他 IP 地址指定为松散或严格的跃点约束。
-
区段列表中的最大区段 ID (SID) 数。
-
每个候选分段路由路径的最大分段列表数。
分段路由LSP的分布式CSPF计算功能不支持以下类型的约束和部署场景:
-
IPV6 地址。
-
域间分段路由流量工程 (SR-流量工程) LSP。
-
未编号的接口。
-
同时启用多种协议路由协议,如 OSPF、IS-IS 和 BGP-LS。
-
使用前缀或任播地址作为目标的计算。
-
包括和排除接口 IP 地址作为约束条件。
分布式 CSPF 计算算法
分段路由 LSP 的分布式 CSPF 计算功能将标签堆栈压缩算法与 CSPF 配合使用。
启用标签堆栈压缩
压缩标签堆栈表示从源到目标的一组路径。它通常由节点 SID 和邻接 SID 组成。启用标签堆栈压缩后,计算结果是一组路径,这些路径使到目标的 ECMP 最大化,堆栈中的 SID 数最少,同时符合约束。
标签堆栈压缩已禁用
禁用标签堆栈压缩的多路径 CSPF 计算最多可查找 N 到目标的分段列表,其中:
-
所有分段列表的成本等于并与到达目标的最短流量工程指标相同。
-
每个分段列表都由邻接 SID 组成。
-
的 N 值是按配置统计的候选路径允许的最大分段列表数。
-
没有两个区段列表是相同的。
-
每个分段列表都满足所有配置的约束。
分布式 CSPF 计算数据库
用于 SR-流量工程计算的数据库包含所有链路、节点、前缀及其特征,无论这些播发节点中是否启用了流量工程。换句话说,它是计算节点从中学习的所有域的流量工程数据库 (TED) 和 IGP 链路状态数据库的联合。因此,要使 CSPF 正常工作,您必须在层次结构级别包含[edit protocols isis traffic-engineering]该igp-topology语句。
配置分布式 CSPF 计算约束
您可以使用计算配置文件对计算约束进行逻辑分组。这些计算配置文件由分段路由路径引用,用于计算主分段路由 LSP 和辅助分段路由 LSP。
要配置计算配置文件,请在层次结构级别包含 [edit protocols source-packet-routing] compute-profile 语句。
支持的计算约束的配置包括:
-
Administrative groups
您可以在层次结构级别下
[edit protocols mpls]配置管理员组。Junos OS 将管理组配置应用于分段路由流量工程 (SR-流量工程) 接口。要配置计算约束,可以为一组管理组指定三个类别。计算约束配置可以是所有候选分段路由路径通用的,也可以位于单个候选路径下。
-
include-any- 指定要遍历的路径可以接受列表中至少有一个已配置管理组的任何链路。 -
include-all- 指定要遍历的路径可以接受列表中所有已配置管理组的任何链路。 -
exclude- 指定要遍历的路径可以接受列表中没有任何已配置管理组的任何链路。
注意:只有在以下任一情况下,系统才会公布管理组:-
在接口上启用 RSVP。
-
如果不想启用 RSVP,请进行配置
edit protocols isis traffic-engineering advertisement always。
-
-
Explicit path
您可以在计算配置文件中指定一系列路由器 ID 作为计算 SR-流量工程候选路径的约束。每个跃点必须是一个 IPv4 地址,类型可以是严格或松散。如果未配置跃点类型,则使用 strict。指定显式路径约束时,必须在 segment-list 语句下包含该
compute选项。 -
Maximum number of segment lists (ECMP paths)
您可以将候选路径与多个动态分段列表相关联。这些路径是 ECMP 路径,其中每个分段列表都转换为具有活动权重的下一跳网关。这些路径是带或不带压缩的路径计算的结果。
可以使用 compute-profile 配置语句下的选项配置
maximum-computed-segment-lists maximum-computed-segment-lists此属性。此配置确定为给定主 LSP 和辅助 LSP 计算的此类分段列表的最大数量。 -
Maximum segment list depth
最大分段列表深度计算参数确保在满足所有其他约束(如管理组)的 ECMP 路径中,仅使用分段列表小于或等于最大分段列表深度的路径。将此参数配置为计算配置文件下的约束时,它将
maximum-segment-list-depth覆盖层次结构级别下的[edit protocols source-packet-routing]配置(如果存在)。可以使用 compute-profile 配置语句下的选项配置
maximum-segment-list-depth maximum-segment-list-depth此属性。 -
Protected or unprotected adjacency SIDs
可以将受保护或未受保护的邻接 SID 配置为 计算配置文件 下的约束,以避免具有指定 SID 类型的链接。
-
Metric type
您可以在链路上指定用于计算的指标类型。默认情况下,SR-流量工程 LSP 使用链路的流量工程指标进行计算。链路的流量工程指标由 IGP 协议的流量工程扩展播发。但是,您也可以选择使用计算配置文件中的度量类型配置来使用 IGP 度量进行计算。
可以使用 compute-profile 配置语句下的选项配置
metric-type (igp | te)此属性。
分布式 CSPF 计算
SR-流量工程候选路径在本地计算,以便满足配置的约束。禁用标签堆栈压缩后,多路径 CSPF 计算结果是一组邻接 SID 堆栈。启用标签堆栈压缩后,结果是一组压缩的标签堆栈(由相邻 SID 和节点 SID 组成)。
计算辅助路径时,不会避免主路径采用的链路、节点和 SRLG 进行计算。有关主路径和辅助路径的更多信息,请参阅 配置主 LSP 和辅助 LSP。
对于计算结果不成功的任何 LSP,计算将随着流量工程数据库 (TED) 的更改而重试。
分布式CSPF计算与SR-流量工程特征的交互
与 SR-流量工程策略路径关联的权重
您可以针对计算的和静态 SR-流量工程路径配置权重,这些路径会影响路由的下一跃点。但是,启用了计算的单个路径可能会导致多个段列表。这些计算的分段列表在它们之间被视为 ECMP。您可以考虑分配给每个已配置主节点的权重,为这些分层分配分层 ECMP 权重。
BFD 活度检测
您可以为计算的主路径或辅助路径配置 BFD 活跃度检测。每个计算的主要或辅助路径都可能导致多个分段列表,因此,针对分段列表配置的 BFD 参数将应用于所有计算分段列表。如果所有活动主路径都关闭,则预编程的辅助路径(如果提供)将变为活动状态。
继承标签下一跃点
您无需在层次结构下[edit protocols source-packet-routing segment-list segment-list-name]为计算的主要或辅助路径显式启用inherit-label-nexthops配置,因为这是一种默认行为。
自动翻译功能
您可以在段列表中配置自动转换功能,具有自动转换功能的主要路径或辅助路径引用这些段列表。另一方面,启用计算功能的主要或辅助功能不能引用任何段列表。因此,您无法为给定的主要或辅助路径同时启用计算功能和自动转换功能。但是,您可以为一个 LSP 配置一个具有计算类型的主路径和另一个具有自动转换类型的主路径。
分布式 CSPF 计算示例配置
示例 1
在示例 1 中,
-
非计算主路径引用配置的分段列表。在此示例中,引用了配置的分段列表 static_sl1 ,它还用作此主路径的名称。
-
计算主数据库应配置一个名称,并且此名称不应引用任何已配置的段列表。在此示例中, compute_segment1 不是配置的分段列表。
-
compute_profile_red计算配置文件应用于名称compute_segment1为 的主路径。
-
compute_profile_red compute-profile 包括 类型的
compute段列表,用于指定计算的显式路径约束。
[edit protocols source-packet-routing]
segment-list static_sl1{
hop1 label 80000
}
segment-list exp_path1 {
hop1 ip-address 10.1.1.1 loose
hop2 ip-address 10.2.2.2
compute
}
compute-profile compute_profile_red {
include-any red
segment-list exp_path1
maximum-segment-list-depth 5
}
计算路径下一跃点和静态下一跃点的权重分别为 2 和 3。假设计算路径的下一跃点为 comp_nh1、 comp_nh2和 comp_nh3,静态路径的下一跃点为 static_nh,则应用权重如下:
| 下一跳跃 |
重量 |
|---|---|
| comp_nh1 |
2 |
| comp_nh2 |
2 |
| comp_nh3 |
2 |
| static_nh |
9 |
示例 2
在示例 2 中,主路径和辅助路径都可以是计算类型,并且可以具有自己的计算配置文件。
[edit protocols source-packet-routing]
compute-profile compute_profile_green{
include-any green
maximum-segment-list-depth 5
}
compute-profile compute_profile_red{
include-any red
maximum-segment-list-depth 8
}
示例 3
在示例 3 中,当在主路径或辅助路径下提及计算时,它会导致到目标的路径的本地计算,而没有任何计算约束或其他参数。
[edit protocols source-packet-routing]
source-routing-path srte_colored_policy1 {
to 10.5.5.5
color 5
binding-sid 10001
primary {
compute_segment1 {
compute
}
}
}
静态分段路由标签交换路径
分段路由架构使核心网络中的入口设备能够通过显式路径引导流量。您可以使用分段列表配置这些路径,以定义传入流量应采用的路径。传入流量可能带有标签或 IP 流量,从而导致入口设备上的转发操作要么是标签交换,要么是基于目标的查找。
静态分段路由 MPLS 网络中的 LSP
源数据包路由或分段路由是一种控制平面架构,使核心网络中的入口设备能够引导流量通过网络中的一组特定节点和链路,而不依赖于网络中的中间节点来确定实际路径。您可以使用分段列表配置这些路径,以定义传入流量应采用的路径。传入流量可能带有标签或 IP 流量,从而导致入口设备上的转发操作要么是标签交换,要么是基于目标的查找。
- 分段路由 LSP 简介
- 使用分段路由 LSP 的好处
- 彩色静态分段路由 LSP
- 无色静态分段路由 LSP
- 静态分段路由 LSP 配置
- 静态分段路由 LSP 限制
- 基于颜色的 VPN 服务映射
- PCE 启动的分段路由 LSP 的隧道模板
分段路由 LSP 简介
分段路由利用源路由范式。设备通过一个有序的指令列表(称为分段)引导数据包。分段可以表示任何拓扑或基于服务的指令。分段可以对分段路由节点或分段路由域中的全局节点具有本地语义。分段路由强制执行流经任何拓扑路径和服务链的流量,同时仅在分段路由域的入口设备处保持每个流的状态。分段路由可直接应用于 MPLS 架构,转发平面上无需更改。分段编码为 MPLS 标签。段的有序列表编码为标签堆栈。要处理的分段位于堆栈顶部。完成区段后,将从堆栈中弹出相关标签。
分段路由 LSP 本质上可以是动态的,也可以是静态的。
| Dynamic segment routing LSPs— 当分段路由 LSP 由外部控制器创建并通过路径计算元素协议 (PCEP) 扩展下载到入口设备,或者通过BGP分段路由扩展从BGP分段路由策略下载到入口设备时,LSP 将动态调配。动态分段路由LSP的分段列表包含在PCEP显式路由对象(ERO)或LSP的BGP分段路由策略中。 |
| Static segment routing LSPs— 通过本地配置在入口设备上创建分段路由 LSP 时,将静态调配 LSP。 静态分段路由 LSP 可以根据层次结构级别的 例如: [edit protocols]
source-packet-routing {
source-routing-path lsp_name {
to destination_address;
color color_value;
binding-sid binding-label;
primary segment_list_1_name weight weight;
...
primary segment_list_n_name weight weight;
secondary segment_list_n_name;
sr-preference sr_preference_value;
}
}
此处,每个主要语句和次要语句都指一个分段列表。 [edit protocols]
source-packet-routing {
segment-list segment_list_name {
hop_1_name label sid_label;
...
hop_n_name label sid_label;
}
}
|
使用分段路由 LSP 的好处
-
静态分段路由不依赖于中转路由器上的每个 LSP 转发状态。因此,无需在核心中配置和维护每个 LSP 转发状态。
-
为 MPLS 网络提供更高的可扩展性。
彩色静态分段路由 LSP
使用 color 语句配置的静态分段路由 LSP 称为彩色 LSP。
了解彩色静态分段路由 LSP
与 BGP 分段路由策略类似,彩色 LSP 的入口路由安装在 或 inet6color.0 路由表中inetcolor.0,并带有destination-ip-address, color用于映射 IP 流量的 AS 密钥。
静态彩色分段路由 LSP 可能具有绑定 SID,路由安装在路由表中 mpls.0 。此绑定 SID 标签用于将标记的流量映射到分段路由 LSP。路由的网关派生自主路径和辅助路径下的分段列表配置。
彩色分段分段路由 LSP 的分段列表
彩色静态分段路由 LSP 已支持解析 LSP 的第一跳标签模式。但是,彩色分段路由 LSP 不支持第一跃点 IP 模式。引入了提交检查功能,以确保所有用于彩色路由的分段列表都具有所有跃点的最小标签。如果不满足此要求,则阻止提交。
无色静态分段路由 LSP
不带语句配置color的静态分段路由 LSP 是无色 LSP。与 PCEP 分段路由隧道类似,入口路由安装在 OR inet6.3 路由表中inet.3。
Junos OS 支持入口路由器上的非彩色静态分段路由 LSP。您可以通过配置一个源路由路径和一个或多个分段列表来配置非彩色静态分段路由 LSP。这些分段列表可供多个非彩色分段路由 LSP 使用。
了解非彩色分段路由 LSP
非彩色分段路由 LSP 具有唯一的名称和目标 IP 地址。到目标的入口路由安装在 inet.3 路由表中,默认优先级为 8,度量为 1。此路由允许将非彩色服务映射到与目标相关的分段路由 LSP。如果非彩色分段路由 LSP 不需要入口路由,则可以禁用入口路由。非彩色分段路由 LSP 使用绑定 SID 标签来实现分段路由 LSP 拼接。此标签可用于将分段路由 LSP 建模为分段,该分段可用于进一步以分层方式构建其他分段路由 LSP。默认情况下,绑定 SID 标签的传输优先级为 8,度量为 1。
入口设备上静态配置的非彩色分段路由 LSP 通过路径计算元素协议 (PCEP) 会话报告给路径计算元素 (PCE)。这些非彩色分段路由 LSP 可能具有与之关联的绑定服务标识符 (SID) 标签。借助此功能,PCE 可以在标签堆栈中使用此绑定 SID 标签来配置 PCE 启动的分段路由 LSP 路径。
非彩色分段路由 LSP 最多可以有 8 条主路径。如果存在多个可操作的主路径,则数据包转发引擎 (PFE) 会根据负载平衡因素(例如路径上配置的权重)在路径上分配流量。如果所有路径上均未配置权重,则为等价多路径 (ECMP);如果其中至少一条路径上配置了非零权重,则为加权 ECMP。在这两种情况下,当一个或多个路径出现故障时,PFE 都会在其余路径上重新平衡流量,从而自动实现路径保护。非彩色分段路由 LSP 可以具有用于专用路径保护的辅助路径。主路径出现故障时,PFE 会将流量重新平衡到剩余的功能性主路径。否则,PFE 会将流量切换到备用路径,从而实现路径保护。非彩色分段路由 LSP 可以为其入口和绑定 SID 路由指定一个度量 [edit protocols source-packet-routing source-routing-path lsp-name] 。多个非彩色分段路由 LSP 具有相同的目标地址,这些地址会影响入口路由的下一跃点。
多个非彩色分段路由 LSP 具有相同的目标地址,这些地址会影响入口路由的下一跃点。如果每个分段路由 LSP 的每条路径(无论是主路径还是辅助路径)都被视为网关候选路径,前提是路径正常运行,并且分段路由 LSP 在所有这些分段路由 LSP 中具有最佳优先级。但是,下一跃点可容纳的最大网关数不能超过 RPD 多路径限制(默认为 128)。修剪额外的路径,首先是辅助路径,然后是主路径。给定的分段列表可能会被这些分段路由 LSP 多次引用为主路径或辅助路径。在这种情况下,有多个网关,每个网关都有一个唯一的分段路由 LSP 隧道 ID。这些网关是不同的,尽管它们具有相同的传出标签堆栈和接口。非彩色分段路由 LSP 和彩色分段路由 LSP 也可能具有相同的目标地址。但是,它们对应于入口路由的不同目的地址,因为彩色分段路由 LSP 的目的地址是使用其目标地址和颜色同时构造的。
如果静态非彩色分段路由 LSP 和 PCEP 创建的分段路由 LSP 共存,并且具有相同的至地址,该地址会用于同一入口路由(如果它们也具有相同的优先级)。否则,将为路由安装具有最佳优先级的分段路由 LSP。
非彩色分段路由 LSP 的分段列表
分段列表由跃点列表组成。这些跃点基于 SID 标签或 IP 地址。段列表中的 SID 标签数不应超过最大段列表限制。到 LSP 隧道的最大分段列表绑定从 8 个增加到 128 个,每个系统最多 1000 个隧道。每个静态分段路由 LSP 最多支持 128 条主路径。您可以在层次结构级别配置 [edit protocols source-packet-routing] 最大分段列表限制。
除了 IP 地址外,非彩色静态 LSP 的第一跃点还支持 SID 标签。借助第一跃点标签支持,可以启用 MPLS 快速重新路由 (FRR) 和加权等价多路径,以解析静态非彩色分段路由 LSP,类似于彩色静态 LSP。
要使第一跃点标签模式生效,您必须为分段列表全局或单独包含 inherit-label-nexthops 该语句,并且分段列表的第一跳必须同时包含 IP 地址和标签。如果第一跃点仅包含 IP 地址,则该 inherit-label-nexthops 语句不会产生任何作用。
您可以在以下任一层级进行配置 inherit-label-nexthops 。仅当分段列表第一跃点同时包含 IP 地址和标签时,该 inherit-label-nexthops 语句才会生效。
-
Segment list level- 在层次结构级别。
[edit protocols source-packet-routing segment-list segment-list-name] -
Globally- 在层次结构级别。
[edit protocols source-packet-routing]
全局配置该语句时 inherit-label-nexthops ,它优先于分段列表级别的配置,并且该 inherit-label-nexthops 配置将应用于所有分段列表。如果未对语句进行全局配置,则 inherit-label-nexthops 仅会使用 SID 标签解析第一个跃点中同时存在标签和 IP 地址且配置为语句的 inherit-label-nexthops 分段列表。
对于动态非彩色静态 LSP,即 PCEP 驱动的分段路由 LSP,必须全局启用该 inherit-label-nexthops 语句,因为未应用分段级配置。
表 1 介绍了基于第一跳规范的分段路由 LSP 解析模式。
| 第一跳规格 |
LSP 解析模式 |
|---|---|
| 仅 IP 地址 例如: segment-list path-1 {
hop-1 ip-address 172.16.12.2;
hop-2 label 1000012;
hop-3 label 1000013;
hop-4 label 1000014;
}
|
分段列表使用 IP 地址进行解析。 |
| 仅 SID 例如: segment-list path-2 {
hop-1 label 1000011;
hop-2 label 1000012;
hop-3 label 1000013;
hop-4 label 1000014;
}
|
段列表使用 SID 标签进行解析。 |
| IP 地址和 SID(不含 例如: segment-list path-3 {
hop1 {
label 801006;
ip-address 172.16.1.2;
}
hop-2 label 1000012;
hop-3 label 1000013;
hop-4 label 1000014;
}
|
默认情况下,分段列表使用 IP 地址进行解析。 |
| IP 地址和 SID(连同 例如: segment-list path-3 {
inherit-label-nexthops;
hop1 {
label 801006;
ip-address 172.16.1.2;
}
hop-2 label 1000012;
hop-3 label 1000013;
hop-4 label 1000014;
}
|
段列表使用 SID 标签进行解析。 |
您可以使用该 show route ip-address protocol spring-te active-path table inet.3 命令查看在 inet.3 路由表中安装了多个分段列表的非彩色分段路由流量工程 LSP。
例如:
user@host> show route 10.7.7.7 protocol spring-te active-path table inet.3
inet.3: 42 destinations, 59 routes (41 active, 0 holddown, 1 hidden)
+ = Active Route, - = Last Active, * = Both
10.7.7.7/32 *[SPRING-TE/8] 00:01:25, metric 1, metric2 0
> to 10.11.1.2 via et-0/0/0.1, Push 801007
to 10.21.1.2 via et-0/0/2.1, Push 801007
to 10.102.1.2 via et-0/0/0.2, Push 801007, Push 801002(top)
to 10.21.1.2 via et-0/0/2.2, Push 801007, Push 801005(top)
to 10.103.1.2 via et-0/0/0.3, Push 801007, Push 801003(top)
to 10.203.1.2 via et-0/0/2.3, Push 801007, Push 801006(top)
to 10.104.1.2 via et-0/0/0.4, Push 801007, Push 801003, Push 801002(top)
to 10.204.1.2 via et-0/0/2.4, Push 801007, Push 801006, Push 801005(top)
如果出现以下情况,静态分段路由 LSP 的分段列表的第一跳类型可能会导致提交失败:
-
隧道的不同分段列表具有不同的第一跳解析类型。这适用于彩色和非彩色静态分段路由 LSP。但是,这不适用于 PCEP 驱动的 LSP;在计算路径时,将为第一跳解析类型的不匹配生成系统日志消息。
例如:
segment-list path-1 { hop-1 ip-address 172.16.12.2; hop-2 label 1000012; hop-3 label 1000013; hop-4 label 1000014; } segment-list path-2 { hop-1 label 1000011; hop-2 label 1000012; hop-3 label 1000013; hop-4 label 1000014; } source-routing-path lsp1 { to 172.16.10.1; primary { path-1; path-2; } }隧道 lsp1 提交失败,因为路径 1 为 IP 地址模式,路径 2 为标签模式。
-
绑定 SID 已为段列表类型为 SID 标签的静态非彩色 LSP 启用。
例如:
segment-list path-3 { hop-1 label 1000011; hop-2 label 1000012; hop-3 label 1000013; hop-4 label 1000014; } source-routing-path lsp1 { to 172.16.10.1; binding-sid 333; primary { path-3; } }
静态分段路由 LSP 配置
分段调配基于每个路由器执行。对于路由器上的给定分段,唯一服务标识符 (SID) 标签将从所需的标签池分配,该标签可能来自邻接 SID 标签的动态标签池,也可能来自前缀 SID 或节点 SID 的分段路由全局块 (SRGB)。邻接 SID 标签可以动态分配,这是默认行为,也可以从本地静态标签池 (SRLB) 分配。然后,SID 标签的路由将安装在 mpls.0 表中。
Junos OS 允许通过在层次结构级别配置[edit protocols mpls static-label-switched-path static-label-switched-path]语句来segment实现静态分段路由 LSP。静态分段 LSP 由属于 Junos OS 静态标签池的唯一 SID 标签标识。您可以通过在层次结构级别配置[edit protocols mpls label-range]语句来static-label-range static-label-range配置 Junos OS 静态标签池。
静态分段路由 LSP 限制
-
Junos OS 目前有一个限制,即无法构建下一跃点来推送超过最大分段列表深度标签。因此,具有超过最大 SID 标签数(不包括用于解析转发下一跃点的第一跃点的 SID 标签)的分段列表不可用于彩色或非彩色分段路由 LSP。此外,如果分段路由 LSP 上有 MPLS 服务,或者分段路由 LSP 在链路或节点保护路径上,则给定分段路由 LSP 允许的实际数量可能甚至低于最大限制。在所有情况下,服务标签、SID 标签以及链路或节点保护标签的总数不得超过最大分段列表深度。您可以在层次结构级别配置
[edit protocols source-packet-routing]最大分段列表限制。可以将小于或等于最大 SID 标签的多个非彩色分段路由 LSP 拼接在一起,以构建更长的分段路由 LSP。这称为分段路由 LSP 拼接。这可以使用结合 SID 标记来实现。 -
分段路由 LSP 拼接实际上是在路径级别执行的。如果非彩色分段路由 LSP 具有多条路径,即多个分段列表,则每个路径都可以在拼接点独立拼接到另一个非彩色分段路由 LSP。专用于拼接的非彩色分段路由 LSP 可以通过在层次结构级别上
[edit protocols source-packet-routing source-routing-path lsp-name]配置no-ingress语句来禁用入口路由安装。 -
每个非彩色静态分段路由 LSP 最多支持 128 条主路径和 1 条辅助路径。如果配置中存在冲突,则提交检查将失败并显示错误。
-
到 LSP 隧道的最大分段列表绑定从 8 个增加到 128 个,每个系统最多 1000 个隧道。每个静态分段路由 LSP 最多支持 128 条主路径。作为限制,LSP 路径的最大传感器支持仅为 32000。
-
如果配置的任何分段列表的标签数超过最大分段列表深度,则配置提交检查将失败并显示错误。
基于颜色的 VPN 服务映射
除了 IPv4 或 IPv6 地址外,您还可以将颜色指定为协议下一跃点约束,用于解析静态、彩色和 BGP 分段路由流量工程 (SR-流量工程) LSP 上的传输隧道。这称为颜色 IP 协议下一跃点解析,您需要配置解析映射并应用于 VPN 服务。使用此功能,您可以为第 2 层和第 3 层 VPN 服务启用基于颜色的流量引导。
Junos OS 支持与单一颜色关联的彩色 SR-流量工程 LSP。静态彩色 LSP 和 BGP SR-流量工程 LSP 支持基于颜色的 VPN 服务映射功能。
- VPN 服务着色
- 指定 VPN 服务映射模式
- Color-IP 协议下一跳解析
- 回退到 IP 协议下一跳解析
- 通过 SR-流量工程实现 BGP 标记的单播基于颜色的映射
- VPN 服务基于颜色的映射支持和不支持的功能
VPN 服务着色
通常,可以在播发 VPN NLRI 的出口路由器上或在接收和处理 VPN NLRI 的入口路由器上为VPN 服务分配一种颜色。
您可以为不同级别的 VPN 服务分配颜色:
-
按路由实例。
-
按 BGP 组。
-
每个 BGP 邻接方。
-
按前缀。
分配颜色后,该颜色将以 BGP 颜色扩展社区的形式附加到 VPN 服务。
您可以为一个 VPN 服务分配多种颜色,称为多色 VPN 服务。在这种情况下,附加的最后一种颜色被视为 VPN 服务的颜色,所有其他颜色将被忽略。
出口设备和/或入口设备通过多个策略按以下顺序分配多种颜色:
-
出口设备上的 BGP 导出策略。
-
入口设备上的 BGP 导入策略。
-
入口设备上的 VRF 导入策略。
VPN 服务着色的两种模式是:
出口颜色分配
在此模式下,出口设备(即 VPN NLRI 的播发商)负责为 VPN 服务着色。要启用此模式,您可以定义路由策略,并将其应用到层次结构级别的 [edit protocols bgp] VPN 服务的路由实例vrf-export、组导出或组邻接方导出中。VPN NLRI 由 BGP 使用指定的颜色扩展社区进行通告。
例如:
[edit policy-options]
community red-comm {
members color:0:50;
}
[edit policy-options]
policy-statement pol-color {
term t1 {
from {
[any match conditions];
}
then {
community add red-comm;
accept;
}
}
}
[edit routing-instances]
vpn-X {
...
vrf-export pol-color ...;
}
或者
将路由策略应用为 BGP 组或 BGP 邻接方的导出策略时,必须在 BGP、BGP 组或 BGP 邻接方级别包含该 vpn-apply-export 语句,以便策略对 VPN NLRI 生效。
[edit protocols bgp]
group PEs {
...
neighbor PE-A {
export pol-color ...;
vpn-apply-export;
}
}
路由策略应用于第 3 层 VPN 前缀 NLRI、第 2 层 VPN NRLI 和 EVPN NLRI。颜色扩展社区由所有 VPN 路由继承,导入并安装在一个或多个入口设备上的目标 VRF 中。
入口颜色分配
在此模式下,入口设备(即 VPN NLRI 的接收方)负责为 VPN 服务着色。要启用此模式,您可以定义路由策略,并将其应用于层次结构级别的 [edit protocols bgp] VPN 服务的路由实例vrf-import、组导入或组邻接方导入。与路由策略匹配的所有 VPN 路由都附加到指定的彩色扩展社区。
例如:
[edit routing-options]
community red-comm {
members color:0:50;
}
[edit policy-options]
policy-statement pol-color {
term t1 {
from {
[any match conditions];
}
then {
community add red-comm;
accept;
}
}
}
[edit routing-instances]
vpn-Y {
...
vrf-import pol-color ...;
}
或者
[edit protocols bgp]
group PEs {
...
neighbor PE-B {
import pol-color ...;
}
}
指定 VPN 服务映射模式
要指定灵活的 VPN 服务映射模式,必须使用该语句定义resolution-map策略,并在层次结构级别引用 [edit protocols bgp] VPN 服务的路由实例vrf-import、组导入或组邻接方导入中的策略。与路由策略匹配的所有 VPN 路由都附加了指定的解析映射。
例如:
[edit policy-options]
resolution-map map-A {
<mode-1>;
<mode-2>;
...
}
policy-statement pol-resolution {
term t1 {
from {
[any match conditions];
}
then {
resolution-map map-A;
accept;
}
}
}
您可以将导入策略应用于 VPN 服务的路由实例。
[edit routing-instances]
vpn-Y {
...
vrf-import pol-resolution ...;
}
您还可以将导入策略应用于 BGP 组或 BGP 邻接方。
[edit protocols bgp]
group PEs {
...
neighbor PE-B {
import pol-resolution ...;
}
}
每个 VPN 服务映射模式都应具有在解析映射中定义的唯一名称。解析映射中仅支持单个 IP 颜色条目,其中 VPN 路由使用彩色 IP 协议下一跃点(形式为 ip-address:color)解析。
Color-IP 协议下一跳解析
协议下一跳解析过程得到增强,可支持彩色 IP 协议下一跳解析。对于彩色 VPN 服务,协议下一跃点解析过程采用颜色和分辨率映射,以 的形式 IP-address:color构建彩色 IP 协议下一跃点,并在 inet6color.0 路由表中解析协议下一跃点。
您必须配置一个策略,以支持通过彩色 LSP 对彩色第 2 层 VPN、第 3 层 VPN 或 EVPN 服务进行多路径解析。然后,必须将策略与相关 RIB 表一起应用,作为解析器导入策略。
例如:
[edit policy-options]
policy-statement mpath {
then multipath-resolve;
}
[edit routing-options]
resolution {
rib bgp.l3vpn.0 {
inetcolor-import mpath;
}
}
resolution {
rib bgp.l3vpn-inet6.0 {
inet6color-import mpath;
}
}
resolution {
rib bgp.l2vpn.0 {
inetcolor-import mpath;
}
}
resolution {
rib mpls.0 {
inetcolor-import mpath;
}
}
resolution {
rib bgp.evpn.0 {
inetcolor-import mpath;
}
}
回退到 IP 协议下一跳解析
如果彩色 VPN 服务未应用解析图,则 VPN 服务将忽略其颜色,并回退到 IP 协议下一跃点解析。相反,如果非彩色 VPN 服务应用了解析映射,则解析映射将被忽略,并且 VPN 服务使用 IP 协议下一跃点解析。
回退是从彩色 SR-流量工程 LSP 到 LDP LSP 的简单过程,方法是使用 LDP 的 RIB 组在 inet{6}color.0 路由表中安装路由。彩色 IP 协议下一跃点的最长前缀匹配可确保,如果彩色 SR-流量工程 LSP 路由不存在,则应返回具有匹配 IP 地址的 LDP 路由。
通过 SR-流量工程实现 BGP 标记的单播基于颜色的映射
BGP 标记单播 (BGP-LU) 可以通过分段路由流量工程 (SR-流量工程) 解析 IPv4 和 IPv6 地址家族的 IPv4 或 IPv6 路由。BGP-LU 支持映射 BGP 社区颜色并为 SR-流量工程定义。resolution map将构建一个彩色协议下一跃点,并在 or inet6color.0 表中的inetcolor.0彩色 SR-流量工程隧道上解析。BGP 使用 inet.3 和 inet6.3 表进行非基于颜色的映射。这样,您就可以在路由器未配置任何 IPv4 地址的纯 IPv6 网络中,使用 IPv6 下一跃点地址播发 BGP-LU、IPv6 和 IPv4 前缀。借助此功能,目前我们支持带有 IS-IS 底层的 SR-流量工程上的 BGP IPv6 LU。
在 图 1 中,控制器在配置了 SR-流量工程的 IPv6 核心网络中配置了 4 个彩色隧道。每个彩色隧道采用不同的路径到达目标路由器 D,具体取决于定义的分辨率映射。控制器将彩色 SR-流量工程隧道配置为路由器 D 中的 2001:db8::3701:2d05 接口。BGP 导入策略以将颜色和分辨率映射分配给收到的前缀 2001:db8::3700:6/128。根据分配的社区颜色,BGP-LU 会根据分配的解析映射策略解析 BGP IPv6 LU 前缀的彩色下一跃点。
上的 BGP IPv6 LU
BGP-LU 支持以下方案:
-
彩色 BGP IPv4 SR-流量工程上的 BGP IPv4 LU,带有 IS-IS/OSPF IPv4 SR 扩展。
-
基于静态彩色和非彩色 IPv4 SR-流量工程的 BGP IPv4 LU,带有 IS-IS/OSPF IPv4 SR 扩展。
-
彩色 BGP IPv6 SR-流量工程上的 BGP IPv6 LU,带有 IS-IS IPv6 SR 扩展。
-
静态彩色和非彩色 IPv6 SR-流量工程上的 BGP IPv6 LU,带有 IS-IS IPv6 SR 扩展。
-
具有 IPv6 本地地址和 IPv6 邻居地址的 IPv6 第 3 层 VPN 服务。
-
通过 BGP IPv6 SR-流量工程的 IPv6 第 3 层 VPN 服务,带有 IS-IS IPv6 SR 扩展。
-
通过静态彩色和非彩色 IPv6 SR-流量工程提供 IPv6 第 3 层 VPN 服务,带有 IS-IS IPv6 SR 扩展。
VPN 服务基于颜色的映射支持和不支持的功能
基于颜色的 VPN 服务映射支持以下特性和功能:
-
BGP 2 层 VPN(Kompella 第 2 层 VPN)
-
BGP EVPN
-
分辨率图,提供单一 IP 颜色选项。
-
彩色 IPv4 和 IPv6 协议下一跃点解析。
-
路由信息库(也称为路由表)基于组回退到 inetcolor.0 路由表中的 LDP LSP。
-
彩色 SR-流量工程 LSP。
-
虚拟平台。
-
64 位 Junos OS。
-
逻辑系统。
-
BGP 标记为单播。
基于颜色的 VPN 服务映射不支持以下特性和功能:
-
彩色 MPLS LSP,如 RSVP、LDP、BGP-LU、静态。
-
第 2 层电路
-
FEC-129 BGP 自动发现和 LDP 信号第 2 层 VPN。
-
VPLS
-
MVPN
-
IPv4 和 IPv6 使用解析映射。
PCE 启动的分段路由 LSP 的隧道模板
您可以为 PCE 启动的分段路由 LSP 配置隧道模板,以便为这些 LSP 传递两个附加参数 - 双向转发检测 (BFD) 和 LDP 隧道。
创建 PCE 启动的分段路由 LSP 时,将根据策略语句(如果有)检查 LSP,如果匹配,策略将为该 LSP 应用配置的模板。仅当 LSP 源 (PCEP) 未提供模板配置时,才会继承模板配置;例如,公制。
要配置模板,请执行以下操作:
-
在层次结构级别包括
[edit protocols source-packet-routing]source-routing-path-template 语句。您可以在此处配置其他 BFD 和 LDP 隧道参数。 -
在层次结构级别包括
[edit protocols source-packet-routing]source-routing-path-template-map 语句,以列出应根据这些策略语句检查 PCE 发起的 LSP。 -
定义一个策略以列出应应用模板的 LSP。
该
from语句可以使用 和lsp-regex匹配条件包含lspLSP 名称或 LSP 正则表达式。这些选项是互斥的,因此在给定时间点只能指定一个选项。该
then语句必须包含sr-te-template带有接受操作的选项。这会将模板应用于 PCE 启动的 LSP。
为 PCE 启动的 LSP 配置模板时,请考虑以下事项:
-
模板配置不适用于静态配置的分段路由 LSP 或任何其他客户端的分段路由 LSP。
-
PCEP 提供的配置优先于模板配置。
-
PCEP LSP 不继承模板分段列表配置。
示例:配置静态分段路由标签交换路径
此示例说明如何在 MPLS 网络中配置静态分段路由标签交换路径 (LSP)。此配置有助于提高 MPLS 网络的可扩展性。
要求
此示例使用以下硬件和软件组件:
-
七个 MX 系列 5G 通用路由平台
-
所有路由器上运行 Junos OS 18.1 或更高版本
开始之前,请务必配置好设备接口。
概述
Junos OS 通过在层次结构级别配置[edit protocols source-packet-routing]语句,可以在segment-list非彩色静态分段路由隧道的入口路由器上配置一组显式分段路由路径。您可以通过在层次结构级别配置source-routing-path[edit protocols source-packet-routing]该语句来配置分段路由隧道。分段路由隧道具有目标地址和一个或多个主路径,以及引用分段列表的可选辅助路径。每个分段列表由一系列跃点组成。对于非彩色静态分段路由隧道,分段列表的第一跃指定下一跃点 IP 地址,第二个到第 N 个跃点指定与路径遍历的链路或节点相对应的分段标识 (SID) 标签。到分段路由隧道目的地的路由安装在inet.3表中。
拓扑结构
在此示例中,在提供商边缘路由器 PE1 和 PE5 上配置第 3 层 VPN。在所有路由器上配置 MPLS 协议。分段路由隧道从 路由器 PE1 配置到 路由器 PE5,在 PE1 和 PE5 上配置主路径路由器 路由器 。路由器 PE1 还配置了用于路径保护的辅助路径。中转路由器 PE2 到 PE4 配置了邻接 SID 标签,带有标签弹出和传出接口。
配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层次结构级别的 [edit] CLI 中,然后从配置模式进入。commit
PE1
set interfaces ge-0/0/0 unit 0 family inet address 10.10.12.1/24 set interfaces ge-0/0/0 unit 0 family mpls maximum-labels 5 set interfaces ge-0/0/1 unit 0 family inet address 10.10.13.1/24 set interfaces ge-0/0/1 unit 0 family mpls maximum-labels 5 set interfaces ge-0/0/5 unit 0 family inet address 10.10.17.1/24 set routing-options autonomous-system 65000 set routing-options forwarding-table export load-balance-policy set routing-options forwarding-table chained-composite-next-hop ingress l3vpn set protocols mpls interface ge-0/0/0.0 set protocols mpls interface ge-0/0/1.0 set protocols mpls label-range static-label-range 1000000 1000999 set protocols bgp group pe type internal set protocols bgp group pe local-address 192.168.147.211 set protocols bgp group pe family inet-vpn unicast set protocols bgp group pe neighbor 192.168.146.181 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface lo0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols source-packet-routing segment-list sl-15-primary hop-1 ip-address 10.10.13.3 set protocols source-packet-routing segment-list sl-15-primary hop-2 label 1000134 set protocols source-packet-routing segment-list sl-15-primary hop-3 label 1000145 set protocols source-packet-routing segment-list sl-15-backup hop-1 ip-address 10.10.12.2 set protocols source-packet-routing segment-list sl-15-backup hop-2 label 1000123 set protocols source-packet-routing segment-list sl-15-backup hop-3 label 1000134 set protocols source-packet-routing segment-list sl-15-backup hop-4 label 1000145 set protocols source-packet-routing source-routing-path lsp-15 to 192.168.146.181 set protocols source-packet-routing source-routing-path lsp-15 binding-sid 1000999 set protocols source-packet-routing source-routing-path lsp-15 primary sl-15-primary set protocols source-packet-routing source-routing-path lsp-15 secondary sl-15-backup set policy-options policy-statement VPN-A-export term a from protocol ospf set policy-options policy-statement VPN-A-export term a from protocol direct set policy-options policy-statement VPN-A-export term a then community add VPN-A set policy-options policy-statement VPN-A-export term a then accept set policy-options policy-statement VPN-A-export term b then reject set policy-options policy-statement VPN-A-import term a from protocol bgp set policy-options policy-statement VPN-A-import term a from community VPN-A set policy-options policy-statement VPN-A-import term a then accept set policy-options policy-statement VPN-A-import term b then reject set policy-options policy-statement bgp-to-ospf from protocol bgp set policy-options policy-statement bgp-to-ospf from route-filter 10.10.0.0/16 orlonger set policy-options policy-statement bgp-to-ospf then accept set policy-options policy-statement load-balance-policy then load-balance per-packet set policy-options community VPN-A members target:65000:1 set routing-instances VRF1 instance-type vrf set routing-instances VRF1 interface ge-0/0/5.0 set routing-instances VRF1 route-distinguisher 192.168.147.211:1 set routing-instances VRF1 vrf-import VPN-A-import set routing-instances VRF1 vrf-export VPN-A-export set routing-instances VRF1 vrf-table-label set routing-instances VRF1 protocols ospf export bgp-to-ospf set routing-instances VRF1 protocols ospf area 0.0.0.0 interface ge-0/0/5.0
PE2
set interfaces ge-0/0/0 unit 0 family inet address 10.10.12.2/24 set interfaces ge-0/0/0 unit 0 family mpls set interfaces ge-0/0/1 unit 0 family inet address 10.10.23.2/24 set interfaces ge-0/0/1 unit 0 family mpls set protocols mpls static-label-switched-path adj-23 segment 1000123 set protocols mpls static-label-switched-path adj-23 segment next-hop 10.10.23.3 set protocols mpls static-label-switched-path adj-23 segment pop set protocols mpls static-label-switched-path adj-21 segment 1000221 set protocols mpls static-label-switched-path adj-21 segment next-hop 10.10.12.1 set protocols mpls static-label-switched-path adj-21 segment pop set protocols mpls interface ge-0/0/0.0 set protocols mpls interface ge-0/0/1.0 set protocols mpls label-range static-label-range 1000000 1000999 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0
PE3
set interfaces ge-0/0/0 unit 0 family inet address 10.10.13.3/24 set interfaces ge-0/0/0 unit 0 family mpls set interfaces ge-0/0/1 unit 0 family inet address 10.10.23.3/24 set interfaces ge-0/0/1 unit 0 family mpls set interfaces ge-0/0/2 unit 0 family inet address 10.10.34.3/24 set interfaces ge-0/0/2 unit 0 family mpls set protocols mpls static-label-switched-path adj-34 segment 1000134 set protocols mpls static-label-switched-path adj-34 segment next-hop 10.10.34.4 set protocols mpls static-label-switched-path adj-34 segment pop set protocols mpls static-label-switched-path adj-32 segment 1000232 set protocols mpls static-label-switched-path adj-32 segment next-hop 10.10.23.2 set protocols mpls static-label-switched-path adj-32 segment pop set protocols mpls interface ge-0/0/1.0 set protocols mpls interface ge-0/0/2.0 set protocols mpls label-range static-label-range 1000000 1000999 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols ospf area 0.0.0.0 interface ge-0/0/2.0 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0
PE4
set interfaces ge-0/0/2 unit 0 family inet address 10.10.34.4/24 set interfaces ge-0/0/2 unit 0 family mpls set interfaces ge-0/0/3 unit 0 family inet address 10.10.45.4/24 set interfaces ge-0/0/3 unit 0 family mpls set protocols mpls static-label-switched-path adj-45 segment 1000145 set protocols mpls static-label-switched-path adj-45 segment next-hop 10.10.45.5 set protocols mpls static-label-switched-path adj-45 segment pop set protocols mpls static-label-switched-path adj-43 segment 1000243 set protocols mpls static-label-switched-path adj-43 segment next-hop 10.10.34.3 set protocols mpls static-label-switched-path adj-43 segment pop set protocols mpls interface ge-0/0/2.0 set protocols mpls interface ge-0/0/3.0 set protocols mpls label-range static-label-range 1000000 1000999 set protocols ospf area 0.0.0.0 interface ge-0/0/2.0 set protocols ospf area 0.0.0.0 interface ge-0/0/3.0
PE5
set interfaces ge-0/0/3 unit 0 family inet address 10.10.45.5/24 set interfaces ge-0/0/3 unit 0 family mpls maximum-labels 5 set interfaces ge-0/0/4 unit 0 family inet address 10.10.56.5/24 set routing-options autonomous-system 65000 set protocols mpls interface ge-0/0/3.0 set protocols mpls label-range static-label-range 1000000 1000999 set protocols bgp group pe type internal set protocols bgp group pe local-address 192.168.146.181 set protocols bgp group pe family inet-vpn unicast set protocols bgp group pe neighbor 192.168.147.211 set protocols ospf area 0.0.0.0 interface ge-0/0/3.0 set protocols ospf area 0.0.0.0 interface lo0.0 set protocols bfd sbfd local-discriminator 0.0.0.32 minimum-receive-interval 1000 set protocols source-packet-routing segment-list sl-51 hop-1 ip-address 10.10.45.4 set protocols source-packet-routing segment-list sl-51 hop-2 label 1000243 set protocols source-packet-routing segment-list sl-51 hop-3 label 1000232 set protocols source-packet-routing segment-list sl-51 hop-4 label 1000221 set protocols source-packet-routing source-routing-path lsp-51 to 192.168.147.211 set protocols source-packet-routing source-routing-path lsp-51 primary sl-51 set policy-options policy-statement VPN-A-export term a from protocol ospf set policy-options policy-statement VPN-A-export term a from protocol direct set policy-options policy-statement VPN-A-export term a then community add VPN-A set policy-options policy-statement VPN-A-export term a then accept set policy-options policy-statement VPN-A-export term b then reject set policy-options policy-statement VPN-A-import term a from protocol bgp set policy-options policy-statement VPN-A-import term a from community VPN-A set policy-options policy-statement VPN-A-import term a then accept set policy-options policy-statement VPN-A-import term b then reject set policy-options policy-statement bgp-to-ospf from protocol bgp set policy-options policy-statement bgp-to-ospf from route-filter 10.10.0.0/16 orlonger set policy-options policy-statement bgp-to-ospf then accept set policy-options community VPN-A members target:65000:1 set routing-instances VRF1 instance-type vrf set routing-instances VRF1 interface ge-0/0/4.0 set routing-instances VRF1 route-distinguisher 192.168.146.181:1 set routing-instances VRF1 vrf-import VPN-A-import set routing-instances VRF1 vrf-export VPN-A-export set routing-instances VRF1 vrf-table-label set routing-instances VRF1 protocols ospf export bgp-to-ospf set routing-instances VRF1 protocols ospf area 0.0.0.0 interface ge-0/0/4.0
CE1
set interfaces ge-0/0/0 unit 0 family inet address 10.10.17.7/24 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0
CE2
set interfaces ge-0/0/4 unit 0 family inet address 10.10.56.6/24 set protocols ospf area 0.0.0.0 interface ge-0/0/4.0
配置设备 PE1
分步程序
下面的示例要求您在各个配置层级中进行导航。有关导航 CLI 的信息,请参阅 《CLI 用户指南》中的在配置模式下使用 CLI 编辑器。
要配置设备 PE1:
-
配置接口。
[edit interfaces] set ge-0/0/0 unit 0 family inet address 10.10.12.1/24 set ge-0/0/0 unit 0 family mpls maximum-labels 5 set ge-0/0/1 unit 0 family inet address 10.10.13.1/24 set ge-0/0/1 unit 0 family mpls maximum-labels 5 set ge-0/0/5 unit 0 family inet address 10.10.17.1/24
-
配置自治系统编号和选项以控制数据包转发路由选项。
[edit routing-options] set autonomous-system 65000 set forwarding-table export load-balance-policy set forwarding-table chained-composite-next-hop ingress l3vpn
-
使用 MPLS 协议配置接口并配置 MPLS 标签范围。
[edit protocols mpls] set interface ge-0/0/0.0 set interface ge-0/0/1.0 set label-range static-label-range 1000000 1000999
-
为对等组配置类型、本地地址、更新中 NLRI 的协议家族,以及对等方组的邻接方 IP 地址。
[edit protocols bgp] set group pe type internal set group pe local-address 192.168.147.211 set group pe family inet-vpn unicast set group pe neighbor 192.168.146.181
-
配置协议区域接口。
[edit protocols ospf] set area 0.0.0.0 interface ge-0/0/0.0 set area 0.0.0.0 interface lo0.0 set area 0.0.0.0 interface ge-0/0/1.0
-
为协议源数据包路由 (SPRING) 的源路由流量工程 (流量工程) 策略配置主路径和辅助路径的 IPv4 地址和标签。
[edit protocols source-packet-routing segment-list] set sl-15-primary hop-1 ip-address 10.10.13.3 set sl-15-primary hop-2 label 1000134 set sl-15-primary hop-3 label 1000145 set sl-15-backup hop-1 ip-address 10.10.12.2 set sl-15-backup hop-2 label 1000123 set sl-15-backup hop-3 label 1000134 set sl-15-backup hop-4 label 1000145
-
为协议 SPRING 配置目标 IPv4 地址、绑定 SID 标签、主源和辅助源路由路径。
[edit protocols source-packet-routing source-routing-path] set lsp-15 to 192.168.146.181 set lsp-15 binding-sid 1000999 set lsp-15 primary sl-15-primary set lsp-15 secondary sl-15-backup
-
配置策略选项。
[edit policy-options policy-statement] set VPN-A-export term a from protocol ospf set VPN-A-export term a from protocol direct set VPN-A-export term a then community add VPN-A set VPN-A-export term a then accept set VPN-A-export term b then reject set VPN-A-import term a from protocol bgp set VPN-A-import term a from community VPN-A set VPN-A-import term a then accept set VPN-A-import term b then reject set bgp-to-ospf from protocol bgp set bgp-to-ospf from route-filter 10.10.0.0/16 orlonger set bgp-to-ospf then accept set load-balance-policy then load-balance per-packet
-
配置 BGP 社区信息。
[edit policy-options] set community VPN-A members target:65000:1
-
使用实例类型、接口、路由器识别符、VRF 导入、导出和表标签配置路由实例 VRF1。为协议 OSPF 配置区域的导出策略和接口。
[edit routing-instances VRF1] set instance-type vrf set interface ge-0/0/5.0 set route-distinguisher 192.168.147.211:1 set vrf-import VPN-A-import set vrf-export VPN-A-export set vrf-table-label set protocols ospf export bgp-to-ospf set protocols ospf area 0.0.0.0 interface ge-0/0/5.0
结果
在配置模式下,输入 show interfaces、 show policy-options、 show routing-optionsshow protocols和show routing-instances命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
[edit]
user@PE1# show
interfaces {
ge-0/0/0 {
unit 0 {
family inet {
address 10.10.12.1/24;
}
family mpls {
maximum-labels 5;
}
}
}
ge-0/0/1 {
unit 0 {
family inet {
address 10.10.13.1/24;
}
family mpls {
maximum-labels 5;
}
}
}
ge-0/0/5 {
unit 0 {
family inet {
address 10.10.17.1/24;
}
}
}
}
policy-options {
policy-statement VPN-A-export {
term a {
from protocol [ ospf direct ];
then {
community add VPN-A;
accept;
}
}
term b {
then reject;
}
}
policy-statement VPN-A-import {
term a {
from {
protocol bgp;
community VPN-A;
}
then accept;
}
term b {
then reject;
}
}
policy-statement bgp-to-ospf {
from {
protocol bgp;
route-filter 10.10.0.0/16 orlonger;
}
then accept;
}
policy-statement load-balance-policy {
then {
load-balance per-packet;
}
}
community VPN-A members target:65000:1;
}
routing-instances {
VRF1 {
instance-type vrf;
protocols {
ospf {
area 0.0.0.0 {
interface ge-0/0/5.0;
}
export bgp-to-ospf;
}
}
interface ge-0/0/5.0;
route-distinguisher 192.168.147.211:1;
vrf-import VPN-A-import;
vrf-export VPN-A-export;
vrf-table-label;
}
}
routing-options {
autonomous-system 65000;
forwarding-table {
export load-balance-policy;
chained-composite-next-hop {
ingress {
l3vpn;
}
}
}
}
protocols {
bgp {
group pe {
type internal;
local-address 192.168.147.211;
family inet-vpn {
unicast;
}
neighbor 192.168.146.181;
}
}
mpls {
label-range {
static-label-range 1000000 1000999;
}
interface ge-0/0/0.0;
interface ge-0/0/1.0;
}
ospf {
area 0.0.0.0 {
interface ge-0/0/0.0;
interface lo0.0;
interface ge-0/0/1.0;
}
}
source-packet-routing {
segment-list sl-15-primary {
hop-1 ip-address 10.10.13.3;
hop-2 label 1000134;
hop-3 label 1000145;
}
segment-list sl-15-backup {
hop-1 ip-address 10.10.12.2;
hop-2 label 1000123;
hop-3 label 1000134;
hop-4 label 1000145;
}
source-routing-path lsp-15 {
to 192.168.146.181;
binding-sid 1000999;
primary {
sl-15-primary;
}
secondary {
sl-15-backup;
}
}
}
}
配置设备 PE2
分步程序
下面的示例要求您在各个配置层级中进行导航。有关导航 CLI 的信息,请参阅 《CLI 用户指南》中的在配置模式下使用 CLI 编辑器。
-
配置接口。
[edit interfaces] set ge-0/0/0 unit 0 family inet address 10.10.12.2/24 set ge-0/0/0 unit 0 family mpls set ge-0/0/1 unit 0 family inet address 10.10.23.2/24 set ge-0/0/1 unit 0 family mpls
-
为协议 MPLS 配置静态 LSP。
[edit protocols mpls static-label-switched-path] set adj-23 segment 1000123 set adj-23 segment next-hop 10.10.23.3 set adj-23 segment pop set adj-21 segment 1000221 set adj-21 segment next-hop 10.10.12.1 set adj-21 segment pop
-
为协议 MPLS 配置接口和静态标签范围。
[edit protocols mpls] set interface ge-0/0/0.0 set interface ge-0/0/1.0 set label-range static-label-range 1000000 1000999
-
为协议 OSPF 配置接口。
[edit protocols ospf area 0.0.0.0] set interface ge-0/0/0.0 set interface ge-0/0/1.0
结果
在路由器 PE2 上的配置模式下,输入 和 show interfaces show protocols 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
[edit]
user@PE2# show
interfaces {
ge-0/0/0 {
unit 0 {
family inet {
address 10.10.12.2/24;
}
family mpls;
}
}
ge-0/0/1 {
unit 0 {
family inet {
address 10.10.23.2/24;
}
family mpls;
}
}
}
protocols {
mpls {
label-range {
static-label-range 1000000 1000999;
}
interface ge-0/0/0.0;
interface ge-0/0/1.0;
static-label-switched-path adj-23 {
segment {
1000123;
next-hop 10.10.23.3;
pop;
}
}
static-label-switched-path adj-21 {
segment {
1000221;
next-hop 10.10.12.1;
pop;
}
}
}
ospf {
area 0.0.0.0 {
interface ge-0/0/0.0;
interface ge-0/0/1.0;
}
}
}
验证
确认配置工作正常。
- 验证路由器 PE1 的路由表 inet.3 的路由条目
- 验证路由器 PE1 的路由表 mpls.0 的路由表条目
- 验证路由器 PE1 的 SPRING 流量工程 LSP
- 验证路由器 PE1 入口路由器上的 SPRING 流量工程 LSP
- 验证路由器 PE2 的路由表 mpls.0 的路由表条目
- 验证路由器 PE2 的静态 MPLS LSP 分段的状态
验证路由器 PE1 的路由表 inet.3 的路由条目
目的
验证路由器 PE1 的路由表 inet.3 的路由条目。
行动
在操作模式下,输入命令 show route table inet.3 。
user@PE1> show route table inet.3
inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
192.168.146.181/32 *[SPRING-TE/8] 03:09:26, metric 1
> to 10.10.13.3 via ge-0/0/1.0, Push 1000145, Push 1000134(top)
to 10.10.12.2 via ge-0/0/0.0, Push 1000145, Push 1000134, Push 1000123(top)
意义
输出显示分段路由隧道的入口路由。
验证路由器 PE1 的路由表 mpls.0 的路由表条目
目的
验证路由表 mpls.0 的路由条目
行动
在操作模式下,输入命令 show route table mpls.0 。
user@PE1> show route table mpls.0
mpls.0: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
0 *[MPLS/0] 03:25:52, metric 1
Receive
1 *[MPLS/0] 03:25:52, metric 1
Receive
2 *[MPLS/0] 03:25:52, metric 1
Receive
13 *[MPLS/0] 03:25:52, metric 1
Receive
16 *[VPN/0] 03:25:52
> via lsi.0 (VRF1), Pop
1000999 *[SPRING-TE/8] 03:04:03, metric 1
> to 10.10.13.3 via ge-0/0/1.0, Swap 1000145, Push 1000134(top)
to 10.10.12.2 via ge-0/0/0.0, Swap 1000145, Push 1000134, Push 1000123(top)
意义
输出显示分段路由隧道的 SID 标签。
验证路由器 PE1 的 SPRING 流量工程 LSP
目的
验证入口路由器上的 SPRING 流量工程 LSP。
行动
在操作模式下,输入命令 show spring-traffic-engineering overview 。
user@PE1> show spring-traffic-engineering overview
Overview of SPRING-TE:
Route preference: 8
Number of LSPs: 1 (Up: 1, Down: 0)
External controllers:
< Not configured >
意义
输出显示入口路由器上 SPRING 流量工程 LSP 的概述。
验证路由器 PE1 入口路由器上的 SPRING 流量工程 LSP
目的
验证入口路由器上的 SPRING 流量工程 LSP。
行动
在操作模式下,输入命令 show spring-traffic-engineering lsp detail 。
user@PE1# show spring-traffic-engineering lsp detail
Name: lsp-15
To: 192.168.146.181
State: Up
Path: sl-15-primary
Outgoing interface: ge-0/0/1.0
BFD status: N/A (Up: 0, Down: 0)
SR-ERO hop count: 3
Hop 1 (Strict):
NAI: IPv4 Adjacency ID, 0.0.0.0 -> 10.10.13.3
SID type: None
Hop 2 (Strict):
NAI: None
SID type: 20-bit label, Value: 1000134
Hop 3 (Strict):
NAI: None
SID type: 20-bit label, Value: 1000145
Path: sl-15-backup
Outgoing interface: ge-0/0/0.0
BFD status: N/A (Up: 0, Down: 0)
SR-ERO hop count: 4
Hop 1 (Strict):
NAI: IPv4 Adjacency ID, 0.0.0.0 -> 10.10.12.2
SID type: None
Hop 2 (Strict):
NAI: None
SID type: 20-bit label, Value: 1000123
Hop 3 (Strict):
NAI: None
SID type: 20-bit label, Value: 1000134
Hop 4 (Strict):
NAI: None
SID type: 20-bit label, Value: 1000145
Total displayed LSPs: 1 (Up: 1, Down: 0)
意义
输出显示入口路由器上 SPRING 流量工程 LSP 的详细信息
验证路由器 PE2 的路由表 mpls.0 的路由表条目
目的
验证路由器PE2的路由表mpls.0的路由表条目。
行动
在操作模式下,输入命令 show route table mpls.0 。
user@PE2> show route table mpls.0
mpls.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
0 *[MPLS/0] 03:22:29, metric 1
Receive
1 *[MPLS/0] 03:22:29, metric 1
Receive
2 *[MPLS/0] 03:22:29, metric 1
Receive
13 *[MPLS/0] 03:22:29, metric 1
Receive
1000123 *[MPLS/6] 03:22:29, metric 1
> to 10.10.23.3 via ge-0/0/1.0, Pop
1000123(S=0) *[MPLS/6] 03:22:29, metric 1
> to 10.10.23.3 via ge-0/0/1.0, Pop
1000221 *[MPLS/6] 03:22:29, metric 1
> to 10.10.12.1 via ge-0/0/0.0, Pop
1000221(S=0) *[MPLS/6] 03:22:29, metric 1
> to 10.10.12.1 via ge-0/0/0.0, Pop
验证路由器 PE2 的静态 MPLS LSP 分段的状态
目的
验证路由器 PE2 的 MPLS LSP 分段的状态。
行动
在操作模式下,输入命令 show mpls static-lsp 。
user@PE2> show mpls static-lsp
Ingress LSPs:
Total 0, displayed 0, Up 0, Down 0
Transit LSPs:
Total 0, displayed 0, Up 0, Down 0
Bypass LSPs:
Total 0, displayed 0, Up 0, Down 0
Segment LSPs:
LSPname SID-label State
adj-21 1000221 Up
adj-23 1000123 Up
Total 2, displayed 2, Up 2, Down 0
意义
输出显示路由器 PE2 的静态 MPLS LSP 分段的状态。
基于路由引擎的 S-BFD,用于具有第一跳标签解析功能的分段路由流量工程
您可以使用 S-BFD 作为检测路径故障的快速机制,在具有第一跃点标签解析的非彩色和彩色标签交换路径 (LSP) 上运行无缝双向转发检测 (S-BFD)。
- 了解用于具有第一跳标签解析的分段路由流量工程的基于 RE 的 S-BFD
- 用于 SRv6 流量工程路径的 S-BFD
- 为具有第一跳标签解析功能的分段路由流量工程配置基于 RE 的 S-BFD
- 用于 S-BFD 会话的远程识别器 (RD) 的自动推导
- 示例:为 SR-流量工程配置无缝双向转发检测 (S-BFD)
了解用于具有第一跳标签解析的分段路由流量工程的基于 RE 的 S-BFD
用于第一跳标签的 S-BFD 静态分段路由隧道
分段路由架构使核心网络中的入口节点能够通过网络中的显式路径引导流量。分段路由流量工程 (流量工程) 下一跃点是一个或多个分段标识符 (SID) 列表。这些分段列表表示您希望传入流量采用的网络路径。传入流量可以是标签的或 IP 流量,入口节点上的转发操作可以是标签交换或基于目标的查找,用于将流量引导到转发路径中的这些分段路由流量工程路径上。
您可以通过第一跳标签解析在无色和彩色静态分段路由 LSP 上运行无缝 BFD (S-BFD),并使用 S-BFD 作为快速机制来检测路径故障并触发全局融合。与 BFD 相比,S-BFD 需要更少的状态更改,从而加快了路径故障的报告速度。
如果有一个包含一个或多个主 LSP 和一个辅助 LSP 的分段路由隧道,您可以在任何这些 LSP 上启用 S-BFD。如果 S-BFD 会话中断,软件将通过删除故障 LSP 的下一跃点来更新分段路由隧道的路由。如果 LSP 的第一跃点标签指向多个直接下一跃点,则内核将继续发送 S-BFD 数据包(如果 至少 有一个下一跃点可用)(底层下一跃点可达性故障检测必须快于 S-BFD 检测计时器的持续时间)。
自动转换派生的 LSP 支持此模型。
LSP 级 S-BFD
系统将为每个唯一的标签-堆栈 + 地址族组合创建一个 S-BFD 会话。您可以配置相同的分段列表,并为所有分段列表启用 S-BFD。具有相同标签堆栈 + 地址族组合的分段列表共享同一 S-BFD 会话。S-BFD 会话的源地址设置为主实例下配置最少的环路地址(特殊地址除外)。
确保所选源地址是可路由的。
LSP 的地址族是基于分段路由流量工程隧道中“收件人”地址的地址族派生的。配置了 S-BFD 的 LSP 状态还取决于 BFD 是否已开启 — 如果为 LSP 配置了 S-BFD,则在 S-BFD 报告路径处于活动状态之前,不会计算 LSP 路由。
S-BFD 参数
分段路由流量工程路径支持以下 S-BFD 参数:
-
远程鉴别器
-
最小间隔
-
乘数
-
无路由器警报选项
在 S-BFD 中,每个响应者可能有多个鉴别器。鉴别器可由 IGP 通告至其他路由器,也可以在这些路由器上静态配置。在发起方上,系统会根据您或中央控制器做出的决策或决议,通过静态配置选择特定的鉴别器作为 S-BFD 会话的远程鉴别器。当使用相同的密钥标签堆栈创建多个 LSP,并且每个 LSP 上都使用不同的参数启用了 S-BFD,则每个参数的积极值将在共享 S-BFD 会话中使用。对于鉴别器参数,最低值被视为最激进。与路由器警报选项类似,如果配置了其中一个配置无路由器警报,则派生的 S-BFD 参数将没有路由器警报选项。
限制
-
MX 系列设备支持全局和本地修复。
-
尽管 S-BFD 会根据配置的计时器值检测故障,但融合时间取决于全局修复时间 ()。seconds
用于 SRv6 流量工程路径的 S-BFD
您可以在 SRv6 流量工程路径上运行 S-BFD,以快速检测路径故障。在 SRv6 流量工程隧道中配置了 S-BFD 的每条路径都可以将探测发送到路径的目标。这些探测遵循流量工程路径的 SID,并报告路径中任何 SID 的故障。检测到故障时,相应的 SRv6 流量工程隧道路径将被关闭,以便将流量分配到备用路径上。
入口路由器上的分布式模式和出口路由器上的分布式模式下支持 S-BFD for SRv6。
要为入口路由器上的 SRv6 流量工程路径配置 S-BFD,必须在层次结构级别使用[edit protocols bfd]配置语句配置sbfd local-discriminator number本地鉴别器。您还需要在层次结构级别使用 [edit protocols source-packet-routing source-routing-path name primary name bfd-liveness-detection] configuration 语句配置sbfd remote-discriminator number远程鉴别器。
要为出口路由器上的 SRv6 流量工程路径配置 S-BFD,必须在层次级别配置sbfd local-discriminator number local-ipv6-address address[edit protocols bfd]语句。响应方必须loca-discriminator与remote-discriminator入口路由器上 SRv6 流量工程路径上配置的匹配
对于仅支持 IPv6 本地主机地址的 S-BFD 响应方,可以在层次结构级别使用bfd-liveness-detection sbfd destination-ipv6-local-host[edit protocols source-packet-routing source-routing-path lsp-path-name primary segment-list-name]配置语句强制使用 IPv6 本地主机地址。
为具有第一跳标签解析功能的分段路由流量工程配置基于 RE 的 S-BFD
要为分段列表启用 LSP 级 S-BFD,请在层次结构和 [edit protocols source-packet-routing source-routing-path lsp-path-name secondary segment-list-name]层次结构上 [edit protocols source-packet-routing source-routing-path lsp-path-name primary segment-list-name]配置 bfd-liveness-detection configuration 语句。
以下步骤提供了具有第一跃点标签解析的 S-BFD 的基本配置和操作:
-
下面的步骤描述了基本 配置的大纲:
在入口路由器上,您可以为静态分段路由隧道配置一个或多个带有第一跃点标签的分段列表,以用作主路径和辅助路径。
在入口路由器上,您可以配置静态分段路由隧道,其中有多个主路径(用于负载平衡),或一个主路径和一个辅助路径(用于路径保护)。每个主路径或辅助路径 (LSP) 都引用您已经配置的分段列表之一,使用从贡献 LSP 的第一跃点标签派生的下一跃点创建路由。
在入口路由器上,您可以启用按数据包的负载均衡,以便通过入口路由和绑定 SID 路由(均具有第一跃点标签)解析的路由在数据包转发引擎中安装所有活动路径。LSP 下的 S-BFD 会话可保护使用该 LSP 的所有路由。
在分段路由隧道的出口路由器上,使用本地鉴别器 D 配置 S-BFD 响应器模式,从而在每个 FPC 上为 D 创建分布式 S-BFD 侦听器会话。
在入口路由器上,您可以为希望查看其路径故障检测的任何 LSP 配置 S-BFD。指定远程鉴别器 D 以匹配出口路由器的本地 S-BFD 鉴别器。如果当前 LSP 密钥尚不存在发起方会话,则使用 LSP 标签堆栈 + 地址族组合创建 S-BFD 发起方会话。在匹配 BFD 会话的情况下,将重新评估 S-BFD 参数,并考虑新的共享 LSP。当推导 S-BFD 参数时,将选择每个参数的积极值。
下面的步骤描述了基本 操作 :
S-BFD 发起方会话在路由引擎上以集中式模式运行。软件跟踪 S-BFD 会话的正常和关闭状态。
当 S-BFD 状态变为 UP 时,相关路由将考虑 LSP。
在入口路由器上,如果软件检测到 S-BFD 会话关闭,则会向路由守护程序 (RPD) 发送会话关闭通知,并且 RPD 会从分段路由隧道的路由中删除故障 LSP 的下一跃点。
过程中的总流量丢失与 S-BFD 故障检测时间和全局修复时间绑定。S-BFD 故障检测时间由 S-BFD 最小间隔和乘数参数决定。全局修复时间取决于分段路由流量工程处理时间以及将路由重新下载到转发的时间。
LSP 标签堆栈更改如下:
特定 LSP 与现有 S-BFD 会话分离。如果现有 S-BFD 会话至少有一个 LSP 引用它,则保留旧的 BFD 会话,但会重新评估 S-BFD 参数,以便在现有 LSP 会话中选择积极参数值。此外,如果发生更改,S-BFD 会话的名称将更新为最小值。如果旧的 S-BFD 会话不再附加 LSP,则该 S-BFD 会话将被删除。
软件尝试查找与 new-label-stack+address-family 组合值匹配的现有 BFD 会话;如果存在此类匹配,则 LSP 将引用该现有 S-BFD 会话。与步骤 1 中的重新评估类似,针对参数或会话名称的任何更改重新评估 S-BFD 会话。
如果系统中没有匹配的 BFD 会话,将创建一个新的 BFD 会话,并且 S-BFD 参数从此 LSP 派生。
注意:S-BFD 会话的最小间隔和乘数决定了会话的故障检测时间。修复时间还取决于全局修复时间。
以下输出显示了用于具有主 LSP 的彩色 LSP 的配置语句:
[edit protocols]
source-packet-routing {
source-routing-path lsp_name {
to destination_address;
color color_value;
binding-sid binding-label;
primary segment_list_1_name weight weight;
... {
bfd-liveness-detection {
sbfd {
remote-discriminator value;
}
}
}
}
}
在响应方,您必须配置正确的鉴别器:
[edit protocols bfd]
sbfd {
local-discriminator value;
}
默认情况下,系统会为 S-BFD 数据包配置路由器警报。在响应方端移除 MPLS 报头时,数据包将发送至主机进行处理,而无需查找数据包的目标地址。如果在入口路由器上启用无路由器警报选项,则路由器警报选项将从 IP 选项中删除,从而从出口端删除。您必须在 lo0 中显式配置目标地址;否则,数据包将被丢弃,并且 S-BFD 保持关闭状态。
[edit interfaces lo0 unit 0 family inet] address 127.0.0.1/32;
您可以使用新的跟踪标志 bfd来跟踪 BFD 活动:
user@host# set protocols source-packet-routing traceoptions flag bfd
用于 S-BFD 会话的远程识别器 (RD) 的自动推导
概述
您可以将自动派生的远程鉴别器用于 SR-流量工程路径的 S-BFD 会话。使用此功能,无需在入口设备或传输设备上的 S-BFD 配置中配置 a remote-discriminator ,也无需在其各自的端点上配置匹配的本地鉴别器。相反,出口 PE 设备现在将接受 IP 地址作为其本地鉴别器。要在 BFD 中允许 IP 地址作为本地鉴别器,请使用该 set protocols bfd sbfd local-discriminator-ip 配置。
您还可以将通用 S-BFD 模板与多个控制器调配的 SR-流量工程策略上的 S-BFD 配置一起使用。在这些 S-BFD 会话中,Junos OS 会自动从隧道端点派生远程鉴别器,以匹配 SR-流量工程策略。
-
我们仅支持 IPv4 端点自动派生 RD,不支持 IPv6 端点。
-
我们不支持自动派生纯颜色隧道的 RD。如果未为静态配置的 SR-流量工程纯颜色隧道配置 RD(通过自动派生 RD),系统将显示提交错误。如果未使用 SR-流量工程模板配置为动态纯颜色隧道配置 RD(通过自动派生 RD),则 Junos OS 将跳
sbfd过该隧道的配置。
示例:为 SR-流量工程配置无缝双向转发检测 (S-BFD)
为分段路由路径配置 S-BFD,以便在转发平面中提供快速、可靠的故障检测,从而在分段路由网络中启用快速重新路由 (FRR) 机制。您可以监控分段路由策略和显式定义的分段路由路径,以确保满足流量工程约束且路径正常运行。
| 可读性分数 |
|
| 阅读时间 |
不到 15 分钟。 |
| 配置时间 |
不到一个小时。 |
先决条件示例
| 硬件要求 |
PTX 系列路由器和 MX 系列路由器 |
| 软件要求 |
Junos OS 23.1R1 或更高版本 |
开始之前
| 优势 |
配置简单 - 支持从隧道端点地址自动派生远程鉴别器 (RD),使 S-BFD 配置用户友好。 可扩展选项 - 可以使用自动派生的 RD 对多个控制器调配的 SR-流量工程策略应用通用 S-BFD 模板。 流量干扰最小 - 单向路径监控非常适合非对称分段路由路径,可简化用于检测 LSP 故障的监控架构。 开销更少 S-BFD 不会为每个跃点创建单独的 BFD 会话,从而减少开销。 |
| 了解更多 |
|
| 实践经验 |
|
| 了解更多 |
功能概述
下表简要概述了此示例中部署的配置组件。
| 政策 |
|
| 前缀-SID | 定义要到达出口设备 R3 的分段 ID (SID)。 |
| 协议 |
|
| IS-IS | 所有设备上均启用了 IS-IS。 |
| 源数据包路由 | 有两个分段路由路径, srpath1 以及 srpath2,在其上配置了无缝 BFD (S-BFD)。R0 和 R3 之间存在分段路由 LSP (srlsp1)。设备 R3 上配置了 BFD 本地鉴别器。 |
| MPLS | 所有设备上均启用了 MPLS。 |
| 主要验证任务 |
|
拓扑概述
在此示例中,入口设备 (R0) 通过到出口设备 (R3) 的分段路由路径发起无缝 BFD (S-BFD) 会话。使用指定跃点的分段列表 (SID) 定义分段路由路径。设备 R3 使用纯 IPv4 数据包进行响应,该数据包使用自动生成的 SID 信息进行加密。
| 主机名 |
角色 |
功能 |
|---|---|---|
| R0 |
入口设备(发起方) |
R0 通过到设备 R3 的分段路由路径启动 BFD 会话。 |
| R1 |
传送设备 | 从 R0 到 R3 的第一个分段路由路径 (srpath1) 中的某个分段。 |
| R2 |
传送设备 | 从 R0 到 R3 的第一个分段路由路径 (srpath1) 中的某个分段。 |
| R3 |
出口设备(响应方) | 使用纯 IPv4 数据包进行响应,该数据包使用自动生成为自动 RD 的 SID 信息进行加密。 |
| R4 |
传送设备 | 从 R0 到 R3 的第二个分段路由路径 (srpath2) 中的一个分段。 |
| R5 |
传送设备 | 从 R0 到 R3 的第二个分段路由路径 (srpath2) 中的一个分段。 |
拓扑图示
在 R0 上配置基于 SR-流量工程的 S-BFD
验证
使用此示例中的 show 命令列表验证功能。
| 命令 | 验证任务 |
|---|---|
| 显示 BFD 会话 | 验证 BFD 会话是否已开启。 |
| 显示 spring-traffic-engineering | 使用 lsp 命令选项验证分段路由 LSP,并使用命令选项验证 sbfd 自动派生的 RD 值。 |
| 显示 BFD 无缝会话 | 验证设备 R3 上的 S-BFD 会话。 |
BFD 会话验证
目的
验证 BFD 会话的状态。
行动
在操作模式下,输入 show bfd session extensive 命令以查看 BFD 会话的状态。
user@R0> show bfd session extensive
Detect Transmit
Address State Interface Time Interval Multiplier
127.0.0.1 Up 0.000 2.000 3
Client SPRING-TE, TX interval 1.000, RX interval 1.000
Local diagnostic None, remote diagnostic None
Remote state AdminDown, version 1
Replicated
Session type: Multi hop BFD (Seamless)
Min async interval 1.000, min slow interval 2.000
Adaptive async TX interval 2.000, RX interval 2.000
Local min TX interval 2.000, minimum RX interval 1.000, multiplier 3
Remote min TX interval 0.000, min RX interval 0.000, multiplier 0
Local discriminator 18, remote discriminator 3232235523
Echo TX interval 2.000, echo detection interval 6.000
Echo mode disabled/inactiveno-absorb, no-refresh
Path-Name V4-srte_bfd_session-4
Session ID: 0
Detect Transmit
Address State Interface Time Interval Multiplier
127.0.0.1 Up 3.000 1.000 3
Client SPRING-TE, TX interval 1.000, RX interval 1.000
Session up time 00:18:16
Local diagnostic None, remote diagnostic None
Remote state Up, version 1
Replicated
Session type: Multi hop BFD (Seamless)
Min async interval 1.000, min slow interval 1.000
Adaptive async TX interval 1.000, RX interval 1.000
Local min TX interval 1.000, minimum RX interval 1.000, multiplier 3
Remote min TX interval 1.000, min RX interval 0.000, multiplier 3
Local discriminator 17, remote discriminator 3232235523
Echo TX interval 0.000, echo detection interval 0.000
Echo mode disabled/inactive
Remote is control-plane independent
Path-Name V4-srte_bfd_session-3
Session ID: 0
2 sessions, 2 clients
Cumulative transmit rate 1.5 pps, cumulative receive rate 1.0 pps
意义
BFD 会话的状态已启动。
这些会话被命名为 V4-srte_bfd_session-4 和 V4-srte_bfd_session-3。由于许多 LSP 可以共享同一个 BFD 会话,因此当第一个具有唯一组合的 label-stack + address-family LSP 出现时,S-BFD 会使用该 address-family + lsp-name 组合作为会话名称。如果稍后有更多 LSP 共享同一会话,则会话名称可更改为 address-family + least-lsp-name,而不会影响 S-BFD 会话的状态。
LSP 路径验证
目的
验证是否已配置分段路由 LSP (srlsp1),以及 S-BFD 会话状态是否可见。验证 srlsp1 要遍历到设备 R3 的路径。
行动
在操作模式下,输入 show spring-traffic-engineering lsp name srlsp1 detail 命令,以了解分段路由 LSP 正在遍历的路径。
user@R0> show spring-traffic-engineering lsp name srlsp1 detail
E = Entropy-label Capability
Name: srlsp1
Tunnel-source: Static configuration
Tunnel Forward Type: SRMPLS
To: 192.168.0.3
Te-group-id: 0
State: Up
Path: srpath1
Path Status: NA
Outgoing interface: NA
Auto-translate status: Enabled Auto-translate result: Success
Compute Status:Disabled , Compute Result:N/A , Compute-Profile Name:N/A
BFD status: Up BFD name: V4-srte_bfd_session-3
BFD remote-discriminator: 3232235523(auto-derived)
Segment ID : 128
ERO Valid: true
SR-ERO hop count: 3
Hop 1 (Strict):
NAI: IPv4 Adjacency ID, 0.0.0.0 -> 10.11.2.2
SID type: 20-bit label, Value: 16
Hop 2 (Loose):
NAI: IPv4 Node ID, Node address: 192.168.0.2
SID type: 20-bit label, Value: 801002
Hop 3 (Loose):
NAI: IPv4 Node ID, Node address: 192.168.0.3
SID type: 20-bit label, Value: 801003
Path: srpath2
Path Status: NA
Outgoing interface: NA
Auto-translate status: Enabled Auto-translate result: Success
Compute Status:Disabled , Compute Result:N/A , Compute-Profile Name:N/A
BFD status: Down BFD name: V4-srte_bfd_session-4
BFD remote-discriminator: 3232235523(auto-derived)
Segment ID : 256
ERO Valid: true
SR-ERO hop count: 1
Hop 1 (Strict):
NAI: IPv4 Adjacency ID, 0.0.0.0 -> 10.14.1.2
SID type: 20-bit label, Value: 17
Total displayed LSPs: 1 (Up: 1, Down: 0, Initializing: 0)
意义
验证 LSP 要遍历哪些跃点以到达最后一个跃点设备 R3。
每个 LSP 的输出都显示 S-BFD 状态及其所引用的 S-BFD 名称。由于每个 LSP 可能没有一个 S-BFD 会话,因此不会显示 LSP 级别的 S-BFD 计数器。
设备 R0 上的 S-BFD 会话验证
目的
验证设备 R0 上两个分段路由路径上的 S-BFD 会话状态。
行动
在操作模式下,输入 show spring-traffic-engineering sbfd detail命令以验证 S-BFD 会话的状态。
user@R0> show spring-traffic-engineering sbfd detail
BFD name: V4-srte_bfd_session-4
BFD status: Up
BFD remote-discriminator: 3232235523
BFD local-discriminator: 18
Referencing LSPs:
srlsp1:srpath2
SR-ERO hop count: 1
Hop 1 (Strict):
NAI: IPv4 Adjacency ID, 0.0.0.0 -> 10.14.1.2
SID type: 20-bit label, Value: 17
BFD name: V4-srte_bfd_session-3
BFD status: Up
BFD remote-discriminator: 3232235523
BFD local-discriminator: 17
Referencing LSPs:
srlsp1:srpath1
SR-ERO hop count: 3
Hop 1 (Strict):
NAI: IPv4 Adjacency ID, 0.0.0.0 -> 10.11.2.2
SID type: 20-bit label, Value: 16
Hop 2 (Loose):
NAI: IPv4 Node ID, Node address: 192.168.0.2
SID type: 20-bit label, Value: 801002
Hop 3 (Loose):
NAI: IPv4 Node ID, Node address: 192.168.0.3
SID type: 20-bit label, Value: 801003
Total displayed BFD sessions: 2 (Up: 2, Down: 0)
意义
S-BFD 会话已启动,设备 R0 可以访问设备 R3。
设备 R3 上的 S-BFD 会话验证
目的
验证 BFD 响应方设备 R3 上的 S-BFD 会话状态。
行动
在操作模式下,输入 show bfd seamless session extensive命令以验证 S-BFD 会话的状态。
user@R3> show bfd seamless session extensive
Receive
Type Descriminator Table Address State Interval
Local 3232235523 (192.168.0.3) default Up 0.050
Logical system id 0, Route table id 0
ISSU State: false
Authentication: false
1 local sessions, 0 remote sessions
意义
S-BFD 会话已启动,配置的 BFD 本地鉴别器与 BFD 远程鉴别器值对应。
附录 1:在所有设备上设置命令
R0 set system host-name R1 set chassis network-services enhanced-ip set interfaces et-0/0/5 unit 0 description "CONNECTED TO R4" set interfaces et-0/0/5 unit 0 family inet address 10.14.1.1/24 set interfaces et-0/0/5 unit 0 family iso set interfaces et-0/0/5 unit 0 family mpls set interfaces et-1/0/3 unit 0 description "CONNECTED TO R1" set interfaces et-1/0/3 unit 0 family inet address 10.11.2.1/24 set interfaces et-1/0/3 unit 0 family iso set interfaces et-1/0/3 unit 0 family mpls set interfaces lo0 unit 0 family inet address 192.168.0.0/32 set interfaces lo0 unit 0 family iso address 49.0001.000a.0a0a.0a00 set policy-options policy-statement prefix-sid term 1 from route-filter 192.168.0.0/32 exact set policy-options policy-statement prefix-sid term 1 then prefix-segment index 100 set policy-options policy-statement prefix-sid term 1 then prefix-segment node-segment set policy-options policy-statement prefix-sid term 1 then accept set routing-options router-id 192.168.0.0 set routing-options autonomous-system 64512 set routing-options rib-groups test import-rib inet.0 set routing-options rib-groups test import-rib inet.3 set protocols isis interface et-0/0/5.0 level 2 metric 20 set protocols isis interface et-0/0/5.0 node-link-protection set protocols isis interface et-0/0/5.0 point-to-point set protocols isis interface et-1/0/3.0 level 2 metric 20 set protocols isis interface et-1/0/3.0 node-link-protection set protocols isis interface et-1/0/3.0 point-to-point set protocols isis interface all ldp-synchronization set protocols isis interface all node-link-protection set protocols isis interface fxp0.0 disable set protocols isis interface lo0.0 disable set protocols isis source-packet-routing adjacency-segment hold-time 240000 set protocols isis source-packet-routing srgb start-label 800000 set protocols isis source-packet-routing srgb index-range 80000 set protocols isis source-packet-routing explicit-null set protocols isis source-packet-routing traffic-statistics statistics-granularity per-interface set protocols isis level 1 disable set protocols isis level 2 wide-metrics-only set protocols isis level 2 preference 180 set protocols isis backup-spf-options remote-backup-calculation set protocols isis backup-spf-options use-source-packet-routing set protocols isis traffic-engineering l3-unicast-topology set protocols isis traffic-engineering family inet shortcuts set protocols isis export prefix-sid set protocols isis ignore-attached-bit set protocols isis rib-group inet test set protocols mpls interface all set protocols mpls interface fxp0.0 disable set protocols source-packet-routing segment-list srpath1 auto-translate unprotected set protocols source-packet-routing segment-list srpath1 hop1 ip-address 10.11.2.2 set protocols source-packet-routing segment-list srpath1 hop2 ip-address 192.168.0.2 set protocols source-packet-routing segment-list srpath1 hop2 label-type node set protocols source-packet-routing segment-list srpath1 hop3 ip-address 192.168.0.3 set protocols source-packet-routing segment-list srpath1 hop3 label-type node set protocols source-packet-routing segment-list srpath2 auto-translate unprotected set protocols source-packet-routing segment-list srpath2 hop1 ip-address 10.14.1.2 set protocols source-packet-routing source-routing-path srlsp1 to 192.168.0.3 set protocols source-packet-routing source-routing-path srlsp1 primary srpath1 weight 23 set protocols source-packet-routing source-routing-path srlsp1 primary srpath1 bfd-liveness-detection sbfd set protocols source-packet-routing source-routing-path srlsp1 primary srpath1 bfd-liveness-detection minimum-interval 1000 set protocols source-packet-routing source-routing-path srlsp1 primary srpath2 weight 45 set protocols source-packet-routing source-routing-path srlsp1 primary srpath2 bfd-liveness-detection sbfd set protocols source-packet-routing source-routing-path srlsp1 primary srpath2 bfd-liveness-detection minimum-interval 1000 set protocols source-packet-routing inherit-label-nexthops
R1 set system host-name R1 set chassis network-services enhanced-ip set interfaces xe-0/3/0 unit 0 description "CONNECTED TO R0" set interfaces xe-0/3/0 unit 0 family inet address 10.11.2.2/24 set interfaces xe-0/3/0 unit 0 family iso set interfaces xe-0/3/0 unit 0 family mpls set interfaces xe-0/3/1 unit 0 description "CONNECTED TO R2" set interfaces xe-0/3/1 unit 0 family inet address 11.12.1.1/24 set interfaces xe-0/3/1 unit 0 family iso set interfaces xe-0/3/1 unit 0 family mpls set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set interfaces lo0 unit 0 family iso address 49.0001.0001.0101.0100 set policy-options policy-statement prefix-sid term 1 from route-filter 192.168.0.1/32 exact set policy-options policy-statement prefix-sid term 1 then prefix-segment index 1001 set policy-options policy-statement prefix-sid term 1 then prefix-segment node-segment set policy-options policy-statement prefix-sid term 1 then accept set routing-options router-id 192.168.0.1 set routing-options autonomous-system 64512 set routing-options rib-groups test import-rib inet.0 set routing-options rib-groups test import-rib inet.3 set protocols isis backup-spf-options remote-backup-calculation set protocols isis backup-spf-options use-source-packet-routing set protocols isis backup-spf-options per-prefix-calculation set protocols isis traffic-engineering family inet shortcuts set protocols isis source-packet-routing adjacency-segment hold-time 240000 set protocols isis source-packet-routing srgb start-label 800000 set protocols isis source-packet-routing srgb index-range 80000 set protocols isis source-packet-routing explicit-null set protocols isis level 1 disable set protocols isis level 1 wide-metrics-only set protocols isis level 2 wide-metrics-only set protocols isis interface xe-0/3/0.0 point-to-point set protocols isis interface xe-0/3/0.0 node-link-protection set protocols isis interface xe-0/3/1.0 point-to-point set protocols isis interface xe-0/3/1.0 node-link-protection set protocols isis interface all node-link-protection set protocols isis interface em0.0 disable set protocols isis interface fxp0.0 disable set protocols isis export prefix-sid set protocols isis ignore-attached-bit set protocols isis rib-group inet test set protocols mpls traffic-engineering set protocols mpls interface all
R2 set system host-name R2 set chassis network-services enhanced-ip set interfaces xe-0/2/1 unit 0 description "CONNECTED TO R1" set interfaces xe-0/2/1 unit 0 family inet address 11.12.1.2/24 set interfaces xe-0/2/1 unit 0 family iso set interfaces xe-0/2/1 unit 0 family mpls set interfaces xe-0/3/0 unit 0 description "CONNECTED TO R3" set interfaces xe-0/3/0 unit 0 family inet address 12.13.1.1/24 set interfaces xe-0/3/0 unit 0 family iso set interfaces xe-0/3/0 unit 0 family mpls set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set interfaces lo0 unit 0 family iso address 49.0001.0002.0202.0200 set policy-options policy-statement prefix-sid term 1 from route-filter 192.168.0.2/32 exact set policy-options policy-statement prefix-sid term 1 then prefix-segment index 1002 set policy-options policy-statement prefix-sid term 1 then prefix-segment node-segment set policy-options policy-statement prefix-sid term 1 then accept set routing-options router-id 192.168.0.2 set routing-options autonomous-system 64512 set protocols isis backup-spf-options remote-backup-calculation set protocols isis backup-spf-options use-source-packet-routing set protocols isis traffic-engineering family inet shortcuts set protocols isis source-packet-routing adjacency-segment hold-time 240000 set protocols isis source-packet-routing srgb start-label 800000 set protocols isis source-packet-routing srgb index-range 80000 set protocols isis source-packet-routing explicit-null set protocols isis level 1 disable set protocols isis level 1 wide-metrics-only set protocols isis level 2 wide-metrics-only set protocols isis interface xe-0/2/1.0 point-to-point set protocols isis interface xe-0/2/1.0 node-link-protection set protocols isis interface xe-0/3/0.0 point-to-point set protocols isis interface xe-0/3/0.0 node-link-protection set protocols isis interface all node-link-protection set protocols isis interface em0.0 disable set protocols isis interface fxp0.0 disable set protocols isis interface lo0.0 passive set protocols isis export prefix-sid set protocols isis ignore-attached-bit set protocols mpls interface all
R3 set system host-name R3 set chassis network-services enhanced-mode set interfaces et-0/0/1 unit 0 description "CONNECTED TO R2" set interfaces et-0/0/1 unit 0 family inet address 12.13.1.2/24 set interfaces et-0/0/1 unit 0 family iso set interfaces et-0/0/1 unit 0 family mpls set interfaces et-0/0/3 unit 0 description "CONNECTED TO R5" set interfaces et-0/0/3 unit 0 family inet address 10.15.1.1/24 set interfaces et-0/0/3 unit 0 family iso set interfaces et-0/0/3 unit 0 family mpls set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set interfaces lo0 unit 0 family iso address 49.0001.0003.0303.0300 set policy-options policy-statement prefix-sid term 1 from route-filter 192.168.0.3/32 exact set policy-options policy-statement prefix-sid term 1 then prefix-segment index 1003 set policy-options policy-statement prefix-sid term 1 then prefix-segment node-segment set policy-options policy-statement prefix-sid term 1 then accept set routing-options router-id 192.168.0.3 set routing-options autonomous-system 64512 set protocols bfd sbfd local-discriminator-ip 192.168.0.3 set protocols isis interface et-0/0/1.0 node-link-protection set protocols isis interface et-0/0/1.0 point-to-point set protocols isis interface et-0/0/3.0 node-link-protection set protocols isis interface et-0/0/3.0 point-to-point set protocols isis interface all ldp-synchronization set protocols isis interface all node-link-protection set protocols isis interface em0.0 disable set protocols isis interface fxp0.0 disable set protocols isis interface lo0.0 passive set protocols isis source-packet-routing adjacency-segment hold-time 240000 set protocols isis source-packet-routing srgb start-label 800000 set protocols isis source-packet-routing srgb index-range 80000 set protocols isis source-packet-routing explicit-null set protocols isis level 1 disable set protocols isis level 1 wide-metrics-only set protocols isis level 2 wide-metrics-only set protocols isis backup-spf-options remote-backup-calculation set protocols isis backup-spf-options use-source-packet-routing set protocols isis export prefix-sid set protocols isis ignore-attached-bit set protocols mpls interface all
R4 set system host-name R4 set chassis network-services enhanced-ip set interfaces xe-0/2/0 description "CONNECTED TO R0" set interfaces xe-0/2/0 unit 0 family inet address 10.14.1.2/24 set interfaces xe-0/2/0 unit 0 family iso set interfaces xe-0/2/0 unit 0 family mpls set interfaces xe-0/3/0 unit 0 description "CONNECTED TO R5" set interfaces xe-0/3/0 unit 0 family inet address 10.15.1.1/24 set interfaces xe-0/3/0 unit 0 family iso set interfaces xe-0/3/0 unit 0 family mpls set interfaces lo0 unit 0 family inet address 192.168.0.4/32 set interfaces lo0 unit 0 family iso address 49.0001.0004.0404.0400 set policy-options policy-statement prefix-sid term 1 from route-filter 192.168.0.4/32 exact set policy-options policy-statement prefix-sid term 1 then prefix-segment index 1004 set policy-options policy-statement prefix-sid term 1 then prefix-segment node-segment set policy-options policy-statement prefix-sid term 1 then accept set routing-options router-id 192.168.0.4 set routing-options autonomous-system 64512 set protocols isis backup-spf-options remote-backup-calculation set protocols isis backup-spf-options use-source-packet-routing set protocols isis traffic-engineering family inet-mpls shortcuts set protocols isis traffic-engineering family inet shortcuts set protocols isis source-packet-routing adjacency-segment hold-time 240000 set protocols isis source-packet-routing srgb start-label 800000 set protocols isis source-packet-routing srgb index-range 80000 set protocols isis source-packet-routing explicit-null set protocols isis level 1 disable set protocols isis level 1 wide-metrics-only set protocols isis level 2 wide-metrics-only set protocols isis interface xe-0/2/0.0 point-to-point set protocols isis interface all node-link-protection set protocols isis interface all ldp-synchronization set protocols isis interface em0.0 disable set protocols isis interface fxp0.0 disable set protocols isis interface lo0.0 passive set protocols isis export prefix-sid set protocols isis ignore-attached-bit set protocols isis suppress-attached-bit set protocols mpls interface all
R5 set system host-name R5 set chassis network-services enhanced-ip set interfaces xe-0/2/0 unit 0 description "CONNECTED To R3" set interfaces xe-0/2/0 unit 0 family inet address 10.15.1.2/24 set interfaces xe-0/2/0 unit 0 family iso set interfaces xe-0/2/0 unit 0 family mpls set interfaces xe-0/2/1 unit 0 description "CONNECTED To R4" set interfaces xe-0/2/1 unit 0 family inet address 10.16.1.2/24 set interfaces xe-0/2/1 unit 0 family iso set interfaces xe-0/2/1 unit 0 family mpls set interfaces lo0 unit 0 family inet address 192.168.0.5/32 set interfaces lo0 unit 0 family iso address 49.0001.0005.0505.0500 set policy-options policy-statement prefix-sid term 1 from route-filter 192.168.0.5/32 exact set policy-options policy-statement prefix-sid term 1 then prefix-segment index 1005 set policy-options policy-statement prefix-sid term 1 then prefix-segment node-segment set policy-options policy-statement prefix-sid term 1 then accept set routing-options router-id 192.168.0.5 set routing-options autonomous-system 64512 set protocols isis backup-spf-options remote-backup-calculation set protocols isis backup-spf-options use-source-packet-routing set protocols isis traffic-engineering family inet shortcuts set protocols isis source-packet-routing adjacency-segment hold-time 240000 set protocols isis source-packet-routing srgb start-label 800000 set protocols isis source-packet-routing srgb index-range 80000 set protocols isis source-packet-routing explicit-null set protocols isis level 1 disable set protocols isis level 1 wide-metrics-only set protocols isis level 2 wide-metrics-only set protocols isis interface xe-0/2/0.0 point-to-point set protocols isis interface xe-0/2/1.0 point-to-point set protocols isis interface all node-link-protection set protocols isis interface all ldp-synchronization set protocols isis interface em0.0 disable set protocols isis interface fxp0.0 disable set protocols isis interface lo0.0 passive set protocols isis export prefix-sid set protocols isis ignore-attached-bit set protocols mpls interface all
附录 2:R0 上的显示配置输出
设备 R0 上的 show configuration output。
user@R0# show interfaces
et-0/0/5 {
unit 0 {
description "CONNECTED TO R4";
family inet {
address 10.14.1.1/24;
}
family iso;
family mpls;
}
}
et-1/0/3 {
unit 0 {
description "CONNECTED TO R1";
family inet {
address 10.11.2.1/24;
}
family iso;
family mpls;
}
}
lo0 {
unit 0 {
family inet {
address 192.168.0.0/32;
}
family iso {
address 49.0001.000a.0a0a.0a00;
}
}
}
usre@R0# show policy-options
policy-statement prefix-sid {
term 1 {
from {
route-filter 192.168.0.0/32 exact;
}
then {
prefix-segment {
index 100;
node-segment;
}
accept;
}
}
}
user@R0# show routing-options
router-id 192.168.0.0;
autonomous-system 64512;
rib-groups {
test {
import-rib [ inet.0 inet.3 ];
}
}
user@R0# show protocols
isis {
interface et-0/0/5.0 {
level 2 metric 20;
node-link-protection;
point-to-point;
}
interface et-1/0/3.0 {
level 2 metric 20;
node-link-protection;
point-to-point;
}
interface all {
ldp-synchronization;
node-link-protection;
}
interface fxp0.0 {
disable;
}
interface lo0.0 {
disable;
}
source-packet-routing {
adjacency-segment hold-time 240000;
srgb start-label 800000 index-range 80000;
explicit-null;
traffic-statistics {
statistics-granularity per-interface;
}
}
level 1 disable;
level 2 {
wide-metrics-only;
preference 180;
}
backup-spf-options {
remote-backup-calculation;
use-source-packet-routing;
}
traffic-engineering {
l3-unicast-topology;
family inet {
shortcuts;
}
}
export prefix-sid;
ignore-attached-bit;
rib-group inet test;
}
mpls {
interface all;
interface fxp0.0 {
disable;
}
}
source-packet-routing {
segment-list srpath1 {
auto-translate {
unprotected;
}
hop1 ip-address 10.11.2.2;
hop2 {
ip-address 192.168.0.2;
label-type {
node;
}
}
hop3 {
ip-address 192.168.0.3;
label-type {
node;
}
}
}
segment-list srpath2 {
auto-translate {
unprotected;
}
hop1 ip-address 10.14.1.2;
}
source-routing-path srlsp1 {
to 192.168.0.3;
primary {
srpath1 {
weight 23;
bfd-liveness-detection {
sbfd;
minimum-interval 1000;
}
}
srpath2 {
weight 45;
bfd-liveness-detection {
sbfd;
minimum-interval 1000;
}
}
}
}
inherit-label-nexthops;
}
使用单跳静态 LSP 为聚合以太网成员链路配置静态邻接分段标识符
在使用聚合以太网 (AE) 束的网络中,聚合链路可以是任意数量的物理链路的束。通过这些 AE 捆绑接口发送的流量在 AE 接口的任何成员链路上进行转发。流量可以根据为流量负载均衡而定义的散列值采用任何物理链路,因此很难隔离哪些链路出现了故障或丢失了流量。测试网络中可用转发路径的一种方法是添加单跃点静态标签交换路径 (LSP),下一跃点指向 AE 接口的特定成员链路。
静态 LSP 的默认标签操作必须是弹出和转发。当数据包到达这些标记的路由时,数据包将转发到特定的成员链路。唯一标签用于标识成员链接。这些标签称为邻接分段标识符 (SID),以静态方式配置。
您可以通过在控制器中构造标签堆栈来控制网络中数据包的流动,其中包括由所有传输静态 LSP 分配的标签。操作、管理和维护 (OAM) 数据包经过精心制作,然后通过整个标签堆栈注入网络。
当数据包命中此标签路由时,将弹出标签,并在配置中指定的成员链路上转发流量。转发数据包时选择目标 MAC,目标 MAC 是聚合接口 MAC 地址(根据配置的下一跃点地址选择)。
当成员链路关闭而聚合接口开启时,将删除与该成员链路对应的路由。当聚合接口中断时,与聚合接口的成员链路对应的所有路由都将被删除。当子物理接口已 LACP 分离,但子物理接口已开启时,将删除子链路的标记路由。在 LACP 分离的情况下,如果成员链路处于开启状态且转发状态无效,则当子物理接口分离时,OAM 数据包将在 PFE 中丢弃。
使用以下示例为 AE 成员链路配置单跃点静态 LSP。
定义静态标签范围。
user@host# set protocols mpls label-range static-label-range 1000000 1048575;注意:建议为静态 LSP 配置默认静态标签范围 1000000-1048575。如果要配置默认静态标签范围以外的标签范围,请配置多个范围。
从静态标签范围的分段路由本地块 (SRLB) 池为 AE 成员链路创建静态 LSP。
user@host# set protocols mpls static-label-switched-path statc-lsp transit 100001 pop next-hop 10.1.1.1 member-interface ge-0/0/0
在此配置中,mpls.0 中安装了带有传输标签的路由器,弹出标签,然后下一跃点转发数据包。下一跃点地址对于广播接口(例如 ge-、xe-、ae-)是必需的,而 if-name 用于 P2P 接口(例如 so-)。广播接口需要该地址,因为下一跃点 IP 地址用于选择目标 MAC 地址。数据包的源 MAC 地址是 AE 的 MAC 地址。
示例输出在下一跃点输出中显示成员链路名称:
显示 mpls 静态-lsp 扩展
user@host> show mpls static-lsp extensive Ingress LSPs: Total 0, displayed 0, Up 0, Down 0 Transit LSPs: LSPname: static-lsp1, Incoming-label: 1000001 Description: verify-static-lsp-behavior State: Up, Sub State: Traffic via primary but unprotected Nexthop: 10.2.1.1 Via ae0.0 -> ge-0/0/0 LabelOperation: Pop Created: Thu May 25 15:31:26 2017 Bandwidth: 0 bps Statistics: Packets 0, Bytes 0
显示路由标签标签名称 extensive:
user@host> show route label 1000001 extensive
mpls.0: 14 destinations, 14 routes (14 active, 0 holddown, 0 hidden)
1000001 (1 entry, 1 announced)
TSI:
KRT in-kernel 1000001/52 -> {Pop }
*MPLS Preference: 6
Next hop type: Router, Next hop index: 611
Address: 0xb7a17b0
Next-hop reference count: 2
Next hop: 10.2.1.1 via ae0.0 -> ge-0/0/0 weight 0x1, selected
Label operation: Pop
Load balance label: None;
Label element ptr: 0xb7a1800
Label parent element ptr: 0x0
Label element references: 1
Label element child references: 0
Label element lsp id: 0
Session Id: 0x15d
State: <Active Int>
Age: 3:13:15 Metric: 1
Validation State: unverified
Task: MPLS
Announcement bits (1): 1-KRT
AS path: I
Label 188765184
分段路由流量工程中的非路由器 ID 端点
过去,RSVP-流量工程支持非路由器 ID 端点。将非路由器 ID 端点添加到分段路由流量工程(SR-流量工程)策略中,可在 SR-MPLS 框架内增强跨 IPv4 和 IPv6 的网络灵活性和效率。SR-流量工程中的非路由器 ID 端点允许入口路由器将流量引导到逻辑目标(例如任播服务地址),而不是受限于节点路由器 ID。通过将任播、辅助环路 (lo0) 和接口前缀地址的规范启用为目的点,可以实现稳健的负载平衡和冗余。
传统上,SR-流量工程策略使用路由器 ID,但您可以指定任播地址以增强 SR-MPLS 网络中的冗余和负载平衡。使用 IPv4 和 IPv6 任播地址作为 IGP 获知的目标,无论是否支持 SID 堆栈压缩。这些任播地址不会重新分配(R 位集)。将它们用作具有关联计算配置文件的 SR-流量工程策略的收件人地址。
非路由器 ID 端点在 SR 流量工程中的优势
-
通过面向多个节点播发共享前缀来增强网络灵活性,从而促进有效的负载平衡和冗余。
-
使用任播地址扩展 SR-流量工程配置,为网络设计和优化提供更多选项。
-
改善数据包入口控制,不受额外流量工程约束,从而实现高效的网络管理。
-
优化路由路径以实现稳健的网络性能,确保无缝流量分配并提高弹性。
任播作为目标地址
多个节点可以在整个 IGP 域中通告单个任播 IP 地址(IPv4 或 IPv6)和相应的任播 SID。
任播 SID 是一种标识一组节点的前缀 SID。节点集(任播组)配置为播发共享前缀地址和前缀 SID。任播路由可以将流量定向到多个播发节点,从而提供负载平衡和冗余。寻址到任播地址的数据包将被转发到拓扑上最近的节点。
入口路由器配置了 SR-流量工程策略,使用任播 IP 地址(IPv4 或 IPv6)作为端点。
使用此 show spring-traffic-engineering detail 命令可查看有关非路由器 ID 端点的全面详细信息,其中显示计算的分段和任播 SID 详细信息。使用这些命令可确保正确实施 SR-流量工程策略,从而实现无缝流量分配和路由路径优化。
计算延迟优化的域内和域间分段路由路径
流量工程路径的基于延迟的指标概述
利用基于延迟的动态指标正成为现代网络中一种理想的属性。基于延迟的指标对于路径计算元素 (PCE) 计算流量工程路径至关重要。您可以使用基于延迟的指标来引导数据包走上延迟最小路径或延迟最小路径。为此,您需要测量每个链路上的延迟,并使用合适的路由协议(IGP 或 BGP-LS)对其进行通告,以便入口在其 TED 中具有“每链路延迟”属性。
若要了解如何在每个链路上通告延迟或启用链路测量,请参阅 如何在 IS-IS 中启用链路延迟测量和通告。
当您测量、通告和计算网络变化的检测并计算具有最短延迟的流量工程路径时,将发生以下事件序列:
- 通过使用合成探测、路由器到路由器测量延迟来检测网络变化。
- 通过 IGP 扩展流量工程度量扩展将结果泛洪到入口节点。
- 通过相应的 BGP-LS 扩展将结果通告到集中式控制器。
- 计算基于 IGP 的最短累积延迟指标路径 (Flex-algo)。
- 计算流量设计的显式路径(从源到目标),并具有最短的累积延迟或延迟指标 (SR-流量工程)。
基于延迟的路径计算指标的好处
- 在整个网络中基于最低延迟部署增值服务。
- 使用基于延迟的指标测量每条路径的延迟(最小、最大、平均)。
- 在超低延迟 SR 优化路径上引导延迟敏感型服务(例如 VPN 或 5G 服务)。
基于 DCSPF 的计算(带有 SR 路径的延迟指标)概述
使用分布式约束最短路径优先 (CSPF) 分段路由 LSP 功能,您可以根据配置的约束在入口设备上本地计算分段路由 LSP。借助此功能,可以根据配置的约束和指标类型(流量工程或 IGP)对 LSP 进行优化。计算 LSP 是为了利用到启用或禁用分段路由标签堆栈压缩的目标的可用 ECMP 路径。
您可以将分布式 CSFP 配置为在多个前端上运行,并在每个前端独立执行路径计算。您可以在源路径(源数据包路由路径)上应用计算配置文件。如果已配置针对延迟平均值进行优化的计算配置文件,则还可以额外应用名为 delay-variation-threshold的约束。当您为 配置 delay-variation-threshold值时,任何超过阈值的链路都将从路径计算中排除。
要为基于 DCSPF 的 SR 路径计算配置延迟指标,需要在 [edit protocols source-packet-routing compute-profile profile-name metric-type delay] 层次结构级别启用delay配置语句。您可以配置延迟指标,例如最小值、最大值、平均值和延迟变化阈值来计算路径。
minimum—来自 TED 的最小延迟指标值,用于计算累积最低延迟路径。average—来自 TED 的平均延迟指标值,用于计算累积最低延迟路径。maximum—来自 TED 的最大延迟指标值,用于计算累积最低延迟路径。delay-variation-threshold- 链路延迟变化阈值 (1..16777215)。任何超过延迟变化阈值的链路都将从路径计算中排除。延迟变化阈值与您是针对最小值、最大值还是平均值进行优化无关。delay-variation-threshold配置语句显示在以下层级:-
[
edit protocols source-packet-routing compute-profile profile-name metric-type delay] -
[
edit protocols source-packet-routing compute-profile profile-name metric-type delay minimum] -
[
edit protocols source-packet-routing compute-profile profile-name metric-type delay maximum] -
[
edit protocols source-packet-routing compute-profile profile-name metric-type delay average]
-
您可以在以下 CLI 层次结构中配置延迟指标:
[edit]
protocols {
source-packet-routing {
compute-profile <name> {
metric-type delay {
minimum;
maximum;
average;
delay-variation-threshold <value>;
}
}
}
}
域间和域内用例的延迟指标概述
对于域内情况(路径驻留在单个域内),在进行路径计算时会考虑链路延迟。压缩的 SID 和未压缩的 SID 都支持分段路由路径计算的延迟指标。如果您有未压缩的 SID,则如果成本相等,则使用分段列表的邻接分段来生成多个分段列表。您可以在 [edit protocols source-packet-routing compute-profile profile-name ] 层次结构级别使用 configuration 语句配置no-label-stack-compression未压缩的 SID。这会使用邻接 SID 提供完全扩展的路径。有关详细信息,请参阅 compute-profile。
以下是延迟指标的配置示例:
[edit protocols source-packet-routing]
user@host# show
compute-profile profile1 {
no-label-stack-compression;
metric-type {
delay {
minimum;
delay-variation-threshold 300;
}
}
}
对于光路计算,建议使用最小延迟指标。最小值是默认配置。
对于存在多个自治系统的域间(多域)用例,您可以使用快速分段来配置用于路径计算的链路延迟。Express 分段是连接边界节点或 ASBR 的链路。请参阅 Express 分段 LSP 配置 了解 Express 分段。您可以在 Express 分段中配置或继承底层 LSP 的延迟。您可以在 [edit protocols express-segments segment-template template-name metric] 层级进行配置delay,并设置最小、最大和平均延迟值。
您可以在以下 CLI 层次结构的 Express 分段中配置延迟指标:
[edit]
protocols {
express-segments {
segment-template <name> {
metric delay [ min <value> | avg <value> | max <value>
}
}
}
对于域间路径计算,您可以在 BGP EPE 链路上分配延迟指标。您可以在 [edit protocols bgp group group-name neighbor ip address egress-te-adj-segment segment-name egress-te-link attribute] 层次结构级别配置一个delay-metric值,如下所示:
[edit]
protocols {
bgp {
group <name> {
type external;
}
neighbor <ip_addr> {
egress-te-adj-segment <name> {
egress-te-link-attribute {
delay-metric <value>
}
}
}
}
}
光纤网络用例中的延迟指标
以下拓扑描述了光学用例的示例。光保护和恢复解决方案会导致底层物理属性(主要是路径长度)由于链路故障和随后的 DWDM 网络优化而发生变化。
在图中,A 和 C 之间的链路通过光节点 O1 和 O3,延迟为 10 微秒。在图中,您可以看到光节点 O1 和 O3 之间的链路故障,并且实际的光连接已通过光节点 O2 重新路由。这会增加 15 微秒的延迟。连接 A 和 B 的链路的度量在 time=0 和 time=1 之间动态变化。
当入口检测到每个链路延迟的变化时,入口会触发延迟优化路径的重新计算,并且前端路由器会将路径路由到下一个可用的最小延迟路径。链路延迟的变化可能会导致入口选择另一组延迟路径最小的链路。在图 B 中,您可以看到路径 A 和 C 之间的链路发生了变化,前端路由器重新路由并选择路径 A-B-C,如拓扑中所示。
了解 SRv6 流量工程隧道本地路径计算
概述
对 SRv6 流量工程隧道实施本地计算,包括经典和微分段 SID (uSID),可以显著增强网络中的路径计算能力。通过启用本地路径计算,您可以根据当前的网络拓扑和约束,使用 SRv6 SID 动态、高效地计算流量工程路径。通过配置选项,您可以启用 SRv6 流量工程路径计算、附加计算配置文件以及设置 IGP 实例和拓扑约束。此外,对 SID 类型的偏好以及对通过 SRv6 流量工程计算隧道的无缝双向转发检测 (sBFD) 的支持可确保优化的路由和较高的网络效率,使此功能成为可扩展和自适应网络设计不可或缺的一部分。
SRv6 的优势 流量工程隧道本地计算
-
基于实时拓扑和约束动态计算流量工程路径,减少不必要的开销并提高资源利用率,从而优化网络效率。
-
通过支持经典 SRv6 SID 和 uSID,增强可扩展性,从而更高效地路由和管理分段列表。
-
通过本地计算促进自适应路由,从而能够快速调整网络变化,而无需依赖外部计算源。
-
通过支持 SRv6 流量工程隧道上的 sBFD,提供强大的故障检测和响应机制,确保较高的网络效率和可靠性。
配置 SRv6 流量工程隧道本地路径计算
要配置 SRv6 流量工程路径计算,请使用以下 CLI 配置:
了解 BGP VPN 选项 C 基于 SRv6 的 MPLS
BGP VPN 选项 C 结合 MPLS over 分段路由 for IPv6 (SRv6),通过促进适用于 IPv4 的 SR-MPLS (SR-MPLS-IPv4) 与 SRv6 域之间的无缝互通,增强多域网络架构。此功能将 SRv6 用作传输层,允许您通告 SRv6 分段标识符 (SID) 以及 MPLS 标签,以实现最佳路由和转发。
- 与 SRv6 相比 MPLS 的 BGP VPN 选项 C 的优势
- 概述
- BGP-LU LSP 跨 SRv6 域建立隧道
- 为 BGP-LU 地址家族启用 SRv6 信令
- 出口路由行为
- 入口路由行为
- 传输路由行为
- 配置 end-dtm-sid
- 为 BGP-LU 地址族配置 advertise-srv6-service
- 为 BGP-LU 地址族配置 accept-srv6-service
- 使用策略配置 end-dtm-sid
与 SRv6 相比 MPLS 的 BGP VPN 选项 C 的优势
-
通过实现 MPLS 和 SRv6 域的无缝集成,增强网络可扩展性,促进多域环境中的高效路由。
-
通过 SRv6 分段标识符 (SID) 和 MPLS 标签提高路由灵活性,从而实现动态传输场景和最佳数据包交付。
-
通过支持入口、出口和中转路由配置,实现对路由路径的精确控制,确保准确的标签操作和高效的数据转发。
-
通过为 SRv6 动态 SID 提供高可用性支持,最大限度减少服务中断,从而提高网络的稳健性和可靠性。
-
允许在 BGP-LU 地址家族中播发和接受 SRv6 服务,从而支持高级网络运维,从而增强跨复杂网络设置的互操作性和服务管理。
概述
考虑一个多域网络,其中有一个中心域 (C),周围有许多叶域。服务从入口叶域 (LI) 中的入口 PE 流经中央 (C) 域,一直到出口叶域 (LE) 的出口 PE。每个域运行自己的 IGP 实例。叶域(LI 和 LE)使用 MPLS 数据平面 (SR-MPLS-IPv4),而中央域 (C) 使用 SRv6 数据平面。
提供商边缘设备通过服务路由反射器运行基于 MPLS 的 BGP L3(例如 VPN)服务。通过边界路由器和相应转发状态的服务端点信令提供中间传输域上的互连。入口 PE 将有效负载封装在 MPLS 服务标签中,并通过 MPLS LSP 将其发送至出口 PE。传输节点通过 SRv6 C 域将封装标签堆栈转发至出口 PE。
BGP 标签单播 (BGP-LU) 通告跨多域网络的 PE IPv4 环路的传输可达性。边界路由器上的下一跳自连接提供了不同域中域内隧道技术的独立性。基于 MPLS 的 L3 BGP 服务通过服务路由反射器 (RR) 通过出口 PE 的 IPv4 下一跃点发出信号,没有彩色扩展社区。入口 PE 需要对远程 PE IPv4 环路地址进行标记的可访问性,通过服务路由播发为下一跃点。BGP-LU 通告 IPv4 PE 环路。下一跳自在边界路由器上执行。
BGP-LU LSP 跨 SRv6 域建立隧道
-
边界路由器上每个 PE IPv4 环路地址的现有 BGP-LU 标签交叉连接。
-
入口边界路由器的查找基于 BGP-LU 标签。
-
到下一跃点的 SR-MPLS IGP 标签由 IPv6 隧道替换,其中 DA = SRv6 SID 与 SRv6 中心域中的 DTM 行为相关联。
-
入口边界路由器转发执行标签交换和 H.Encaps.M,其中 DA = SRv6 SID 与 DTM 行为关联。
为 BGP-LU 地址家族启用 SRv6 信令
您可以通过以下方式为 BGP-LU 地址族启用 SRv6 信令:
-
启用
advertise-srv6-serviceaccept-srv6-serviceCLI 语句,用于为 BGP-LU 地址家族播发 SRv6 服务 TLV。 -
支持 SRv6 隧道,用于 BGP 前缀 SID 属性的标签路由,以向 SRv6 SID 以及绑定到 NLRI 中前缀的 MPLS 标签发出信号。标签路由 TLV 的 SRv6 隧道在前缀 SID 属性中与 SRv6 服务 TLV 的编码方式完全相同。
-
在 BGP-LU 地址族中播发终端 DTM SID,而不在 SRv6 SID 信息 SRv6 隧道的子 TLV 中进行任何转置,用于前缀 SID 属性中的标签路由 TLV。
出口路由行为
配置端 dtm SID 后,端 dtm SID 路由将添加到 inet6.0 表中,指向 mpls.0 表下一跃点,并具有端点解封装和 MPLS 表查找行为。对于 end-dtm-sid,还添加了严格 sid 路由。
入口路由行为
入口边界路由器执行标签推送和 H.Encaps.M.red,并将 IPv6 标头目标地址作为 SRv6 隧道中接收的 SRv6 SID,用于前缀 SID 属性的标签路由 TLV。
传输路由行为
中转边界路由器执行标签交换和 H.Encaps.M.red,IPv6 标头目标地址作为 SRv6 隧道中接收的 SRv6 SID,用于前缀 SID 属性的标签路由 TLV。
配置 end-dtm-sid
配置静态或动态 end-dtm-sid。定位器可以是 flex algo 定位器。
user@host# set protocols bgp source-packet-routing srv6 locator locator-name end-dtm-sid [sid-value | non-default]
end-dtm-sid 是具有解封装和 MPLS 表查找行为的端点。
非默认 sid 只能通过策略应用于 BGP-LU 前缀。
为 BGP-LU 地址族配置 advertise-srv6-service
如果配置了 CLI 语句,则 advertise-srv6-service 仅在 BGP 前缀 SID 属性中播发标签路由 TLV 的 SRv6 隧道。该 advertise-srv6-service 语句适用于发起。该语句不适用于传播。
user@host# set protocols bgp group internal-peers family inet labeled-unicast advertise-srv6-service OR user@host# set protocols bgp family inet labeled-unicast advertise-srv6-service user@host# set protocols bgp group internal-peers family inet6 labeled-unicast advertise-srv6-service OR user@host# set protocols bgp family inet6 labeled-unicast advertise-srv6-service
为 BGP-LU 地址族配置 accept-srv6-service
如果配置了 accept-srv6-service CLI 语句,则仅接受 BGP 前缀 SID 属性中存在的标签路由 TLV 的 SRv6 隧道。
user@host# set protocols bgp group internal-peers family inet labeled-unicast accept-srv6-service OR user@host# set protocols bgp family inet labeled-unicast accept-srv6-service user@host# set protocols bgp group internal-peers family inet6 labeled-unicast accept-srv6-service OR user@host# set protocols bgp family inet6 labeled-unicast accept-srv6-service
使用策略配置 end-dtm-sid
SRv6 CLI 语句已增强,可配置 SRv6 SID 类型:end-dtm-sid。
user@host# set policy-options policy-statement policy-name term term-name then srv6 end-dtm-sid
特定于平台的分段路由 LSP 行为
使用 功能资源管理器 确认平台和版本对特定功能的支持。
使用下表查看平台的特定于平台的行为:
特定于平台的分段路由 LSP 行为
| 平台 | 差异 |
|---|---|
| ACX 系列 |
|
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。