This article describes the default behavior of the Constrained Shortest Path First (CSPF) path selection in the ingress/head end of the LSP on the two available LSP paths, where one LSP path is within the same OSPF area and other LSP path is in a different OSPF area.
The following diagram describes this behavior.
Area 3000 +----------------------------------------------------+ | | | ge-0/2/0 | +----+----+ +-----+---+ | | | | | R1 | | R4 | | | | | +--+----+-+ +--+----+-+ | | | | | | ge-0/3/0 | | ge-0/3/2| | | | | | Area 3000 | | | | | | | | +-------+ +-------+ | | | | | | | | | | | +------+ R2 +-----------+ R3 +-----------+ | | +-------+ +-------+ | | | | | | | | | | +-------+ +-------+ +-------+ | +----+ | | | | | | | R5 +------------+ R6 +-----------+ R7 +--+ +-------+ +-------+ +-------+ Area 3001
In MPLS LSP path selection, if CSPF is enabled with loose path, the path selection is expected to be in the same area. However, the LSP is getting selected via the interface that is in a different area during the link failure on the primary LSP path.
R1 configuration:
mpls { label-switched-path r1-r2 { to 172.18.24.1; fast-reroute; primary r1-r2; } path r1-r2 { 172.18.24.1 loose; } } ospf { traffic-engineering; preference 20; area 0.0.0.0 { interface lo0.0 { passive; } } area 3.0.0.0 { stub; interface ge-0/2/0.3000 { interface-type p2p; metric 1000; } interface ge-0/3/0.3000 { interface-type p2p; metric 10; } } area 3.0.0.1 { stub; interface ge-0/3/2.3001 { interface-type p2p; metric 10; } } }
When all links are up, from R1 if you use the show route command to that LSP endpoint IP, you see the following output:
[edit] lab@MX-104-1# run show route 172.18.24.1 inet.0: 31 destinations, 31 routes (31 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.18.24.1/32 *[OSPF/20] 00:15:00, metric 10 > to 172.18.64.10 via ge-0/3/0.3000 inet.3: 30 destinations, 38 routes (23 active, 0 holddown, 13 hidden) + = Active Route, - = Last Active, * = Both 172.18.24.1/32 *[RSVP/7/1] 00:14:47, metric 10 > to 172.18.64.10 via ge-0/3/0.3000, label-switched-path r1.rbr.hfa-to-R1.R3000.S0573 to 172.18.64.26 via ge-0/2/0.3001, label-switched-path r1.rbr.hfa-to-R1.R3000.S0573
We can see that the detour LSP is already selected via interface ge-0/3/2 in Area 3001.
[edit] lab@MX-104-1# run show rsvp session lsp name r1-r2 extensive Ingress RSVP: 6 sessions 172.18.24.1 From: 172.18.255.46, LSPstate: Up, ActiveRoute: 0 LSPname: r1.rbr.hfa-to-R1.R3000.S0573, LSPpath: Primary LSPtype: Static Configured Suggested label received: -, Suggested label sent: - Recovery label received: -, Recovery label sent: 3 Resv style: 1 FF, Label in: -, Label out: 3 Time left: -, Since: Mon Oct 20 14:22:14 2014 Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500 Port number: sender 23 receiver 37387 protocol 0 FastReroute desired PATH rcvfrom: localclient Adspec: sent MTU 1500 Path MTU: received 1500 PATH sentto: 172.18.64.10 (ge-0/3/0.3000) 11 pkts RESV rcvfrom: 172.18.64.10 (ge-0/3/0.3000) 7 pkts Explct route: 172.18.64.10 Record route: <self> 172.18.64.10 Detour is Up Detour Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500 Detour adspec: sent MTU 1500 Path MTU: received 1500 Detour PATH sentto: 172.18.64.34 (ge-0/3/2.3001) 7 pkts Detour RESV rcvfrom: 172.18.64.34 (ge-0/3/2.3001) 4 pkts Detour Explct route: 172.18.64.34 172.18.64.38 172.18.64.42 172.18.64.46 172.18.64.21 172.18.64.17 172.18.64.13 Detour Record route: <self> 172.18.64.34 172.18.64.38 172.18.64.42 172.18.64.46 172.18.64.21 172.18.64.17 172.18.64.13 Detour Label out: 302560 Total 1 displayed, Up 1, Down 0
When we disable interface ge-0/3/0, the LSP is signaled via interface ge-0/3/2, which is in area 3001.
lab@MX-104-1# set interfaces ge-0/3/0 disable Oct 14 10:27:43 [edit] lab@MX-104-1# commit Oct 14 10:27:46 re0: configuration check succeeds lab@MX-104-1> show route 172.18.24.1 Oct 14 10:28:46 inet.0: 31 destinations, 31 routes (31 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.18.24.1/32 *[OSPF/1] 00:00:30, metric 1030 > to 172.18.64.2 via ge-0/2/0.3000 inet.3: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.18.24.1/32 *[RSVP/7/1] 00:00:25, metric 1030 > to 172.18.64.34 via ge-0/3/2.3001, label-switched-path r1.rbr.hfa-to-R1.R3000.S0573
Now to reach destination IP 172.18.24.1 from R1, the inet.0 table shows the interface in Area 3000 (ge-0/2/0), and inet.3 table shows the interface in Area 3001 (ge-0/3/2).
This is happening because:
[edit] lab@MX-104-1# run show ted database extensive 172.18.255.46 TED database: 0 ISIS nodes 8 INET nodes NodeID: 172.18.255.46 Type: Rtr, Age: 126 secs, LinkIn: 3, LinkOut: 3 Protocol: OSPF(0.0.0.0) Protocol: OSPF(3.0.0.0) To: 172.18.255.47, Local: 172.18.64.1, Remote: 172.18.64.2 Local interface index: 332, Remote interface index: 0 Color: 0 <none> Metric: 1000 Static BW: 1000Mbps Reservable BW: 1000Mbps Available BW [priority] bps: [0] 1000Mbps [1] 1000Mbps [2] 1000Mbps [3] 1000Mbps [4] 1000Mbps [5] 1000Mbps [6] 1000Mbps [7] 1000Mbps Interface Switching Capability Descriptor(1): Switching type: Packet Encoding type: Packet Maximum LSP BW [priority] bps: [0] 1000Mbps [1] 1000Mbps [2] 1000Mbps [3] 1000Mbps [4] 1000Mbps [5] 1000Mbps [6] 1000Mbps [7] 1000Mbps Protocol: OSPF(3.0.0.1) To: 172.18.24.4, Local: 172.18.64.33, Remote: 172.18.64.34 Local interface index: 339, Remote interface index: 0 Color: 0 <none> Metric: 10 Static BW: 1000Mbps Reservable BW: 1000Mbps Available BW [priority] bps: [0] 1000Mbps [1] 1000Mbps [2] 1000Mbps [3] 1000Mbps [4] 1000Mbps [5] 1000Mbps [6] 1000Mbps [7] 1000Mbps Interface Switching Capability Descriptor(1): Switching type: Packet Encoding type: Packet Maximum LSP BW [priority] bps: [0] 1000Mbps [1] 1000Mbps [2] 1000Mbps [3] 1000Mbps [4] 1000Mbps [5] 1000Mbps [6] 1000Mbps [7] 1000Mbps To: 172.18.255.47, Local: 172.18.64.25, Remote: 172.18.64.26 Local interface index: 333, Remote interface index: 0 Color: 0 <none> Metric: 1000 Static BW: 1000Mbps Reservable BW: 1000Mbps Available BW [priority] bps: [0] 1000Mbps [1] 1000Mbps [2] 1000Mbps [3] 1000Mbps [4] 1000Mbps [5] 1000Mbps [6] 1000Mbps [7] 1000Mbps Interface Switching Capability Descriptor(1): Switching type: Packet Encoding type: Packet Maximum LSP BW [priority] bps: [0] 1000Mbps [1] 1000Mbps [2] 1000Mbps [3] 1000Mbps [4] 1000Mbps [5] 1000Mbps [6] 1000Mbps [7] 1000Mbps
This is an expected behavior of CSPF path selection. When fast reroute (FRR) is configured for the LSP, CSPF selects the detour path based on the Traffic Engineering Database. Even the detour path will be signaled on the interface in Area 3001. It is based on the metric seen in the TED database.
If you need LSP to be signaled in the same Area 3000, specify "no-cspf" under LSP and disable the FRR configuration. Otherwise, with CSPF enabled you need to use other constraints such as strict ERO, admin groups, or changing the interface IGP metric to signal the LSP on the selected interfaces.