LFA Tiebreakers (ISIS)
Load basic.isis.sr.enabled.cfg
Configure the R6-R7 link to have a metric of 25.
Configure LFA on R3 for the Gi0/0/0/5 link. Prefer node-protecting LFAs over SRLG-disjoint LFAs, and SRLG-disjoint LFAs over lowest-backup-metric paths.
Answer
Explanation
Before changing the tiebreakers, let’s look at the default settings.
Above, we see the following tiebreakers under “Remote LFA.” This is a bit deceptive, because they apply only to LFA. (RLFA cannot use these). A lower index has higher preference in ISIS.
Primary path (index 10)
When ECMP paths exist, the backup path is simply the other ECMP path which uses the other, non-protected interface
Lowest backup metric (index 20)
Choose the path with the lowest metric
Line-card disjoint (index 30)
Choose the path that uses an interface on a separate line card
Node protecting (index 40)
Choose the path that does not traverse the nexthop
Each next step is only evaluated if the previous step does not result in a preferred path. For example, line-card disjointness is only evaluated if all candidate paths have the same metric.
Currently we have three LFAs in this topology for 7.7.7.1/32:
via R9
Total metric = 30
Not node protecting
via R6
Total metric = 35
Node protecting
via R4
Total metric = 70
Not node protecting
The current LFA for 7.7.7.1/32 is R9 due to the lowest-backup-metric tiebreaker at index 20:
Let’s now add in our custom tiebreakers. When we do this, these will completely overwrite the default tiebreakers.
Now the backup path is via R6, because our first tiebreaker is node protection. Neither R4 nor R9 provide node protection.
Exploring SRLG-Disjointness
Let’s change our tiebreakers around to prefer SRLG-disjointness.
R3 uses R9 as the LFA again because we have not configured SRLG on any interfaces, and the path via R9 is the lowest cost.
While SRLG values are propagated within MPLS-TE, SRLG-disjointness for LFAs only allow us to consider local interfaces on the router. If we place the protected link and the link towards R9 in the same SRLG, R3 will prefer the backup path via R6 due to the first srlg-disjoint tiebreaker.
If we move the lowest-backup-cost tiebreaker above srlg-disjoint, we will prefer R9 again because the path has a lower total metric. The SRLG-disjointness is never evaluated, because R9 wins at the first tiebreaker rule (lowest-backup-metric).
Exploring “secondary-path”
The secondary-path option allows us to prefer a non-ECMP path. To test this out, we can create ECMP paths to R7 by setting the metric on the R6-R7 link to 10.
We’ll remove all custom tiebreakers on R3.
The LFA for 7.7.7.1/32 is via R6 because it has the lowest metric. Note that LFA is not enabeld on Gi0/0/0/6. If it was, the backup path for the primary path via Gi0/0/0/6 would recipriocally be via Gi0/0/0/5.
We can instruct the router to prefer a non-ECMP path instead. I’m not sure what the use cases or benefits of this would be in particular, though.
The backup path is now via R9:
Exploring “downstream”
The downstream tiebreaker evaluates whether the nexthop has a lower IGP cost to the destination than the PLR. If so, the downstream flag is “true.” By including this above the lowest-backup-metric, you can use a path that has a node that is more downstream, but has a higher IGP metric because the link between the PLR and the neighbor might be a high cost.
Let’s change our topology even further so that the R4-R5 link has a cost of 5, and the R6-R7 link has a cost of 20.
Let’s remove our existing tiebreakers on R3.
The topology now looks like this:
R3 has only one LFA that has a downstream node, R4. R4 is downstream because its own cost to 7.7.7.1/32 is lower than R3’s cost to 7.7.7.1/32. However, R3 has a high metric link to R4, so the LFA via R6 is preferred.
The LFA is via R6. Notice below that the D (downstream) flag is set to “No.”
If we use the downstream tiebreaker, the path via R4 is the LFA because R4 is a downstream node, while R6 and R9 are not.
Summary
Here is a list of tiebreakers that can be configured under the ISIS process at the address-family level:
Last updated