12 mins read

RSVP – Link/Node Protection

1. Intro

The Junos implementation of facility backup is link protection. This feature is interface based rather than LSP based. Whereas fast reroute is trying to protect the whole LSP (1:1 protection), link protection (1:n) protects only the link, however, it can protect multiple LSPs. A bypass LSP must terminate on the downstream LSR. Bypass LSPs are calculated by CSPF. You can specify administrative groups and bandwidth for Bypass LSPs.

To configure RSVP link protection we need 2 elements, otherwise it will not work:

  1. activate link protection on each RSVP interface where protection is desired
  2. activate link/node protection on the LSP itself to make it eligible to make use of the facility backup.

Link Protection protects the interface where it is configured, whereas Node Link Protection automatically protects both link and downstream node.

The topology we will use to test Link/Node Protection:

Note:

  • Based on the addressing being used you will be able to identify the link.
  • For example. 17.6.7.7 is a link between router 6 and 7, and this is Router 7.
  • Second example. 17.1.2.1 is a link between router 1 and 2, and this is Router 1.

The startup config is the following:

As we can see, we have 3 LSPs: R1-to-R5, R1-to-R8, R1-to-R7. We want to protect all LSPs, so we will do this in the next section:

2. Link Protect basic config

Let’s protect the 3 LSPs: 3 LSPs: R1-to-R5, R1-to-R8, R1-to-R7. The 1st router in the path is R2, so let’s protect the R2-to-R4 link:

3. Simulate some links down:

### After disabling a few links, particularly disable R2-to-R4 link:

root@R4# show | compare 
[edit interfaces ge-0/0/3]
+   disable;

[edit]
root@R4# commit 
commit complete

### We can see the events and labels on the LSP: 

root@R1# run show mpls lsp name TO-R7 extensive 
Ingress LSP: 3 sessions

17.0.0.7
  From: 17.0.0.1, State: Up, ActiveRoute: 0, LSPname: TO-R7, LSPid: 12
  ActivePath: RED-PATH (primary)
  Node/Link protection desired
  LSPtype: Static Configured, Penultimate hop popping
  LoadBalance: Random
  Follow destination IGP metric
  Encoding type: Packet, Switching type: Packet, GPID: IPv4
  LSP Self-ping Status : Enabled
 *Primary   RED-PATH         State: Up
    Priorities: 7 0
    SmartOptimizeTimer: 180
          Include Any: RED
    Flap Count: 1
    MBB Count: 1
    Computed ERO (S [L] denotes strict [loose] hops): (CSPF metric: 5000)
 17.1.2.2 S 17.2.4.4 S 17.4.5.5 S 17.5.8.8 S 17.7.8.7 S 
    Received RRO (ProtectionFlag 1=Available 2=InUse 4=B/W 8=Node 10=SoftPreempt 20=Node-ID):
          17.0.0.2(flag=0x2b) 17.1.2.2(flag=0xb Label=300960) 17.5.6.5(Label=300928) 17.0.0.8(flag=0x20) 17.5.8.8(Label=300736) 17.0.0.7(flag=0x20) 17.7.8.7(Label=3)
   92 Jul 29 04:49:40.805 CSPF failed: no route toward 17.0.0.7
   91 Jul 29 04:49:40.804 CSPF: link down/deleted: 17.2.4.2(17.0.0.2:359)(17.0.0.2)->17.2.4.4(17.0.0.4:0)(17.0.0.4)
   90 Jul 29 04:49:37.134 Link-protection Up
   89 Jul 29 04:49:36.879 Record Route:  17.0.0.2(flag=0x2b) 17.1.2.2(flag=0xb Label=300960) 17.5.6.5(Label=300928) 17.0.0.8(flag=0x20) 17.5.8.8(Label=300736) 17.0.0.7(flag=0x20) 17.7.8.7(Label=3)
   88 Jul 29 04:49:36.875 CSPF failed: no route toward 17.0.0.7
   87 Jul 29 04:49:36.874 17.1.2.2: Tunnel local repaired
   86 Jul 29 04:49:36.872 CSPF failed: no route toward 17.0.0.7
   85 Jul 29 04:49:36.872 17.1.2.2: Tunnel local repaired[2 times, first Jul 29 04:49:36.872]
   84 Jul 29 04:49:36.867 Link-protection Down
   83 Jul 29 04:49:33.136 Link-protection Up
   82 Jul 29 04:49:32.686 Link-protection Down
   81 Jul 29 04:43:23.080 Make-before-break: Cleaned up old instance: Hold dead expiry
   80 Jul 29 04:42:29.131 Link-protection Up
   79 Jul 29 04:42:29.131 Link-protection Down
   78 Jul 29 04:42:10.130 Link-protection Up
   [...]

root@R2# run show rsvp interface ge-0/0/3.0 extensive    
ge-0/0/3.0 Index 359, State Ena/Up
  NoAuthentication, Aggregate, Reliable, LinkProtection
  HelloInterval 9(second)
  Address 17.2.4.2
  ActiveResv 0, PreemptionCnt 0, MaxResvTh 0bps, 0% 
  Update threshold 10.000%, UpdateThresholdValue 100Mbps
  Subscription 100%, Actual 100%
  bc0 = ct0, StaticBW 1000Mbps
  ct0: StaticBW 1000Mbps, AvailableBW 1000Mbps
    MaxAvailableBW 1000Mbps = (bc0*subscription)
    ReservedBW [0] 0bps[1] 0bps[2] 0bps[3] 0bps[4] 0bps[5] 0bps[6] 0bps[7] 0bps
  Protection: On, Bypass: 1, LSP: 3, Protected LSP: 3, Unprotected LSP: 0
      3 Jul 29 04:44:57 Delete bypass Bypass->17.2.4.4, inactivity timeout
      2 Jul 29 04:01:51 New bypass Bypass->17.2.4.4->17.4.5.5
      1 Jul 29 02:25:25 New bypass Bypass->17.2.4.4
    Bypass: Bypass->17.2.4.4->17.4.5.5, State: Up, Type: NP, LSP: 3, Backup: 3
      4 Jul 29 04:01:53 Up
      3 Jul 29 04:01:53 Record Route:  17.2.3.3(Label=301280) 17.3.6.6(Label=301328) 17.5.6.5(Label=3)
      2 Jul 29 04:01:53 CSPF: computation
  

11:30:33.513740 MPLS (label 301328, exp 0, ttl 62) (label 300832, exp 0, ttl 63) (label 16, exp 0, [S], ttl 64) IP 192.168.1.1 > 192.168.7.1: ICMP echo request, id 39552, seq 4518, length 64

### On packet capture from the bypass links (R1-to-R6), we can see the stacked labels:

11:49:55.159851 MPLS (label 301328, exp 0, ttl 62) (label 300928, exp 0, ttl 63) (label 16, exp 0, [S], ttl 64) IP 192.168.1.1 > 192.168.7.1: ICMP echo request, id 49541, seq 3973, length 64

### label 300928 is the original LSP label.
### label 301328 is the stacked Bypass label. 


External Resources: