Overview

EIGRP is an 'advanced' distance vector routing protocol and is the evolution of IGRP. Originally EIGRP was a Cisco proprietary protocol but in 2013 Cisco announced its intention to make EIGRP on open standard. At the time of writing there is an only informational RFC: RFC7868.

Transport

EIGRP has been assigned protocol number 88 and implements its own reliable transport protocol for delivery of unicast and multicast packets. It does not use TCP or UDP.

Metric

There are 6 K coefficient values used in the EIGRP metric calculation. Bandwidth (K1), load (K2), cumulative delay (K3), reliability (K4), MTU (K5) and extended metrics (K6). There is also a hop count parameter but that is used to prevent routing loops, not for best path selection.

K1-5 + hop count are considered to be the EIGRP classic metrics. EIGRP was further enhanced to support so called wide metrics. Wide metrics accommodate for interface speeds greater than 10G. Additionally the K6 coefficient was added and bandwidth is referred to as throughput while delay is referred to as latency.

Metric Value Description Default
Bandwidth
or
Throughput
K1 Transmission speed of an interface. Auto assigned based in interface speed/type.
Load K2 Dynamically estimated load of an interface. Calculated based on the amount of traffic in/out of an interface vs its maximum capacity.
Delay
or
Latency
K3 Estimated serialization delay of an interface Auto assigned based in interface type.
Reliability K4 Dynamically estimated reliability of an interface. Calculated based on the number of frames received vs the number of frames transmitted by a neighbor.
MTU K5 Minimum MTU along a route to a destination. Advertised by EIGRP but not used in best path selection.
Extended Metrics K6 Placeholders for future extensions, not yet implemented. Three defined: Jitter, Energy and Quiescent energy.
Hop Count N/A Number of hops to a destination. Used to prevent routing loops. Not used in best path selection. 100

Best Path Selection

EIGRP uses the K values to calculate the best path to a destination. All routers in an EIGRP autonomous system should use the same K values to compute the best path. By default only the lowest bandwidth (K1) and cumulative delay (K3) to a destination are used in the best path calculation.

Essentially the default metric is calculated as follows:

(256 x 107 / lowest_bandwidth) + (256 x sum_of_delays)

For reference the full calculation for both classic and wide metrics are below:

blog/eigrp/classic-metric-composite-formula.png

Classic Composite Metric Computation Formula [1]

blog/eigrp/wide-metric-composite-formula.png

Wide Composite Metric Computation Formula [2]

Important

Cisco does not recommend turning on any of the non-default metrics and most of them exist for backwards compatibility with IGRP. The recommended method to influence best path selection is by altering the delay metric.

Neighborship

Neighbor Establishment

For an EIGRP neighborship to be established the following must be true.

  • Matching autonomous system number
  • Matching K Values
  • Matching Multicast (dynamic) or Unicast (static) neighbor configuration
  • Matching Authentication Parameters
  • Neighbor primary interface IP address resides in a common subnet

Neighbor Packet Types

EIGRP has 7 types of neighbor packets.

Type Opcode Description
Hello 5 Identify and verify neighbor compatibility while also acting as a keepalive mechanism. Hello packets are multicast to 224.0.0.10 and FF02::A or unicast if static neighbor is configured.
Acknowledgment 5 Unicast response to an; Update, Query, Reply, SIA-Query or SIA-Replay packet An acknowledgment is a Hello packet with no TLV's with the Acknowledgment field set to the sequence number of the packet it is acknowledging. An Acknowledgement can also piggy back onto the Acknowledgment field of ANY unicasted reliable packet by setting that packets sequence number in the Acknowledgement field.
Update 1 Contain routing information updates and also advise of the reachability of remote destinations. Can be either unicast or multicast, p2p links and statically configured neighbors use unicast updates.
Query 3 Unicast or multicast packets used to involve a neighbor in the search for the best route to a destination.
Reply 4 Unicast response to a reply packet with the senders current distance to the destination
SIA-Query 10 Unicast packet that is used to ask a neighbor if it is still working on a Query during a prolonged diffusing computation.
SIA-Reply 11 Unicast packet sent in reponse to a SIA-Query if the neighbor is still working on the original Query.

Reliable Transport Protocol

Reliable transport protocol (RTP) ensures that EIGRP packets are not only delivered, but also delivered in the correct order. There is no separate RTP packet format, instead RTP is build into the EIGRP messages using sequence numbers and forced acknowledgements. The reliable EIGRP packets types (Update, Query, Reply, SIA-Update and SIA-Reply) must be acknowledged, this ensures the delivery of EIGRP messages.

Diffusing Update Algorithm

Diffusing Update Algorithm (DUAL) is used as the convergence algorithm in EIGRP. DUAL replaces the Bellman-Ford algorithm used in other distance vector protocols. DUAL computes the shortest path using the concept of "diffusing computations" to ensure a loop free topology during the shortest path computation.

Local Computation

During a topology change, if the shortest path provided by a neighbor is already a feasible successor in the topology table the feasible successor is elevated to the successor route without needing to query its neighbors. This is known as a local computation.

Diffusing Computation

During a topology change, if the shortest path provided by a neighbor is not a feasible successor, the router will commence a diffusing computation by sending a Query packet to its neighbors with the prefix and its computed distance to the destination.

DUAL Finite State Machine

The DUAL Finite state machine (FSM) is used to use handle multiple topology changes during a single diffusing computation.

DUAL uses the following parameters in the diffusing computation.

Parameter Description
Reported Distance The distance to a destination from the perspective of a neighboring router.
Computed Distance Total distance to a destination calculated as: The distance between a router and its neighbor plus the neighbors reported distance.
Feasible Distance The last known computed distance to a destination when the route transitioned from active to passive.
Feasibility Condition If a neighboring routers reported distance to a destination is smaller than the routers current feasible distance to the destination the path through that neighbor cannot cause a routing loop.

Topology Table

EIGRP stores all its routing information in the topology table. EIGRP will perform a feasibility condition check on routes received by a neighbor to confirm that neighbor can provide a loop free path to the destination. Routes that satisfy the feasibility condition may be installed in the routing table.

Any loop free path to a destination will be installed in the topology table as one of two types of routes.

Route Type Description
Successor This is the shortest loop free path to a destination and is installed in the routing table.
Feasible Successor Alternate loop free path to a destination. Can be installed in the routing table if the Successor route fails.
blog/eigrp/feasibility-condition.svg

Route States

Routes in the topology table go through a number of states.

State Description
Passive Loop free path to the destination has been computed. This is the normal state.
Active EIGRP is actively trying to compute the best path and querying its neighbors.
SIA If a reply to a Query for a destination is not received within the holdown timer (180 sec or 360 sec with SIA-Reply) the route is considered Stuck-In-Active.

Packet Format

Basic EIGRP message format

blog/eigrp/eigrp-packet-format.svg

Routing Updates

EIGRP exchanges a full routing table when a neighborship is initially established with only partial updates exchanged after that. For a router to accept routing updates from a neighbor the router-id must be different to its local router-id.

Summarization

EIGRP is a classless routing protocol and can summarize networks at any bit boundary.

Loop Prevention

Mechanism Description
Feasibility Condition Neighbors reported distance to a destination is lower than the current feasible distance.
Split horizon with poison reverse [3] Routes learned from an interface are re-advertised out the same interface with an infinite metric.
Hop Count Used to limit the maximum size of a EIGRP AS. The default is 100.

Authentication

EIGRP supports both MD5 and SHA-256 authentication. SHA-256 is only available in EIGRP named mode.

Packet Captures

Various EIGRP PCAPs can be found here.

References

1. CCIE Routing and Switching v5.0 Official Cert Guide, Volume 1 - Chapter 8: EIGRP - Page 364
2. CCIE Routing and Switching v5.0 Official Cert Guide, Volume 1 - Chapter 8: EIGRP - Page 367
3. https://www.cisco.com/c/en/us/support/docs/ip/enhanced-interior-gateway-routing-protocol-eigrp/16406-eigrp-toc.html#anc9

Bibliography

1. Kocharians, N. and Paluch, P. (2014) CCIE Routing and Switching v5.0 Official Cert Guide, Volume 1, 5th Edition - Chapter 8: EIGRP. Indianapolis: Cisco Press
2. Edgeworth, B. Foss, A. Rios, G. R. (2014) IP Routing on Cisco IOS, IOS XE and IOS XR - Chapter 5: EIGRP. Indianapolis: Cisco Press
3. cisco.com (2017) Enhanced Interior Gateway Routing Protocol. Available at https://www.cisco.com/c/en/us/support/docs/ip/enhanced-interior-gateway-routing-protocol-eigrp/16406-eigrp-toc.html (Accessed: 8 Jul 2018)