EIGRP Graceful Shutdown

EIGRP graceful shutdown is one of those features that you don’t really think about. It’s not something you have to configure, and it’s something that EIGRP does for us behind the scenes. Graceful shutdown allows your neighbors to quickly convergence when your router stops running EIGRP globally or on a specific interface.

Let’s look at an example. We have two routers:

R1 R2 Switch In Middle

Let’s configure EIGRP on both routers; I’ll use named mode:

R1 & R2
(config)#router eigrp MY_EIGRP 
(config-router)#address-family ipv4 unicast autonomous-system 12
(config-router-af)#network 192.168.12.0

EIGRP uses the hold time to decide when to drop a neighbor adjacency. As long as you keep receiving hello packets, the hold time resets:

R1#show ip eigrp neighbors 
EIGRP-IPv4 VR(MY_EIGRP) Address-Family Neighbors for AS(12)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
0   192.168.12.2            Gi0/1                    14 00:00:50    1  3000  0  1

Above you can see that the hold time is currently 14 seconds. If R1 doesn’t receive a hello packet from R2 within 14 seconds, it will drop the neighbor adjacency.

Let’s see what happens when I shut the interface on R2:

R2(config)#interface GigabitEthernet 0/1
R2(config-if)#shutdown

R2 knows immediately that there is no neighbor adjacency anymore since its own interface went down:

R2#
%DUAL-5-NBRCHANGE: EIGRP-IPv4 12: Neighbor 192.168.12.1 (GigabitEthernet0/1) is down: interface down

It took R1 a bit longer to figure this out though. After a maximum of 15 seconds (hold timer), you see this message on the console:

R1#
%DUAL-5-NBRCHANGE: EIGRP-IPv4 12: Neighbor 192.168.12.2 (GigabitEthernet0/1) is down: holding time expired

R1 loses the neighbor adjacency after the hold timer expired. This means that for a maximum of 15 seconds, R1 kept using R2 as a valid neighbor and perhaps kept sending traffic to R2.

This is something we can speed up, and it’s where graceful shutdown comes in place. First, let’s restore the interface on R2:

R2(config)#interface GigabitEthernet 0/1
R2(config-if)#no shutdown

Let me show you what happens when I remove a network command on R2:

R2(config)#router eigrp MY_EIGRP
R2(config-router)#address-family ipv4 unicast autonomous-system 12
R2(config-router-af)#no network 192.168.12.0

Right away, you see this message on R1:

R1#
%DUAL-5-NBRCHANGE: EIGRP-IPv4 12: Neighbor 192.168.12.2 (GigabitEthernet0/1) is down: Interface PEER-TERMINATION received

Instead of waiting for the hold time to expire, R1 receives this nice peer termination message. R2 is letting R1 know right away that it stops using EIGRP on its GigabitEthernet 0/1 interface. This allows R1 to converge much faster.

Depending on your IOS version, you might see “goodbye” instead of “peer termination”.

This peer termination message is sent by using a hello packet with K values that are all set to 255. Here’s a Wireshark capture:

eigrp graceful shutdown hello packet

EIGRP Graceful Shutdown Hello Packet

I did a graceful shutdown by removing a network command, but another option is to use the shutdown command:

R2(config)#router eigrp MY_EIGRP
R2(config-router)#address-family ipv4 unicast autonomous-system 12
R2(config-router-af)#shutdown

The shutdown command is easier to use if you have a lot of network commands. Clearing the EIGRP process is another option:

R2#clear ip eigrp neighbors

That’s all there is to it.

Conclusion

You have now learned:

  • How EIGRP uses graceful shutdown so that neighbors can quickly re-converge and don’t have to wait for the hold timer to expire.
  • You can initiate graceful shutdown by:
    • Removing a network command
    • Using the EIGRP shutdown command
    • Clearing the EIGRP process
  • EIGRP uses a hello packet with all K values set to 255 to indicate it is shutting down.
  • Shutting an interface doesn’t initiate a graceful shutdown.
  • Graceful shutdown doesn’t protect you against link failures. If this is what you want, you might want to take a look at BFD (Bidirectional Forwarding Detection) .

Table of Content

Unit 1: Introduction to EIGRP

Unit 2: EIGRP Neighbor Adjacency

Unit 3: EIGRP Filtering

Unit 4: EIGRP Advanced Features