Configuring Loop-Free Alternate Routes for IS-IS

In Junos OS Release 9.5 and later, support for IS-IS loop-free alternate routes enables IP fast-reroute capability for IS-IS. The Junos OS precomputes loop-free backup routes for all IS-IS routes. These backup routes are preinstalled in the Packet Forwarding Engine, which performs a local repair and implements the backup path when the link for a primary next hop for a particular route is no longer available. With local repair, the Packet Forwarding Engine can correct a path failure before it receives recomputed paths from the Routing Engine. Local repair reduces the amount of time needed to reroute traffic to less than 50 milliseconds. In contrast, global repair can take up to 800 milliseconds to compute a new route. Local repair and global repair are thus complementary. Local repair enables traffic to continue to be routed using a backup path until global repair is able to calculate a new route.

A loop-free path is one that does not forward traffic back through the routing device to reach a given destination. That is, a neighbor whose shortest path to the destination traverses the routing device is not used as a backup route to that destination. To determine loop-free alternate paths for IS-IS routes, the Junos OS runs shortest-path-first (SPF) calculations on each one-hop neighbor. You can enable support for alternate loop-free routes on any IS-IS interface. Because it is common practice to enable LDP on an interface for which IS-IS is already enabled, this feature also provides support for LDP label-switched paths (LSPs).

The level of backup coverage available through IS-IS routes depends on the actual network topology and is typically less than 100 percent for all destinations on any given routing device. You can extend backup coverage to include RSVP LSP paths.

The Junos OS provides two mechanisms for route redundancy for IS-IS through alternate loop-free routes: link protection and node-link protection. When you enable link protection or node-link protection on an IS-IS interface, the Junos OS creates an alternate path to the primary next hop for all destination routes that traverse a protected interface. Link protection offers per-link traffic protection. Use link protection when you assume that only a single link might become unavailable but that the neighboring node on the primary path would still be available through another interface.

Node-link protection establishes an alternate path through a different routing device altogether. Use node-link protection when you assume that access to a node is lost when a link is no longer available. As a result, the Junos OS calculates a backup path that avoids the primary next-hop routing device. In Junos OS Release 9.4 and earlier, only the RSVP protocol supports Packet Forwarding Engine local repair and fast reroute as well as link protection and node protection.

In Figure 8, Case 1 shows how link protection allows source Router A to switch to Link B when the primary next hop Link A to destination Router C fails. However, if Router B fails, Link B also fails, and the protected Link A is lost. If node-link protection is enabled, Router A is able to switch to Link D on Router D and bypass the failed Router B altogether. As shown in Case 2, with node-link protection enabled, Link A on Router A has both link protection and node-link protection alternate paths available. That means that if the backup path from Router A to Link D fails, Link B remains available as an alternate backup path.

Figure 8: Link Protection and Node-Link Protection Comparison for IS-IS Routes

Image g017299.gif

The Junos OS implementation of support for loop-free alternate paths for IS-IS routes is based on the following standards:

This section discusses the following topics:

You can configure link protection on any interface for which IS-IS is enabled. When you enable link protection, the Junos OS creates an alternate path to the primary next hop for all destination routes that traverse a protected interface. Link protection assumes that only a single link becomes unavailable but that the neighboring node would still be available through another interface.

Note: You must also configure a per-packet load-balancing routing policy to ensure that the routing protocol process installs all the next hops for a given route in the routing table. For more information, see Configuring Per-Packet Load Balancing.

To enable link protection, include the link-protection statement at the [edit protocols isis interface interface-name] hierarchy level:

[edit]protocols {isis {interface interface-name:link-protection;}}}

You can configure node-link protection on any interface for which IS-IS is enabled. Node-link protection establishes an alternate path through a different routing device altogether for all destination routes that traverse a protected interface. Node-link protection assumes that the entire routing device, or node, has failed. The Junos OS therefore calculates a backup path that avoids the primary next-hop routing device.

Note: You must also configure a per-packet load-balancing routing policy to ensure that the routing protocol process installs all the next hops for a given route in the routing table. For more information, see Configuring Per-Packet Load Balancing.

To enable node-link protection, include the node-link-protection statement at the [edit protocols isis interface interface-name] hierarchy level:

[edit]protocols {isis {interface interface-name:node-link-protection;}}}

Excluding an IS-IS Interface as a Backup for Protected Interfaces

By default, all IS-IS interfaces that belong to the master instance or a specific routing instance are eligible as backup interfaces for protected interfaces. You can specify that any IS-IS interface be excluded from functioning as a backup interface to protected interfaces. To exclude an IS-IS interface as a backup interface, include the no-eligible-backup statement at the [edit protocols isis interface interface-name] hierarchy level:

[edit]protocols {isis {interface interface-name {no-eligible-backup;}}}

Configuring RSVP Label-Switched Paths as Backup Paths for IS-IS

Relying on the shortest-path first (SPF) calculation of backup paths for one-hop neighbors might result in less than 100 percent backup coverage for a specific network topology. You can enhance coverage of IS-IS and LDP label-switched paths (LSPs) by configuring RSVP LSPs as backup paths. To configure a specific RSVP LSP as a backup path, include the backup statement at the [edit protocols mpls label-switched-path lsp-name] hierarchy level:

[edit]protocols {mpls {label-switched-path lsp-name {backup;to ip-address;}}}

When configuring an LSP, you must specify the IP address of the egress routing device with the to statement. For detailed information about configuring LSPs and RSVP, see the Junos MPLS Applications Configuration Guide.

Using Operational Mode Commands to Monitor Protected IS-IS Routes

You can issue operational mode commands that provide more details about your link-protected and node-link-protected IS-IS routes. The following guidelines explain the type of information available from the output of each command:

For more detailed information about these commands, see the Junos Routing Protocols and Policies Command Reference.

Example: Configuring Node-Link Protection for IS-IS Routes

In this example, all the logical interfaces on the router are enabled for IS-IS level 2, LDP, and RSVP. Node-link protection is enabled on all the interfaces, which means that if the primary next hop for any destination that traverses the interfaces becomes unavailable, the Junos OS uses a backup link that avoids the next-hop router altogether if necessary.

You also need to configure a routing policy that requires all traffic to use per-packet load balancing in order to enable Packet Forwarding Engine local repair. With local repair, the Packet Forwarding Engine can correct a path failure and implement a backup loop-free alternate route before it receives recomputed paths from the Routing Engine.

Configure the interfaces. Enable IS-IS and MPLS. In this example, the interfaces are also enabled for both IPv4 and IPv6 traffic.

[edit interfaces]ge-2/0/0 {unit 0 {family inet {address 11.14.0.1/30;}family iso;family inet6;family mpls;}}
ge-2/0/1 {unit 0 {family inet {address 11.14.1.1/30;}family iso;family inet6;family mpls;}}
so-3/0/1 {unit 0 {family inet {address 11.16.1.1/30;}family iso;family inet6;family mpls;}}
so-3/0/2 {unit 0 {family inet {address 11.16.0.1/30;}family iso;family inet6;family mpls;}}
so-6/0/0 {unit 0 {family inet {address 11.12.0.1/30;}family iso;family inet6;family mpls;}}

Configure the IS-IS interfaces for Level 2 only, and configure MPLS to use both RSVP and LDP label-switched paths (LSPs). Enable IS-IS node-link protection, which also automatically extends backup coverage to all LDP LSPs.

[edit protocols]rsvp {interface all;interface fxp0.0 {disable;}}mpls {interface all;interface fxp0.0 {disable;}}isis {interface all {node-link-protection; # Enable node-link protection on all IS-IS interfaces.
# Protection is automatically extended to all LDP LSPs.
level 2 metric 10;level 1 disable;}
interface fxp0.0 {disable;}interface lo0.0 {level 2 metric 0;}}ldp {deaggregate; # Enable forwarding equivalence class deaggregation, which results in faster global convergence.interface all;interface fxp0.0 {disable;}}

To enable Packet Forwarding Engine local repair, establish a policy that forces the routing protocol process to install all the next hops for a given route. This policy ensures that the backup route is installed in the forwarding table used by the Packet Forwarding Engine to forward traffic to a given destination. After this policy is configured, export it to the forwarding table of the local routerwith the export statement at the [edit routing-options forwarding-table] hierarchy level.

[edit policy-options]policy-statement ecmp {term 1 {then {load-balance per-packet;}}}
[edit routing-options]forwarding-table {export ecmp;}