IP Protocol 88

Updates and Neighbor discovery on

EIGRP requires acknowledgements from routing updates.

EIGRP will pace the rate at which it transmits packets on multi-point links with less than 1500 kb/s bandwidth. Additionally, the default HELLO time on these links will be 60 seconds, with a HOLD time of 180 seconds. The “bandwidth” configured on the interface determines the rate or pace of packets. All other links will have a default HELLO time of 5 seconds, and HOLD time of 15 seconds.

When configuring the EIGRP HELLO and HOLD time on an interface, you are defining how fast you will send HELLO’s on that interface, and you are telling the neighbors on that interface “Here is how fast I want you to consider me down if you don’t hear any Hello’s from me (HOLD Time).” You are not configuring the HELLO and HOLD times you expect from the neighbors. Rather, the neighbors will tell you their desired HOLD times, and the neighbors HELLO’s will arrive at the rate the neighbor decides to send them. Therefore, HELLO and HOLD times do not need to match for each neighbor relationship, and the HELLO and HOLD times can vary per neighbor.

Tell the neighbors in EIGRP AS 10 on Serial 1/0 you will be sending HELLO’s every 1 second and consider me down after 3 seconds of no received HELLO’s (HOLD time):

interface serial 1/0
  ip hello-interval eigrp 10 1
  ip hold-time eigrp 10 3

Updates sent to - unicast ACKs are expected.

Each update message is given a sequence number, and the received ACK should have the same sequence number. The Seq Num field of show ip eigrp neighbors displays the last used sequence number for that neighbor. The next update message to that neighbor will use Seq Num + 1.

If unicast ACKs are not received from a neighbor after the RTO time (Retransmission Time Out), another update message will be sent directly to that neighbor via unicast.

The RTO time is calculated from the SRTT (Smoothed Round Trip Time)

The SRTT is measured by the delay observed between updates and ACKs. Both the RTO and SRTT values are displayed per neighbor in show ip eigrp neighbors.

R3#show ip eigrp nei
IP-EIGRP neighbors for process 10
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
1              Se1/0            160 00:39:56  868  5000  0  10
0              Se1/0            155 00:39:57   69   414  0  8

delay values configured per interface in EIGRP are in tens of microseconds.

bandwidth values are in kilobits per second.

delay 100 = 1000 usecs or 1 milisecond

bandwidth 10000 = 10,000,000 bits per second or 10Mbits/sec.

Calculating the EIGRP default metric:

[(10,000,000/lowest bw-in-kbits) + (sum of delays in 10’s of usec)] * 256

bw-in-kbits = BW output from show interface

delay in 10’s of usec = DLY output from show interface divided by 10

Note: If the bandwidth division results in a decimal number, round down and proceed.

K1 value is BW

K3 value is Delay

metric weights 0  1  0  1  0  0
                  K1 K2 K3 K4 K5

An EIGRP update to a neighbor contains the cumulative value of each K (such as the sum of delays, and lowest bandwidth). From that, the neighbor receiving the update can calculate the sending neighbors metric for that route. This is called the RD (Reported Distance). The neighbor receiving the update takes into consideration the delay and bandwidth on the interface it received the update from to calculate its own metric for that route. This is called the FD (Feasible Distance).

feasibility condition:

The RD must be lower then the current best FD for the route

when a route goes “stuck in active” the router takes down any neighbors who did not respond to the Queries within the Active timer.

The Active timer can be disabled with timers active-time disabled.

EIGRP hello time defaults to 5 seconds on most interfaces.

on NBMA interfaces with T1 or less BW the hello time is 60 seconds.

EIGRP only allows FS routes to be evaluated with the ‘variance’ command

ip summary-address eigrp 1 can be used to source a default route in EIGRP, however care must be taken that the Null0 route created for the summary does not override any other default route.

If an eBGP default route exists in the routing table, you can set the EIGRP Null0 summary admin distance to something higher than 20, to prevent it from overriding the BGP default route.

If a static neighbor is defined on an interface, all other neighbors on that interface must be static as well, dynamic neighbor discovery for that interface will be disabled. Each neighbor must have a mutual static statement for the neighbor to form. One neighbor having a static statement and other not will not work.

router eigrp 10
  neighbor interface serial 1/0

All other neighbors on serial 1/0 must be statically defined or will go down

Serial 1/0 could be a multi-point frame-relay interface

EIGRP Query Process: When an EIGRP router loses a route to a destination (perhaps because of an interface down event) it will look in its EIGRP topology database to see if it has an Equal Cost route or Feasible Successor for the destination network. If so, immediately start using the new path and update its EIGRP topology database and IP routing table, and send EIGRP Updates to its neighbors describing the K values of the new best path.

If no Equal Cost path or Feasible Successor exists, mark the route as “Active” and send EIGRP Query messages to its neighbors (except on the interface on which the route was lost). The EIGRP Query message contains the destination IP network in question with a “Destination Unreachable” message (infinite metric). The EIGRP neighbors receiving the Query must immediately unicast back an Acknowledge message to simply acknowledge the Query was received, but still owing a Reply.

After sending the ACK, the neighbor will look in its EIGRP topology database for the destination network in question.

If the destination is found through a Successor or Feasible Successor other than the neighbor sending the query, immediately send a Reply with the route component metrics (K values) back to the Querying neighbor. The Querying neighbor must immediately send back an ACK to acknowledge the Reply was received.

If the destination is found through the neighbor sending the Query, this neighbor will also mark the route as “Active” and send Queries to all of its neighbors. Once all of those neighbors have Replied, then send back a Reply to the original Querying neighbor.

If no information is found about the destination in question, or no other neighbors can be Queried, immediately send back a Reply with a “Destination Unreachable” message (an infinite metric).

EIGRP stuck in active - SIA:

When a router sends a Query to a neighbor it sets a 3 minute Active timer. If the neighbor does not reply within the 3 minute Active timer (maybe because that neighbor is waiting for Query replies itself before it can respond) - the neighbor relationship is reset.

EIGRP Enhanced Active - “SIA rewrite”

The EIGRP active processing was enhanced from the classic behavior described above.

The EIGRP neighbor will set a 1 minute Active timer after sending a Query to a neighbor and wait for a reply. If the neighbor does not respond within the 1 minute timer, rather than reseting the neighbor relationship, the Querying router will send another Query (SIA Query) asking about the status of the original Query. The neighbor can respond back saying “I’m still waiting for a Reply from Router X” - This will preserve the neighbor relationship, rather than resetting it. If the second SIA Query is unresponsive then we can assume the neighbor state is bad and proceed with a reset.

EIGRP Hold Time and SIA Timer relationship:

When a router sends a Query to a neighbor it will start the Active timer and expect a Acknowledgement before it expects a Reply. If no Ack is received, it will keep retransmitting for the period of the HOLD time before giving up and reseting the neighbor. Meanwhile, the Active timer has been running all along. This gets compounded with several layers of neighbors waiting for Queries and setting Active timers. The 3rd router in the chain waiting the HOLD time for Acks from the 4th router can cause the 1st router to wait long enough for its Active time to expire and going “stuck in active”. It wold have been better if the 3rd router could have expired the stale neighbor link with the 4th router faster and begin sending Replies before the Active timers on the 2nd and 3rd router expire.

Therefore, its always a good idea to make sure the EIGRP HOLD time is lower than Active timer across the network.

interface serial 1/0
  ip eigrp hold-time (seconds)
router eigrp 10
  timers active (seconds)

EIGRP allows up to (6) equal cost paths to be installed in the IP routing table, (4) is the default.

EIGRP Route Summarization (2) methods

interface serial 1/0
  ip summary-address eigrp 10 5
  • will only send a summary if component routes exist
  • will filter out all component routes
  • configured per interface
  • automatically creates a route to Null0 of the summary
router eigrp 10

Auto summary

EIGRP will not auto summarize External routes unless an internal component route exists