Enhanced Interior Gateway Routing Protocol


Enhanced Interior Gateway Routing Protocol (EIGRP) is an enhanced version of IGRP. IGRP is Cisco's Interior Gateway Routing Protocol used in TCP/IP and OSI internets. It is regarded as an interior gateway protocol (IGP) but has also been used extensively as an exterior gateway protocol for inter-domain routing.

Key capabilities that distinguish Enhanced IGRP (EIGRP) from other routing protocols include fast convergence, support for variable-length subnet mask, support for partial updates, and support for multiple network layer protocols.

A router running EIGRP stores all its neighbors' routing tables so that it can quickly adapt to alternate routes. If no appropriate route exists, EIGRP queries its neighbors to discover an alternate route. These queries propagate until an alternate route is found.

The support of EIGRP for variable-length subnet masks permits routes to be automatically summarized on a network number boundary. In addition, EIGRP can be configured to summarize on any bit boundary at any interface.


It is always necessary to discuss what a routing protocol uses for its metrics. In this case, EIGRP can use:

  • Bandwidth
  • Delay
  • Reliability
  • Load

In most cases, EIGRP only uses Delay and Bandwidth with Bandwidth taking precedence. The metric for EIGRP is calculated by multiplying the IGRP metric by 256. So the formula used to calculate the metric is:

EIGRP Metric = 256*((K1*Bw) + (K2*Bw)/(256-Load) + (K3*Delay)*(K5/(Reliability + K4)))

EIGRP Components

For lack of a better word, EIGRP has basically 4 components that need to be mentioned and will be covered in any Cisco test:

  • Neighbor Discovery/Recovery
  • Reliable Transport Protocol
  • DUAL Finite State Machine
  • Protocol Dependent Modules

Neighbor Discover/Recovery is very simply the process that routers use to learn about other routers that are directly connected to them. This includes finding out when a router (neighbor) goes down for some reason. This is achieved by sending very small hello packets at periodic intervals. In typical Cisco fashion, if the neighbor misses a configurable amount of hellos in a certain period, the neighbor is declared down.

Reliable Transport refers to the fact that EIGRP is TCP based and therefore has the ability to use TCP based transmission when it is necessary to guarantee that a neighbor received a communication. EIGRP doesn't use TCP for all communications, though, but only those that require reliability. The multicast address is used by EIGRP and the IP protocol number is 88.

The DUAL finite state machine is the key component to hose IEGRP determines routing/forwarding tables. EIGRP stands for Diffusing Update Algorithm and differs from other routing protocols in that routing calculations are shared among multiple routers. A router only sends routing updates as distance vectors of directly connected routes, rather than every route that is in the network. Also, the router only sends an update of a particular if a topology change has occurred to that specific route. In addition, this update is only sent to relevant neighbour routers, not to all routers. This makes EIGRP a bandwidth-efficient routing protocol. Other routing protocols have regular routing updates that contain all route information by default.

The protocol-dependent modules handle network layer, protocol specific requirements, sich as IP or IPX. EIGRP maintains separate tables for each layer 3 protocol used in the network, just as almost all routing protocols do.

EIGRP Operation

Neighbor Table

Each router keeps state information about adjacent neighbors. When newly discovered neighbors are learned, the address and interface of the neighbor is recorded. This information is stored in the neighbor data structure. The neighbor table holds these entries. There is one neighbor table for each protocol dependent module. When a neighbor sends a hello, it advertises a HoldTime. The HoldTime is the amount of time a router treats a neighbor as reachable and operational. In other words, if a hello packet isn't heard within the HoldTime, then the HoldTime expires. When the HoldTime expires, DUAL is informed of the topology change.

The neighbor table entry also includes information required by the reliable transport mechanism. Sequence numbers are employed to match acknowledgments with data packets. The last sequence number received from the neighbor is recorded so out of order packets can be detected. A transmission list is used to queue packets for possible retransmission on a per neighbor basis. Round trip timers are kept in the neighbor data structure to estimate an optimal retransmission interval.

Topology Table

The Topology Table is populated by the protocol dependent modules and acted upon by the DUAL finite state machine. It contains all destinations advertised by neighboring routers. Associated with each entry is the destination address and a list of neighbors that have advertised the destination. For each neighbor, the advertised metric is recorded. This is the metric that the neighbor stores in its routing table. If the neighbor is advertising this destination, it must be using the route to forward packets. This is an important rule that distance vector protocols must follow.

Also associated with the destination is the metric that the router uses to reach the destination. This is the sum of the best advertised metric from all neighbors plus the link cost to the best neighbor. This is the metric that the router uses in the routing table and to advertise to other routers.

Feasible Successors

A destination entry is moved from the topology table to the routing table when there is a feasible successor. All minimum cost paths to the destination form a set. From this set, the neighbors that have an advertised metric less than the current routing table metric are considered feasible successors.

Feasible successors are viewed by a router as neighbors that are downstream with respect to the destination. These neighbors and the associated metrics are placed in the forwarding table.

When a neighbor changes the metric it has been advertising or a topology change occurs in the network, the set of feasible successors may have to be re-evaluated. However, this is not categorized as a route recomputation.

When a link to a neighbor that is the only feasible successor goes down, all routes through that neighbor commence a route recomputation and enter the Active state.


To enable EIGRP on the router you simply need to enable eigrp for a given AS number and define a network number. AS numbers can be from 1 to 65535. This is done as follows:

Router# conf t
Router(config)# router eigrp {AS number}
Router(config-router)# network

Optionally, but not normally, you can disable auto-summarization by adding:

Router(config-router)# no auto-summary

You can also enable authentication, change the hello interval and hold times, and change split-horizon if you want from the eigrp configuration.


There are a few commands you will want to use to verify EIGRP is running correctly:

  • show ip interface brief - Used to verify your interface status.
  • show ip route - It is useful to see the results of EIGRP in your actual routing table.
  • show ip route eigrp - This lets you view the routes that EIGRP is handling.
  • show ip eigrp neighbors - Verify that all of your neighbors are coming up and being seen. If your neighbors aren't here, don't bother troubleshooting the routes you are supposed to be transmitting because you aren't at that stage yet.
  • show ip eigrp traffic - This is useful to see that EIGRP traffic is behing passed back and forth between neighbors. Often with EIGRP, the problems that occur are related to other things besides EIGRP.