19 mins read

RSVP – fast reroute

1. Intro

Fast reroute can dramatically reduce packet loss in the case a primary path fails. Even if you have a secondary path signaled with the standby feature there is still the possibility of many packet drops. This happens because the message for the failed path must still travel back towards the ingress LSR so it can be informed and switchover the traffic.

Fast reroute provides a way for intermediate LSRs to immediately start to transmit traffic on an alternate path and simultaneously inform the Ingress LSR about the downstream link or node failure. Fast reroute paths are called detours. Fast reroute is configured on the Ingress LSR and is signaled with a RSVP Object.

Whenever possible, Fast Reroute will:

  • detour around the neighboring router (similar to Node Protection)
  • else, detour around the attached link (similar to Link Protection)
  • else, do nothing if there is no alternate path.

Once fast-reroute is configured, the TED database is used to automatically calculate the detour paths. The administrative groups are inherited from the LSP and up to six hops can be added to the LSP in attempt to reach the egress LSR.

Fast reroute is a short-term solution. A PathErr message is send to the Ingress LSR to resignal the primary LSP or use the secondary. If a detour is not available a ResvTear is sent and label reservations are removed and the LSP is deleted. On the other side if a new primary path is not available, the detour path could stay UP for an indefinite time.

Because only the administrative groups inherit it is possible that detours have less bandwidth available. You can configure bandwidth, hop limit, include and exclude administrative groups.

The topology we will use to test fast-reroute:

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.

2. Secondary paths switchover time

Let’s see how fast RSVP will switch from Primary to Secondary paths:

### We will start with this config: 

root@R1# show protocols mpls | display set 
set protocols mpls admin-groups BLUE 0
set protocols mpls admin-groups GREEN 1
set protocols mpls admin-groups RED 2
set protocols mpls label-switched-path TO-R7 to 17.0.0.7
set protocols mpls label-switched-path TO-R7 primary BLUE-PATH admin-group include-any BLUE
set protocols mpls label-switched-path TO-R7 secondary RED-PATH admin-group include-any RED
set protocols mpls path BLUE-PATH
set protocols mpls path RED-PATH
set protocols mpls interface ge-0/0/2.0 admin-group BLUE
set protocols mpls interface ge-0/0/1.0 admin-group RED
set protocols mpls interface ge-0/0/1.0 admin-group GREEN

### Initially only the Primary path is UP: 

root@R1# run show rsvp session ingress extensive    
Ingress RSVP: 1 sessions

17.0.0.7
  From: 17.0.0.1, LSPstate: Up, ActiveRoute: 0
  LSPname: TO-R7, LSPpath: Primary
  LSPtype: Static Configured
  Suggested label received: -, Suggested label sent: -
  Recovery label received: -, Recovery label sent: 300576
  Resv style: 1 FF, Label in: -, Label out: 300576
  Time left:    -, Since: Fri Jul 24 05:09:20 2026
  Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
  Port number: sender 36 receiver 60161 protocol 0
  Enhanced FRR: Enabled (Downstream)
  PATH rcvfrom: localclient 
  Adspec: sent MTU 1500
  Path MTU: received 1500
  PATH sentto: 17.1.3.3 (ge-0/0/2.0) 1 pkts
       outgoing message state: refreshing, Message ID: 188, Epoch: 10474068
  RESV rcvfrom: 17.1.3.3 (ge-0/0/2.0) 1 pkts, Entropy label: Yes
       incoming message handle: R-91/1, Message ID: 251, Epoch: 10474044
  Explct route: 17.1.3.3 17.3.6.6 17.6.7.7 
  Record route: <self> 17.1.3.3 17.3.6.6 17.6.7.7  
Total 1 displayed, Up 1, Down 0

### Start a ping to test the failover time: 

root@R1# run ping 192.168.7.1 routing-instance Cust-A rapid interval 0.1 count 100000    
PING 192.168.7.1 (192.168.7.1): 56 data bytes
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

### Disable the R3 to R6 link:

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

[edit]
root@R3# commit 
commit complete

### I have to trim the output, be we lost about 220 packets: 

root@R1# run ping 192.168.7.1 routing-instance Cust-A rapid interval 0.1 count 100000    
PING 192.168.7.1 (192.168.7.1): 56 data bytes
[...]
--- 192.168.7.1 ping statistics ---
3480 packets transmitted, 3261 packets received, 7% packet loss
round-trip min/avg/max/stddev = 3.008/4.165/62.999/2.529 ms

So, it took a lot of time to bring UP and use the secondary path: 

root@R1# run show rsvp session ingress extensive    
Ingress RSVP: 1 sessions

17.0.0.7
  From: 17.0.0.1, LSPstate: Up, ActiveRoute: 0
  LSPname: TO-R7, LSPpath: Secondary
  LSPtype: Static Configured
  Suggested label received: -, Suggested label sent: -
  Recovery label received: -, Recovery label sent: 300320
  Resv style: 1 FF, Label in: -, Label out: 300320
  Time left:    -, Since: Fri Jul 24 05:23:45 2026
  Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
  Port number: sender 37 receiver 60165 protocol 0
  Enhanced FRR: Enabled (Downstream)
  PATH rcvfrom: localclient 
  Adspec: sent MTU 1500
  Path MTU: received 1500
  PATH sentto: 17.1.2.2 (ge-0/0/1.0) 1 pkts
       outgoing message state: refreshing, Message ID: 197, Epoch: 10474068
  RESV rcvfrom: 17.1.2.2 (ge-0/0/1.0) 1 pkts, Entropy label: Yes
       incoming message handle: R-98/1, Message ID: 185, Epoch: 10474044
  Explct route: 17.1.2.2 17.2.4.4 17.4.5.5 17.5.8.8 17.7.8.7 
  Record route: <self> 17.1.2.2 17.2.4.4 17.4.5.5 17.5.8.8 17.7.8.7  
Total 1 displayed, Up 1, Down 0

That was slow. Let’s see if we can improve by adding standby to the Secondary path:

### Enable the R3 to R6 link: 

root@R3# show | compare 
[edit interfaces ge-0/0/2]
-   disable;

[edit]
root@R3# commit 
commit complete

### Add Standby to the Secondary path: 

root@R1# set protocols mpls label-switched-path TO-R7 secondary RED-PATH standby 

[edit]
root@R1# show | compare 
[edit protocols mpls label-switched-path TO-R7 secondary RED-PATH]
+     standby;

[edit]
root@R1# commit 
commit complete

### After some time both paths are UP with the correct paths: 

root@R1# run show rsvp session ingress extensive    
Ingress RSVP: 2 sessions

17.0.0.7
  From: 17.0.0.1, LSPstate: Up, ActiveRoute: 0
  LSPname: TO-R7, LSPpath: Primary
  LSPtype: Static Configured
  Suggested label received: -, Suggested label sent: -
  Recovery label received: -, Recovery label sent: 300688
  Resv style: 1 FF, Label in: -, Label out: 300688
  Time left:    -, Since: Fri Jul 24 05:50:43 2026
  Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
  Port number: sender 38 receiver 60161 protocol 0
  Enhanced FRR: Enabled (Downstream)
  PATH rcvfrom: localclient 
  Adspec: sent MTU 1500
  Path MTU: received 1500
  PATH sentto: 17.1.3.3 (ge-0/0/2.0) 1 pkts
       outgoing message state: refreshing, Message ID: 209, Epoch: 10474068
  RESV rcvfrom: 17.1.3.3 (ge-0/0/2.0) 1 pkts, Entropy label: Yes
       incoming message handle: R-106/1, Message ID: 288, Epoch: 10474044
  Explct route: 17.1.3.3 17.3.6.6 17.6.7.7 
  Record route: <self> 17.1.3.3 17.3.6.6 17.6.7.7  

17.0.0.7
  From: 17.0.0.1, LSPstate: Up, ActiveRoute: 0
  LSPname: TO-R7, LSPpath: Secondary
  LSPtype: Static Configured
  Suggested label received: -, Suggested label sent: -
  Recovery label received: -, Recovery label sent: 300320
  Resv style: 1 FF, Label in: -, Label out: 300320
  Time left:    -, Since: Fri Jul 24 05:23:45 2026
  Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
  Port number: sender 37 receiver 60165 protocol 0
  Enhanced FRR: Enabled (Downstream)
  PATH rcvfrom: localclient 
  Adspec: sent MTU 1500
  Path MTU: received 1500
  PATH sentto: 17.1.2.2 (ge-0/0/1.0) 4 pkts
       outgoing message state: refreshing, Message ID: 211, Epoch: 10474068
  RESV rcvfrom: 17.1.2.2 (ge-0/0/1.0) 4 pkts, Entropy label: Yes
       incoming message handle: R-98/4, Message ID: 209, Epoch: 10474044
  Explct route: 17.1.2.2 17.2.4.4 17.4.5.5 17.5.8.8 17.7.8.7 
  Record route: <self> 17.1.2.2 17.2.4.4 17.4.5.5 17.5.8.8 17.7.8.7  
Total 2 displayed, Up 2, Down 0

### Start a ping to test the failover time: 

root@R1# run ping 192.168.7.1 routing-instance Cust-A rapid interval 0.1 count 100000    
PING 192.168.7.1 (192.168.7.1): 56 data bytes
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

### Disable the R3 to R6 link:

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

[edit]
root@R3# commit 
commit complete

### I have to trim the output, but in this topology there is no packet loss. 
### Multiple attempts with same result, no packet loss: 

root@R1# run ping 192.168.7.1 routing-instance Cust-A rapid interval 0.1 count 100000    
PING 192.168.7.1 (192.168.7.1): 56 data bytes
[...]
--- 192.168.7.1 ping statistics ---
6541 packets transmitted, 6540 packets received, 0% packet loss
round-trip min/avg/max/stddev = 3.414/5.169/99.590/2.612 ms

### Only the Secondary paths is UP: 

root@R1# run show rsvp session ingress extensive    
Ingress RSVP: 1 sessions

17.0.0.7
  From: 17.0.0.1, LSPstate: Up, ActiveRoute: 0
  LSPname: TO-R7, LSPpath: Secondary
  LSPtype: Static Configured
  Suggested label received: -, Suggested label sent: -
  Recovery label received: -, Recovery label sent: 300320
  Resv style: 1 FF, Label in: -, Label out: 300320
  Time left:    -, Since: Fri Jul 24 05:23:45 2026
  Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
  Port number: sender 37 receiver 60165 protocol 0
  Enhanced FRR: Enabled (Downstream)
  PATH rcvfrom: localclient 
  Adspec: sent MTU 1500
  Path MTU: received 1500
  PATH sentto: 17.1.2.2 (ge-0/0/1.0) 9 pkts
       outgoing message state: refreshing, Message ID: 227, Epoch: 10474068
  RESV rcvfrom: 17.1.2.2 (ge-0/0/1.0) 9 pkts, Entropy label: Yes
       incoming message handle: R-98/9, Message ID: 218, Epoch: 10474044
  Explct route: 17.1.2.2 17.2.4.4 17.4.5.5 17.5.8.8 17.7.8.7 
  Record route: <self> 17.1.2.2 17.2.4.4 17.4.5.5 17.5.8.8 17.7.8.7  
Total 1 displayed, Up 1, Down 0

### In other, bigger topologies, we will probably have impact even with standby configured! 

3. Fast Reroute

Let’s do the same test with fast reroute. We don’t want any admin-groups restriction for fast reroute, so we must use the no-include-any knob:

### Add Fast Reroute: 

root@R1# set protocols mpls label-switched-path TO-R7 fast-reroute 

[edit]
root@R1# show | compare 
[edit protocols mpls label-switched-path TO-R7]
+     fast-reroute; 

[edit]
root@R1# commit 
commit complete

### No detours found on R1: 

root@R1# run show rsvp session ingress extensive    
Ingress RSVP: 2 sessions

17.0.0.7
  From: 17.0.0.1, LSPstate: Up, ActiveRoute: 0
  LSPname: TO-R7, LSPpath: Primary
  LSPtype: Static Configured
  Suggested label received: -, Suggested label sent: -
  Recovery label received: -, Recovery label sent: 300864
  Resv style: 1 FF, Label in: -, Label out: 300864
  Time left:    -, Since: Fri Jul 24 07:04:17 2026
  Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
  Port number: sender 43 receiver 60161 protocol 0
  FastReroute desired
  Enhanced FRR: Disabled, Reason: LSP Type, Refresh: 30 secs
  PATH rcvfrom: localclient 
  Adspec: sent MTU 1500
  Path MTU: received 1500
  PATH sentto: 17.1.3.3 (ge-0/0/2.0) 2 pkts
       outgoing message state: refreshing, Message ID: 255, Epoch: 10474068
  RESV rcvfrom: 17.1.3.3 (ge-0/0/2.0) 2 pkts, Entropy label: Yes
       incoming message handle: R-131/2, Message ID: 367, Epoch: 10474044
  Explct route: 17.1.3.3 17.3.6.6 17.6.7.7 
  Record route: <self> 17.1.3.3 17.3.6.6 17.6.7.7  

17.0.0.7
  From: 17.0.0.1, LSPstate: Up, ActiveRoute: 0
  LSPname: TO-R7, LSPpath: Secondary
  LSPtype: Static Configured
  Suggested label received: -, Suggested label sent: -
  Recovery label received: -, Recovery label sent: 300464
  Resv style: 1 FF, Label in: -, Label out: 300464
  Time left:    -, Since: Fri Jul 24 07:04:17 2026
  Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
  Port number: sender 44 receiver 60165 protocol 0
  FastReroute desired
  Enhanced FRR: Disabled, Reason: LSP Type, Refresh: 30 secs
  PATH rcvfrom: localclient 
  Adspec: sent MTU 1500
  Path MTU: received 1500
  PATH sentto: 17.1.2.2 (ge-0/0/1.0) 2 pkts
       outgoing message state: refreshing, Message ID: 256, Epoch: 10474068
  RESV rcvfrom: 17.1.2.2 (ge-0/0/1.0) 4 pkts, Entropy label: Yes
       incoming message handle: R-132/4, Message ID: 261, Epoch: 10474044
  Explct route: 17.1.2.2 17.2.4.4 17.4.5.5 17.5.8.8 17.7.8.7 
  Record route: <self> 17.1.2.2 17.2.4.4 17.4.5.5 17.5.8.8 17.7.8.7  
Total 2 displayed, Up 2, Down 0

### Fast Reroute is inheriting the admin-groups restrictions. 
### It will never find a detour using BLUE only links for Primary path; same for Secondary path.
### The solution is to ask fast reroute to ignore 'include-any' restriction:

root@R1# show | compare 
[edit protocols mpls label-switched-path TO-R7 fast-reroute]
+     no-include-any;

[edit]
root@R1# commit 
commit complete

### Now we can see the detour paths: 

root@R1# run show rsvp session ingress extensive                                     
Ingress RSVP: 2 sessions

17.0.0.7
  From: 17.0.0.1, LSPstate: Up, ActiveRoute: 0
  LSPname: TO-R7, LSPpath: Primary
  LSPtype: Static Configured
  Suggested label received: -, Suggested label sent: -
  Recovery label received: -, Recovery label sent: 300864
  Resv style: 1 FF, Label in: -, Label out: 300864
  Time left:    -, Since: Fri Jul 24 07:04:17 2026
  Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
  Port number: sender 43 receiver 60161 protocol 0
  FastReroute desired
  Enhanced FRR: Disabled, Reason: LSP Type, Refresh: 30 secs
  PATH rcvfrom: localclient 
  Adspec: sent MTU 1500
  Path MTU: received 1500
  PATH sentto: 17.1.3.3 (ge-0/0/2.0) 5 pkts
       outgoing message state: refreshing, Message ID: 265, Epoch: 10474068
  RESV rcvfrom: 17.1.3.3 (ge-0/0/2.0) 7 pkts, Entropy label: Yes
       incoming message handle: R-131/7, Message ID: 385, Epoch: 10474044
  Explct route: 17.1.3.3 17.3.6.6 17.6.7.7 
  Record route: <self> 17.1.3.3 17.3.6.6 17.6.7.7  
    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: 17.1.2.2 (ge-0/0/1.0) 3 pkts
       outgoing message state: refreshing, Message ID: 267, Epoch: 10474068
    Detour RESV rcvfrom: 17.1.2.2 (ge-0/0/1.0) 3 pkts, Entropy label: Yes
       incoming message handle: R-134/3, Message ID: 283, Epoch: 10474044
    Detour Explct route: 17.1.2.2 17.2.4.4 17.4.5.5 17.5.8.8 17.7.8.7 
    Detour Record route: <self> 17.1.2.2 17.2.4.4 17.4.5.5 17.5.8.8 17.7.8.7  
    Detour Label out: 300496

17.0.0.7
  From: 17.0.0.1, LSPstate: Up, ActiveRoute: 0
  LSPname: TO-R7, LSPpath: Secondary
  LSPtype: Static Configured
  Suggested label received: -, Suggested label sent: -
  Recovery label received: -, Recovery label sent: 300464
  Resv style: 1 FF, Label in: -, Label out: 300464
  Time left:    -, Since: Fri Jul 24 07:04:17 2026
  Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
  Port number: sender 44 receiver 60165 protocol 0
  FastReroute desired
  Enhanced FRR: Disabled, Reason: LSP Type, Refresh: 30 secs
  PATH rcvfrom: localclient 
  Adspec: sent MTU 1500
  Path MTU: received 1500
  PATH sentto: 17.1.2.2 (ge-0/0/1.0) 5 pkts
       outgoing message state: refreshing, Message ID: 263, Epoch: 10474068
  RESV rcvfrom: 17.1.2.2 (ge-0/0/1.0) 12 pkts, Entropy label: Yes
       incoming message handle: R-132/12, Message ID: 281, Epoch: 10474044
  Explct route: 17.1.2.2 17.2.4.4 17.4.5.5 17.5.8.8 17.7.8.7 
  Record route: <self> 17.1.2.2 17.2.4.4 17.4.5.5 17.5.8.8 17.7.8.7  
    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: 17.1.3.3 (ge-0/0/2.0) 3 pkts
       outgoing message state: refreshing, Message ID: 268, Epoch: 10474068
    Detour RESV rcvfrom: 17.1.3.3 (ge-0/0/2.0) 3 pkts, Entropy label: Yes
       incoming message handle: R-133/3, Message ID: 389, Epoch: 10474044
    Detour Explct route: 17.1.3.3 17.3.6.6 17.6.7.7 
    Detour Record route: <self> 17.1.3.3 17.3.6.6 17.6.7.7  
    Detour Label out: 300912
Total 2 displayed, Up 2, Down 0

### Other routers also have detours now: 

root@R3# run show rsvp session lsp name TO-R7 extensive 
Ingress RSVP: 0 sessions
Total 0 displayed, Up 0, Down 0

Egress RSVP: 0 sessions
Total 0 displayed, Up 0, Down 0

Transit RSVP: 3 sessions, 2 detours

17.0.0.7
  From: 17.0.0.1, LSPstate: Up, ActiveRoute: 0
  LSPname: TO-R7, LSPpath: Primary
  Suggested label received: -, Suggested label sent: -
  Recovery label received: -, Recovery label sent: 300912
  Resv style: 1 FF, Label in: 300864, Label out: 300912
  Time left:  153, Since: Fri Jul 24 07:04:17 2026
  Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
  Port number: sender 43 receiver 60161 protocol 0
  FastReroute desired
  Enhanced FRR: Disabled, Reason: LSP Type, Refresh: 30 secs
  PATH rcvfrom: 17.1.3.1 (ge-0/0/1.0) 5 pkts
       incoming message handle: P-219/5, Message ID: 265, Epoch: 10474068
  Adspec: received MTU 1500 sent MTU 1500
  PATH sentto: 17.3.6.6 (ge-0/0/2.0) 4 pkts
       outgoing message state: refreshing, Message ID: 375, Epoch: 10474044
  RESV rcvfrom: 17.3.6.6 (ge-0/0/2.0) 5 pkts, Entropy label: Yes
       incoming message handle: R-220/5, Message ID: 444, Epoch: 10474044
  RESV 
       outgoing message state: refreshing, Message ID: 385, Epoch: 10474044
  Explct route: 17.3.6.6 17.6.7.7 
  Record route: 17.1.3.1 <self> 17.3.6.6 17.6.7.7  
    Detour is Up
    Detour Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
    Detour adspec: received MTU 1500 sent MTU 1500
    Path MTU: received 1500
    Detour PATH sentto: 17.3.4.4 (ge-0/0/4.0) 3 pkts
       outgoing message state: refreshing, Message ID: 388, Epoch: 10474044
    Detour RESV rcvfrom: 17.3.4.4 (ge-0/0/4.0) 3 pkts, Entropy label: Yes
       incoming message handle: R-226/3, Message ID: 254, Epoch: 10474020
    Detour RESV 
       outgoing message state: refreshing, Message ID: 385, Epoch: 10474044
    Detour Explct route: 17.3.4.4 17.4.5.5 17.5.8.8 17.7.8.7 
    Detour Record route: 17.1.3.1 <self> 17.3.4.4 17.4.5.5 17.5.8.8 17.7.8.7  
    Detour Label out: 300496

17.0.0.7
  From: 17.0.0.1, LSPstate: Up, ActiveRoute: 0
  LSPname: TO-R7, LSPpath: Secondary
  Suggested label received: -, Suggested label sent: -
  Recovery label received: -, Recovery label sent: 300976
  Resv style: 1 FF, Label in: 300896, Label out: 300976
  Time left:  130, Since: Fri Jul 24 07:09:48 2026
  Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
  Port number: sender 44 receiver 60165 protocol 0
  Enhanced FRR: Disabled, Reason: LSP Type, Refresh: 30 secs
  Detour branch from 17.3.4.4, to skip 17.0.0.5, Up
    Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
    Adspec: received MTU 1500 
    Path MTU: received 0
    PATH rcvfrom: 17.3.4.4 (ge-0/0/4.0) 3 pkts
       incoming message handle: P-227/3, Message ID: 255, Epoch: 10474020
    Adspec: received MTU 1500 sent MTU 1500
    PATH sentto: 17.3.6.6 (ge-0/0/2.0) 1 pkts
       outgoing message state: refreshing, Message ID: 379, Epoch: 10474044
    RESV rcvfrom: 17.3.6.6 (ge-0/0/2.0) 1 pkts, Entropy label: Yes
       incoming message handle: R-228/1, Message ID: 450, Epoch: 10474044
    RESV 
       outgoing message state: refreshing, Message ID: 390, Epoch: 10474044
    Explct route: 17.3.6.6 17.6.7.7 
    Record route: 17.1.2.1 17.2.4.2 17.3.4.4 <self> 17.3.6.6 17.6.7.7  
    Label in: 300896, Label out: 300976
  Detour branch from 17.1.3.1, to skip 17.0.0.2, Up
    Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
    Adspec: received MTU 1500 
    Path MTU: received 0
    PATH rcvfrom: 17.1.3.1 (ge-0/0/1.0) 3 pkts
       incoming message handle: P-229/3, Message ID: 268, Epoch: 10474068
    Adspec: received MTU 1500 
    PATH sentto: 17.3.6.6 (ge-0/0/2.0) 0 pkts
       outgoing message state: none, Message ID: 0, Epoch: 10474044
    RESV rcvfrom: 17.3.6.6 (ge-0/0/2.0) 1 pkts, Entropy label: Yes
       incoming message handle: R-228/1, Message ID: 450, Epoch: 10474044
    RESV 
       outgoing message state: refreshing, Message ID: 389, Epoch: 10474044
    Explct route: 17.3.6.6 17.6.7.7 
    Record route: 17.1.3.1 <self> 17.3.6.6 17.6.7.7  
    Label in: 300912, Label out: 300976
  Detour branch from 17.2.3.2, to skip 17.0.0.4, Up
    Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
    Adspec: received MTU 1500 
    Path MTU: received 0
    PATH rcvfrom: 17.2.3.2 (ge-0/0/3.0) 3 pkts
       incoming message handle: P-230/3, Message ID: 284, Epoch: 10474044
    Adspec: received MTU 1500 
    PATH sentto: 17.3.6.6 (ge-0/0/2.0) 0 pkts
       outgoing message state: none, Message ID: 0, Epoch: 10474044
    RESV rcvfrom: 17.3.6.6 (ge-0/0/2.0) 1 pkts, Entropy label: Yes
       incoming message handle: R-228/1, Message ID: 450, Epoch: 10474044
    RESV 
       outgoing message state: refreshing, Message ID: 391, Epoch: 10474044
    Explct route: 17.3.6.6 17.6.7.7 
    Record route: 17.1.2.1 17.2.3.2 <self> 17.3.6.6 17.6.7.7  
    Label in: 300928, Label out: 300976
Total 2 displayed, Up 2, Down 0

### Start a ping to test the failover time: 

root@R1# run ping 192.168.7.1 routing-instance Cust-A rapid interval 0.1 count 100000    
PING 192.168.7.1 (192.168.7.1): 56 data bytes
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

### Disable the R3 to R6 link:

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

[edit]
root@R3# commit 
commit complete

### I have to trim the output, be there was no packet loss: 

root@R1# run ping 192.168.7.1 routing-instance Cust-A rapid interval 0.1 count 100000    
PING 192.168.7.1 (192.168.7.1): 56 data bytes
[...]
--- 192.168.7.1 ping statistics ---
7644 packets transmitted, 7643 packets received, 0% packet loss
round-trip min/avg/max/stddev = 3.867/5.401/62.030/2.499 ms

Let’s remove the Secondary path and disable again the R3 to R6 link, with the following impact:

  • Primary path will not find an alternate, because of the BLUE only links restriction
  • There is no more Secondary path to provide an alternate path.
  • Traffic will use the detour from R3, so path will be R1 – R3 – R4 – R5 – R8 – R7.
  • The detour will be used until the failed link is restored.
### Remove the standby path: 

root@R1# show | compare 
[edit protocols mpls label-switched-path TO-R7]
-     secondary RED-PATH {
-         admin-group include-any RED;
-         standby;
-     }

[edit]
root@R1# commit 
commit complete

### Disable Re to R6 again: 

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

[edit]
root@R3# commit 
commit complete

### The detour path:

root@R3# run show rsvp session name TO-R7 extensive            
Ingress RSVP: 0 sessions
Total 0 displayed, Up 0, Down 0

Egress RSVP: 0 sessions
Total 0 displayed, Up 0, Down 0

Transit RSVP: 2 sessions

17.0.0.7
  From: 17.0.0.1, LSPstate: Up, ActiveRoute: 0
  LSPname: TO-R7, LSPpath: Primary
  Suggested label received: -, Suggested label sent: -
  Recovery label received: -, Recovery label sent: -
  Resv style: 0 -, Label in: 301104, Label out: -
  Time left:  142, Since: Fri Jul 24 07:31:37 2026
  Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
  Port number: sender 46 receiver 60161 protocol 0
  FastReroute desired
  Enhanced FRR: Disabled, Reason: LSP Type, Refresh: 30 secs
  PATH rcvfrom: 17.1.3.1 (ge-0/0/1.0) 4 pkts
       incoming message handle: P-279/4, Message ID: 324, Epoch: 10474068
  Adspec: received MTU 1500 sent MTU 1500
  PATH sentto: 17.3.6.6 (ge-0/0/2.0) 3 pkts
       outgoing message state: none, Message ID: 499, Epoch: 10474044
  RESV 
       outgoing message state: refreshing, Message ID: 513, Epoch: 10474044
  Explct route: 17.3.6.6 17.6.7.7 
  Record route: 17.1.3.1 <self> ...incomplete
    Detour is Up
    Detour Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
    Detour adspec: received MTU 1500 sent MTU 1500
    Path MTU: received 1500
    Detour PATH sentto: 17.3.4.4 (ge-0/0/4.0) 4 pkts
       outgoing message state: refreshing, Message ID: 514, Epoch: 10474044
    Detour RESV rcvfrom: 17.3.4.4 (ge-0/0/4.0) 4 pkts, Entropy label: Yes
       incoming message handle: R-281/4, Message ID: 358, Epoch: 10474020
    Detour RESV 
       outgoing message state: refreshing, Message ID: 513, Epoch: 10474044
    Detour Explct route: 17.3.4.4 17.4.5.5 17.5.8.8 17.7.8.7 
    Detour Record route: 17.1.3.1 <self> 17.3.4.4 17.4.5.5 17.5.8.8 17.7.8.7  
    Detour Label out: 300608
Total 1 displayed, Up 1, Down 0

###  R3 interfaces: 

root@R3# run show interfaces descriptions 
Interface       Admin Link Description
ge-0/0/1        up    up   R3-to-R1
ge-0/0/2        down  down R3-to-R6
ge-0/0/3        up    up   R3-to-R2
ge-0/0/4        up    up   R3-to-R4
ge-0/0/5        up    up   R3-to-R9


root@R3# run monitor interface ge-0/0/4     

Interface: ge-0/0/4, Enabled, Link is Up
Encapsulation: Ethernet, Speed: 1000mbps
Traffic statistics:
  Input bytes:                  22409124 (121280 bps)
  Output bytes:                 20690933 (121360 bps)
  Input packets:                  259324 (164 pps)
  Output packets:                 234713 (164 pps)
Error statistics:
  Input errors:                        0
  Input drops:                         0
  Input framing errors:                0
  Carrier transitions:                 1
  Output errors:                       0
  Output drops:                        0

### If we do a packet capture, we can see the detour transport label. 

15:20:41.464083 MPLS (label 300608, exp 0, ttl 63) (label 16, exp 0, [S], ttl 64) IP 192.168.1.1 > 192.168.7.1: ICMP echo request, id 23402, seq 34062, length 64

External Resources:

Leave a Reply