On the Core or Edge network, we need more and more bandwidth. For a large service provider, in some parts of the world it’s quite expensive to upgrade links, .ie from 1Gb/s to 10Gb/s. There are two alternatives: aggregate the links either on layer 2 or by doing Layer 3 ECMP.
With layer 2 LAG, there are some restrictions like fast failure detection (resolved now with micro-bfd sessions), OAM (MPLS) … But it allows us to disable the LAG interface if we don’t have a pre-defined minimum active links or bandwidth in the bundle. This is not possible with layer 3 ECMP between two nodes, but with ISIS Link-Group it is doable. I tested it on Cisco ASR9K, I saw some docs on the Alcatel-Lucent 7750 and for JUNOS it is not yet available
How it works?
The ISIS Link-Group feature allows us to define a group/set of links and raise or lower their ISIS metric according to a predefined number of active links like the minimum-bandwidth with Layer 2 LAG.
When the total of active links (in term of ISIS adjacency) in a group falls below the minimum-members, a predefined offset is applied on the remaining active links.
When the total of active links in a group is back to the revert-members, ISIS will restore the configured metric by removing the offset.
Let’s take an example in order to understand how it works:
Router A has to exits through router B and C. Between A and B there are two layer 3 links with the same ISIS metric (20). Same setup between A and C (30).
In normal operations, the traffic from A goes through B and if we don’t have the ISIS Link-Group configured, even with a failure of link between A and B the traffic will still be routed through B ☹.
But with ISIS Link-Group, we can set an offset of 20 with a minimum-members of 2 and thus if we have a failure on a link between A and B, the metric will be raised to 40 (configured (20) + offset (20)) and so the traffic will be routed to C.
We can go further and define another ISIS Link-Group, this time between A and C, and if we have a failure on a link between B/C we can raise the offset to 20 also and thus the traffic will be routed back to B.
Configuration on Cisco IOS-XR
router isis [instance-name]
metric-offset [(0, 16777214) | maximum]
Watch out if you are using fast-convergence like LFA, you have to exclude the backup among the same ISIS Link Group because it is not done automatically. A solution is to use the same SLRG value inside the same ISIS Link-Group and set in the tiebreaker the srlg-disjoint option!
I hope you enjoyed this post and learned something new about ISIS!