LFA
Last updated
Last updated
Load lfa.init.cfg
The topology has been reduced to the five routers above. All links have a metric of 10. SR is not configured in the network, only pure IP using ISIS.
Configure R3 so that it calculates an LFA for 10.10.10.1/32.
In this topology, R3 can use R5 as a LFA (loop-free alternate) for the prefix 10.10.10.1/32. Under normal conditions, R3 will use R4 as the nexthop, as the total cost is 20, and the path through R5 is 30. R5 will use R6 as its nexthop, as that path is 20. Because R5 does not use the protected link under normal conditions, it is a loop-free alternate.
The inequality that an LFA must satisfy is the following:
N = Neighbor
D = Destination prefix
PLR = Point of Local Repair
So the neighbor’s distance to 10.10.10.1/32 must be less than the PLR’s cost to this prefix plus the neighbor’s cost to the PLR. If the neighbor’s distance to the prefix was greater or equal, there is risk of the neighbor loopback packets back to the PLR during convergence.
R5’s distance to 10.10.10.1/32 is 20, R5’s cost to R3 (PLR) is 10, and R3’s cost to 10.10.10.1/32 is 20.
We can see before making any changes that R3 only has a single route in the RIB for 10.10.10.1/32:
If we add LFA to the interface under ISIS, we now see a backup path via R5:
This can be seen in the show isis fast-reroute output as well:
The above flag NP means node protecting. We did not specify it, but this backup path happens to be node protecting. The other flags are:
P = Primary path
TM = Total metric via backup path
LC = Line card disjoint
D = Downstream
SRLG = Path is SRLG disjoint
This backup path is installed as a repair route in the FIB:
We can also see a summary of FRR to see how many prefixes are currently protected:
Currently only 1 out of 4 prefixes are protected. This is because we enabled LFA only on Gi0/0/0/4. If we enable LFA on Gi0/0/0/5 we achieve 50% protection:
By default, /32 routes appear to be medium priority. Low priority would be interface prefixes (/30s).
We can also exclude interfaces from being used for LFAs. This is kind of a more extreme version of SRLG-disjoint, which you will see in the next lab. You might think you can just assign the local interface and LFA-candidate interface to the same SRLG and add srlg-disjoint to the tiebreakers. But this still allows the other interface to be used if no other paths exist. To completely force the interface not to be used, we can use the following configuration:
Now we have no LFA for 10.10.10.1/32: