Assume we have a simple triangular network:
EIGRP: Feasible successors
EIGRP tries to use feasible successors to speed up the convergence process. Whenever B reports its distance to X to A, A compares B’s reported distance to its current feasibility distance. Lower reported distance means that B doesn’t use A to get to X (A is not B's successor). B is also not A's successor for X (that’s C as long as the A-to-C link is operational), but it’s a feasible successor. Using B to get traffic to X will not result in a routing loop.
A feasible successor is evaluated for individual destinations. From A’s perspective, B is a feasible successor for X and C is a feasible successor for Y.
Faced with A-to-C link loss, A can switch immediately to the feasible successor (B) for destination X. Convergence is immediate.
OSPF: Let’s make sure we’re in sync
OSPF is way more lackadaisical:
- It changes the LSAs affected by the updates and floods them ... unless there’s been a recent topology change, in which case it goes and sits quietly in a corner until the timers throttle lsa hold-interval expires.
- It waits a bit more, silently lamenting its misery, until the timers throttle spf spf-start timer expires.
- It runs SPF algorithm, computes the new OSPF shortest-path tree, and copies the results in the IP routing table.
Total convergence time: 5+ seconds (unless you’ve done some serious tweaking).
Loop-Free Alternate Fast Reroute: Feasible Successor for OSPF
There’s no reason OSPF couldn’t have reacted faster – every single router knows the whole topology of all attached areas and can thus easily calculate which of its neighbors could be feasible successors. That’s exactly what LFA is doing:
- OSPF (or IS-IS) routing process runs SPF, computes its own best paths, and installs them in the IP routing table (RIB).
- After the network has converged, OSPF runs SPF algorithm from the perspective of its neighbors. If a neighbor’s SPF tree doesn’t use current router as the next hop for a specific destination, it’s safe to use that neighbor as a feasible successor.
- The feasible successor information calculated by OSPF is downloaded in RIB and FIB, where it can be used immediately after the link failure.
Can I use it?
Loop Free Alternate Fast Reroute is available for OSPF and IS-IS in Cisco IOS 15.1(3)S and XE 3.4S. The IS-IS implementation is pretty rudimentary; the OSPF implementation allows you to specify numerous alternate path selection criteria. For example, you might prefer alternate paths that don’t go over a shared risk link group, through the same LAN interface, or through the next-hop router.
- Basic Specification for IP Fast Reroute: Loop-Free Alternates (RFC 5286)
- Understanding and Deploying Loop-Free Alternate Feature (Junos Implementation Guide)
- Nice introductory article by Tony Brown
- IP Fast Reroute Applicability – EuroNOG presentation by Pierre Francois (with lots and lots of details and topology analysis).
The fun part
I wanted to write about a completely different topic and realized I have to cover yet another topic to explain the root cause of the problem I wanted to describe.
My ramblings tend to be recursive (as anyone who was forced to listen to my campfire stories can probably attest), and it turned out the final leaf in that recursive process was LFA. Will you try to guess where I started?