Support For TI-LFA FRR Using Is-Is Segment Routing
Support For TI-LFA FRR Using Is-Is Segment Routing
eos.arista.com/eos-4-22-1f/support-for-ti-lfa-frr-using-is-is-segment-routing
Contents [hide]
Description
Feature History
Platform Compatibility
Configuration
Configuring link/node protection globally on all interfaces
Configuring link/node protection on a specific interface
Configuring a local LFIB convergence delay for protected node/adjacency segments
Making locally-originated Adjacency segments backup eligible
Enable SRLG protection
Sample configuration
Show Commands
show isis segment-routing prefix-segments/adjacency-segments
show isis interface
show isis local-convergence-delay
show isis ti-lfa path
show isis segment-routing tunnel
show isis ti-lfa tunnel
show tunnel fib
show mpls lfib route
show ip route
Troubleshooting
Tracing
Limitations
Resources
Description
Topology Independent Fast Reroute, or TI-LFA, uses IS-IS SR to build loop-free alternate paths along the post-convergence path. These
loop-free alternates provide fast convergence in the range of sub-50 ms.
The PLR ( point of local repair – the router where TI-LFA is configured ) switches to these loop-free alternate backup paths in the event of a
link down ( link-protection ) or BFD neighbor down (node-protection) event, protecting traffic destined to IS-IS SR node segments, adjacency
segments, and anycast segments while the IGP converges and the post-convergence paths are computed. Anycast segment protection is
restricted to those segments which are attached to prefixes with host mask (/32 for V4 address and /128 for v6 address). Note that unlike
node segments, anycast segments do not have the ‘N’ flag set described in section 2.1.1.2 of RFC8667.
The backup paths are only installed for IS-IS SR labeled routes and tunnels corresponding to node segments, adjacency segments, and
anycast segments. When node-protection is requested, and no node-protecting LFAs are available, a link-protecting LFA is computed
instead. This feature is available with the multi-agent routing protocol model and the ribd routing protocol model.
Other traffic that resolves over IS-IS SR tunnels, such as LDP pseudowires, BGP LU tunnels, BGP IP routes, L2 EVPN, MPLS L3 VPN, etc
are also protected by the TI-LFA tunnel that protects the resolving IS-IS SR tunnel.
Feature History
Release Update
EOS-4.22.1F Initial support for Node and Link protection for SR LFIB routes
1/9
Platform Compatibility
TI-LFA FRR using IS-IS SR is supported on Arista 7500R, 7500R2, 7500R3, 7280R, 7280R2, 7280R3 and 7800R3 family of switches
(platforms supporting HFEC).
Configuration
FRR using TI-LFA is disabled globally by default in the router IS-IS address-family sub-modes.
To enable link/node protection for node segments and Adjacency segments learned on a specific IS-IS interface, the following command is
used in the interface configuration mode.
The interface TI-LFA configuration inherits the address-family sub-mode configuration by default.
On an L1-L2 router, the [level-1|level2] optional keyword in both the router IS-IS address-family sub-mode and interface configuration mode
CLIs is used to restrict protection to node segments and Adjacency segments learned through either level-1 or level-2 topologies only.
To configure a convergence delay only to LFIB routes that are being protected, the following command is used either in the router IS-IS mode
or the router IS-IS address-family sub-mode.
A default of 10 seconds is used when the command is used without an explicitly specified delay.
To set the B-flag in originated Adjacency SID sub-TLVs corresponding to adjacency segments dynamically allocated on the router, the
following command is used in the segment-routing MPLS sub-mode in the router IS-IS mode.
DUT(config-router-isis-sr-mpls)# t
To set the B-flag in originated Adjacency SID sub-TLVs corresponding to adjacency segments statically configured on the router, the following
command is used in the interface configuration mode.
backup-eligible is the newly introduced optional keyword in both the CLIs mentioned above that controls the setting of the B-flag in the
Adjacency SID sub-TLV.
2/9
To enable SRLG protection on all interfaces, the following command can be used. This command is used in addition to configuring link-
protection or node-protection. If SRLG protection is enabled, the backup paths will be computed after excluding all the links that share the
same SRLG with the active link that is being used by all prefix segments and adjacency segments.
The following command can be used to enable protection selectively on a specific interface. This command will only enable SRLG protection
for prefix segments and adjacency segments enabled on this interface.
If the optional argument strict is configured, the backup path is only programmed only if a backup path that excludes all the SRLGs
configured on the primary interface. If the keyword is not provided and an SRLG excluding path is not available, TI-LFA will program the
backup path that excluded the maximum number of SRLGs possible.
To selectively disable SRLG protection on an interface, the following command can be used. This is useful if SRLG protection is enabled
globally for all interfaces but needs to be selectively disabled for a specific interface.
Sample configuration
The above topology will be used to demonstrate the configuration and show command output. Here we will see the backup paths that the
PLR computes to protect the node segments of R1 and R2, the global adjacency segment on R2, and the local adjacency segment on the
Vlan2387 on the PLR.
3/9
!
interface Vlan2138
ip address 10.1.1.1/24
isis enable inst1
isis metric 11
isis network point-to-point
!
interface Vlan2387
ip address 10.1.2.1/24
isis enable inst1
isis network point-to-point
adjacency-segment ipv4 p2p label 965537 backup-eligible
!
interface Vlan2968
ip address 10.1.3.1/24
isis enable inst1
isis network point-to-point
isis fast-reroute ti-lfa mode disabled
!
…
…
router isis inst1
net 49.0001.1111.1111.1001.00
router-id ipv4 252.252.1.252
is-type level-2
timers local-convergence-delay 5000 protected-prefixes
!
address-family ipv4 unicast
fast-reroute ti-lfa mode node-protection
!
segment-routing mpls
no shutdown
adjacency-segment allocation sr-peers backup-eligible
!
end
The protection of anycast segments does not need any new configuration. The above configuration should enable protection of anycast
segments.
R1 and R4 are originators of the host prefix 10.10.10.1/32 and advertise prefix segment 900010. Note that this should be configured as a
prefix segment and not a node segment.
...
!
segment-routing mpls
prefix-segment 10.10.10.1/32 index 10
!
4/9
The prefix in the prefix-segment command should belong to an interface enabled with IS-IS or should be an active route in the RIB of another
protocol redistributed into IS-IS.
If link or node protection is configured on the PLR then the primary path to the segment 900010 will be PLR – R1 and the backup path will be
PLR – R2 – R3 – R4. In other words, the destination in the backup path will be the segment originated by R4 as the segment originated by
R1 will not be reachable when link PLR-R1 or the node R1 goes down.
Show Commands
The show isis interface output has a per-IS-level field that displays the state of TI-LFA protection for IPv4/IPV6 prefixes learned on that
IS-IS interface.
Interface Vlan2387:
Index: 36 SNPA: P2P
MTU: 1497 Type: point-to-point
BFD IPv4 is Disabled
BFD IPv6 is Disabled
Hello Padding is Enabled
Level 2:
Metric: 10, Number of adjacencies: 1
Link-ID: 24
Authentication mode: None
TI-LFA node protection with SRLG loose protection is enabled for the following IPv4 segments: node segments, adjacency
segments
TI-LFA protection is disabled for IPv6
5/9
Arista#sh isis local-convergence-delay
The ‘ detail ’ keyword also lists all the routes that have been delayed.
6/9
The show isis segment-routing tunnel command displays all the IS-IS SR tunnels. The field ‘TI-LFA tunnel index’ shows the index of
the TI-LFA tunnel protecting the SR tunnel. The same TI-LFA tunnel that protects the LFIB route also protects the corresponding IS-IS SR
tunnel.
The TI-LFA repair tunnels are just internal constructs that are shared by multiple LFIB routes that compute similar repair paths. show isis
ti-lfa tunnel is a command that displays TI-LFA repair tunnels with the primary and backup via information.
7/9
Arista#sh mpls lfib route 900005
...
IP 900004 [1], 10.0.10.1/32
via TI-LFA tunnel index 0, swap 900004
payload autoDecide, ttlMode uniform, apply egress-acl
via 10.0.0.2, Vlan2387, label imp-null(3)
backup via 10.0.1.2, Vlan2968, label 100001
show ip route
When services like LDP pseudowires, BGP LU, L2 EVPN or L3 MPLS VPN use IS-IS SR tunnels as an underlay, these services are
automatically protected by TI-LFA tunnels that protect the IS-IS SR tunnels. The ‘ show ip route ’ command displays the hierarchy of the
overlay-underlay-TI-LFA tunnels like below.
B 2001:db8:3::/48 [200/0]
via 2002::b00:301/128, IS-IS SR tunnel index 3, label 122697
via TI-LFA tunnel index 5, label imp-null(3)
via fe80::200:76ff:fe03:0, Ethernet26/1, label imp-null(3)
backup via fe80::200:76ff:fe01:0, Ethernet30/1, label 900002 900003
Troubleshooting
When an IS-IS SR LFIB route or a tunnel corresponding to a node segment or an adjacency segment that is expected to have backup paths,
does not show backup paths in ‘ show mpls lfib route ’ or ‘ show tunnel fib ’, follow this sequence of steps to possibly find the reason
why a backup path hasn’t been computed.
Check the output of ‘ show isis segment-routing prefix-segment ’ or ‘ show isis segment-routing adjacency-segments ’
and confirm that the node or adjacency segment is eligible for protection. If the Protection field for a node segment or adjacency
segment is ‘ Unprotected ’ but TI-LFA is configured on the interface on which the segment is learned, go to the last step.
Check the output of ‘ show isis ti-lfa path <destination> ’ where destination is the system ID or hostname of the originator
of the node segment or global adjacency segment. If the adjacency segment being protected is a locally adjacency segment,
destination is the system ID or hostname of the router on the other side of the link where the adjacency segment is configured. If it
indicates, ‘ Path not found ’ for a destination/constraint tuple in the output, that would indicate there was no post-convergence path
available. If that is not true, go to the last step.
Verify that a segment-routing label stack can be built for the explicit backup path listed for the system ID in the output of the command
above. The output in the ‘ show isis ti-lfa path ’ lists the explicit repair path from the P-node to the Q-node.
Ensure that the P-node has a node segment associated with it, if it is not the neighbor of the PLR.
Ensure that there are adjacency segments that can be used to build a label stack to go from the P-node to the Q-node.
If the destination node segment/adjacency segment does not belong to the Q-node, ensure that the Q-node has a label binding (
See ‘ show mpls segment-routing bindings ’ ).
At this point, we have eliminated any topology related issues that could have caused the non-computation of backup paths. For further
debugging, collect
/var/log/qt/Rib*.qt, /var/log/qt/Isis*.qt, /var/log/qt/Mpls.qt,/var/log/qt/Cspf.qt
The output of show tech-support extended cspf
show tech-support ribd in ribd agent mode or show tech-support extended isis in multi agent mode.
Tracing
Disclaimer: In some cases, enabling tracing can seriously impact the performance of the switch. Please use it cautiously and seek advice
from an Arista representative before enabling it in any production environment.
Useful tracing for debugging issues in the backup path computation include:
8/9
DUT(config)#trace Mpls setting
LfibGenSm/*,SrAdjacencyLfibGenSm/*,TiLfaCspfRequestSm/*,TiLfaCspfResponseSm/*,TiLfaDedupTunnelTable/*,TiLfaRoot/*
DUT(config)# trace <routing_agent_name> setting SegmentRoutingImpl/*
where routing_agent_name is Rib in single agent mode and Isis in multi-agent mode.
DUT(config)# trace Cspf setting
CspfAgent/,CspfVrfRoot/,CspfConstraintInfoSm/,CspfDedupPqInfo/,CspfImpl/,CspfPathSm/,TopoDb/*,CspfPqComputeSm/*
DUT(config)# trace Tunnel setting TunnelFibSm/*,TunnelRibSm/*
Limitations
Backup paths are not computed for prefix segments that do not have a host mask (/32 for v4 and /128 for v6).
When TI-LFA is configured, the number of anycast segments generated by a node cannot exceed 10
Computing TI-LFA backup paths for proxy node segments is not supported.
Backup paths are not computed for node segments corresponding to multi-homed prefixes. The multi-homing could be the result of
them being anycast node segments, loopback interfaces on different routers advertising SIDs for the same prefix, node segments
leaked between levels, and thus being seen as originated from multiple L1-L2 routers.
Backup paths are only computed for segments that are non-ECMP.
Only IS-IS interfaces that are using the point-to-point network type are eligible for protection.
Link/node protection is only supported in the default VRF owing to the lack of non-default VRF support for IS-IS segment-routing.
Backup paths are computed in the same IS-IS level topology as the primary path.
Even with IS-IS GR configured, ASU2, SSO, agent restart are not hitless events for IS-IS SR LFIB routes or tunnels being protected by
backup paths.
Resources
Topology Independent Fast Reroute using Segment Routing
RFC 8667
9/9