EIGRP Hold Time and Hello Packets

Most people have learned that the EIGRP hold timer is renewed when it receives a hello packet from a neighbor. This is correct however the hello packet is not the only packet that renewes it…all EIGRP packets do. In order to demonstrate this, we’ll take a look at the following two routers:

R1 R2 EIGRP AS 12

First, I will configure EIGRP on both routers, nothing special I want to make sure we have a neighbor adjacency:

R1(config)#router eigrp 12
R1(config-router)#network 192.168.12.0
R2(config)#router eigrp 12
R2(config-router)#network 192.168.12.0

Now I will increase the hold time so it doesn’t drop the neighbor adjacency so quickly. I’ll set it to 1 hour:

R2(config-if)#ip hold-time eigrp 12 3600

When we take a look at R1, you’ll see that it uses 3600 seconds as the hold time for R2:

R1#show ip eigrp neighbors 
IP-EIGRP neighbors for process 12
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
0   192.168.12.2            Fa0/0            3597 00:00:51    3   200  0  21

We have 3597 seconds and counting…now I will set the hello timer to a low value so that we can find out if other EIGRP packets will renew the hold time. I’ll set it to 5 minutes:

R2(config)#interface fastEthernet 0/0
R2(config-if)#ip hello-interval eigrp 12 300

R1 will now only receive a hello packet from R2 every 5 minutes. To show that different EIGRP packets will renew the hold time, I will enable a debug on R1 so that we can see what kind of packets it receives from R2:

R1#debug eigrp packets 
EIGRP Packets debugging is on
    (UPDATE, REQUEST, QUERY, REPLY, HELLO, IPXSAP, PROBE, ACK, STUB, SIAQUERY, SIAREPLY)

Now I will create a new loopback interface on R2 and advertise it in EIGRP. This will cause some traffic between R1 and R2. Before I do this, let’s take a quick look at the current state of the hold time again:

Look again at the table:

R1#show ip eigrp neighbors 
IP-EIGRP neighbors for process 12
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
0   192.168.12.2            Fa0/0            3504 00:04:23    3   200  0  21

Right now, we are down to 3504 seconds…let’s advertise that loopback interface in EIGRP:

R2(config)#interface loopback 0
R2(config-if)#ip address 2.2.2.2 255.255.255.0
R2(config)#router eigrp 12
R2(config-router)#network 2.0.0.0

We’ll see on the console of R1 that it receives an UPDATE message, some ACKS, and that’s it…

R1#
EIGRP: Received UPDATE on FastEthernet0/0 nbr 192.168.12.2
  AS 12, Flags 0x0, Seq 22/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
EIGRP: Enqueueing ACK on FastEthernet0/0 nbr 192.168.12.2
  Ack seq 22 iidbQ un/rely 0/0 peerQ un/rely 1/0
EIGRP: Sending ACK on FastEthernet0/0 nbr 192.168.12.2
  AS 12, Flags 0x0, Seq 0/22 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 1/0
EIGRP: Enqueueing UPDATE on FastEthernet0/0 iidbQ un/rely 0/1 serno 3-3
EIGRP: Enqueueing UPDATE on FastEthernet0/0 nbr 192.168.12.2 iidbQ un/rely 0/0 peerQ un/rely 0/0 serno 3-3

What about the hold time? Did it reset? Let’s find out:

R1#show ip eigrp neighbors 
IP-EIGRP neighbors for process 12
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
0   192.168.12.2            Fa0/0            3588 00:05:01    3   300  0  22

There we go. The hold time was reset even though we didn’t receive any hello packets from R2. The other messages did their work just fine…

Table of Content

Unit 1: Introduction to EIGRP

Unit 2: EIGRP Neighbor Adjacency

Unit 3: EIGRP Filtering

Unit 4: EIGRP Advanced Features