了解 IS-IS 的无环路替代路由
在 Junos OS 9.5 及更高版本中,对 IS-IS 无环路备用路由的支持使 IS-IS 具备 IP 快速重新路由功能。Junos OS 可预计算所有 IS-IS 路由的无环路备份路由。这些备份路由预安装在数据包转发引擎中,当特定路由的主下一跃点的链路不再可用时,该引擎会执行本地修复和实施备份路径。通过本地修复,数据包转发引擎可以在从路由引擎接收重新计算的路径之前纠正路径故障。本地维修将重新路由流量所需的时间减少到 50 毫秒以内。相比之下,计算新路由需要 800 毫秒的全局修复时间。因此,本地维修和全局维修是相辅相成的。本地修复使流量可以使用备份路径继续路由,直到全局修复能够计算出新路由。
无环路路径是指不会通过路由设备转发流量以到达给定目标的路径。也就是说,其到达目标的最短路径遍历路由设备的邻接方不会用作到该目标的备份路由。要确定 IS-IS 路由的无环路备用路径,Junos OS 对每个单跳邻接方运行最短路径优先 (SPF) 计算。您可以在任何 IS-IS 接口上启用对替代无环路路由的支持。由于通常的做法是在已启用 IS-IS 的接口上启用 LDP,因此此功能还支持 LDP 标签交换路径 (LSP)。
如果在为 LDP 和 IS-IS 配置的接口上启用对备用无环路路由的支持,则可以使用 traceroute
命令将活动路径追踪到主下一跃点。
通过 IS-IS 路由提供的备份覆盖范围级别取决于实际的网络拓扑结构,对于任何给定路由设备上的所有目标,通常不到 100%。您可以扩展备份覆盖范围,以包括 RSVP LSP。
Junos OS 通过替代的无环路路由为 IS-IS 提供两种路由冗余机制:链路保护和节点链路保护。在 IS-IS 接口上启用链路保护或节点链路保护时,Junos OS 会为遍历受保护接口的所有目标路由创建一个指向主下一跃点的单个备用路径。链路保护提供每链路流量保护。如果假设只有单个链路可能不可用,但主路径上的邻接节点仍可通过另一个接口使用,请使用链路保护。
节点链路保护通过不同的路由设备完全建立备用路径。如果某个链路不再可用,假设对某个节点的访问将丢失,请使用节点链路保护。因此,Junos OS 会计算可避开主下一跃点路由设备的备份路径。在 Junos OS 9.4 及更低版本中,只有 RSVP 协议支持数据包转发引擎本地修复和快速重新路由,以及链路保护和节点保护。
在 图 1 中,案例 2 显示了当到目标路由器 C 的主下一跃点链路 A 出现故障时,链路保护如何允许源路由器 A 切换到链路 B。但是,如果路由器 B 出现故障,链路 B 也出现故障,并且受保护的链路 A 将丢失。如果启用了节点链路保护,路由器 A 能够切换到路由器 D 上的链路 D,并完全绕过出现故障的路由器 B。如案例 1 所示,启用节点链路保护后,路由器 A 具有通过路由器 D 到目标路由器 C 的节点链路保护备用路径。这意味着,如果路由器 B 出现故障,路由器 A 仍然可以到达路由器 C,因为从路由器 A 到链路 D 的路径仍可用作备用路径。

Junos OS 基于以下标准,支持 IS-IS 路由的无环路备用路径:
RFC 5286, IP 快速重新路由基本规范:无环路替代项
RFC 5714, IP 快速重新路由框架
为 IS-IS 配置链路保护
您可以在启用了 IS-IS 的任何接口上配置链路保护。启用链路保护后,Junos OS 会为遍历受保护接口的所有目标路由创建一条通往主下一跃点的备用路径。链路保护假定只有一个链路不可用,但相邻节点仍然可以通过另一个接口使用。
您还必须配置按数据包的负载平衡路由策略,以确保路由协议进程在路由表中为给定路由安装所有下一跃点。
要启用链路保护,请将语句 link-protection
包含在 [edit protocols isis interface interface-name]
层次结构级别:
[edit] protocols { isis { interface interface-name { link-protection; } } }
为 IS-IS 配置节点链路保护
您可以在启用了 IS-IS 的任何接口上配置节点链路保护。节点链路保护可为遍历受保护接口的所有目标路由建立通过不同路由设备的备用路径。节点链路保护假定整个路由设备或节点都出现故障。因此,Junos OS 会计算可避开主下一跃点路由设备的备份路径。
您还必须配置按数据包的负载平衡路由策略,以确保路由协议进程在路由表中为给定路由安装所有下一跃点。
要启用节点链路保护,请将语句 node-link-protection
包含在 [edit protocols isis interface interface-name]
层次结构级别:
[edit] protocols { isis { interface interface-name { node-link-protection; } } }
排除 IS-IS 接口作为受保护接口的备份
默认情况下,属于主实例或特定路由实例的所有 IS-IS 接口均有资格作为受保护接口的备份接口。您可以指定将任何 IS-IS 接口排除在受保护接口的备份接口之外。要排除 IS-IS 接口作为备份接口,请将语句no-eligible-backup
[edit protocols isis interface interface-name]
包含在层次结构级别:
[edit] protocols { isis { interface interface-name { no-eligible-backup; } } }
将 RSVP 标签交换路径配置为 IS-IS 的备用路径
如果对单跳邻接方而言,依靠最短路径优先 (SPF) 的备份路径计算,可能会使特定网络拓扑的备份覆盖范围不到 100%。您可以将 RSVP LSP 配置为备用路径,从而扩大 IS-IS 和 LDP 标签交换路径 (LSP) 的覆盖范围。要将特定 RSVP LSP 配置为备份路径,请在 backup
层次结构级别添加语句 [edit protocols mpls label-switched-path lsp-name]
:
[edit] protocols { mpls { label-switched-path lsp-name { backup; to ip-address; } } }
配置 LSP 时,必须使用语句指定出口路由设备的 to
IP 地址。有关配置 LSP 和 RSVP 的详细信息,请参阅 适用于路由设备的 Junos OS MPLS 应用程序库。
使用操作模式命令监控受保护的 IS-IS 路由
您可以发出操作模式命令,提供有关链路保护和节点链路保护 IS-IS 路由的更多详细信息。以下准则解释了每个命令输出中提供的信息类型:
show isis backup label-switched-path
- 显示已将哪些 MPLS LSP 指定为备份路径,以及这些 LSP 的当前状态。show isis backup spf results
- 显示给定目标的每个邻接方 SPF 计算。指示特定接口或节点是否已被指定为备份路径以及原因。使用no-coverage
选项可仅显示没有备份覆盖范围的节点。show isis backup coverage
- 显示受保护的每种地址家族的节点和前缀百分比。show isis interface detail
-显示应用于每个受保护接口的保护类型(链路或节点链路)。