Node and Link Protection

6 11 2014

Node and link protection is a mechanism for protecting LSPs from (you guessed it) the failure of nodes and links.   It differs from fast re-route in that you have to specify node and link protection on the interfaces of all the downstream routers as well as on the LSP at its source.

My network looks like this at the moment, with an LSP running from R5 to R1 using the shortest path determined by the IGP:

Path of LSP R5-to-R1

Path of LSP R5-to-R1

So on R5, I configure node-link-protection on the LSP:

root@R5> show configuration protocols mpls
no-propagate-ttl;
label-switched-path R5-to-R1 {
    to 10.0.6.1;
    node-link-protection;
}
interface ge-0/0/0.0;
interface ge-0/0/1.0;

This has the effect of signalling to the downstream routers that link and node protection is desired, as you can see here:

root@R5> show mpls lsp name R5-to-R1 detail
Ingress LSP: 6 sessions

10.0.6.1
  From: 10.0.3.5, State: Up, ActiveRoute: 0, LSPname: R5-to-R1
  ActivePath:  (primary)
  Node/Link protection desired                        <===== Node Link Protection 
  LSPtype: Static Configured, Penultimate hop popping
  LoadBalance: Random
  Encoding type: Packet, Switching type: Packet, GPID: IPv4
 *Primary                    State: Up
    Priorities: 7 0
    SmartOptimizeTimer: 180
    Computed ERO (S [L] denotes strict [loose] hops): (CSPF metric: 2)
 10.0.2.2 S 10.0.4.14 S
    Received RRO (ProtectionFlag 1=Available 2=InUse 4=B/W 8=Node 10=SoftPreempt 20=Node-ID):
          10.0.3.3(flag=0x20) 10.0.2.2(Label=299808) 10.0.6.1(flag=0x20) 10.0.4.14(Label=3)
Total 1 displayed, Up 1, Down 0

So that’s fine.  When we move on to look at the LSP as it transits R3, however, we see that the desired protection is down.  Nicely, Junos is telling us why (if you use the extensive option):

root@R3> show mpls lsp name R5-to-R1 extensive
Ingress LSP: 6 sessions
Total 0 displayed, Up 0, Down 0

Egress LSP: 6 sessions
Total 0 displayed, Up 0, Down 0

Transit LSP: 8 sessions

10.0.6.1
  From: 10.0.3.5, LSPstate: Up, ActiveRoute: 0
  LSPname: R5-to-R1, LSPpath: Primary
  Suggested label received: -, Suggested label sent: -
  Recovery label received: -, Recovery label sent: 3
  Resv style: 1 SE, Label in: 299808, Label out: 3
  Time left:  143, Since: Thu Nov  6 04:37:39 2014
  Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
  Port number: sender 1 receiver 3217 protocol 0
  Node/Link protection desired
  Type: Protection down          <<=== Protection down - see the explanation on the next line
      1 Nov  6 06:30:12 Link protection disabled on outbound interface[153 times]
  PATH rcvfrom: 10.0.2.1 (ge-0/0/3.0) 185 pkts
  Adspec: received MTU 1500 sent MTU 1500
  PATH sentto: 10.0.4.14 (ge-0/0/2.0) 185 pkts
  RESV rcvfrom: 10.0.4.14 (ge-0/0/2.0) 182 pkts, Entropy label: No
  Explct route: 10.0.4.14
  Record route: 10.0.2.1 <self> 10.0.6.1 (node-id) 10.0.4.14
Total 1 displayed, Up 1, Down 0

Jolly good.  So let’s enable node-link protection on the MPLS interfaces on the transit router R3:

root@R3> edit
Entering configuration mode
[edit]
root@R3# set protocols rsvp interface ge-0/0/2 link-protection
[edit]
root@R3# set protocols rsvp interface ge-0/0/1 link-protection
[edit]
root@R3# set protocols rsvp interface ge-0/0/0 link-protection
[edit]
root@R3# commit and-quit
commit complete
Exiting configuration mode

root@R3>

Now look at the LSP again and we can see protection is active and a bypass LSP exists:

root@R3> show mpls lsp name R5-to-R1 extensive
Ingress LSP: 6 sessions
Total 0 displayed, Up 0, Down 0

Egress LSP: 6 sessions
Total 0 displayed, Up 0, Down 0

Transit LSP: 8 sessions

10.0.6.1
  From: 10.0.3.5, LSPstate: Up, ActiveRoute: 0
  LSPname: R5-to-R1, LSPpath: Primary
  Suggested label received: -, Suggested label sent: -
  Recovery label received: -, Recovery label sent: 3
  Resv style: 1 SE, Label in: 299808, Label out: 3
  Time left:  148, Since: Thu Nov  6 04:37:39 2014
  Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
  Port number: sender 1 receiver 3217 protocol 0
  Node/Link protection desired
  Type: Link protected LSP, using Bypass->10.0.4.14    <<=== LSP is now protected
      2 Nov  6 06:57:06 Link protection up, using Bypass->10.0.4.14
      1 Nov  6 06:30:12 Link protection disabled on outbound interface[153 times]
  PATH rcvfrom: 10.0.2.1 (ge-0/0/3.0) 196 pkts
  Adspec: received MTU 1500 sent MTU 1500
  PATH sentto: 10.0.4.14 (ge-0/0/2.0) 195 pkts
  RESV rcvfrom: 10.0.4.14 (ge-0/0/2.0) 191 pkts, Entropy label: No
  Explct route: 10.0.4.14
  Record route: 10.0.2.1 <self> 10.0.6.1 (node-id) 10.0.4.14
Total 1 displayed, Up 1, Down 0

To check this is working we can deactivate a link and watch R3 create a bypass:

root@R3> edit
Entering configuration mode

[edit]
root@R3# deactivate interfaces ge-0/0/2    <== The currently-used interface for this LSP to R1

[edit]
root@R3# commit and-quit
commit complete
Exiting configuration mode

root@R3> show mpls lsp name R5-to-R1 extensive
Ingress LSP: 6 sessions
Total 0 displayed, Up 0, Down 0

Egress LSP: 6 sessions
Total 0 displayed, Up 0, Down 0

Transit LSP: 9 sessions

10.0.6.1
  From: 10.0.3.5, LSPstate: Dn, ActiveRoute: 0
  LSPname: R5-to-R1, LSPpath: Primary
  Suggested label received: -, Suggested label sent: -
  Recovery label received: -, Recovery label sent: -
  Resv style: 0 -, Label in: 299808, Label out: -
  Time left:  156, Since: Thu Nov  6 04:37:39 2014
  Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
  Port number: sender 1 receiver 3217 protocol 0
  Node/Link protection desired
  Type: Link protected LSP, using Bypass->10.0.4.14
      5 Nov  6 07:03:18 Backup LSP: Up  10.0.4.5
      4 Nov  6 07:03:18 Backup LSP: Record Route:  10.0.4.5
      3 Nov  6 07:03:17 Creating backup LSP, link down
      2 Nov  6 06:57:06 Link protection up, using Bypass->10.0.4.14
      1 Nov  6 06:30:12 Link protection disabled on outbound interface[153 times]
  PATH rcvfrom: 10.0.2.1 (ge-0/0/3.0) 202 pkts
  Adspec: received MTU 1500 sent MTU 1500
  PATH sentto: [no route]
  Explct route: 10.0.4.14
  Record route: 10.0.2.1 <self> ...incomplete
Total 1 displayed, Up 0, Down 1

root@R3>

In fact it’s easier to see in summary mode – you can see the bypass has been created for a number of LSPs that are all affected by the same ‘failure’:

Transit LSP: 8 sessions
To              From            State   Rt Style Labelin Labelout LSPname
10.0.3.4        10.0.6.2        Up       0  1 SE  299936        3 Bypass->10.0.4.9
10.0.3.5        10.0.6.2        Up       0  1 SE  299840        3 R2-to-R5
10.0.3.5        10.0.6.2        Up       0  1 SE  299904        3 Bypass->10.0.4.9->10.0.2.9
10.0.3.5        10.0.6.1        Up       0  1 SE  299968        3 R1-to-R5
10.0.6.1        10.0.6.2        Up       0  1 SE  299984        3 Bypass->10.0.4.5
10.0.6.1        10.0.9.6        Up       0  1 SE  299952   299840 R6-to-R1
10.0.6.2        10.0.3.5        Up       0  1 SE  299824        3 R5-to-R2
10.0.6.2        10.0.9.6        Up       0  1 SE  299872        3 R6-to-R2

Actions

Information

Leave a comment