TI-LFA Pt. 3 (Node and SRLG Protection)
By default, TI-LFA implements only link protection for the backup/repair path. The repair path is calculated by finding the best path with the protected link removed from the topology. However there are two other protection option you can use: node protection and SRLG protection.
Node protection means that the next-hop node is pruned from the topology when the backup path is calculated. SRLG protection means that all local links that are part of the same SRLG group as the primary link, are pruned from the topology when the backup path is calculated.
If you are not familiar with SRLG (Shared Risk Link Group), it is used to indicate that two or more links share the same fate. For example, two links may run inside the same conduit, so if a backhoe takes one link out, it is highly likely the other link is cut as well. When you use SRLG protection, you are telling the router that other links may very well be down when the primary link goes down, so use other links that are not in the same SRLG as the primary link. Note that only locally configured interfaces are considered when TI-LFA finds SRLG-disjoint paths. The local node will not run CSPF with other router’s links pruned which share the same SRLG.
Whether node, link, or SRLG protection is used, the link failure event is always what triggers the backup path. The router does not actually know whether the node on the other end went down or just the link went down, so when using node or SRLG protection you may get a backup path that differs from the post-convergence path. If the node does not go down, but you are avoiding it in your backup path, you might re-converge on a different path compared to the backup path. This is usually not really an issue, it just means that the backup path did not take the most optimal path.
To configure TI-LFA for node or SRLG protection, you use tiebreakers. In regular LFA, tiebreakers are used to select a single LFA among multiple LFA candidates. However with TI-LFA, the tiebreaker is used to specify the protection mode (link, node or SRLG) and the order in which to prefer the protection modes. You can configure node or srlg protection modes. Both of these also must be link-protecting by definition, as you cannot find a node or srlg protecting path that does not also protect the link.
If you configure both node and SRLG protection, the router will attempt to find a backup path in the following order:
A path that is both node and SRLG protecting
A path that is only node or only SRLG protecting path (the mode with highest preference)
A path that is only node or only SRLG protecting path (the mode with lowest preference)
A path that is only link protecting
Here is an example in ISIS with both node protection and SRLG protection configured. Node protection is given priority. First the router will try to find a path that is node and SRLG protecting, then node protecting only, then SRLG protecting only, then fall back to link protecting.
The higher index number is more preferred. You can confirm the TI-LFA tie breakers using the following show command:
As a comparison, Gi0/0/0/1 has TI-LFA enabled but no tiebreakers are configured. The default link protecting mode is enabled, and node and SRLG modes have an index of 0.
The configuration for OSPF is similar but you can configure this at the instance level:
I use index values of 200 and 100 to differentiate from other tiebreakers which have indexes of 20 and 10 by default.
Lab
We’ll re-use our topology from the previous section, and add a link between R2-R3:
R1 still has the same IGP configuration, with the default TI-LFA link protection mode.
Configure the new R2-R3 link:
Now R3’s shortest path to 6.6.6.6/32 is via R2:
R1’s backup path for 6.6.6.6/32 is simply to send the traffic to R3:
Coincidentally, both R2 and R3 have allocated the same label, 24011, for 6.6.6.6/32
Current backup path
Node Protection
Now let’s configure TI-LFA for node protection. This means that the IGP should remove node R2 completely from the topology when calculating the repair path in order to avoid it, as we are protecting traffic in the event that R2 crashes completely. In MPLS-TE we specified a TE tunnel with a strict path that would exclude 2.2.2.2. With TI-LFA we can simply turn on node protection.
The repair path is now back to what we saw before adding the R2-R3 link (R1-R3-R5-R6).
SRLG Protection
Let’s add a second link to R1-R2. Instead of configuring an LACP bundle, we will use this link as a backup interface with a metric of 15.
Let’s configure the interfaces and also remove node-protection for TI-LFA.
R1 will now select Gi0/0/0/2 as the backup path, as this is the post-convergence path if link Gi0/0/0/0 fails:
Let’s imagine that the fiber for these two links shares the same conduit. We are concerned that if Gi0/0/0/0 goes down, Gi0/0/0/2 may also go down. We’ll configure both of these interfaces as part of the same SRLG and configure TI-LFA to select a SRLG-disjoint backup path if it is available. To do this, the IGP will remove all local links belonging to the same SRLG as Gi0/0/0/0 from the topology, and then run SPF to determine the backup path.
Can you predict the backup path? Spend a few minutes thinking it through and then scroll down to check your answer.
The backup path is the following:
This is because TI-LFA is only attempting to find an SRLG disjoint backup path, not an SRLG disjoint plus node protecting path.
Node and SRLG Protection
If we want node protection as well as SRLG-disjoint, we can configure both and the router will first prefer a backup path that is both SRLG-disjoint and node protecting. Let’s set node protection as index 150.
The backup path is now both SRLG disjoint and node protecting!
Conclusion
In this series, we’ve explored the theory behind the IPFRR technologies - LFA, rLFA and TI-LFA. We’ve seen the benefits that TI-LFA and had some practice implementing all IP FRR flavors.
I hope this series has been helpful. I highly suggest working through Nick Russo’s blog posts if you haven’t already. You will likely gain even more insight from his reading and also some practice using IP FRR with OSPF.
Last updated