Description

This article explains that even though the node-protection option can be used to change TI-LFA's default mode to calculate the backup path in a router, it will not work unless the ISIS interface mode is changed to P2P from LAN. This is expected behavior.

Symptoms

By default, TI-LFA uses link-protection mode to calculate the backup path. Configuring the " node-protection " option can change this behavior. However, this does not work when the ISIS interface type is LAN.

Topology

        -----link 1----
  r4                            r6 ----   r8
   |    -----link 2----                    |
   |                                       |
  link3                                    |
   |                                       |
  r5 ---------    r7        ------------  r9

From r4 to r9, there are three paths. Going through link 1 is most preferred due to the smaller metric; the second is via link2; the last is via link 3.

LAN mode with node-protection enabled

set logical-systems r4 protocols isis backup-spf-options use-post-convergence-lfa
set logical-systems r4 protocols isis backup-spf-options use-source-packet-routing
set logical-systems r4 protocols isis interface ge-0/1/9.0 level 2 post-convergence-lfa node-protection
set logical-systems r4 protocols isis interface ge-0/1/9.0 level 2 metric 2000
set logical-systems r4 protocols isis interface ge-0/2/0.0 level 2 post-convergence-lfa node-protection
set logical-systems r4 protocols isis interface ge-0/2/0.0 level 2 metric 1100
set logical-systems r4 protocols isis interface ge-0/2/1.0 level 2 post-convergence-lfa node-protection
set logical-systems r4 protocols isis interface ge-0/2/1.0 level 2 metric 1000
<<< ge-0/1/9 is to node r5.
<<< ge-0/2/0 & ge-0/2/0 are to the same node r6.
 
labroot@jtac-mx480-r2605-re0# run show route 192.168.0.9 detail logical-system r4 table inet.3
inet.3: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden)
192.168.0.9/32 (1 entry, 1 announced)
        *L-ISIS Preference: 14
                Level: 2
                Next hop type: Router, Next hop index: 0
                Address: 0xb24e490
                Next-hop reference count: 1
                Next hop: 10.0.0.11 via ge-0/2/1.0 weight 0x1, selected <<< Primary path to r6
                Label operation: Push 1409
                Label TTL action: prop-ttl
                Load balance label: Label 1409: None;
                Label element ptr: 0xb2e9280
                Label parent element ptr: 0x0
                Label element references: 2
                Label element child references: 0
                Label element lsp id: 0
                Session Id: 0x0
                Next hop: 10.0.0.9 via ge-0/2/0.0 weight 0xf000  <<< Backup path is to the same node r6 as primary path even now
                Label operation: Push 1409
                Label TTL action: prop-ttl
                Load balance label: Label 1409: None;
                Label element ptr: 0xb2e9280
                Label parent element ptr: 0x0
                Label element references: 2
                Label element child references: 0
                Label element lsp id: 0
                Session Id: 0x0
                State: <Active Int>
                Local AS:  4788
                Age: 14:27      Metric: 3000
                Validation State: unverified
                ORR Generation-ID: 0
                Task: IS-IS            
                Announcement bits (2): 0-Resolve tree 1 2-Resolve tree 4
                AS path: I

Solution

The node-protection option that is configured on a LAN interface does not result in a backup path that avoids the node at the far end of the LAN. This is expected behavior. Changing the ISIS interface mode from LAN to P2P can make node-protection work.

P2P Mode

set logical-systems r4 protocols isis backup-spf-options use-post-convergence-lfa
set logical-systems r4 protocols isis backup-spf-options use-source-packet-routing
set logical-systems r4 protocols isis interface ge-0/1/9.0 point-to-point
set logical-systems r4 protocols isis interface ge-0/1/9.0 level 2 post-convergence-lfa node-protection
set logical-systems r4 protocols isis interface ge-0/1/9.0 level 2 metric 2000
set logical-systems r4 protocols isis interface ge-0/2/0.0 point-to-point
set logical-systems r4 protocols isis interface ge-0/2/0.0 level 2 post-convergence-lfa node-protection
set logical-systems r4 protocols isis interface ge-0/2/0.0 level 2 metric 1100
set logical-systems r4 protocols isis interface ge-0/2/1.0 point-to-point
set logical-systems r4 protocols isis interface ge-0/2/1.0 level 2 post-convergence-lfa node-protection
set logical-systems r4 protocols isis interface ge-0/2/1.0 level 2 metric 1000

   IS neighbor: jtac-mx480-r2605-re0-r1.00    Metric:     1000
     Two-way fragment: jtac-mx480-r2605-re0-r1.00-00, Two-way first fragment: jtac-mx480-r2605-re0-r1.00-00
     P2P IPv4 Adj-SID:      46, Weight:   0, Flags: -BVL--
     P2P IPv6 Adj-SID:      47, Weight:   0, Flags: FBVL--
   IS neighbor: jtac-mx480-r2605-re0-r5.00    Metric:     2000
     Two-way fragment: jtac-mx480-r2605-re0-r5.00-00, Two-way first fragment: jtac-mx480-r2605-re0-r5.00-00
     P2P IPv4 Adj-SID:      44, Weight:   0, Flags: -BVL--
     P2P IPv6 Adj-SID:      45, Weight:   0, Flags: FBVL--
   IS neighbor: jtac-mx480-r2605-re0-r6.00    Metric:     1000
     Two-way fragment: jtac-mx480-r2605-re0-r6.00-00, Two-way first fragment: jtac-mx480-r2605-re0-r6.00-00
     P2P IPv4 Adj-SID:      48, Weight:   0, Flags: -BVL--
     P2P IPv6 Adj-SID:      49, Weight:   0, Flags: FBVL--
     P2P IPv4 Adj-SID:      42, Weight:   0, Flags: -BVL--
     P2P IPv6 Adj-SID:      43, Weight:   0, Flags: FBVL--
inet.3: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden)
192.168.0.9/32 (1 entry, 1 announced)
        *L-ISIS Preference: 14
                Level: 2
                Next hop type: Router, Next hop index: 0
                Address: 0xb24f710
                Next-hop reference count: 1
                Next hop: 10.0.0.11 via ge-0/2/1.0 weight 0x1, selected <<< Primary is to r6.
                Label operation: Push 1409
                Label TTL action: prop-ttl
                Load balance label: Label 1409: None;
                Label element ptr: 0xb2e9280
                Label parent element ptr: 0x0
                Label element references: 5
                Label element child references: 2
                Label element lsp id: 0
                Session Id: 0x0
                Next hop: 10.0.0.7 via ge-0/1/9.0 weight 0xf000  <<< Goes through another node r5
                Label operation: Push 1409
                Label TTL action: prop-ttl
                Load balance label: Label 1409: None;
                Label element ptr: 0xb2e9280
                Label parent element ptr: 0x0
                Label element references: 5
                Label element child references: 2
                Label element lsp id: 0
                Session Id: 0x0
                State: <Active Int>
                Local AS:  4788
                Age: 2:21       Metric: 3000
                Validation State: unverified
                ORR Generation-ID: 0
                Task: IS-IS            
                Announcement bits (2): 0-Resolve tree 1 2-Resolve tree 4
                AS path: I