OSPFv2 LDP Remote Loop-Free Alternate (RLFA)
A basic mechanism using Loop-Free Alternates (LFAs) is described in RFC5286 that provides good repair coverage in many topologies, especially those that are highly meshed.
However, some topologies, notably ring-based topologies, are not well protected by LFAs alone. This is because there is no neighbor of the Point of Local Repair (PLR) that has a cost to the destination via a path that does not traverse the failure that is cheaper than the cost to the destination via the failure.
RFC 7490 provides extensions to the basic repair mechanism in which tunnels are used to provide additional logical links that can be used as loop-free alternates where none exist in the original topology. It provides loop-free alternates that guarantee only link protection.
RFC 8102 provides remote-loop-free-based IP fast reroute mechanisms that specifies procedures for determining whether or not a given PQ-node provides node protection for a specific destination. It provides node protection for all destinations covered by the same remote-LFA alternate, in case of failure of the primary next-hop node
Ospf shall compute PQ node and LDP shall dynamically create tunnel to PQ node so that if primary path fails traffic can be rerouted to backup rLFA tunnel and hence to destination.
Remote LFA involves the use of a tunnel to a next-hop that is not directly connected. This is the primary difference between the LFA and Remote LFA.
RLFA Terminology
Note: Terms used for defining tunnel as below:
Figure 36-14: Understanding RLFA
Repair tunnel
A tunnel established for the purpose of providing a virtual neighbor that is a Loop-Free Alternate.
P-space
The P-space of a router with respect to a protected link is the set of routers reachable from that specific router using the pre-convergence shortest paths, without any of those paths (including equal cost path splits) transiting that protected link.
For example, the P-space of S with respect to link S-E is the set of routers that S can reach without using the protected link S-E.
Extended P-space
Consider the set of neighbors of a router protecting a link. Exclude the router reachable over the protected link from that set of routers. The extended P-space of the protecting router with respect to the protected link is the union of the P spaces of the neighbors in that set of neighbors with respect to the protected link.
Q-space
Q-space of a router with respect to a protected link is the set of routers from which that specific router that can be reached without any path (including ECMP Splits) transiting that protected link.
PQ node
A PQ node of a node S with respect to a protected link S-E is a node that is a member of both the P-space (or the extended P-space) of S with respect to that protected link S-E and the Q-space of E with respect to that protected link S-E. A repair tunnel endpoint is chosen from the set of PQ-nodes.
Remote LFA (RLFA)
The use of a PQ node rather than a neighbor of the repairing node as the next hop in an LFA repair.
In
Figure 7-84, S can reach A, B, and C without going via S-E; these form S's extended P-space with respect to S-E. The routers that can reach E without going through S-E will be in E's Q-space with respect to link S-E; these are D and C.B has equal-cost paths to E via B-A-S-E and B-C-D-E, and so the forwarder at S might choose to send a packet to E via link S-E. Hence, B is not in the Q-space of E with respect to link S-E. The single node in both S's extended P-space and E's Q-space is C; thus, node C is selected as the repair tunnel's endpoint. thus, node C is selected as the repair tunnel's endpoint.
Establishing RLFA Tunnel
To calculate the Remote LFA backup path and to determines the Remote LFA node the software requirement can be broadly classified as below:
OSPF
OSPF shall calculate Repair path that are P space (routers it can reach without traversing the protected link) and Q space (routers that can reach the protected destination without traversing the protected link). Hence routers that belong to both spaces called as PQ routers has to be calculated. It has to inform LDP about PQ node so that RLFA tunnel can be established.
LDP
LDP shall establish targeted session with PQ node and shall advertise label to peer node for the destination FEC. LDP shall send primary and backup path FTN/ILM add/delete info to NSM for further programing.
NSM
NSM shall maintain Primary and Backup path FTN/ILM and shall send information to HSL for data-plane programing.
HSL
HSL program primary and backup FTN/ILM entry in hardware.
Configure LDP Remote Loop-Free Alternate (RLFA)
The LDP RLFA configuration process can be divided into the following tasks:
1. Enable label-switching on the interface on NSM.
2. Establish ospf routing between the nodes (to distribute reachability information within the MPLS cloud)
3. Configure ospf RLFA on Source node
4. Enabling LDP on an interface in the LDP daemon
5. Configure LDP FRR with Auto-targeted-session (Allow creating TLDP session dynamically)
6. Enable BFD interval globally and for all ISIS enabled interfaces
Note: Faster convergence can be achieved with lower BFD interval enabled globally.
Note: Dynamically created RLFA T-LDP sessions will be removed only after disabling LDP auto-targeted-session CLI or LDP FRR.
Note: When targeted-peer ipv4 CLI is configured with auto-targeted-session CLI, T-LDP session created for targeted-peer only remove after disabling auto-targeted-session CLI.
Note: After Enabling Ospf RLFA, Both LFA and RLFA computation will be done and RLFA path will be preferred to provide node-protection.
Note: Better convergence can be achieved with LDP-IGP-SYNC enabled.
Assumptions and Limitations
• RLFA Backup path computation will be supported only via IGP as IS-IS/Ospf.
• Only LDP(MPLS) will be used as a tunnel mechanism to reach a Remote-LFA repair node.
• Only IPv4 protocol is supported.
• RFC 7916 [LFA-MANAGE] is not supported.
• ECMP will not be supported for RLFA next-hop.
Topology
Figure 7-85 shows the configuration required to enable the RLFA feature.
RLFA Topology
R1
#configure terminal | Enter configure mode |
(config)#router ldp | Enable LDP process |
(config-router)#fast-reroute | Enable LDP FRR |
(config-router)#auto-targeted-session | To Allow creating TLDP session dynamically |
(config-router)#commit | Commit the candidate configuration to the running configuration |
(config-router)#exit | Exit LDP process |
(config)#router rsvp | Enable RSPVP |
(config-router)#srlg-disjoint forced | Configure SRLG to enable MPLS-TE |
(config-router)#commit | Commit the candidate configuration to the running configuration |
(config)#interface xe1 | Enter interface mode. |
(config-if)#ip address 10.1.1.1/24 | Configure the IP address of the interface. |
(config-if)#ip ospf cost 10 | Configure the OSPF cost |
(config-if)#label-switching | Enable label-switching on interface |
(config-if)#enable-ldp ipv4 | Enable LDP process on xe1 interface |
(config-if)#mpls traffic-eng srlg 11 | Enable MPLS-TE |
(config-if)#commit | Commit the candidate configuration to the running configuration |
(config-if)#exit | Exit interface mode. |
(config)#interface xe2 | Enter interface mode. |
(config-if)#ip address 60.1.1.1/24 | Configure the IP address of the interface. |
(config-if)#ip ospf cost 10 | Configure OSPF cost |
(config-if)#label-switching | Enable label-switching on interface |
(config-if)#mpls traffic-eng srlg 11 | Enable MPLS-TE |
(config-if)#enable-ldp ipv4 | Enable LDP process on xe2 interface |
(config-if)#commit | Commit the candidate configuration to the running configuration |
(config-if)#exit | Exit interface mode. |
(config)#interface lo | Enter interface mode. |
(config-if)#ip address 1.1.1.1/32 secondary | Configure the IP address of the interface |
(config-if)#exit | Exit interface mode. |
(config)#router ospf 1 | Create an OSPF instance |
(config-router)# ospf router-id 1.1.1.1 | Configure router ID |
(config-router)# bfd all-interfaces | Configure BFD |
(config-router)# timers spf exp 50 50 | Configure the OSPF timers |
(config-router)# timers throttle lsa all 0 1 1 | Configure the OSPF timer LSA throttle |
(config-router)# timers lsa arrival 1 | Configure the OSPF timer LSA arrival |
(config-router)# fast-reroute per-prefix remote-lfa area 0.0.0.0 tunnel mpls-ldp | Configure Remote LFA to calculate backup paths to those destinations whichever does not satisfy basic LFA FRR inequalities |
(config-router)# network 1.1.1.1/32 area 0.0.0.0 | Configure the network command to advertise the prefixes |
(config-router)# network 10.1.1.0/24 area 0.0.0.0 | Configure the network command to advertise the prefixes |
(config-router)# network 60.1.1.0/24 area 0.0.0.0 | Configure the network command to advertise the prefixes |
(config-router)#commit | Commit the candidate configuration to the running configuration |
(config-router)#end | Exit router mode. |
(config)# bfd interval 3 minrx 3 multiplier 3 | Configure BFD interval globally |
R2
#configure terminal | Enter configure mode |
(config)#router ldp | Enable LDP process |
(config-router)#fast-reroute | Enable LDP FRR |
(config-router)#auto-targeted-session | To Allow creating TLDP session dynamically |
(config-router)#commit | Commit the candidate configuration to the running configuration |
(config-router)#exit | Exit LDP process |
(config)#router rsvp | Enable RSPVP |
(config-router)#srlg-disjoint forced | Configure SRLG to enable mpls-TE |
(config-router)#commit | Commit the candidate configuration to the running configuration |
(config)#interface xe2 | Enter interface mode. |
(config-if)#ip address 10.1.1.2/24 | Configure the IP address of the interface. |
(config-if)#ip ospf cost 10 | Configure the OSPF cost |
(config-if)#label-switching | Enable label-switching on interface |
(config-if)#enable-ldp ipv4 | Enable LDP process on xe1 interface |
(config-if)#mpls traffic-eng srlg 11 | Enable MPLS-TE |
(config-if)#commit | Commit the candidate configuration to the running configuration |
(config-if)#exit | Exit interface mode. |
(config)#interface xe1 | Enter interface mode. |
(config-if)#ip address 20.1.1.1/24 | Configure the IP address of the interface. |
(config-if)#ip ospf cost 10 | Configure OSPF cost |
(config-if)#label-switching | Enable label-switching on interface |
(config-if)#mpls traffic-eng srlg 11 | Enable MPLS-TE |
(config-if)#enable-ldp ipv4 | Enable LDP process on xe2 interface |
(config-if)#commit | Commit the candidate configuration to the running configuration |
(config-if)#exit | Exit interface mode. |
(config)#interface lo | Enter interface mode. |
(config-if)#ip address 2.2.2.2/32 secondary | Configure the IP address of the interface |
(config-if)#exit | Exit interface mode. |
(config)#router ospf 1 | Create an OSPF instance |
(config-router)# ospf router-id 2.2.2.2 | Configure router ID |
(config-router)# bfd all-interfaces | Configure BFD |
(config-router)# timers spf exp 50 50 | Configure the OSPF timers |
(config-router)# timers throttle lsa all 0 1 1 | Configure the OSPF timer LSA throttle |
(config-router)# timers lsa arrival 1 | Configure the OSPF timer LSA arrival |
(config-router)# network 2.2.2.2/32 area 0.0.0.0 | Configure the network command to advertise the prefixes |
(config-router)# network 10.1.1.0/24 area 0.0.0.0 | Configure the network command to advertise the prefixes |
(config-router)# network 20.1.1.0/24 area 0.0.0.0 | Configure the network command to advertise the prefixes |
(config-router)#commit | Commit the candidate configuration to the running configuration |
(config)# bfd interval 3 minrx 3 multiplier 3 Configure bfd interval globally | Configure BFD interval globally |
(config)#commit | Commit the candidate configuration to the running configuration |
(config)#end | Exit configure mode. |
R3
#configure terminal | Enter configure mode |
(config)#router ldp | Enable LDP process |
(config-router)#fast-reroute | Enable LDP FRR |
(config-router)#auto-targeted-session | To Allow creating TLDP session dynamically |
(config-router)#commit | Commit the candidate configuration to the running configuration |
(config-router)#exit | Exit LDP process |
(config)#router rsvp | Enable RSPVP |
(config-router)#srlg-disjoint forced | Configure SRLG to enable mpls-TE |
(config-router)#commit | Commit the candidate configuration to the running configuration |
(config)#interface xe2 | Enter interface mode. |
(config-if)#ip address 20.1.1.2/24 | Configure the IP address of the interface. |
(config-if)#ip ospf cost 10 | Configure the OSPF cost |
(config-if)#label-switching | Enable label-switching on interface |
(config-if)#enable-ldp ipv4 | Enable LDP process on xe1 interface |
(config-if)#mpls traffic-eng srlg 11 | Enable MPLS-TE |
(config-if)#commit | Commit the candidate configuration to the running configuration |
(config-if)#exit | Exit interface mode. |
(config)#interface xe1 | Enter interface mode. |
(config-if)#ip address 30.1.1.1/24 | Configure the IP address of the interface. |
(config-if)#ip ospf cost 10 | Configure OSPF cost |
(config-if)#label-switching | Enable label-switching on interface |
(config-if)#mpls traffic-eng srlg 11 | Enable MPLS-TE |
(config-if)#enable-ldp ipv4 | Enable ldp process on xe2 interface |
(config-if)#commit | Commit the candidate configuration to the running configuration |
(config-if)#exit | Exit interface mode. |
(config)#interface lo | Enter interface mode. |
(config-if)#ip address 3.3.3.3/32 secondary | Configure the IP address of the interface |
(config-if)#exitv | Exit interface mode. |
(config)#router ospf 1 | Create an OSPF instance |
(config-router)# ospf router-id 3.3.3.3 | Configure router id |
(config-router)# bfd all-interfaces | Configure BFD |
(config-router)# timers spf exp 50 50 | Configure the OSPF timers |
(config-router)# timers throttle lsa all 0 1 1 | Configure the OSPF timer LSA throttle |
(config-router)# timers lsa arrival 1 | Configure the OSPF timer LSA arrival |
(config-router)# network 3.3.3.3/32 area 0.0.0.0 | Configure the network command to advertise the prefixes |
(config-router)# network 20.1.1.0/24 area 0.0.0.0 | Configure the network command to advertise the prefixes |
(config-router)# network 30.1.1.0/24 area 0.0.0.0 | Configure the network command to advertise the prefixes |
(config-router)#commit | Commit the candidate configuration to the running configuration |
(config)# bfd interval 3 minrx 3 multiplier 3 Configure bfd interval globally | Configure BFD interval globally |
(config)#commit | Commit the candidate configuration to the running configuration |
(config)#end | Exit configure mode. |
R4
#configure terminal | Enter configure mode |
(config)#router ldp | Enable LDP process |
(config-router)#fast-reroute | Enable LDP FRR |
(config-router)#auto-targeted-session | To Allow creating TLDP session dynamically |
(config-router)#commit | Commit the candidate configuration to the running configuration |
(config-router)#exit | Exit LDP process |
(config)#router rsvp | Enable RSPVP |
(config-router)#srlg-disjoint forced | Configure SRLG to enable MPLS-TE |
(config-router)#commit | Commit the candidate configuration to the running configuration |
(config)#interface xe2 | Enter interface mode. |
(config-if)#ip address 30.1.1.2/24 | Configure the IP address of the interface. |
(config-if)#ip ospf cost 10 | Configure the OSPF cost |
(config-if)#label-switching | Enable label-switching on interface |
(config-if)#enable-ldp ipv4 | Enable LDP process on xe1 interface |
(config-if)#mpls traffic-eng srlg 11 | Enable MPLS-TE |
(config-if)#commit | Commit the candidate configuration to the running configuration |
(config-if)#exit | Exit interface mode. |
(config)#interface xe1 | Enter interface mode. |
(config-if)#ip address 40.1.1.1/24 | Configure the IP address of the interface. |
(config-if)#ip ospf cost 10 | Configure OSPF cost |
(config-if)#label-switching | Enable label-switching on interface |
(config-if)#mpls traffic-eng srlg 11 | Enable MPLS-TE |
(config-if)#enable-ldp ipv4 | Enable LDP process on xe2 interface |
(config-if)#commit | Commit the candidate configuration to the running configuration |
(config-if)#exit | Exit interface mode. |
(config)#interface lo | Enter interface mode. |
(config-if)#ip address 4.4.4.4/32 secondary | Configure the IP address of the interface |
(config-if)#exit | Exit interface mode. |
(config)#router ospf 1 | Create an OSPF instance |
(config-router)# ospf router-id 4.4.4.4 | Configure router ID |
(config-router)# bfd all-interfaces | Configure BFD |
(config-router)# timers spf exp 50 50 | Configure the OSPF timers |
(config-router)# timers throttle lsa all 0 1 1 | Configure the OSPF timer LSA throttle |
(config-router)# timers lsa arrival 1 | Configure the OSPF timer LSA arrival |
(config-router)# network 4.4.4.4/32 area 0.0.0.0 | Configure the network command to advertise the prefixes |
(config-router)# network 40.1.1.0/24 area 0.0.0.0 | Configure the network command to advertise the prefixes |
(config-router)# network 30.1.1.0/24 area 0.0.0.0 | Configure the network command to advertise the prefixes |
(config-router)#commit | Commit the candidate configuration to the running configuration |
(config)# bfd interval 3 minrx 3 multiplier 3 Configure bfd interval globally | Configure BFD interval globally |
(config)#commit | Commit the candidate configuration to the running configuration |
(config)#end | Exit configure mode. |
R5
#configure terminal | Enter configure mode |
(config)#router ldp | Enable LDP process |
(config-router)#fast-reroute | Enable LDP FRR |
(config-router)#auto-targeted-session | To Allow creating TLDP session dynamically |
(config-router)#commit | Commit the candidate configuration to the running configuration |
(config-router)#exit | Exit LDP process |
(config)#router rsvp | Enable RSPVP |
(config-router)#srlg-disjoint forced | Configure SRLG to enable mpls-TE |
(config-router)#commit | Commit the candidate configuration to the running configuration |
(config)#interface xe2 | Enter interface mode. |
(config-if)#ip address 40.1.1.2/24 | Configure the IP address of the interface. |
(config-if)#ip ospf cost 10 | Configure the OSPF cost |
(config-if)#label-switching | Enable label-switching on interface |
(config-if)#enable-ldp ipv4 | Enable LDP process on xe1 interface |
(config-if)#mpls traffic-eng srlg 11 | Enable MPLS-TE |
(config-if)#commit | Commit the candidate configuration to the running configuration |
(config-if)#exit | Exit interface mode. |
(config)#interface xe1 | Enter interface mode. |
(config-if)#ip address 50.1.1.1/24 | Configure the IP address of the interface. |
(config-if)#ip ospf cost 10 | Configure OSPF cost |
(config-if)#label-switching | Enable label-switching on interface |
(config-if)#mpls traffic-eng srlg 11 | Enable MPLS-TE |
(config-if)#enable-ldp ipv4 | Enable LDP process on xe2 interface |
(config-if)#commit | Commit the candidate configuration to the running configuration |
(config-if)#exit | Exit interface mode. |
(config)#interface lo | Enter interface mode. |
(config-if)#ip address 5.5.5.5/32 secondary | Configure the IP address of the interface |
(config-if)#exit | Exit interface mode. |
(config)#router ospf 1 | Create an OSPF instance |
(config-router)# ospf router-id 5.5.5.5 | Configure router ID |
(config-router)# bfd all-interfaces | Configure BFD |
(config-router)# timers spf exp 50 50 | Configure the OSPF timers |
(config-router)# timers throttle lsa all 0 1 1 | Configure the OSPF timer LSA throttle |
(config-router)# timers lsa arrival 1 | Configure the OSPF timer LSA arrival |
(config-router)# network 5.5.5.5/32 area 0.0.0.0 | Configure the network command to advertise the prefixes |
(config-router)# network 50.1.1.0/24 area 0.0.0.0 | Configure the network command to advertise the prefixes |
(config-router)# network 40.1.1.0/24 area 0.0.0.0 | Configure the network command to advertise the prefixes |
(config-router)#commit | Commit the candidate configuration to the running configuration |
(config)# bfd interval 3 minrx 3 multiplier 3 Configure bfd interval globally | Configure BFD interval globally |
(config)#commit | Commit the candidate configuration to the running configuration |
(config)#end | Exit configure mode. |
R6
#configure terminal | Enter configure mode |
(config)#router ldp | Enable LDP process |
(config-router)#fast-reroute | Enable LDP FRR |
(config-router)#auto-targeted-session | To Allow creating TLDP session dynamically |
(config-router)#commit | Commit the candidate configuration to the running configuration |
(config-router)#exit | Exit LDP process |
(config)#router rsvp | Enable RSPVP |
(config-router)#srlg-disjoint forced | Configure SRLG to enable mpls-TE |
(config-router)#commit | Commit the candidate configuration to the running configuration |
(config)#interface xe2 | Enter interface mode. |
(config-if)#ip address 50.1.1.2/24 | Configure the IP address of the interface. |
(config-if)#ip ospf cost 10 | Configure the OSPF cost |
(config-if)#label-switching | Enable label-switching on interface |
(config-if)#enable-ldp ipv4 | Enable LDP process on xe1 interface |
(config-if)#mpls traffic-eng srlg 11 | Enable MPLS-TE |
(config-if)#commit | Commit the candidate configuration to the running configuration |
(config-if)#exit | Exit interface mode. |
(config)#interface xe1 | Enter interface mode. |
(config-if)#ip address 60.1.1.2/24 | Configure the IP address of the interface. |
(config-if)#ip ospf cost 10 | Configure OSPF cost |
(config-if)#label-switching | Enable label-switching on interface |
(config-if)#mpls traffic-eng srlg 11 | Enable MPLS-TE |
(config-if)#enable-ldp ipv4 | Enable LDP process on xe2 interface |
(config-if)#commit | Commit the candidate configuration to the running configuration |
(config-if)#exit | Exit interface mode. |
(config)#interface lo | Enter interface mode. |
(config-if)#ip address 6.6.6.6/32 secondary | Configure the IP address of the interface |
(config-if)#exit | Exit interface mode. |
(config)#router ospf 1 | Create an OSPF instance |
(config-router)# ospf router-id 6.6.6.6 | Configure router id |
(config-router)# bfd all-interfaces | Configure BFD |
(config-router)# timers spf exp 50 50 | Configure the OSPF timers |
(config-router)# timers throttle lsa all 0 1 1 | Configure the OSPF timer LSA throttle |
(config-router)# timers lsa arrival 1 | Configure the OSPF timer LSA arrival |
(config-router)# network 6.6.6.6/32 area 0.0.0.0 | Configure the network command to advertise the prefixes |
(config-router)# network 50.1.1.0/24 area 0.0.0.0 | Configure the network command to advertise the prefixes |
(config-router)# network 60.1.1.0/24 area 0.0.0.0 | Configure the network command to advertise the prefixes |
(config-router)#commit | Commit the candidate configuration to the running configuration |
(config)# bfd interval 3 minrx 3 multiplier 3 Configure bfd interval globally | Configure BFD interval globally |
(config)#commit | Commit the candidate configuration to the running configuration |
(config)#end | Exit configure mode. |
Validation
R1
Check LDP neighborship before enabling RLFA.
#sh ldp session
Peer IP Address IF Name My Role State KeepAlive UpTime
2.2.2.2 xe20 Passive OPERATIONAL 30 00:02:43
6.6.6.6 ge10 Passive OPERATIONAL 30 00:00:30
Check the output of show ip ospf neighbors to verify that OSPF adjacency is up.
#sh ip ospf neighbor
Total number of full neighbors: 2
OSPF process 1 VRF(default):
Neighbor ID Pri State Dead Time Address Interface
Instance ID
2.2.2.2 1 Full/Backup 00:00:39 10.1.1.2 xe20
0
6.6.6.6 1 Full/DR 00:00:35 60.1.1.2 ge10
0
Check the OSPF route installation in the OSPF table and RIB table.
#sh ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2,
ia - IS-IS inter area, E - EVPN,
v - vrf leaked
* - candidate default
IP Route Table for VRF "default"
C 1.1.1.1/32 is directly connected, lo, 00:37:05
O 2.2.2.2/32 [110/11] via 10.1.1.2, xe20, 00:04:49
O 3.3.3.3/32 [110/21] via 10.1.1.2, xe20, 00:04:49
O 4.4.4.4/32 [110/31] via 60.1.1.2, ge10, 00:04:49
[110/31] via 10.1.1.2, xe20
O 5.5.5.5/32 [110/21] via 60.1.1.2, ge10, 00:02:29
O 6.6.6.6/32 [110/11] via 60.1.1.2, ge10, 00:02:29
C 10.1.1.0/24 is directly connected, xe20, 00:33:59
O 20.1.1.0/24 [110/20] via 10.1.1.2, xe20, 00:04:49
O 30.1.1.0/24 [110/30] via 10.1.1.2, xe20, 00:04:49
O 40.1.1.0/24 [110/30] via 60.1.1.2, ge10, 00:02:29
O 50.1.1.0/24 [110/20] via 60.1.1.2, ge10, 00:02:29
C 60.1.1.0/24 is directly connected, ge10, 00:02:36
C 127.0.0.0/8 is directly connected, lo, 00:45:19
Gateway of last resort is not set
#sh ip ospf route
OSPF process 1:
Codes: C - connected, D - Discard, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
OSPF LFA attributes:
P - Primary, SP - Secondary-Path, LP - Link Protecting,
NP - Node Protecting, BID - Broadcast Link Protecting
DP - Downstream Protecting
C 1.1.1.1/32 [1] is directly connected, lo, Area 0.0.0.0
O 2.2.2.2/32 [11] via 10.1.1.2, xe20, Area 0.0.0.0
O 3.3.3.3/32 [21] via 10.1.1.2, xe20, Area 0.0.0.0
O 4.4.4.4/32 [31] via 10.1.1.2, xe20, Area 0.0.0.0
via 60.1.1.2, ge10, Area 0.0.0.0
O 5.5.5.5/32 [21] via 60.1.1.2, ge10, Area 0.0.0.0
O 6.6.6.6/32 [11] via 60.1.1.2, ge10, Area 0.0.0.0
C 10.1.1.0/24 [10] is directly connected, xe20, Area 0.0.0.0
O 20.1.1.0/24 [20] via 10.1.1.2, xe20, Area 0.0.0.0
O 30.1.1.0/24 [30] via 10.1.1.2, xe20, Area 0.0.0.0
O 40.1.1.0/24 [30] via 60.1.1.2, ge10, Area 0.0.0.0
O 50.1.1.0/24 [20] via 60.1.1.2, ge10, Area 0.0.0.0
C 60.1.1.0/24 [10] is directly connected, ge10, Area 0.0.0.0
Verify OSPF LFA and RLFA backup computed paths for Primary Paths
#sh ip ospf route fast-reroute
OSPF process 1:
Codes: C - connected, D - Discard, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
OSPF LFA attributes:
P - Primary, SP - Secondary-Path, LP - Link Protecting,
NP - Node Protecting, BID - Broadcast Link Protecting
DP - Downstream Protecting
O 2.2.2.2/32 [11] via 10.1.1.2, xe20, Area 0.0.0.0
Remote FRR path:
via 4.4.4.4, via 60.1.1.2, ge10, Area 0.0.0.0
Attributes: Metric: [51] ,LP
O 3.3.3.3/32 [21] via 10.1.1.2, xe20, Area 0.0.0.0
Remote FRR path:
via 4.4.4.4, via 60.1.1.2, ge10, Area 0.0.0.0
Attributes: Metric: [41] ,LP ,NP ,DP
O 4.4.4.4/32 [31] via 10.1.1.2, xe20, Area 0.0.0.0
Backup path:
via 60.1.1.2, ge10, Area 0.0.0.0
Attributes: Metric: [31] ,P ,NP ,BID ,DP
via 60.1.1.2, ge10, Area 0.0.0.0
Backup path:
via 10.1.1.2, xe20, Area 0.0.0.0
Attributes: Metric: [31] ,P ,NP ,BID ,DP
O 5.5.5.5/32 [21] via 60.1.1.2, ge10, Area 0.0.0.0
Remote FRR path:
via 4.4.4.4, via 10.1.1.2, xe20, Area 0.0.0.0
Attributes: Metric: [41] ,LP ,NP ,DP
O 6.6.6.6/32 [11] via 60.1.1.2, ge10, Area 0.0.0.0
Remote FRR path:
via 4.4.4.4, via 10.1.1.2, xe20, Area 0.0.0.0
Attributes: Metric: [51] ,LP
O 20.1.1.0/24 [20] via 10.1.1.2, xe20, Area 0.0.0.0
Remote FRR path:
via 4.4.4.4, via 60.1.1.2, ge10, Area 0.0.0.0
Attributes: Metric: [50] ,LP ,NP
O 30.1.1.0/24 [30] via 10.1.1.2, xe20, Area 0.0.0.0
Backup path:
via 60.1.1.2, ge10, Area 0.0.0.0
Attributes: Metric: [40] ,SP ,NP ,BID
O 40.1.1.0/24 [30] via 60.1.1.2, ge10, Area 0.0.0.0
Backup path:
via 10.1.1.2, xe20, Area 0.0.0.0
Attributes: Metric: [40] ,SP ,NP ,BID
O 50.1.1.0/24 [20] via 60.1.1.2, ge10, Area 0.0.0.0
Remote FRR path:
via 4.4.4.4, via 10.1.1.2, xe20, Area 0.0.0.0
Attributes: Metric: [50] ,LP ,NP
Verify PQ node which is near to source is selected and Target-LDP session is established with PQ node using below commands
#sh ldp session
Peer IP Address IF Name My Role State KeepAlive UpTime
2.2.2.2 xe20 Passive OPERATIONAL 30 00:07:29
6.6.6.6 ge10 Passive OPERATIONAL 30 00:05:16
4.4.4.4 xe20 Passive OPERATIONAL 30 00:05:04
Verify that Primary and Backup FTN's are installed with labels in LDP RLFA route table
#sh ldp rlfa-routes
Codes: p - stale rLFA route
Fec Primary-NH Backup-NH rLFA-Addr Out-Intf Outer-label Inner-label Owner
2.2.2.2 10.1.1.2 60.1.1.2 4.4.4.4 ge10 24964 24969 ospf
3.3.3.3 10.1.1.2 60.1.1.2 4.4.4.4 ge10 24964 24970 ospf
5.5.5.5 60.1.1.2 10.1.1.2 4.4.4.4 xe20 24963 24971 ospf
6.6.6.6 60.1.1.2 10.1.1.2 4.4.4.4 xe20 24963 24972 ospf
20.1.1.0 10.1.1.2 60.1.1.2 4.4.4.4 ge10 24964 24974 ospf
50.1.1.0 60.1.1.2 10.1.1.2 4.4.4.4 xe20 24963 24975 ospf
Verify that backup XC's calculated for primary FTN's in MPLS forwarding table. Verify the same in FTN table.
#sh mpls forwarding-table
Codes: > - installed FTN, * - selected FTN, p - stale FTN,
B - BGP FTN, K - CLI FTN, t - tunnel, P - SR Policy FTN,
L - LDP FTN, R - RSVP-TE FTN, S - SNMP FTN, I - IGP-Shortcut,
U - unknown FTN, O - SR-OSPF FTN, i - SR-ISIS FTN, k - SR-CLI FTN
(m) - FTN mapped over multipath transport
Code FEC FTN-ID Nhlfe-ID Tunnel-id Pri LSP-Type Out-Label Out-Intf ELC Nexthop
L> 2.2.2.2/32 1 2 - Yes LSP_DEFAULT 3 xe20 No 10.1.1.2
23 - No LSP_DEFAULT 24969 ge10 No 4.4.4.4
(via 60.1.1.2 ,label 24964)
L> 3.3.3.3/32 2 4 - Yes LSP_DEFAULT 24962 xe20 No 10.1.1.2
24 - No LSP_DEFAULT 24970 ge10 No 4.4.4.4
(via 60.1.1.2 ,label 24964)
L> 4.4.4.4/32 3 6 - Yes LSP_DEFAULT 24963 xe20 No 10.1.1.2
7 - No LSP_DEFAULT 24964 ge10 No 60.1.1.2
7 - Yes LSP_DEFAULT 24964 ge10 No 60.1.1.2
5 - No LSP_DEFAULT 24963 xe20 No 10.1.1.2
L> 5.5.5.5/32 4 10 - Yes LSP_DEFAULT 24965 ge10 No 60.1.1.2
25 - No LSP_DEFAULT 24971 xe20 No 4.4.4.4
(via 10.1.1.2 ,label 24963)
L> 6.6.6.6/32 5 15 - Yes LSP_DEFAULT 3 ge10 No 60.1.1.2
26 - No LSP_DEFAULT 24972 xe20 No 4.4.4.4
(via 10.1.1.2 ,label 24963)
L> 20.1.1.0/24 6 11 - Yes LSP_DEFAULT 3 xe20 No 10.1.1.2
27 - No LSP_DEFAULT 24974 ge10 No 4.4.4.4
(via 60.1.1.2 ,label 24964)
L> 30.1.1.0/24 7 13 - Yes LSP_DEFAULT 24966 xe20 No 10.1.1.2
16 - No LSP_DEFAULT 24966 ge10 No 60.1.1.2
L> 40.1.1.0/24 8 19 - Yes LSP_DEFAULT 24967 ge10 No 60.1.1.2
20 - No LSP_DEFAULT 24967 xe20 No 10.1.1.2
L> 50.1.1.0/24 9 22 - Yes LSP_DEFAULT 3 ge10 No 60.1.1.2
28 - No LSP_DEFAULT 24975 xe20 No 4.4.4.4
(via 10.1.1.2 ,label 24963)
#sh mpls ftn-table
Primary FTN entry with FEC: 2.2.2.2/32, id: 1, row status: Active, Tunnel-Policy: N/A
Owner: LDP, distance: 0, Action-type: Redirect to LSP, Exp-bits: 0x0, Incoming DSCP: none
Tunnel id: 0, Protected LSP id: 0, Description: N/A, Color: 0
Cross connect ix: 1, in intf: - in label: 0 out-segment ix: 1
Owner: N/A, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 1, owner: N/A, Stale: NO, out intf: xe20, out label: 3
Nexthop addr: 10.1.1.2 cross connect ix: 1, op code: Push
Backup Cross connect ix: 9, in intf: - in label: 0 out-segment ix: 23
Owner: LDP, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 23, owner: LDP, Stale: NO, out intf: ge10, out label: 24969
Nexthop addr: 4.4.4.4 cross connect ix: 9, op code: Push
Primary FTN entry with FEC: 3.3.3.3/32, id: 2, row status: Active, Tunnel-Policy: N/A
Owner: LDP, distance: 0, Action-type: Redirect to LSP, Exp-bits: 0x0, Incoming DSCP: none
Tunnel id: 0, Protected LSP id: 0, Description: N/A, Color: 0
Cross connect ix: 2, in intf: - in label: 0 out-segment ix: 3
Owner: LDP, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 3, owner: LDP, Stale: NO, out intf: xe20, out label: 24962
Nexthop addr: 10.1.1.2 cross connect ix: 2, op code: Push
Backup Cross connect ix: 11, in intf: - in label: 0 out-segment ix: 24
Owner: LDP, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 24, owner: LDP, Stale: NO, out intf: ge10, out label: 24970
Nexthop addr: 4.4.4.4 cross connect ix: 11, op code: Push
Primary FTN entry with FEC: 4.4.4.4/32, id: 3, row status: Active, Tunnel-Policy: N/A
Owner: LDP, distance: 0, Action-type: Redirect to LSP, Exp-bits: 0x0, Incoming DSCP: none
Tunnel id: 0, Protected LSP id: 0, Description: N/A, Color: 0
Cross connect ix: 3, in intf: - in label: 0 out-segment ix: 5
Owner: LDP, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 5, owner: LDP, Stale: NO, out intf: xe20, out label: 24963
Nexthop addr: 10.1.1.2 cross connect ix: 3, op code: Push
Backup Cross connect ix: 2, in intf: - in label: 0 out-segment ix: 7
Owner: LDP, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 7, owner: LDP, Stale: NO, out intf: ge10, out label: 24964
Nexthop addr: 60.1.1.2 cross connect ix: 3, op code: Push
Cross connect ix: 3, in intf: - in label: 0 out-segment ix: 7
Owner: LDP, Persistent: No, Admin Status: Down, Oper Status: Not present
Out-segment with ix: 7, owner: LDP, Stale: NO, out intf: ge10, out label: 24964
Nexthop addr: 60.1.1.2 cross connect ix: 3, op code: Push
Backup Cross connect ix: 1, in intf: - in label: 0 out-segment ix: 5
Owner: LDP, Persistent: No, Admin Status: Down, Oper Status: Not present
Out-segment with ix: 5, owner: LDP, Stale: NO, out intf: xe20, out label: 24963
Nexthop addr: 10.1.1.2 cross connect ix: 3, op code: Push
Primary FTN entry with FEC: 5.5.5.5/32, id: 4, row status: Active, Tunnel-Policy: N/A
Owner: LDP, distance: 0, Action-type: Redirect to LSP, Exp-bits: 0x0, Incoming DSCP: none
Tunnel id: 0, Protected LSP id: 0, Description: N/A, Color: 0
Cross connect ix: 5, in intf: - in label: 0 out-segment ix: 9
Owner: LDP, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 9, owner: LDP, Stale: NO, out intf: ge10, out label: 24965
Nexthop addr: 60.1.1.2 cross connect ix: 5, op code: Push
Backup Cross connect ix: 13, in intf: - in label: 0 out-segment ix: 25
Owner: LDP, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 25, owner: LDP, Stale: NO, out intf: xe20, out label: 24971
Nexthop addr: 4.4.4.4 cross connect ix: 13, op code: Push
Primary FTN entry with FEC: 6.6.6.6/32, id: 5, row status: Active, Tunnel-Policy: N/A
Owner: LDP, distance: 0, Action-type: Redirect to LSP, Exp-bits: 0x0, Incoming DSCP: none
Tunnel id: 0, Protected LSP id: 0, Description: N/A, Color: 0
Cross connect ix: 7, in intf: - in label: 0 out-segment ix: 14
Owner: N/A, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 14, owner: N/A, Stale: NO, out intf: ge10, out label: 3
Nexthop addr: 60.1.1.2 cross connect ix: 7, op code: Push
Backup Cross connect ix: 15, in intf: - in label: 0 out-segment ix: 26
Owner: LDP, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 26, owner: LDP, Stale: NO, out intf: xe20, out label: 24972
Nexthop addr: 4.4.4.4 cross connect ix: 15, op code: Push
Primary FTN entry with FEC: 20.1.1.0/24, id: 6, row status: Active, Tunnel-Policy: N/A
Owner: LDP, distance: 0, Action-type: Redirect to LSP, Exp-bits: 0x0, Incoming DSCP: none
Tunnel id: 0, Protected LSP id: 0, Description: N/A, Color: 0
Cross connect ix: 1, in intf: - in label: 0 out-segment ix: 1
Owner: N/A, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 1, owner: N/A, Stale: NO, out intf: xe20, out label: 3
Nexthop addr: 10.1.1.2 cross connect ix: 1, op code: Push
Backup Cross connect ix: 17, in intf: - in label: 0 out-segment ix: 27
Owner: LDP, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 27, owner: LDP, Stale: NO, out intf: ge10, out label: 24974
Nexthop addr: 4.4.4.4 cross connect ix: 17, op code: Push
Primary FTN entry with FEC: 30.1.1.0/24, id: 7, row status: Active, Tunnel-Policy: N/A
Owner: LDP, distance: 0, Action-type: Redirect to LSP, Exp-bits: 0x0, Incoming DSCP: none
Tunnel id: 0, Protected LSP id: 0, Description: N/A, Color: 0
Cross connect ix: 6, in intf: - in label: 0 out-segment ix: 12
Owner: LDP, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 12, owner: LDP, Stale: NO, out intf: xe20, out label: 24966
Nexthop addr: 10.1.1.2 cross connect ix: 6, op code: Push
Backup Cross connect ix: 3, in intf: - in label: 0 out-segment ix: 16
Owner: LDP, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 16, owner: LDP, Stale: NO, out intf: ge10, out label: 24966
Nexthop addr: 60.1.1.2 cross connect ix: 3, op code: Push
Primary FTN entry with FEC: 40.1.1.0/24, id: 8, row status: Active, Tunnel-Policy: N/A
Owner: LDP, distance: 0, Action-type: Redirect to LSP, Exp-bits: 0x0, Incoming DSCP: none
Tunnel id: 0, Protected LSP id: 0, Description: N/A, Color: 0
Cross connect ix: 8, in intf: - in label: 0 out-segment ix: 18
Owner: LDP, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 18, owner: LDP, Stale: NO, out intf: ge10, out label: 24967
Nexthop addr: 60.1.1.2 cross connect ix: 8, op code: Push
Backup Cross connect ix: 4, in intf: - in label: 0 out-segment ix: 20
Owner: LDP, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 20, owner: LDP, Stale: NO, out intf: xe20, out label: 24967
Nexthop addr: 10.1.1.2 cross connect ix: 4, op code: Push
Primary FTN entry with FEC: 50.1.1.0/24, id: 9, row status: Active, Tunnel-Policy: N/A
Owner: LDP, distance: 0, Action-type: Redirect to LSP, Exp-bits: 0x0, Incoming DSCP: none
Tunnel id: 0, Protected LSP id: 0, Description: N/A, Color: 0
Cross connect ix: 7, in intf: - in label: 0 out-segment ix: 14
Owner: N/A, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 14, owner: N/A, Stale: NO, out intf: ge10, out label: 3
Nexthop addr: 60.1.1.2 cross connect ix: 7, op code: Push
Backup Cross connect ix: 19, in intf: - in label: 0 out-segment ix: 28
Owner: LDP, Persistent: No, Admin Status: Up, Oper Status: Up
Out-segment with ix: 28, owner: LDP, Stale: NO, out intf: xe20, out label: 24975
Nexthop addr: 4.4.4.4 cross connect ix: 19, op code: Push