Enhanced IGRP (EIGRP) is a classless, enhanced distance-vector protocol that gives us a real edge over another Cisco proprietary protocol, Interior Gateway Routing Protocol (IGRP). That's basically why it's called Enhanced IGRP. Like IGRP, EIGRP uses the concept of an autonomous system to describe the set of contiguous routers that run the same routing protocol and share routing information. But unlike IGRP, EIGRP includes the subnet mask in its route updates. And as you now know, the advertisement of subnet information allows us to use VLSM and summarization when designing our networks!
EIGRP is sometimes referred to as a hybrid routing protocol because it has characteristics of both distance-vector and link-state protocols. For example, EIGRP doesn't send link-state packets as OSPF does; instead, it sends traditional distance-vector updates containing information about networks plus the cost of reaching them from the perspective of the advertising router. And EIGRP has link-state characteristics as well-it synchronizes routing tables between neighbors at startup, and then sends specific updates only when topology changes occur. This makes EIGRP suitable for very large networks. EIGRP has a maximum hop count of 255. There are a number of powerful features that make EIGRP a real standout from IGRP and other protocols. The main ones are listed here:
- Support for IP, IPX, and AppleTalk via protocol-dependent modules
- Considered classless (same as RIPv2 and OSPF)
- Support for VLSM/CIDR
- Support for summaries and discontiguous networks
- Efficient neighbor discovery
- Communication via Reliable Transport Protocol (RTP)
- Best path selection via Diffusing Update Algorithm (DUAL)
One of the most interesting features of EIGRP is that it provides routing support for multiple Network layer protocols: IP, IPX, and AppleTalk. The only other routing protocol that comes close and supports multiple network layer protocols is Intermediate System-to-Intermediate System (IS-IS), but it only supports IP and Connectionless Network Service (CLNS). EIGRP supports different Network layer protocols through the use of protocol-dependent modules (PDMs). Each EIGRP PDM will maintain a separate series of tables containing the routing information that applies to a specific protocol. What this means to you is that there will be IP/EIGRP tables, IPX/EIGRP tables, and AppleTalk/EIGRP tables.
Before EIGRP routers are willing to exchange routes with each other, they must become neighbors. There are three conditions that must be met for neighborship establishment:
- Hello or ACK received
- AS numbers match
- Identical metrics (K values)
Link-state protocols tend to use Hello messages to establish neighborship (also called adjacencies) because they normally do not send out periodic route updates, and there has to be some mechanism to help neighbors realize when a new peer has moved in, or an old one has left or gone down. To maintain the neighborship relationship, EIGRP routers must also continue receiving Hellos from their neighbors.
EIGRP routers that belong to different autonomous systems (ASes) don't automatically share routing information and they don't become neighbors. This behavior can be a real benefit when used in larger networks to reduce the amount of route information propagated through a specific AS. The only catch is that you might have to take care of redistribution between the different ASes manually.
The only time EIGRP advertises its entire routing table is when it discovers a new neighbor and forms an adjacency with it through the exchange of Hello packets. When this happens, both neighbors advertise their entire routing tables to one another. After each has learned its neighbor's routes, only changes to the routing table are propagated from then on. When EIGRP routers receive their neighbors' updates, they store them in a local topology table. This table contains all known routes from all known neighbors, and serves as the raw material from which the best routes are selected and placed into the routing table.
Let's define some terms:
- Feasible distance - This is the best metric along all paths to a remote network, including the metric to the neighbor that is advertising that remote network. This is the route that you will find in the routing table, because it is considered the best path. The metric of a feasible distance is the metric reported by the neighbor (called reported distance), plus the metric to the neighbor reporting the route.
- Reported distance - This is the metric of a remote network, as reported by a neighbor. It is also the routing table metric of the neighbor, and is the same as the number after the slash in the topology table.
- Neighbor table - Each router keeps state information about adjacent neighbors. When a newly discovered neighbor is learned, the address and interface of the neighbor are recorded, and this information is held in the neighbor table, stored in RAM. There is one neighbor table for each protocol-dependent module. Sequence numbers are used to match acknowledgments with update packets. The last sequence number received from the neighbor is recorded so that outof- order packets can be detected.
- Topology table - The topology table is populated by the protocol-dependent modules and acted upon by the Diffusing Update Algorithm (DUAL). It contains all destinations advertised by neighboring routers, holding each destination address and a list of neighbors that have advertised the destination. For each neighbor, the advertised metric is recorded, which comes only from the neighbor's routing table. If the neighbor is advertising this destination, it must be using the route to forward packets.
- Feasible successor - A destination entry is moved from the topology table to the routing table when there is a feasible successor. A feasible successor is a path whose reported distance is less than the feasible distance, and it is considered a backup route. EIGRP will keep up to six feasible successors in the topology table. Only the one with the best metric (the successor).is placed in the routing table. The show ip eigrp topology command will display all the EIGRP feasible successor routes known to a router.
- Successor - A successor route (think successful!) is the best route to a remote network. A successor route is used by EIGRP to forward traffic to a destination and is stored in the routing table. It is backed up by a feasible successor route that is stored in the topology table-if one is available.
EIGRP uses a proprietary protocol, called Reliable Transport Protocol (RTP), to manage the communication of messages between EIGRP-speaking routers. And as the name suggests, reliability is a key concern of this protocol. Cisco has designed a mechanism that leverages multicasts and unicasts to deliver updates quickly, and to track the receipt of the data. When EIGRP sends multicast traffic, it uses the Class D address 220.127.116.11. Each EIGRP router is aware of who its neighbors are, and for each multicast it sends out, it maintains a list of the neighbors who have replied. If EIGRP doesn't get a reply from a neighbor, it will switch to using unicasts to resend the same data. If it still doesn't get a reply after 16 unicast attempts, the neighbor is declared dead. People often refer to this process as reliable multicast. Routers keep track of the information they send by assigning a sequence number to each packet. With this technique, it's possible for them to detect the arrival of old, redundant, or outof- sequence information. Being able to do these things is highly important because EIGRP is a quiet protocol. It depends upon its ability to synchronize routing databases at startup time and then maintain the consistency of databases over time by only communicating any changes. So the permanent loss of any packets, or the out-of-order execution of packets, can result in corruption of the routing database.
EIGRP uses Diffusing Update Algorithm (DUAL) for selecting and maintaining the best path to each remote network. This algorithm allows for the following:
- Backup route determination if one is available
- Support of Variable-Length Subnet Masks (VLSMs)
- Dynamic route recoveries
- Queries for an alternate route if no route can be found
DUAL provides EIGRP with possibly the fastest route convergence time among all protocols. The key to EIGRP's speedy convergence is twofold: First, EIGRP routers maintain a copy of all of their neighbors' routes, which they use to calculate their own cost to each remote network. If the best path goes down, it may be as simple as examining the contents of the topology table to select the best replacement route. Secondly, if there isn't a good alternative in the local topology table, EIGRP routers very quickly ask their neighbors for help finding one.
EIGRP includes a bunch of cool features that make it suitable for use in large networks:
- Support for multiple ASes on a single router
- Support for VLSM and summarization
- Route discovery and maintenance
EIGRP uses autonomous system numbers to identify the collection of routers that share route information. Only routers that have the same autonomous system numbers share routes. In large networks, you can easily end up with really complicated topology and route tables, and that can markedly slow convergence during diffusing computation operations.
The use of redistribution within EIGRP leads us to another interesting feature. Normally, the administrative distance (AD) of an EIGRP route is 90, but this is true only for what is known as an internal EIGRP route. These are routes originated within a specific autonomous system by EIGRP routers that are members of the same autonomous system. The other type of route is called an external EIGRP route and has an AD of 170, which is not so good. These routes appear within EIGRP route tables courtesy of either manual or automatic redistribution, and they represent networks that originated outside of the EIGRP autonomous system. And it doesn't matter if the routes originated from another EIGRP autonomous system or from another routing protocol such as OSPF-they're all considered to be external routes when redistributed within EIGRP.
Since you need to migrate slowly over to EIGRP and cannot change all the routers simultaneously, you need to configure redistribution-right? Not with EIGRP! As long as you use the same autonomous system number for EIGRP that you used for IGRP, EIGRP will automatically redistribute the routes from IGRP into EIGRP. Of course, EIGRP will see these as external routes (AD of 170).
As one of the more sophisticated classless routing protocols, EIGRP supports the use of Variable- Length Subnet Masks. This is really important because it allows for the conservation of address space through the use of subnet masks that more closely fit the host requirements, such as using 30-bit subnet masks for point-to-point networks. And because the subnet mask is propagated with every route update, EIGRP also supports the use of discontiguous subnets, something that gives us a lot more flexibility when designing the network's IP address plan. Discontiguous network has two or more subnetworks of a classful network connected together by different classful networks. The image below displays a typical discontiguous network. The subnets 172.16.248.0 and 172.16.251.0 are connected together with a 10.10.0.0 network. By default, each router thinks it has the only 172.16.0.0 network.
Another really sweet thing about EIGRP is that unlike many other protocols that use a single factor to compare routes and select the best possible path, EIGRP can use a combination of four:
Like IGRP, EIGRP uses only bandwidth and delay of the line to determine the best path to a remote network by default. Cisco sometimes likes to call these path bandwidth value and cumulative line delay-go figure. And it's worth noting that there's a fifth element, maximum transmission unit (MTU) size. This element has never been used in EIGRP calculations but it's a required parameter in some EIGRP related commands, especially those involving redistribution. The value of the MTU element represents the smallest MTU value encountered along the path to the destination network.