EIGRP is an enhanced version of the IGRP developed by Cisco. EIGRP uses the same distance vector algorithm and distance information
as IGRP. However, the convergence properties and the operating efficiency of EIGRP have improved substantially over IGRP.
The convergence technology is based on research conducted at SRI International and employs an algorithm called the diffusing
update algorithm (DUAL). This algorithm guarantees loop-free operation at every instant throughout a route computation and
allows all devices involved in a topology change to synchronize at the same time. Devices that are not affected by topology
changes are not involved in recomputations. The convergence time with DUAL rivals that of any other existing routing protocol.
EIGRP provides the following features:
-
Increased network width--With Routing Information Protocol (RIP), the largest possible width of your network is 15 hops.
When EIGRP is enabled, the largest possible width is 224 hops. Because the EIGRP metric is large enough to support thousands
of hops, the only barrier to expanding the network is the transport layer hop counter. Cisco works around this limitation
by incrementing the transport control field only when an IPv4 or an IPv6 packet has traversed 15 devices and the next hop
to the destination was learned by way of EIGRP. When a RIP route is being used as the next hop to the destination, the transport
control field is incremented as usual.
-
Fast convergence--The DUAL algorithm allows routing information to converge as quickly as any other routing protocol.
-
Partial updates--EIGRP sends incremental updates when the state of a destination changes, instead of sending the entire contents
of the routing table. This feature minimizes the bandwidth required for EIGRP packets.
-
Neighbor discovery mechanism--This is a simple hello mechanism used to learn about neighboring devices. It is protocol-independent.
-
Arbitrary route summarization.
-
Scaling--EIGRP scales to large networks.
-
Route filtering--EIGRP for IPv6 provides route filtering using the
distribute-list
prefix-list command. Use of the
route-map command is not supported for route filtering with a distribute list.
EIGRP has the following four basic components:
-
Neighbor discovery--Neighbor discovery is the process that devices use to dynamically learn of other devices on their directly
attached networks. Devices must also discover when their neighbors become unreachable or inoperative. EIGRP neighbor discovery
is achieved with low overhead by periodically sending small hello packets. EIGRP neighbors can also discover a neighbor that
has recovered after an outage because the recovered neighbor will send out a hello packet. As long as hello packets are received,
the Cisco software can determine that a neighbor is alive and functioning. Once this status is determined, the neighboring
devices can exchange routing information.
-
Reliable transport protocol--The reliable transport protocol is responsible for guaranteed, ordered delivery of EIGRP packets
to all neighbors. It supports intermixed transmission of multicast and unicast packets. Some EIGRP packets must be sent reliably
and others need not be. For efficiency, reliability is provided only when necessary. For example, on a multiaccess network
that has multicast capabilities, it is not necessary to send hello packets reliably to all neighbors individually. Therefore,
EIGRP sends a single multicast hello with an indication in the packet informing the receivers that the packet need not be
acknowledged. Other types of packets (such as updates) require acknowledgment, which is indicated in the packet. The reliable
transport has a provision to send multicast packets quickly when unacknowledged packets are pending. This provision helps
to ensure that convergence time remains low in the presence of varying speed links.
-
DUAL finite state machine--The DUAL finite state machine embodies the decision process for all route computations. It tracks
all routes advertised by all neighbors. DUAL uses several metrics including distance and cost information to select efficient,
loop-free paths. When multiple routes to a neighbor exist, DUAL determines which route has the lowest metric (named the feasible
distance), and enters this route into the routing table. Other possible routes to this neighbor with larger metrics are received,
and DUAL determines the reported distance to this network. The reported distance is defined as the total metric advertised
by an upstream neighbor for a path to a destination. DUAL compares the reported distance with the feasible distance, and if
the reported distance is less than the feasible distance, DUAL considers the route to be a feasible successor and enters the
route into the topology table. The feasible successor route that is reported with the lowest metric becomes the successor
route to the current route if the current route fails. To avoid routing loops, DUAL ensures that the reported distance is
always less than the feasible distance for a neighbor device to reach the destination network; otherwise, the route to the
neighbor may loop back through the local device.
-
Protocol-dependent modules--When there are no feasible successors to a route that has failed, but there are neighbors advertising
the route, a recomputation must occur. This is the process in which DUAL determines a new successor. The amount of time required
to recompute the route affects the convergence time. Recomputation is processor-intensive; it is advantageous to avoid unneeded
recomputation. When a topology change occurs, DUAL will test for feasible successors. If there are feasible successors, DUAL
will use them in order to avoid unnecessary recomputation.
The protocol-dependent modules are responsible for network layer protocol-specific tasks. For example, the EIGRP module is
responsible for sending and receiving EIGRP packets that are encapsulated in IPv4 or IPv6. It is also responsible for parsing
EIGRP packets and informing DUAL of the new information received. EIGRP asks DUAL to make routing decisions, but the results
are stored in the IPv4 or IPv6 routing table. Also, EIGRP is responsible for redistributing routes learned by other IPv4 or
IPv6 routing protocols.