MPLS 故障排除

验证 MPLS 接口

目的

如果网络中的路由器上未正确配置 MPLS 协议,则接口将无法执行 MPLS 交换。

注意:

要通过接口解析标记路由, family mpls 必须在层次结构级别上 [edit interfaces] 配置,才能成功解析路由。如果接口未配置 family mpls,则不会解析带标签的路由。

行动

要验证 MPLS 接口,请输入以下 Junos OS 命令行界面 (CLI) 操作模式命令:

示例输出 1

命令名称

以下示例输出适用于 MPLS 网络拓扑中显示的网络中的所有路由器。

示例输出 2

命令名称

示例输出 3

命令名称

意义

示例输出 1 显示网络中所有路由器上的所有 MPLS 接口均已启用(正常),可以执行 MPLS 交换。如果未能在 [edit protocols mpls] 层级配置正确的接口或在 [edit interfaces type-fpc/pic/port unit number ] 层级包含该family mpls 语句,则该接口无法执行 MPLS 交换,并且不会显示在命令的show mpls interface输出中。

未在 MPLS 网络拓扑示例网络中显示的任何接口上配置管理组。但是,如果是,则输出将指示路由器上启用了哪些关联类位。

示例输出 2 显示接口 so-0/0/2.0 缺失,因此可能配置不正确。例如,接口可能不包含在 [edit protocols mpls] 层次结构级别,或者 family mpls 语句可能不包含在 [edit interfaces type-fpc/pic/port unit number] 层次结构级别中。如果接口配置正确,RSVP 可能尚未通过此接口发出信号。有关确定哪个接口配置不正确的更多信息,请参阅 验证协议族。

示例输出 3 显示,MPLS 协议未在 [edit protocols mpls] 层次结构级别配置。

验证协议族

目的

如果逻辑接口未启用 MPLS,则无法执行 MPLS 交换。通过此步骤,您可以快速确定哪些接口配置了 MPLS 和其他协议家族。

行动

要验证网络中路由器上配置的协议族,请输入以下 Junos OS CLI 操作模式命令:

示例输出 1

命令名称

示例输出 2

命令名称

意义

示例输出 1 显示接口、链路的管理状态 (Admin)、链路的数据链路层状态 (Link)、接口上配置的协议族 (Proto) 以及接口上的本地和远程地址。

MPLS 网络拓扑中显示的网络中所有路由上的所有接口均通过 MPLS 和 IS-IS 在数据链路层进行管理启用和运行,并具有 inet 地址。所有协议都配置了 IPv4 协议家族 (inet),并在 [edit interfaces type-fpc/pic/port unit number] 层次结构级别配置了 IS-IS (iso) 和 MPLS (MPLS) 协议家族。

示例输出 2 显示,R6 上的接口 so-0/0/2.0 层 mpls次结构级别不type-fpc/pic/portnumber包含该语句。

验证 MPLS 配置

目的

检查中转路由器和入口路由器后,使用 traceroute 命令验证 BGP 下一跃点,并使用命令 ping 验证活动路径后,即可在层次结构级别检查 [edit protocols mpls] [edit interfaces] MPLS 配置是否存在问题。

注意:

要通过接口解析标记路由, family mpls 必须在层次结构级别上 [edit interfaces] 配置,才能成功解析路由。如果接口未配置 family mpls,则不会解析带标签的路由。

行动

要验证 MPLS 配置,请从入口、中转和出口路由器输入以下命令:

示例输出 1

命令名称

示例输出 2

命令名称

意义

入口、中转和出口路由器的示例输出 1 显示出口路由器 R6 上的接口配置不正确。接口 so-0/0/3.0 在 [edit protocols mpls] 层次结构级别被列为非活动状态,而此时它应该处于活动状态,因为它是 LSP 传输的接口。

示例输出 2 显示,出口路由器 R6 上的 MPLS 接口已正确配置。入口路由器和中转路由器上的接口也已正确配置(未显示)。

检查 MPLS 层

目的

配置标签交换路径 (LSP) 并发出 show mpls lsp 命令并确定存在错误后,您可能会发现错误不在物理层、数据链路层、互联网协议 (IP)、内部网关协议 (IGP) 或资源预留协议 (RSVP) 层。继续调查网络 MPLS 层的问题。

图 1 展示了分层MPLS模型的MPLS层。

图 1:检查 MPLS 层 Layered troubleshooting guide for Juniper Networks devices, detailing commands for diagnosing network stack layers from physical to application, including protocols like OSPF, IS-IS, RSVP, MPLS, and BGP.

使用 MPLS 层,您可以检查 LSP 是否已启动并正常运行。如果网络在此层未正常运行,则 LSP 将无法按配置工作。

图 2 展示了本主题中使用的 MPLS 网络。

图 2:MPLS 层 Network diagram of Autonomous System 65432 with routers R1 to R6. Solid lines show physical connections; dashed lines indicate LSP-bidirectional traffic. Link failure marked between R3 and R6. Key provides interface naming conventions and IP address formats. IGP is OSPF or IS-IS.断开的 MPLS 网络

图 2 所示的网络采用全网状配置,其中每个直接连接的接口都可以接收数据包,并将其发送到所有其他类似接口。此网络中的 LSP 配置为从入口路由器 R1 运行,穿过中转路由器 R3,再到出口路由器 R6。此外,反向 LSP 配置为从 R6 到 R3 再到 R1 运行,从而创建双向流量。

但是,在此示例中,反向 LSP 处于关闭状态,没有从 R6 到 R1 的路径。

图 2 中显示的十字表示 LSP 断开的位置。LSP 损坏的一些可能原因可能包括 MPLS 协议配置不正确,或为 MPLS 配置不正确的接口。

在 图 2 所示的网络中,出口路由器 R6 上的配置错误导致 LSP 无法按预期遍历网络。

要检查 MPLS 层,请执行以下步骤:

验证 LSP

目的

通常,使用命令show mpls lsp extensive 来验证 LSP。但是,要快速验证 LSP 状态,请使用命令show mpls lsp。如果 LSP 关闭,请使用 extensive 选项(show mpls lsp extensive) 作为后续。如果您的网络有多个 LSP,您可以考虑使用 name 选项(或 extensive)nameshow mpls lsp name指定 LSP 的名称。name show mpls lsp name

行动

要验证 LSP 是否已开启,请从入口路由器输入以下部分或全部命令:

示例输出 1
命令名称
示例输出 2
命令名称
示例输出 3
命令名称
示例输出 4
命令名称

意义

示例输出 1 显示了入口、中转和出口路由器的 LSP 状态的简要说明。入口路由器 R1 和出口路由器 R6 的输出显示, R1 到 R6 和 R6 到 R1 的两个 LSP 均已关闭。使用 R1 和 R6 上配置的 LSP,我们预计 R1 和 R6 上都有出口 LSP 会话。此外,中转路由器 R3 没有中转会话。

示例输出 2 显示有关 LSP 的所有信息,包括所有过去的状态历史记录和 LSP 失败的原因。 R1 和 R6 的输出表明,由于约束最短路径优先 (CSPF) 算法失败,因此没有到目标的路由。

示例输出 3 和 4 显示了带有 extensive 选项的show mpls lsp name 命令的输出示例。在此实例中,输出与show mpls lsp命令非常相似,因为在 MPLS 层断开的 MPLS 网络中的示例网络中仅配置了一个 LSP。但是,在配置了许多 LSP 的大型网络中,两个命令之间的结果会大不相同。

验证中转路由器上的 LSP 路由

目的

如果 LSP 已启动,则 LSP 路由应显示在 mpls.0 路由表中。MPLS 维护一个 MPLS 路径路由表 (MPLS.0),其中包含每个 LSP 中下一个标签交换路由器的列表。此路由表在中转路由器上用于将数据包路由到 LSP 上的下一个路由器。如果过渡路由器的输出中没有路由,请检查入口和出口路由器上的 MPLS 协议配置。

行动

要验证中转路由器上的 LSP 路由,请从中转路由器输入以下命令:

示例输出 1
命令名称
示例输出 2
命令名称

意义

中转路由器 R3 的示例输出 1 以 MPLS 标签条目的形式显示三个路由条目。这些 MPLS 标签是在 RFC 3032 中定义的保留 MPLS 标签,无论 LSP 的状态如何,它们始终存在于 mpls.0 路由表中。输出中缺少 RSVP 分配给上游邻接方的传入标签,表示 LSP 已关闭。有关 MPLS 标签条目的详细信息,请参阅 验证 LSP 使用情况的清单。

相比之下,示例输出 2 显示了正确配置的 LSP 的 MPLS 标签和路由。存在三个保留的 MPLS 标签,其他四个条目表示 RSVP 分配给上游邻接方的传入标签。这四个条目代表两条路线。每个路由有两个条目,因为 MPLS 报头中的堆栈值可能不同。对于每个路由,第二个条目 100864 (S=0) 和 100880 (S=0) 表示堆栈深度不是 1,并且数据包中包含其他标签值。相比之下,第一个条目 100864 和 100880 具有推断的 S=1 值,该值表示堆栈深度为 1,并使每个标签成为该特定数据包中的最后一个标签。双条目表示这是倒数第二个路由器。有关 MPLS 标签堆叠的详细信息,请参阅 RFC 3032,MPLS 标签堆栈编码。

验证入口路由器上的 LSP 路由

目的

检查指定地址的 inet.3 路由表中的活动条目中是否包含 LSP 路由。

行动

要验证 LSP 路由,请从入口路由器输入以下命令:

示例输出 1
命令名称
示例输出 2
命令名称

意义

示例输出 1 仅显示 inet.0 路由表中的条目。输出中缺少 inet.3 路由表,因为 LSP 无法正常工作。内部网关协议 (IGP) 和边界网关协议 (BGP) 使用 inet.0 路由表来存储路由信息。在这种情况下,IGP 是中间系统到中间系统 (IS-IS)。有关 inet.0 路由表的更多信息,请参阅 Junos MPLS 应用程序配置指南。

如果 LSP 正常工作,我们期望在 inet.3 路由表中看到包含 LSP 的条目。入口路由器上使用 inet.3 路由表,将 BGP 数据包路由到目标出口路由器。BGP 使用入口路由器上的 inet.3 路由表来帮助解析下一跃点地址。BGP 配置在 MPLS 层断开的 MPLS 网络中显示的示例网络中。

示例输出 2 显示了 LSP 启动时应收到的输出。输出显示 inet.0 和 inet.3 路由表,表示 LSP R1 到 R6 和 R6 到 R1 可用。

使用 traceroute 命令验证 MPLS 标签

目的

显示数据包到 BGP 目标的路由,其中该路由的 BGP 下一跃点是 LSP 出口地址。默认情况下,BGP 使用 inet.0 和 inet.3 路由表来解析下一跃点地址。当 BGP 路由的下一跃点地址不是出口路由器的路由器 ID 时,流量将映射到 IGP 路由,而不是 LSP。将 traceroute 命令用作调试工具,以确定是否正在使用 LSP 转发流量。

行动

要验证 MPLS 标签,请从入口路由器输入以下命令:

示例输出 1
命令名称
示例输出 2
命令名称

意义

示例输出 1 显示 BGP 流量未使用 LSP,因此 MPLS 标签不会显示在输出中。BGP 流量不使用 LSP,而是使用 IGP( MPLS 网络在 MPLS 层断开的示例网络中为 IS-IS)到达 BGP 下一跃点 LSP 出口地址。当 BGP 下一跃点等于 LSP 出口地址时,Junos OS 默认行为将 LSP 用于 BGP 流量。

示例输出 2 是正确配置的 LSP 的输出示例。输出显示 MPLS 标签,指示 BGP 流量正在使用 LSP 到达 BGP 下一跃点。

使用 ping 命令验证 MPLS 标签

目的

对特定 LSP 使用 Ping 命令时,请检查回显请求是否通过 LSP 作为 MPLS 数据包发送。

行动

要验证 MPLS 标签,请从入口路由器输入以下命令,以对出口路由器 ping 命令:

例如:

示例输出 1
命令名称
示例输出 2
命令名称

意义

示例输出 1 显示 LSP 没有用于转发回显请求的活动路径,表示 LSP 已关闭。

示例输出 2 是 LSP 启动并转发数据包时应收到的输出示例。

采取适当的行动

问题

描述

根据您在调查中遇到的错误,您必须采取适当的措施来更正问题。在此示例中,出口路由器 R6 上的 [edit protocols mpls] 层次结构级别的接口配置不正确。

解决方案

要更正此示例中的错误,请执行以下步骤:

  1. 在出口路由器 R6 上的 MPLS 协议配置中激活接口:

  2. 验证并提交配置:

示例输出
意义

示例输出显示,出口路由器 R6 上配置不正确的接口 so-0/0/3.0 现已在 [edit protocols mpls] 层次结构级别激活。LSP 现在可以启动了。

再次验证 LSP

目的

采取适当的措施纠正错误后,需要再次检查 LSP,以确认 BGP 层中的问题已解决。

行动

要再次验证 LSP,请从入口、中转和出口路由器输入以下命令:

示例输出
命令名称

意义

入口路由器 R1 的示例输出 1 显示,LSP R1 到 R6 有到 R6 的活动路由,并且状态为 up。

中转路由器 R3 的示例输出 2 显示有两个中转 LSP 会话,一个从 R1 到 R6 ,另一个从 R6 到 R1。两个 LSP 都已启动。

出口路由器 R6 的示例输出 3 显示 LSP 已开启,活动路由是主路由。LSP 现在正沿预期路径遍历网络,从 R1 到 R3 再到 R6,反向 LSP 从 R6 到 R3 再到 R1。

验证一对一备份

目的

您可以通过检查入口路由器和网络中的其他路由器来验证是否建立了一对一备份。

行动

要验证一对一备份,请输入以下 Junos OS CLI 操作模式命令:

示例输出

命令名称

以下示例输出来自入口路由器 R1 :

意义

R1 的示例输出显示,FastReroute 所需对象包含在 LSP 的路径消息中,允许 R1 为 LSP 选择活动路径并建立绕行路径以避开 R2。

在第 8 行中, Fast-reroute Detour Up 显示绕行可操作。第 6 行和第 7 行表示,中转路由器 R2 和 R4 已建立其绕行路径。

R2,10.0.12.14,包括(flag=9),表示下游节点和链路可以进行节点保护。R4(10.0.24.2)包括(flag=1),表示链路保护可用于下一个下游链路。在这种情况下,R4 只能保护下行链路,因为该节点是无法保护的出口路由器 R5。有关标志的更多信息,请参阅 Junos 用户指南。

命令 show mpls lsp extensive 的输出不显示绕行的实际路径。要查看绕行路径使用的实际链路,必须使用命令 show rsvp session ingress detail 。

示例输出

以下示例输出来自一对一备份绕行中显示的网络中的入口路由器 R1。

意义

R1 的示例输出显示了主 LSP 的 RSVP 会话。绕行路径建立,绕行向上。绕行的物理路径显示在绕行路线中。绕行路径使用 R7 和 R9 作为中转路由器,以到达 R5(出口路由器)。

示例输出

以下示例输出来自 一对一备份绕行中显示的网络中的第一个中转路由器 R2:

意义

R2 的示例输出显示已建立绕行(绕行为 Up)并避开 R4,以及连接 R4 和 R5 的链路 (10.0.45.2)。绕行路径通过 R7 (10.0.27.2) 和 R9 (10.0.79.2) 到 R5 (10.0.59.1),这与从 R1 绕行的显式路径不同。R1 的绕行通过 R7 上的 10.0.17.14 链路,而 R1 使用 10.0.27.2 链路。两个绕行在 R9 处通过 10.0.79.2 链接到 R5 (10.0.59.1) 合并。

示例输出

以下示例输出来自一 对一备份绕行中显示的网络中的第二个中转路由器 R4:

意义

R4 的示例输出显示已建立绕行(绕行为 Up)并避开连接 R4 和 R5 的链路 (10.0.45.2)。绕行路径是通过 R9 (10.0.49.2) 到 R5 (10.0.59.1)。某些信息与 R1 和 R2 的输出中的信息相似。但是,绕行的显式路由不同,通过连接 R4 和 R9 的链路(so-0/0/3 或 10.0.49.2。

示例输出

以下示例输出来自 R7,用于 一对一备份绕行中显示的网络中的绕行路径:

意义

R7 的示例输出显示的信息与 LSP 主路径中使用的常规中转路由器的信息相同:入口地址 (192.168.1.1)、出口地址 (192.168.5.1) 和 LSP 名称(r1 到 r5)。显示两条绕行路径;第一个避开 R4 (192.168.4.1),第二个避开 R2 (192.168.2.1)。由于 R7 用作 R2 和 R4 的中转路由器,因此 R7 可以将绕行路径合并在一起,如两个绕行路径的相同标记输出值 (100368) 所示。无论 R7 接收来自标签值为 100736 的 R4 的流量,还是接收来自标签值为 100752 的 R2 的流量,R7 都会将数据包转发到标签值为 100368 的 R5。

示例输出

以下示例输出来自 R9,它是 一对一备份绕行中所示的网络绕行路径中使用的路由器:

意义

R9 的示例输出显示,R9 是绕行路径的倒数第二个路由器,显式路由仅包含出口链路地址 (10.0.59.1),标签输出值 (3) 表示 R9 已执行倒数第二个跃点标签弹出。此外,10.0.27.1 的绕行分支不包括路径信息,因为 R7 已合并 R2 和 R4 的绕行路径。请注意,从 10.0.17.13 绕行分支中的 Label out 值为 100368,与 R7 上的 Label out 值相同。

示例输出

以下示例输出来自 一对一备份绕行中所示的网络中的出口路由器 R5:

意义

R5 的示例输出显示了记录路由字段中的主 LSP 和通过网络的绕行。

验证主路径是否可操作

目的

如果主路径可用,则必须始终在网络中使用,因此除非调整配置,否则 LSP 始终在发生故障后移回主路径。有关调整配置以防止重新建立失败的主路径的详细信息,请参阅 阻止使用之前失败的路径。

行动

要验证主路径是否正常运行,请输入以下 Junos OS 命令行界面 (CLI) 操作模式命令:

示例输出 1

命令名称

示例输出 2

命令名称

意义

示例输出 1 显示 LSP 已正常运行,并且正在使用主路径 (via-r2),并将 R2 (10.0.12.14) 和 R4 (10.0.24.2) 用作过渡路由器。设置和保持的优先级值相同, 6 6。优先级 0 是最高(最佳)优先级,7 是最低(最差)优先级。设置和保持优先级的 Junos OS 默认值为 7:0。除非某些 LSP 比其他 LSP 更重要,否则保留默认值是一个很好的做法。不允许配置优于保留优先级的安装优先级,这会导致提交失败,以避免抢占环路。

验证辅助路径是否已建立

目的

使用 standby 语句配置辅助路径时,辅助路径应为 开启 但 未激活;如果主路径出现故障,辅助路径将变为活动状态。除非主路径出现故障,否则不带语 standby 句配置的辅助路径将不会启动。要测试辅助路径配置是否正确,以及在主路径出现故障时是否启动,必须停用对主路径至关重要的链路或节点,然后发出 show mpls lsp lsp-path-name extensive 命令。

行动

要验证辅助路径是否已建立,请输入以下 Junos OS CLI 操作模式命令:

示例输出

示例输出

命令名称

以下示例输出显示了启动前后正确配置的辅助路径。在此示例中,R2 上的接口 fe-0/1/0 被停用,这会导致主路径 via-r2 关闭。入口路由器 R1 通过 r7 将流量切换到辅助路径。

意义

出口路由器 R1 的示例输出显示,由于主路径仍处于运行状态,因此正确配置的备用辅助路径处于关闭状态。停用对主路径至关重要的接口(R2 上的接口 fe-0/1/0)后,主路径 via-r2 将关闭,备用辅助路径 via-r7 启动,从而允许 R1 将流量切换到备用辅助路径。

验证物理层

目的

配置 LSP 并发出 show mpls lsp extensive 命令并确定存在错误后,您可以开始在网络的物理层调查问题。

图 3 展示了分层 MPLS 模型的物理层。

图 3:验证物理层 Reference table of Juniper Networks troubleshooting commands by protocol layers: BGP, MPLS, RSVP, IGP OSPF and IS-IS, IP, Data Link, and Physical.

对于这一层,您必须确保路由器已连接,并且入口、出口和中转路由器上的接口已开启且配置正确。

如果网络在此层无法正常运行,则标签交换路径 (LSP) 将无法按配置工作。

图 4 说明了 MPLS 网络和本主题中描述的问题。

图 4:MPLS 网络在物理层 Network topology diagram with six routers R1 to R6 showing physical connections, Label Switched Paths, and alternate routes. R1 is ingress, R6 is egress. All routers in AS 65432.中断

图 4 所示的网络采用全网状配置,其中每个直接连接的接口都可以接收数据包,并将其发送到所有其他类似接口。此网络中的 LSP 配置为从入口路由器 R1 运行,穿过中转路由器 R3,再到出口路由器 R6。此外,反向 LSP 配置为从 R6 到 R3 再到 R1 运行,从而创建双向流量。

但是,在此示例中,流量不会使用配置的 LSP。相反,流量使用从 R1 到 R2 到 R6 的备用路由,以及从 R6 到 R5 到 R1 的相反方向的备用路由。

当您发现使用备用路由而不是配置的 LSP 的情况时,请验证物理层是否正常运行。您可能会发现路由器未连接,或者入口、出口或中转路由器上的接口未开启且配置不正确。

图 4 中显示的十字表示由于入口路由器 R1 上的配置错误而导致 LSP 中断的位置。

要检查物理层,请执行以下步骤:

验证 LSP

目的

通常,使用命令show mpls lsp extensive 来验证 LSP。但是,要快速验证 LSP 状态,请使用命令show mpls lsp。如果 LSP 关闭,请使用 extensive 选项(show mpls lsp extensive) 作为后续。如果您的网络有多个 LSP,您可以考虑使用 name 选项(或 extensive)nameshow mpls lsp name指定 LSP 的名称。name show mpls lsp name

行动

要确定 LSP 是否已开启,请从入口路由器输入以下命令:

示例输出
命令名称

意义

入口路由器 R1 的示例输出显示,LSP 使用的是备用路径,而不是配置的路径。LSP 的配置路径为 R1 到 R3 到 R6,反向 LSP 的配置路径为 R6 到 R3 到 R1。LSP 使用的替代路径是 R1 到 R2 到 R6,对于反向 LSP,R6 从 R5 到 R1。

验证路由器连接

目的

通过检查数据包是否已接收和传输且丢包率为 0%,以确认相应的入口、中转和出口路由器是否正常运行。

行动

要确定路由器是否已连接,请从入口路由器和中转路由器输入以下命令:

示例输出
命令名称

意义

示例输出显示入口路由器 R1 正在从中转路由器 R3 接收数据包,而中转路由器正在从出口路由器接收数据包。因此,LSP 中的路由器已连接。

验证接口

目的

使用语句确认接口配置正确 family mpls 。

行动

要确定相关接口已开启且配置正确,请从入口路由器、中转路由器和出口路由器输入以下命令:

示例输出
命令名称

意义

示例输出显示,入口路由器上的接口 so-0/0/2.0 没有 family mpls 在 [edit interfaces type-fpc/pic/port] 层次结构级别配置该语句,这表明接口配置不正确,无法支持 LSP。LSP 在 [edit protocols mpls] 层级正确配置。

中转路由器和出口路由器的输出(未显示)显示,这些路由器上的接口配置正确。

采取适当的行动

问题

描述

根据您在调查中遇到的错误,您必须采取适当的措施来更正问题。在以下示例中, family mpls 缺少的语句包含在入口路由器 R1 的配置中。

解决方案

要更正此示例中的错误,请输入以下命令:

示例输出
意义

入口路由器 R1 的示例输出显示, family mpls 该语句已针对接口 so-0/0/2.0 配置正确,并且 LSP 现在按最初配置的方式运行。

再次验证 LSP

目的

采取适当的措施纠正错误后,需要再次检查 LSP,以确认物理层中的问题已得到解决。

行动

要验证 LSP 是否已启动并按预期遍历网络,请输入以下命令:

示例输出 1
命令名称
示例输出 2
命令名称

意义

入口路由器 R1 的示例输出 1 显示,LSP 现在正在沿预期路径(从 R1 到 R3 到 R6)遍历网络,以及反向 LSP(从 R6 到 R3 到 R1)。

入口路由器 R1 的示例输出 2 显示,由于 R1 接口 so-0/0/0.0 和 so-0/0/1.0 上的 MPLS 已停用,因此 LSP 被强制采用预期路径。如果这些接口未停用,即使现在配置正确,LSP 仍将通过备用路径遍历网络。

验证 IP 层和 IGP 层

问题

描述

配置标签交换路径 (LSP)、发出 show mpls lsp extensive 命令并确定存在错误后,您可能会发现错误不在物理层或数据链路层。继续调查网络的 IP 和 IGP 层的问题。

图 7 展示了分层 MPLS 模型的 IP 和 IGP 层。

图 7:IP 和 IGP 层 Reference guide for troubleshooting Juniper Networks layers: BGP, MPLS, RSVP, IGP, IP, Data Link, and Physical. Lists commands for monitoring and diagnostics.

解决方案

在 IP 层和 IGP 层,您必须检查以下内容:

  • 接口具有正确的 IP 寻址,并建立 IGP 邻接方或邻接关系。

  • 开放最短路径优先 (OSPF) 或中间系统到中间系统 (IS-IS) 协议已配置并正确运行。

    • 如果配置了 OSPF 协议,请先检查 IP 层,然后检查 OSPF 配置,确保协议、接口和流量工程配置正确。

    • 如果配置了 IS-IS 协议,则无论先检查 IS-IS 还是 IP,都没有关系,因为这两种协议彼此独立。验证 IS-IS 邻接是否已开启,以及接口和 IS-IS 协议配置是否正确。

      注意:

      IS-IS 协议默认启用流量工程。

如果网络在 IP 或 IGP 层未正常运行,则 LSP 将无法按配置工作。

图 8 展示了本主题中使用的 MPLS 网络。

图 8:MPLS 网络在 IP 层和 IGP 层 Network topology diagram with six routers R1 to R6, showing physical and LSP connections. Routers form AS 65432 using IS-IS or OSPF.中断

图 8 所示的网络采用全网状配置,其中每个直接连接的接口都可以接收数据包,并将其发送到所有其他类似接口。此网络中的 LSP 配置为从入口路由器 R1 运行,穿过中转路由器 R3,再到出口路由器 R6。此外,反向 LSP 配置为从 R6 到 R3 运行到 R1,从而产生双向流量。图 8 中的交叉表示由于 IP 和 IGP 层存在以下问题,LSP 无法正常工作的位置:

  • 入口路由器 (R1) 上的 IP 地址配置不正确。

  • OSPF 协议配置了路由器 ID (RID),但没有环路 (lo0) 接口,并且中转路由器 (R3) 缺少流量工程。

  • IS-IS 网络中的级别不匹配。

验证 IP 层

目的

您可以在检查内部网关协议 (IGP) 层之前或之后检查 IP 层,具体取决于您是否已将 OSPF 或 IS-IS 配置为 IGP。如果将 MPLS 网络配置为 OSPF 作为 IGP,则必须先验证 IP 层,检查接口的 IP 寻址是否正确,以及是否已建立 OSPF 邻接方,然后再检查 OSPF 层。

如果已将 IS-IS 配置为 MPLS 网络中的 IGP,则可以先验证 IP 层或 IS-IS 协议层。检查 IP 或 IS-IS 层的顺序不会影响结果。

图 9:MPLS 网络在 IP 层 Network topology diagram showing six routers R1 to R6 connected in AS 65432 with MPLS LSP traffic and IP addresses.中断

图 9 中的叉号表示由于入口路由器 R1 上的 IP 地址配置不正确而导致 LSP 损坏的位置。

验证 LSP

目的

配置 LSP 后,您必须验证 LSP 是否已开启。LSP 可以是入口、中转或出口。使用命令 show mpls lsp 快速验证 LSP 状态,并使用 extensive 选项(show mpls lsp extensive) 在 LSP 关闭时作为后续操作)。如果您的网络有多个 LSP,您可以考虑使用 name 选项(show mpls lsp name name 或 show mpls lsp name name extensive)指定 LSP 的名称。

行动

要验证 LSP 是否已开启,请从入口路由器输入以下命令:

示例输出 1
命令名称

意义

入口路由器 R1 的示例输出显示,发生 MPLS 标签分配失败,约束最短路径优先 (CSPF) 算法失败,导致 R6 上没有路由到目标 10.0.0.6。

验证 IP 寻址

目的

调查 IP 层时,请验证接口是否具有正确的 IP 寻址,以及是否建立了 OSPF 邻接方或 IS-IS 邻接。在此示例中,入口路由器 (R1) 上的 IP 地址配置不正确。

行动

要验证 IP 寻址,请从入口、中转和出口路由器输入以下命令:

示例输出
命令名称

意义

示例输出显示,R1 上的接口 so-0/0/2.0 和 R3 上的接口 so-0/0/2.0 的 IP 地址相同。网络中的接口 IP 地址必须是唯一的,才能正确识别接口。

验证 IP 层的邻居或邻接关系

目的

如果 IP 寻址配置不正确,则需要检查 OSPF 邻接方或 IS-IS 邻接关系,以确定它们中的一个或两个都已建立。

行动

要验证邻接方 (OSPF) 或邻接 (IS-IS),请从入口路由器、中转路由器和出口路由器输入以下命令:

示例输出 1
命令名称
示例输出 2
命令名称

意义

入口、中转和出口路由器的示例输出 1 显示, R1 和 R3 不是已建立的 OSPF 邻接方。考虑到两个接口 so-0/0/2.0 (R1 和 R3)配置了相同的 IP 地址,您可能会遇到这样的情况。OSPF 协议仅根据 IP 包头中包含的目标 IP 地址路由 IP 数据包。因此,自治系统 (AS) 中的相同 IP 地址会导致邻接方无法建立。

入口、中转和出口路由器的示例输出 2 显示,尽管 R1 和 R3 上的接口 so-0/0/2.0 上配置了相同的 IP 地址,但 R1 和 R3 已建立 IS-IS 邻接关系。IS-IS 协议的行为与 OSPF 协议不同,因为它不依赖于 IP 来建立邻接关系。但是,如果 LSP 未启动,检查 IP 子网寻址仍然很有用,以防该层出现错误。更正寻址错误可能会使 LSP 重新启动。

采取适当的行动

问题

描述

根据您在调查中遇到的错误,您必须采取适当的措施来更正问题。在此示例中,传输路由器 R2 上接口的 IP 地址配置不正确。

解决方案

要更正此示例中的错误,请输入以下命令:

示例输出
意义

示例输出显示,入口路由器 R1 上的接口 so-0/0/2 现已配置正确的 IP 地址。此更正会导致 MPLS 网络中 MPLS 网络中所有接口的唯一子网 IP 地址在 IP 和 IGP 层中断,并且 LSP 可能会启动。

再次验证 LSP

目的

采取适当的措施纠正错误后,需要再次检查 LSP,以确认 OSPF 协议中的问题已得到解决。

行动

要再次验证 LSP,请在入口、中转和出口路由器上输入以下命令:

示例输出 1
命令名称
示例输出 2
命令名称
示例输出 3
命令名称

意义

入口路由器 R1 的示例输出 1 显示,LSP R1 到 R6 有到 R6 的活动路由,并且状态为 up。输出显示,出口 LSP 会话 R6 到 R1 已收到并发送恢复标签。

中转路由器 R3 的示例输出 2 显示有两个中转 LSP 会话,一个从 R1 到 R6 ,另一个从 R6 到 R1。 两个 LSP 都已启动。

出口路由器 R6 的示例输出 3 显示 LSP 已开启,活动路由是主路由。LSP 现在正沿预期路径遍历网络,从 R1 到 R3 再到 R6,反向 LSP 从 R6 到 R3 再到 R1。

再次验证 LSP

目的

采取适当的措施纠正错误后,需要再次检查 LSP,以确认 IS-IS 协议中的问题已得到解决。

行动

要验证 LSP 是否已启动并按预期遍历网络,请从入口、出口和中转路由器输入以下命令:

示例输出

命令名称

意义

入口路由器 R1 和出口路由器 R6 的示例输出显示,LSP 现在正在沿预期路径(从 R1 到 R3 到 R6)遍历网络,以及反向 LSP(从 R6 到 R3 到 R1)。此外,中转路由器 R3 的示例输出显示有两个中转 LSP 会话,一个从 R1 到 R6,另一个从 R6 到 R1。

检查 RSVP 层

目的

配置标签交换路径 (LSP) 后,发出 show mpls lsp extensive 命令并确定存在错误后,您可能会发现错误不在物理层、数据链路层或互联网协议 (IP) 层和内部网关协议 (IGP) 层中。继续在网络的 RSVP 层调查问题。

图 10 展示了分层 MPLS 模型的 RSVP 层。

图 10:检查 RSVP 层 Hierarchical diagram of network protocol layers in Juniper Networks showing commands for troubleshooting, from physical to BGP layers.

通过这一层,您可以检查动态 RSVP 信号是否按预期发生、邻接方是否已连接,以及接口是否正确配置以用于 RSVP。检查入口路由器、出口路由器和中转路由器。

如果网络在此层未正常运行,则 LSP 将无法按配置工作。

图 11 展示了本主题中使用的 MPLS 网络。

图 11:RSVP 层 Autonomous System 65432 network diagram with six routers R1 to R6. Each has a loopback interface with specific IPs. Solid lines show physical connections, dashed lines indicate LSP-bidirectional traffic. Two link failures marked by an X. IGP is OSPF or IS-IS.断开的 MPLS 网络

图 11 所示的网络采用全网状配置,其中每个直接连接的接口都可以接收数据包,并将其发送到所有其他类似接口。此网络中的 LSP 配置为从入口路由器 R1 运行,穿过中转路由器 R3,再到出口路由器 R6。此外,反向 LSP 配置为从 R6 到 R3 再到 R1 运行,从而创建双向流量。

但是,在此示例中,LSP 在任一方向(从 R1 到 R6 或从 R6 到 R1)上都没有路径。

图 11 中显示的交叉表示 LSP 被破坏的位置。LSP 中断的一些可能原因可能包括动态 RSVP 信令未按预期发生、邻接方未连接或接口配置不正确。

在 图 11 中的网络中,传输路由器 R3 上的配置错误导致 LSP 无法按预期遍历网络。

要检查 RSVP 图层,请按照以下步骤操作:

验证 LSP

目的

通常,使用命令show mpls lsp extensive 来验证 LSP。但是,要快速验证 LSP 状态,请使用命令show mpls lsp。如果 LSP 关闭,请使用 extensive 选项(show mpls lsp extensive) 作为后续。如果您的网络有多个 LSP,您可以考虑使用 name 选项(或 show mpls lsp name name extensive)show mpls lsp namename指定 LSP 的名称。

行动

要确定 LSP 是否已开启,请从入口路由器输入以下命令:

示例输出 1
命令名称

意义

示例输出显示,从 R1 到 R6 以及从 R6 到 R1 的 LSP 在两个方向上都处于关闭状态。 R1 的输出显示 R1 正在使用无 cspf LSP,因为它试图发起呼叫但无法到达目标。 R6 的输出显示约束最短路径优先 (CSPF) 算法失败,导致无法路由到目标 10.0.0.1。

验证 RSVP 会话

目的

成功创建 RSVP 会话后,将沿着 RSVP 会话创建的路径设置 LSP。如果 RSVP 会话不成功,LSP 将无法按配置工作。

行动

要验证当前活动的 RSVP 会话,请从入口、中转和出口路由器输入以下命令:

示例输出 1
命令名称
示例输出 2
命令名称

意义

所有路由器的示例输出 1 显示,即使配置了 LSP R6 到 R1 ,也未成功创建 RSVP 会话。

与示例输出 1 相比,为了说明正确的输出,示例输出 2 显示了当 RSVP 配置正确且 LSP 按配置遍历网络时,入口路由器、中转路由器和出口路由器的输出。 R1 和 R6 均显示入口和出口 RSVP 会话,其中 LSP R1 到 R6,反向 LSP R6 到 R1。中转路由器 R3 显示两个中转 RSVP 会话。

验证 RSVP 邻接方

目的

显示在交换 RSVP 数据包时动态获知的 RSVP 邻接方列表。学习邻接方后,除非从路由器中移除 RSVP 配置,否则永远不会将其从 RSVP 邻接方列表中移除。

行动

要验证 RSVP 邻接方,请从入口、中转和出口路由器输入以下命令:

示例输出 1
命令名称
示例输出 2
命令名称

意义

示例输出 1 显示 R1 和 R6 各有一个 RSVP 邻居,即 R3。但是,Up/Dn 字段中的值不同。R1 的值为 1/0,R6 的值为 1/1,表示 R1 是 R3 的活动邻居,但 R6 不是。当启动计数比关闭计数多 1 时,邻居处于活动状态;如果值相等,则邻居处于关闭状态。R6 的值相等,为 1/1,表示邻居 R3 已关闭。

中转路由器 R3 知道两个邻居, R1 和 R6。 Up/Dn 字段表示 R1 是活动邻居, R6 处于故障状态。此时无法确定问题在于 R3 还是 R6,因为两个邻接方都未处于活动状态。

与示例输出 1 相比,为了说明正确的输出,示例输出 2 显示了中转路由器 R3 与出口路由器 R6 之间的正确邻居关系。 Up/Dn 字段显示的上升计数比下降计数多 1/ 0,表示邻居处于活动状态。

验证 RSVP 接口

目的

显示启用了 RSVP 的每个接口的状态,以确定配置错误发生的位置。

行动

要验证 RSVP 接口的状态,请从入口、中转和出口路由器输入以下命令:

示例输出 1
命令名称
示例输出 2
命令名称

意义

示例输出 1 显示,即使每个路由器都有已启动且处于活动状态的接口,但任何路由器上都没有预留(活动 resv)。 在此示例中,我们预计入口和出口路由器上至少有一个预留,在中转路由器上至少有两个预留。

此外,配置中不包括传输路由器 R3 上的接口 so-0/0/3。包含此接口对于 LSP 的成功至关重要。

与示例输出 1 相比,为了说明正确的输出,示例输出 2 显示了具有活动预留的相关接口。

验证 RSVP 协议配置

目的

检查 RSVP 会话、接口、邻接方并确定可能存在配置错误后,请验证 RSVP 协议配置。

行动

要验证 RSVP 配置,请从入口、中转和出口路由器输入以下命令:

示例输出
命令名称

意义

示例输出显示 R3 的 RSVP 协议配置中缺少接口 so-0/0/3.0 。此接口对于 LSP 的正常运行至关重要。

采取适当的行动

问题

描述

根据您在调查中遇到的错误,您必须采取适当的措施来更正问题。在此示例中,路由器 R3 的配置中缺少接口。

解决方案

要更正此示例中的错误,请执行以下步骤:

  1. 在中转路由器 R3 的配置中包括缺失的接口:

  2. 验证并提交配置:

示例输出
意义

示例输出显示,传输路由器 R3 上缺少的接口 so-0/0/3.0 现在已正确包含在 [edit protocols rsvp] 层次结构级别。这会导致 LSP 可能会启动。

再次验证 LSP

目的

采取适当的措施纠正错误后,需要再次检查 LSP,以确认 MPLS 层中的问题已得到解决。

行动

要再次验证 LSP,请在入口、中转和出口路由器上输入以下命令:

示例输出 1
命令名称
示例输出 2
命令名称
示例输出 3
命令名称

意义

入口路由器 R1 的示例输出 1 显示,LSP R1 到 R6 有到 R6 的活动路由,并且状态为 up。

中转路由器 R3 的示例输出 2 显示有两个中转 LSP 会话,一个从 R1 到 R6 ,另一个从 R6 到 R1。两个 LSP 都已启动。

出口路由器 R6 的示例输出 3 显示 LSP 已开启,活动路由是主路由。LSP 现在正沿预期路径遍历网络,从 R1 到 R3 再到 R6,反向 LSP 从 R6 到 R3 再到 R1。

确定 LSP 统计信息

目的

显示有关 RSVP 对象的详细信息,以帮助诊断 LSP 问题。

行动

要验证 RSVP 对象,请输入以下 Junos OS CLI 操作模式命令:

示例输出

命令名称

意义

示例输出显示,有一个入口和一个出口 RSVP 会话。入口会话的源地址为 10.0.0.1 (R1),并且会话已启动,有一个活动路由。LSP 名称为 R1 到 R6 ,是 LSP 的主路径。

恢复标签 (100064) 通过平滑重启路由器发送至其邻接方,以恢复转发状态。这可能是路由器在出现故障之前宣传的旧标签。

此会话使用固定筛选器 (FF) 预留样式(Resv 样式)。由于这是入口路由器,因此没有入站标签。出站标签(由下一个下游路由器提供)为 100064。

剩余 时间字段 提供 RSVP 会话中的剩余秒数, Tspec 对象提供有关受控负载速率(速率)和最大突发大小(峰值)的信息、保证交付选项的无限值 (Infbps) 以及小于 20 字节的数据包被视为 20 字节,而大于 1500 字节的数据包被视为 1500 字节的指示。

端口号是 IPv4 隧道 ID,而发送方/接收方端口号是 LSP ID。IPv4 隧道 ID 在 LSP 的生命周期内是唯一的,而发送方/接收方 LSP ID 可能会更改,例如,使用 SE 样式预留。

PATH rcvfrom 字段包括路径消息的源。由于这是入口路由器,因此本地客户端发起了路径消息。

PATH sentto 字段包括路径消息目标 (10.1.13.2) 和传出接口 (so-0/0/2.0)。RESV rcvfrom 字段包括接收的 Resv 消息的源 (10.1.13.2) 和传入接口 (so-0/0/2.0)。

RSVP 显式路由和路由记录值相同: 10.1.13.2 和 10.1.36.2。大多数情况下,显式路由和记录路由值是相同的。差异表明发生了一些路径重新路由,通常是在快速重新路由期间。

Total 字段表示入口、出口和中转 RSVP 会话的总数,总数等于启动和关闭会话的总和。在此示例中,有一个入口会话,一个出口会话,没有中转 RSVP 会话。

验证网络中的 LSP 使用情况

目的

验证 LSP 在网络的入口路由器和中转路由器上是否有效使用时,可以确定网络中的MPLS (MPLS) 是否存在问题。 图 12 描述了本主题中使用的示例网络。

图 12:用于验证 LSP 使用情况 Network diagram with six routers R1-R6, loopback interfaces, solid lines for physical connections, dashed lines for IGP metrics, part of AS 65432.的 MPLS 拓扑

图 12 中的 MPLS 网络展示了一个纯路由器网络,其 SONET 接口由以下组件组成:

  • 全网状内部边界网关协议 (IBGP) 拓扑,使用 AS 65432

  • 在所有路由器上启用 MPLS 和资源预留协议 (RSVP)

  • 路由器 R1 和 R6 上的 发送静态 策略,允许在网络中通告新路由

  • 路由器 R1 和 R6 之间的 LSP

图 12 所示的网络是边界网关协议 (BGP) 全网状网络。由于路由反射器和联合不用于传播 BGP 获知的路由,因此每个路由器都必须与运行 BGP 的所有其他路由器有一个 BGP 会话。

要验证 LSP 在网络中的使用情况,请执行以下步骤:

验证入口路由器上的 LSP

目的

您可以通过检查入口路由器上的 inet.3 路由表来验证 LSP 在启动时的可用性。 inet.3 路由表包含每个 LSP 出口路由器的主机地址。此路由表用于入口路由器,用于将 BGP 数据包路由到目标出口路由器。BGP 使用入口路由器上的 inet.3 路由表来帮助解析下一跃点地址。

行动

要验证入口路由器上的 LSP,请输入以下 Junos OS 命令行界面 (CLI) 操作模式命令:

示例输出
命令名称

意义

示例输出显示了 inet.3 路由表。默认情况下,只有 BGP 和 MPLS 虚拟专用网络 (VPN) 可以使用 inet.3 路由表来解析下一跃点信息。路由表中列出了一个目标 10.0.0.6。此目标 (10.0.0.6) 由 RSVP 发出信号,并且是当前活动路径,如星号 (*) 所示。此路由的协议优先级为 7,与之关联的度量为 20。标签交换路径是 R1 到 R6,通过接口 so-0/0/2.0,即物理下一跳中转接口。

通常,LSP 中的倒数第二个路由器会弹出数据包的标签或将标签更改为值 0。如果倒数第二个路由器弹出顶部标签,且下方有 IPv4 数据包,则出口路由器将路由 IPv4 数据包,同时查阅 IP 路由表 inet.0 以确定如何转发数据包。如果其他类型的标签(例如,由标签分发协议 (LDP) 隧道或 VPN 创建的标签,而非 IPv4 创建的标签)位于顶部标签下方,则出口路由器不会检查 inet.0 路由表。相反,它检查 mpls.0 路由表以进行转发决策。

如果倒数第二个路由器将数据包的标签更改为 0 值,则出口路由器将去除 0 标签,表示后面有 IPv4 数据包。 inet.0 路由表检查数据包以做出转发决策。

当中转或出口路由器收到 MPLS 数据包时,MPLS 转发表中的信息将用于确定 LSP 中的下一个中转路由器,或者此路由器是否为出口路由器。

当 BGP 解析下一跃点前缀时,它会检查 inet.0 和 inet.3 路由表,以查找优先级最低的下一跃点;例如,RSVP 优先级 7 优先于 OSPF 优先级 10。RSVP 信号 LSP 用于到达 BGP 下一跃点。当 BGP 下一跃点等于 LSP 出口地址时,这是默认设置。通过 LSP 解析 BGP 下一跃点后,BGP 流量将使用 LSP 转发 BGP 中转流量。

验证中转路由器上的 LSP

目的

您可以通过检查中转路由器上的 mpls.0 路由表来验证 LSP 在启动时的可用性。MPLS 维护 mpls.0 路由表,其中包含每个 LSP 中下一个标签交换路由器的列表。此路由表在中转路由器上用于将数据包路由到 LSP 上的下一个路由器。

行动

要验证传输路由器上的 LSP,请输入以下 Junos OS CLI 操作模式命令:

示例输出
命令名称

意义

中转路由器 R3 的示例输出以 MPLS 标签条目的形式显示路由条目,表示即使有五个活动条目,也只有一个活动路由。

前三个 MPLS 标签是 RFC 3032 中定义的保留 MPLS 标签。收到的带有这些标签值的数据包将发送到路由引擎进行处理。标签 0 是 IPv4 显式空标签。标签 1 是 IP 路由器警报标签的 MPLS 等效项,标签 2 是 IPv6 显式空标签。

带有 100064 标签的两个条目用于相同的 LSP( R1 到 R6)。 有两个条目,因为 MPLS 报头中的堆栈值可能不同。第二个条目 100064 (S=0) 表示堆栈深度不是 1,并且数据包中包含其他标签值。相比之下, 100064 的第一个条目有一个推断的 S=1,它表示堆栈深度为 1,并使其成为数据包中的最后一个标签。双条目表示这是倒数第二个路由器。有关 MPLS 标签堆叠的详细信息,请参阅 RFC 3032,MPLS 标签堆栈编码。

传入标签是 MPLS 数据包的 MPLS 报头,通过 RSVP 分配给上游邻接方。瞻博网络路由器可以为 RSVP 流量工程 LSP 动态分配标签,范围从 100,000 到 1,048,575。

路由器分配从标签 100,000 开始的标签,增量为 16。标签分配的顺序为 100,000、100,016、100,032、100,048 依此类推。在已分配标签的末尾,标签编号从 100001 开始,以 16 为单位递增。瞻博网络出于各种目的保留标签。 表 1 列出了传入标签的各种标签范围分配。

表 1:MPLS 标签范围分配

传入标签

状态

0 到 15

由 IETF 保留

16 到 1023

为静态 LSP 分配保留

1024 到 9999

保留供内部使用(例如,CCC 标签)

10,000 到 99,999

为静态 LSP 分配保留

100,000 到 1,048,575

保留用于动态标签分配

验证负载平衡是否正常工作

目的

配置负载平衡后,检查流量是否在不同路径上均等地均衡负载。在本节中,命令输出反映了负载 均衡网络拓扑中所示示例网络的负载均衡配置。这些 clear 命令用于将 LSP 和接口计数器重置为零,以便这些值反映负载均衡配置的操作。

行动

要验证接口和 LSP 之间的负载平衡,请在入口路由器上使用以下命令:

要验证接口和 LSP 之间的负载平衡,请在中转路由器上使用以下命令:

示例输出

命令名称

以下示例输出用于入口路由器 R1 上的配置:

意义

入口路由器 R1 上命令show configuration的示例输出显示,已使用 lbpp 策略语句正确配置负载平衡。此外,lbpp 策略将导出到层次结构级别的[edit routing-options]转发表中。

示例输出

以下示例输出来自中转路由器 R2:

意义

在传输路由器 R2 上发出的show route命令的示例输出显示了通过网络到 R0 (192.168.0.1) 的环路地址的两条等价路径(so-0/0/1 和 so-0/0/2)。 尽管右尖括号 (>) 通常表示活动路由,但在本例中并非如此,如以下四个示例输出所示。

示例输出

以下示例输出来自中转路由器 R2:

意义

在传输路由器 R2 上发出的monitor interface traffic命令的示例输出显示,输出流量均匀分布在两个接口 so-0/0/1 和 so-0/0/2 之间。

示例输出

以下示例输出来自中转路由器 R2:

意义

在传输路由器 R2 上发出的show mpls lsp statistics命令的示例输出显示,输出流量均匀分布在入口路由器 R6 上配置的四个 LSP 上。

示例输出

以下示例输出来自中转路由器 R2:

意义

在传输路由器 R2 上发出的show route forwarding-table destination命令的示例输出在“类型”字段中显示 ulst,表示负载平衡正在发挥作用。Type 字段中的两个单播 (ucst) 条目是 LSP 的两个下一跃点。

示例输出

以下示例输出来自中转路由器 R2:

意义

在传输路由器 R2 上发出的 show route forwarding-table | find mpls 命令的示例输出显示了 MPLS 路由表,其中包含此路由器接收和用于将数据包转发到下一跳路由器的标签。此路由表主要用于中转路由器,用于将数据包路由到 LSP 上的下一个路由器。启用协议时,MPLS 会自动输入 目标 列中的前三个标签(标签 0、标签 1 和标签 2)。这些标签是在 RFC 3032 中定义的保留 MPLS 标签。标签 0 是 IPv4 显式空标签。标签 1 是 IP 路由器警报标签的 MPLS 等效项,标签 2 是 IPv6 显式空标签。

目标列中的其余五个标签是路由器用于转发流量的非保留标签,最后一列 Netif 显示用于发送带标签流量的接口。对于非保留标签,第二个“类型”列显示对匹配数据包执行的操作。在此示例中,所有非保留数据包都将交换为传出数据包标签。例如,带有标签100112的数据包在被推出接口 so-0/0/1.0 之前,将其标签交换为 100032。

验证带宽负载均衡不均的运行情况

目的

当路由器在 LSP 路径之间执行不等价负载平衡时,命令 show route detail 会显示与所使用的每个下一跃点关联的平衡字段。

行动

要验证 RSVP LSP 的负载平衡是否不均匀,请使用以下 Junos OS CLI 操作模式命令:

示例输出

命令名称

意义

入口路由器 R1 的示例输出显示,流量根据 LSP 带宽配置进行分配,如 Balance: xx% 字段所示。例如, lsp1 配置了 10 Mbps 的带宽,如 “余额:10%” 字段中所示。

使用 traceroute 命令验证 MPLS 标签

目的

您可以使用该 traceroute 命令验证数据包是否通过 LSP 发送。

行动

要验证 MPLS 标签,请输入以下 Junos OS CLI 操作模式命令,其中 host-name 是远程主机的 IP 地址或名称:

示例输出 1

命令名称

示例输出 2

命令名称

意义

示例输出 1 显示 MPLS 标签用于通过网络转发数据包。输出中包含标签值 (MPLS Label=100048)、生存时间值 (TTL=1) 和堆栈位值 (S=1)。

MPLS 标签字段用于识别特定 LSP 的数据包。它是一个 20 位字段,最大值为 (2^^20-1),或大约 1,000,000。

TTL 值包含此 MPLS 数据包可以通过网络传输的跃点数限制 (1)。它在每个跃点处递减,如果 TTL 值降至 1 以下,数据包将被丢弃。

堆栈底部位值 (S=1) 表示它是堆栈中的最后一个标签,并且此 MPLS 数据包有一个与之关联的标签。Junos OS 中的 MPLS 实施在 M 系列路由器上支持 3 个堆叠深度,在 T 系列平台上支持最多 5 个堆叠深度。有关 MPLS 标签堆叠的详细信息,请参阅 RFC 3032,MPLS 标签堆栈编码。

MPLS 标签显示在示例输出 1 中,因为命令 traceroute 是向 BGP 目标发出的,其中该路由的 BGP 下一跃点是 LSP 出口地址。当 BGP 下一跃点等于 LSP 出口地址时,Junos OS 默认行为将 LSP 用于 BGP 流量。

示例输出 2 显示 MPLS 标签未显示在命令的 traceroute 输出中。如果 BGP 下一跃点不等于 LSP 出口地址或目标是 IGP 路由,则 BGP 流量不会使用 LSP。BGP 流量不使用 LSP,而是使用 IGP(在本例中为 IS-IS)到达出口地址 (R6)。

GMPLS 和 GRE 隧道故障排除

问题

描述

GMPLS 的逻辑控制通道必须是点对点链路,并且必须具有某种形式的 IP 可达性。在广播接口上或当控制通道对等方之间存在多个跃点时,请为控制通道使用 GRE 隧道。有关 GMPLS 和 GRE 隧道的更多详细信息,请参阅《 Junos MPLS 应用程序配置指南 》和《 Junos 用户指南》。

为 GMPLS 控制信道配置 GRE 隧道不需要隧道 PIC。而应使用基于软件的 gre 接口,而不是基于硬件的 gr-fpc/pic/port 接口。

注意:

由于基于软件的 GRE 接口存在限制,GMPLS 控制通道是基于软件的 GRE 接口唯一受支持的用法。明确不支持任何其他使用,并且可能会导致应用程序故障。

以下示例显示了基本的 GRE 接口配置。在这种情况下,隧道源是本地路由器的环路地址,目标地址是远程路由器的环路目标。具有隧道目标下一跃点的流量将使用该隧道。通过该接口的所有流量不会自动使用该隧道。只有以隧道目标为下一跃点的流量才会使用该隧道。

示例输出

示例输出

show interfaces 命令的以下示例输出显示了封装类型和报头、最大速度、通过逻辑接口的数据包、目标和逻辑地址。

以下是使用 GRE 隧道配置 GMPLS LSP 时的各种要求:

  • 数据通道必须在同一类型的接口上开始和结束。

  • 控制通道可以是以相同或不同的接口类型开始和结束的 GRE 隧道。

  • GRE 隧道必须在层次结构级别使用 [edit protocol ospf] peer-interface peer-name 语句间接配置。

  • 必须在 和 [edit protocols rsvp] 层次结构级别禁用 [edit protocols ospf] GRE 接口。

  • 必须在 LMP 配置中正确定义数据和控制通道。

  • 使用语句禁用 no-cspf 约束最短路径优先 (CSPF) 是可选的。

本案例重点介绍GRE隧道端点配置不正确。但是,您可以使用类似的过程和命令来诊断其他GRE隧道问题。 图 13 展示了通过 GRE 接口以隧道传输 MPLS 的网络拓扑。

图 13:GMPLS 网络拓扑结构 Network diagram showing GMPLS Label Switched Path setup with R1 Ingress, R2 Transit, R3 Egress, data and control channels, and IP addresses.

图 13 中的 MPLS 网络拓扑显示了配置了由以下组件组成的 GRE 隧道的瞻博网络路由器:

  • 从入口路由器到出口路由器的严格 GMPLS LSP 路径。

  • 在入口路由器上,CSPF 已禁用 no-cspf ,语句位于 [edit protocol mpls label-switched-path lsp-name] 层次结构级别。

  • 在所有路由器的 [edit protocols link-management] 层次结构级别,在语句内对peer 链路和控制通道进行流量工程。

  • 在所有路由器上配置 OSPF 和 OSPF 流量工程。

  • 对所有路由器上 OSPF 和 RSVP 中的 对等接口 的引用。

  • R2 和 R3 之间的交换类型问题。

症状

如 图 13 所示的网络中的 LSP 已关闭,如 show rsvp session 和 show mpls lsp 命令的输出所示,它们显示的信息非常相似。命令显示show mpls lsp路由器上配置的所有 LSP,以及所有传输和出口 LSP。该show rsvp session 命令显示有关 RSVP 会话的摘要信息。您可以使用任一命令验证 LSP 的状态。在这种情况下,LSP gmpls-r1 到 r3 已关闭 (Dn)。

示例输出

原因

GMPLS LSP 出现问题的原因是 GMPLS 数据通道两端配置了不同的接口类型。

故障排除命令

Junos OS 包含一些在排除故障时有用的命令。本主题提供每个命令的简要说明,然后是示例输出,并讨论与问题相关的输出。

对 GMPLS 问题进行故障排除时,可以使用以下命令:

示例输出

在传输路由器 R1 上使用 show mpls lsp extensive 命令显示有关在路由器上传输、终止和配置的所有 LSP 的详细信息。

意义

命令 show mpls lsp extensive 的示例输出在输出的日志部分显示一条错误消息(MPLS 标签分配失败)。 此 LSP 事件表示 MPLS 协议或 family mpls 语句配置不正确。当 LSP 事件前面有 IP 地址时,该地址通常是出现 MPLS 配置错误的路由器。在这种情况下, lo0 地址为 192.168.4.1 (R3) 的路由器似乎存在 MPLS 配置错误。

示例输出

使用 show rsvp session detail 命令显示有关 RSVP 会话的详细信息。

意义

命令 show rsvp session detail 的示例输出显示 LSP gmpls-r1-to-r3 已关闭(LSPstate:Dn)。路由记录不完整,表示显式路由 100.100.100.100 93.93.93.93 存在问题。地址 100.100.100.100 是 R2 so-0/0/0 上的数据通道,地址 93.93.93.93 是 R3 上的数据通道。

示例输出

使用 show link-management peer 命令显示 MPLS 对等链路信息。

意义

图 13 show link-management peer 中示例网络中所有路由器的命令输出示例显示,所有控制通道均已启动且处于活动状态。对输出的详细分析显示以下信息:

  • 对等方 tester2 或 tester3 的名称,为了便于故障排除,在相邻路由器上相同。

  • 对等方的内部标识符,tester2 为 48428,tester3 为 48429。内部标识符是从 0 到 64,000 的值范围。

  • 对等方的状态,可以是正常,也可以是关闭。在这种情况下,所有对等节点都已启动。

  • 建立控制通道的地址,例如, 10.35.1.5。

  • 控制通道的状态,可以是正常、关闭或活动状态。

  • 由对等方管理的流量工程链路,表示控制通道 gre.0 由 tester3 管理。

示例输出

使用 show link-management te-link 命令显示用于设置MPLS (MPLS)流量工程转发路径的资源。

意义

图 13 中,在网络中的三台路由器上发出的show link-management te-link 命令的示例输出显示了分配给流量工程链路 te-tester2 和 te-tester3 的资源。资源是 SONET 接口 so-0/0/0 和 so-0/0/1。在 R1 和 R2 上,SONET 接口用于 LSP gmpls-r1 到 r3,如 Used 字段中的 Yes 所示。但是,R3 上的 SONET 接口 so-0/0/1 已关闭 (Dn),不用于 LSP(已否使用)。需要进一步调查才能找出 R3 上的 SONET 接口关闭的原因。

样品 Outut

使用 show log filename 命令显示指定日志文件的内容。在这种情况下,日志文件rsvp.log配置在 [edit protocols rsvp traceoptions] 层次结构级别。配置日志文件后,必须发出 monitor start filename 命令才能开始将消息记录到该文件。

注意:

在竖线 ( | ) 后输入的“查找错误”选项在输出中搜索术语“错误”的实例。

示例输出

意义

该命令的show log rsvp.log 出口路由器 R3 的示例输出是从日志文件中提取的片段。该代码段显示了 LSP gmpls-r1-to-r3 的链路管理协议 (LMP) 资源请求。请求的编码类型 (SDH/SONET) 存在问题,表示连接 R2 和 R3 的 SONET 接口可能存在错误。需要进一步调查 R2 和 R3 上的 LMP 配置。

示例输出

使用 show configuration statement-path 命令显示特定的配置层次结构;在本例中为链路管理。

意义

该命令的 show configuration protocols link-management 中转路由器 R2 和入口路由器 R3 的示例输出显示,两台路由器上的接口类型不同。在传输路由器 R2 上分配给 te-tester3 的资源是 SONET 接口,而在出口路由器 R3 上分配给 te-tester3 的资源是 ATM 接口。数据或控制通道两端的接口类型必须相同。在这种情况下,两端都应为 SONET 或 ATM。

解决方案

解决方案

GMPLS LSP 两端的接口或封装类型不同问题的解决方案是确保两端的接口类型相同。在这种情况下,ATM 接口已从 R3 上的链路管理配置中删除,而是配置了 SONET 接口。

以下命令说明了验证 GMPLS LSP 是否已启动并使用数据通道的正确配置和命令:

示例输出

意义

入口路由器 R3 的 、 show mpls lsp和 show link-management te-link 命令的示例输出show protocols link-management表明问题已解决。LMP 配置正确,LSP gmpls-r1 到 r3 已开启并使用数据通道 so-0/0/1。

结论

总之,GMPLS 数据通道的两端必须具有相同的封装或接口类型。此案例说明了数据通道的正确配置。控制通道的原理是相同的。

路由器配置

显示网络中入口路由器配置的输出。如果输出长于终端屏幕的长度,则在管道 ( | ) 后输入的 no-more 选项可防止对输出进行分页。

示例输出

以下示例输出适用于入口路由器 R1:

示例输出

以下示例输出适用于中转路由器 R2:

示例输出

以下示例输出适用于出口路由器 R3:

确定 LSP 状态

显示有关资源预留协议 (RSVP) 对象和标签交换路径 (LSP) 历史记录的详细信息,以查明 LSP 的问题。

图 14 展示了本主题中使用的网络拓扑。

图 14:MPLS 网络拓扑 Network diagram with six routers R1-R6, loopback interfaces, solid lines for physical connections, dashed lines for IGP metrics, part of AS 65432.

要确定 LSP 状态,请执行以下步骤:

检查 LSP 的状态

目的

显示标签交换平台 (LSP) 的状态。

行动

要确定 LSP 状态,请在入口路由器上输入以下 Junos OS 命令行界面 (CLI) 操作模式命令:

示例输出
命令名称

意义

示例输出来自入口路由器 (R1),显示入口、出口和中转 LSP 信息。入口信息适用于源自此路由器的会话,出口信息适用于在此路由器上终止的会话,中转信息适用于通过此路由器传输的会话。

从 R1 (10.0.0.1) 到 R6 (10.0.0.6) 有一个入口路由。此路由当前已启动,是安装在路由表 (Rt) 中的活动路由。LSP R1 到 R6 是主路径 (P),而不是辅助路径,用星号 (*) 表示。到 R6 的路由不包含命名路径 (ActivePath)。

从 R6 到 R1 有一个出口 LSP。状态已启动,路由表中未安装任何路由。RSVP 预订样式 (Style) 由两部分组成。首先是有效预订数 (1)。二是预留样式,就是FF(固定滤波器)。预留样式可以是 FF、SE(共享显式)或 WF(通配符筛选器)。此 LSP 有三个传入标签 (Labelin) 和无标签传出 (Labelout)。

没有中转 LSP。

有关检查 LSP 状态的详细信息,请参阅使用 分层 MPLS 故障排除模型的清单。

显示有关 LSP 的广泛状态

目的

显示有关 LSP 的广泛信息,包括所有过去的状态历史记录以及 LSP 可能出现故障的原因。

行动

要显示有关 LSP 的广泛信息,请在入口路由器上输入以下 Junos OS CLI 操作模式命令:

示例输出
命令名称

意义

示例输出来自入口路由器 (R1),详细显示了入口、出口和中转 LSP 信息,包括所有过去的状态历史记录和 LSP 失败的原因。入口信息适用于源自此路由器的会话,出口信息适用于在此路由器上终止的会话,中转信息适用于通过此路由器传输的会话。

从 R1 (10.0.0.1) 到 R6 (10.0.0.6) 有一个入口路由。此路由当前处于运行状态(状态),其中一个路由正在使用 LSP, 即 R1 到 R6。LSP 活动路径是主路径。即使 LSP 不包含 主 关键字或 辅助 关键字,路由器仍将 LSP 视为主 LSP,这表明如果 LSP 发生故障,默认情况下,路由器将尝试以 30 秒的间隔向非活动 LSP 发出信号。

负载均衡为 随机,这是默认设置,表示在为 LSP 选择物理路径时,路由器会在跳数相等的等价路径中随机选择。您可以配置的其他选项包括 “最小填充” 和 “最多填充”。 最少填充 会将 LSP 放置在跳数相等的等价路径中利用率最低的链路上。 最多填充会 将 LSP 放置在共享相同跃点数的等价路径中利用率最高的链路上。利用率基于可用带宽的百分比。

编码类型字段显示通用 MPLS (GMPLS) 信令参数(数据包),表示 IPv4。交换类型为数据包,通用有效负载标识符 (GPID) 为 IPv4。

主路径是活动路径,用星号 (*) 表示。LSP 的状态为 Up。

显式路由对象 (ERO) 包括 LSP 遵循的物理路径的约束最短路径优先 (CSPF) 成本 (20)。CSPF 指标的存在表示这是 CSPF LSP。缺少 CSPF 指标表示没有 CSPF LSP。

字段 10.1.13.2 S 表示实际 ERO。RSVP 信令消息严格转到 10.1.13.2 (作为下一跃点),严格到 10.1.36.2 结束。当 LSP 是 CSPF LSP 时,所有 ERO 地址都是严格跃点。松散跃点只能显示在无 CSPF LSP 中。

收到的记录路由对象 (RRO) 具有以下保护标志:

  • 0x01 - 提供本地保护。此节点的下游链路受本地修复机制保护。仅当在相应路径消息的SESSION_ATTRIBUTE对象中设置了本地保护标志时,才能设置此标志。

  • 0x02 — 使用中的本地保护。使用本地修复机制来维护此隧道(通常是由于之前路由过它的链路中断)。

  • 0x04 - 带宽保护。下游路由器具有备用路径,可提供与受保护区段的受保护 LSP 相同的带宽保证。

  • 0x08 — 节点保护。下游路由器有一个备用路径,可防止相应路径段上的链路和节点故障。如果下游路由器只能设置链路保护备份路径,则设置“本地保护可用”位,但清除“节点保护”位。

  • 0x10 - 抢占挂起。如果流量工程 LSP 正在进行挂起的抢占,则抢占节点将设置此标志。这会向此 LSP 的入口标签边缘路由器 (LER) 指示应重新路由。

有关保护标志的更多信息,请参阅 Junos 路由协议和策略命令参考。

字段 10.1.13.2.10.1.36.2 是实际接收记录路由 (RRO)。请注意, RRO 字段中的地址与 ERO 字段中的地址匹配。这是 CSPF LSP 的正常情况。如果 RRO 和 ERO 地址与 CSPF LSP 不匹配,则 LSP 必须重新路由或绕行。

编号为 91 到 42 的行包含历史日志的 49 个最新条目。每行都带有时间戳。最近的条目具有最大的日志历史记录编号,位于日志的顶部,指示第 91 行是最近的历史记录日志条目。阅读日志时,从最旧的条目 (42) 开始到最新的条目 (91)。

历史记录日志于 7 月 10 日启动,并显示以下活动顺序:LSP 被选为活动,发现已关闭,MPLS 标签分配多次失败,被删除多次,由于 ResvTear 而被抢占,被取消选择为活动,并被清除。最后,路由器计算了CSPF ERO,发出呼叫信号,LSP提供了列出的RRO(第90行),并被列为活动。

有关错误消息的更多信息,请参阅 Junos MPLS 网络运维指南日志参考。

显示的入口 LSP 总数为 1,其中 1 个正常, 0 个向下。 “正常 ”字段中的数字加上 “向下” 字段中的数字应等于总数。

从 R6 到 R1 有一个出口 LSP 会话。状态已启动,路由表中未安装任何路由。RSVP 预订样式 (Style) 由两部分组成。首先是有效预订数 (1)。二是预留样式,就是FF(固定滤波器)。预留样式可以是 FF、SE(共享显式)或 WF(通配符筛选器)。此 LSP 有三个传入标签 (Labelin) 和无标签传出 (Labelout)。

没有中转 LSP。

有关检查 LSP 状态的详细信息,请参阅使用 分层 MPLS 故障排除模型的清单。

检查是否发送和接收了 RSVP 路径消息

目的

是否存在各种 RSVP 消息有助于确定网络中的MPLS (MPLS) 是否存在问题。例如,如果输出中出现没有 Resv 消息的路径消息,则可能表示未创建标签交换路径 (LSP)。

行动

要检查是否发送和接收了 RSVP 路径消息,请输入以下 Junos OS 命令行界面 (CLI) 操作模式命令:

示例输出

命令名称

意义

示例输出显示发送和接收的 RSVP 消息。发送的 RSVP 路径消息总数为 11,4532 条,接收的 80,185 条。在过去 5 秒内,未发送或接收任何消息。

共发送 5 条 PathErr 消息,接收 10 条。当发生路径错误时(通常是由于路径消息中的参数问题),路由器会向发出路径消息的发送方发送单播 PathErr 消息。在这种情况下, R1 发送了至少 10 条带有错误的路径消息,如 R1 收到的 10 条 PathErr 消息所示。下游路由器向 R1 发送了 5 条路径消息并显示错误,如 R1 发送的 5 条 PathErr 消息所示。PathErr 消息的传输方向与路径消息相反。

总共发送了 12 条 PathTear 消息,收到了 6 条消息,最后 5 秒内没有一条消息。与 PathErr 消息相反,PathTear 消息与路径消息的传输方向相同。由于路径消息是发送和接收的,因此也会发送和接收 PathTear 消息。但是,如果仅发送路径消息,则输出中仅显示发送的 PathTear 消息。

总共发送了 80,515 条具有固定筛选器 (FF) 预留样式的预留 (Resv) 消息,并收到了 111,476 条消息,在过去 5 秒内没有。FF 预留样式表示在每个会话中,每个接收方都与每个上游发送方建立自己的预留,并且列出了所有选定的发送方。不会发送或接收通配符筛选器 (WF) 或共享显式 (SE) 预留样式的消息。有关 RSVP 预留样式的更多信息,请参阅 Junos MPLS 应用程序配置指南。

不会发送或接收其他 RSVP 消息类型。有关 ResvErr、ResvTear 和 Resvconf 消息类型的信息,请参阅 Junos MPLS 应用程序配置指南。

确认和摘要刷新 (SRefresh) 消息不会显示在输出中。确认和摘要刷新消息在 RFC 2961 中定义,是 RSVP 扩展的一部分。Ack 消息用于减少网络中的 RSVP 控制流量。

总共发送了 915,851 条hello消息,接收了 915,881 条,最后 5 秒内没有发送或接收任何消息。RSVP hello 间隔为 9 秒。如果在过去 5 秒内发送或接收了多条 hello 消息,则表示多个接口支持 RSVP。

端到端 RSVP 消息是旧版 RSVP 消息,不用于 RSVP 流量工程。仅当 RSVP 转发由虚拟专用网 (VPN) 客户发出的旧 RSVP 消息,以便通过主干网传输到 VPN 中的其他站点时,这些计数器才会递增。它们被称为端到端消息,因为它们用于网络的另一端,并且仅在提供商网络的两端有意义。

输出的 Errors 部分显示有关有错误的 RSVP 数据包的统计信息。总共 15 个 PathErr 到客户端 的数据包被发送到路由引擎。发送和接收的 PathErr 数据包的总数。