All routers in the path of the LSP keep track of the state of the tunnel. When there is a failure somewhere in the LSP, depending on your interfaces and protocols, it can take up to two minutes before this is detected. This can be an issue.
Take a look at the following topology:
We have a Traffic Engineering (TE) tunnel from PE1 to PE2. When something happens with P2, routers behind P2 should know about the failure immediately. If not, they will keep track of the state of the LSP even though the path is unavailable. P4 and PE2 might reserve bandwidth, preventing other tunnels from being built.
Three mechanisms cause a router to activate MPLS TE fast reroute and send traffic down a backup tunnel:
- Interface-down notification
- Loss of signal
- RSVP hello neighbor down notification
Point-to-point links like PPP or HDLC use keepalives. When you don’t receive keepalives, the interface goes down, and the router triggers an interface-down notification.
An example of a loss of signal is when you cut the cable or do a shutdown on a remote interface. This is not very reliable, though. Here is an example:
Above, we have a switch in between P1 and P2. When something happens with P2, SW1 will detect this, and the interface goes down. The connection from P1 to SW1 is fine, so there is no way for P1 to figure out that P2 is gone.
This is a scenario where the third mechanism can help.
RSVP hellos work similarly to hello messages that routing protocols like OSPF, IS-IS, or EIGRP use. It’s also similar to BFD.
An RSVP hello contains a hello message, and in it, we have a request or an acknowledgment.
We send hello request messages, and when we don’t receive acknowledgments, we declare the neighbor down. When this happens, it triggers a fast reroute (FRR) immediately and switches to a backup tunnel. This makes RSVP hellos a good companion for MPLS TE FRR node protection.
There are two types of hello instances:
- Active: the router that actively sends hello messages to the neighbor.
- Passive: the router responds to hello messages but does not send hello messages.
Configuration
Let’s look at RSVP hello’s in action. This is the topology:
This is the topology and configuration we used in MPLS TE FRR node protection. We have a tunnel from PE1 to PE2 through P2. We’ll configure RSVP hellos between P1 and P2. We’ll simulate a node failure of P2 by blocking these RSVP hello messages, causing a fast reroute.
I use IOSv Software (VIOS-ADVENTERPRISEK9-M), Version 15.9(3)M4
- Configurations
- CE1
- CE2
- P1
- P2
- P3
- P4
- PE1
- PE2
Want to take a look for yourself? Here you will find the startup configuration of each device.
First, we need to enable RSVP hello messages globally on both routers:
P1 & P2
(config)#ip rsvp signalling hello
And we enable it on the interfaces:
P1(config)#interface GigabitEthernet 0/1
P1(config-if)#ip rsvp signalling hello
P2(config)#interface GigabitEthernet 0/0
P2(config-if)#ip rsvp signalling hello
These are the only required commands to make this work.
You might notice that there is also a ip rsvp signalling hello fast-reroute
command. When you use these, commands are saved as ip rsvp signalling hello
without fast-reroute
.
I will configure three additional commands:
P1(config)#interface GigabitEthernet 0/1
P1(config-if)#ip rsvp signalling hello refresh interval 400
P1(config-if)#ip rsvp signalling hello refresh misses 6
P1(config-if)#ip rsvp signalling hello dscp 40
Here’s what it does:
- We send a hello message every 400 ms.
- We can miss six acknowledgments from our neighbor before we declare it down.
- We change the DSCP value to 40 (CS5).
Verification
Let’s verify our work. The show ip rsvp hello instance
command tells us everything we need:
P1#show ip rsvp hello instance summary
Active Instances:
Client Neighbor I/F State LostCnt LSPs Interval
FRR 192.168.34.4 Gi0/1 Up 10 1 400
Passive Instances:
- None -
Active = Actively tracking neighbor state on behalf of clients:
RR = ReRoute, FRR = Fast ReRoute, or GR = Graceful Restart
Passive = Responding to hello requests from neighbor
Above, we see that P1 uses the active instance. We use RSVP hellos for fast reroute. Here is P2:
P2#show ip rsvp hello instance summary
Active Instances:
- None -
Passive Instances:
Neighbor I/F
192.168.34.3 Gi0/0
Active = Actively tracking neighbor state on behalf of clients:
RR = ReRoute, FRR = Fast ReRoute, or GR = Graceful Restart
Passive = Responding to hello requests from neighbor
P2 uses the passive instance. You can see some more details when you swap summary
for detail
:
P1#show ip rsvp hello instance detail
Neighbor 192.168.34.4 (router ID: 4.4.4.4) Source 192.168.34.3
Type: Active (sending requests)
I/F: GigabitEthernet0/1
State: Up (Since: 2022 December Wednesday 21 15:33:34 )
Clients: Fast Reroute
LSPs protecting: 1
Missed acks: 6, IP DSCP: 0x28
Refresh Interval (msec)
Configured: 400
Statistics: (from 106 samples)
Min: 400
Max: 400
Average: 400
Waverage: 400 (Weight = 0.8)
Current: 400
Last sent Src_instance: 0x74F2DEC1
Last recv nbr's Src_instance: 0xB4B9D9DB
Counters:
Communication with neighbor lost:
Num times: 10 (last time at 1d01h)
Reasons:
Missed acks: 9
Bad Src_Inst received: 0
Bad Dst_Inst received: 0
I/F went down: 0
Neighbor disabled Hello: 1
Msgs Received: 193458
Sent: 193987
Suppressed: 0
Above, you see the optional values that we configured. The output on P2 is simpler because it’s a passive instance:
P2#show ip rsvp hello instance detail
Neighbor 192.168.34.3 (router ID: 3.3.3.3) Source 192.168.34.4
Type: Passive (responding to requests)
I/F: GigabitEthernet0/0
Last sent Src_instance: 0xB4B9D9DB
Last recv nbr's Src_instance: 0x74F2DEC1
Counters:
Msgs Received: 262
Sent: 262
If you want to see what RSVP hello packets look like, take a look at this capture:
- Unit 1: Introduction
- Unit 2: LDP (Label Distribution Protocol)
- Unit 3: MPLS VPN
- VRFs (Virtual Routing and Forwarding)
- MPLS L3 VPN Explained
- MPLS L3 VPN Configuration
- MPLS L3 VPN BGP Allow AS in
- MPLS L3 VPN BGP AS Override
- MPLS L3 VPN PE-CE RIP
- MPLS L3 VPN PE-CE EIGRP
- MPLS L3 VPN PE-CE OSPF
- MPLS L3 VPN PE-CE OSPF Default Route
- MPLS L3 VPN PE-CE OSPF Global Default Route
- MPLS L3 VPN PE-CE OSPF Sham Link
- VRF Lite Route Leaking
- MPLS VPN Extranet Route Leaking
- MPLS VPN VRF Export Map
- MPLS VPN VRF Import Map
- MPLS over FlexVPN
- Unit 4: MPLS L2 Encapsulation
- Unit 5: IPv6 MPLS
- Unit 6: MPLS Traffic Engineering (TE)
- Introduction to MPLS Traffic Engineering (TE)
- MPLS Traffic Engineering (TE) IS-IS Configuration
- MPLS Traffic Engineering (TE) OSPF Configuration
- MPLS TE RSVP-TE
- MPLS TE Static Routes
- MPLS TE Policy Based Routing (PBR)
- MPLS TE Autoroute Announce
- MPLS TE Autoroute Destination
- MPLS TE Autoroute Metric
- MPLS TE Unequal Cost Load Balancing
- MPLS TE Load Balancing between IGP and TE
- MPLS TE Forwarding Adjacency
- MPLS TE Path Options Explicit
- MPLS TE Class-Based Tunnel Selection (CBTS)
- MPLS TE Metric
- MPLS TE Setup and Hold Priority
- MPLS TE Attribute Flag and Affinity
- MPLS TE Reoptimization
- MPLS TE Fast Reroute (FRR)
- MPLS TE Fast Reroute Path Link Protection
- MPLS TE Fast Reroute Path Node Protection
- MPLS TE FRR RSVP Hello Support
- MPLS TE DiffServ Aware (DS-TE) Traditional
- MPLS TE Diffserv-Aware (DS-TE) IETF Mode
- MPLS VPN over MPLS TE Tunnels
- MPLS TE Per VRF TE tunnel