This article looks at the Enhanced Interior Gateway Routing Protocol, or EIGRP. This Cisco-proprietary routing protocol uses configuration commands much like Open Shortest Path First (OSPF), with the primary difference being that EIGRP configuration does not need to refer to an area.
However, EIGRP does not use link-state (LS) logic, instead it uses some advanced distance vector (DV) logic. So, this chapter focuses on how EIGRP works.
Introduction to EIGRP
Historically speaking, the first IPv4 routing protocols used DV logic. RIP Version 1 (RIP-1) was the first popularly used IP routing protocol, with the Cisco-proprietary Interior Gateway Routing Protocol (IGRP) being introduced a little later, as shown in the figure below.
By the early 1990s, business and technical factors pushed the IPv4 world toward a second wave of better routing protocols. First, RIP-1 and IGRP had some technical limitations, even though they were great options for the technology levels of the 1980s. The bigger motivation for better routing protocols was the huge movement toward TCP/IP in the 1990s.
Many enterprises migrated from older vendor-proprietary networks to networks built with routers, LANs, and TCP/IP. So, with so many IPv4 routing protocols, how would a network engineer choose the right routing protocol? Engineers should consider two key points about EIGRP that drive them toward wanting to use it:
- EIGRP uses a robust metric based on both link bandwidth and link delay, so routers make more efficient choices about the best route to use.
- EIGRP converges quickly, meaning that when something changes in the internetwork, EIGRP quickly finds the currently best loop-free routes to use.
Today, EIGRP and OSPFv2 are the two best options for IPv4 interior routing. Both converge quickly and use a good metric that takes the factor of link speed into consideration when choosing the best route. EIGRP can be much simpler to implement than OSPF. Many reasonable network engineers have made these comparisons over the years, with some choosing OSPFv2, and others choosing EIGRP.
The below table lists several features of OSPFv2 and EIGRP, as well as RIP-2.
How EIGRP works
EIGRP does not send full or partial update messages based on a periodic timer, as a result EIGRP cannot rely on update messages to monitor the state of its neighbors. So, EIGRP uses the same basic communication method as OSPF does; Hello messages.
The EIGRP Hello message and protocol define that each router should send a periodic Hello message on each interface, so that all EIGRP routers know that the router is still working. The font image is a simple illustration of it.
The routers use their own independent Hello Interval, which defines the time period between each EIGRP Hello message. For instance, routers R1 and R2 do not have to send their Hello messages at the same time. Routers also must receive a Hello from a neighbor after a certain interval called the Hold Interval, with a default value of four times the Hello Interval.
EIGRP does not require two neighboring routers to use the same Hello and hold timers, but it makes good sense to use the same Hello and hold timers on all routers. Unfortunately, the flexibility to use different settings on neighboring routers makes it possible to prevent the neighbors from working properly, just by the poor choice of Hello and hold timers set mistakenly by the network engineer.
For instance, if R2 changes its Hello/Hold Intervals to 30/60, respectively, but R1 keeps its Hello/Hold Intervals of 5/15 seconds, R1 will believe R2 has failed on a regular basis. R2 sends Hello messages only every 30 seconds, but R1 expects to receive them within its 15 second Hold Interval.
An EIGRP neighbor is another EIGRP-speaking router, connected to a common subnet, with which the router is willing to exchange EIGRP topology information. EIGRP Hello messages are sent to multicast IP address 126.96.36.199, to dynamically discover potential neighbors. A router learns the potential neighbors by receiving a Hello.
Routers perform some basic checking of each potential neighbor before that router becomes an EIGRP neighbor. A potential neighbor is a router from which an EIGRP Hello has been received. Then the router checks the following settings to determine whether the router should be allowed to be a neighbor:
- It must pass the authentication process if used.
- It must use the same configured autonomous system number (AS)
- The source IP address used by the neighbor’s Hello must be in the same subnet as the local router’s interface IP address/mask.
Exchanging EIGRP Topology Information
EIGRP uses EIGRP update messages to send topology information to neighbors. These update messages can be sent to multicast IP address 188.8.131.52 if the sending router needs to update multiple routers on the same subnet; otherwise, the updates are sent to the unicast IP address of the particular neighbor. Remember that Hello messages are always sent to the 184.108.40.206 multicast address only. The use of multicast packets on LANs allows EIGRP to exchange routing information with all neighbors on the LAN efficiently.
EIGRP sends update messages without UDP or TCP, but it does use a protocol called Reliable Transport Protocol (RTP). RTP provides a mechanism to resend any EIGRP messages that are not received by a neighbor. By using RTP, EIGRP can better avoid loops because a router knows for sure that the neighboring router has received all updated routing information. The use of RTP is just another example of a difference between basic DV protocols like RIP, which has no mechanism to know whether neighbors receive update messages.
The figure below summarizes EIGRP messages from top to bottom. It first shows neighbor discovery with Hellos, then sending full updates, then maintaining the neighbor relationship by repeatedly sending ongoing Hellos, and partial updates.
Note that EIGRP refers to the information exchanged in the updates as topology information. The information is not nearly as detailed as OSPF LS topology data, and it does not attempt to describe every router and link in the network.
However, it does describe more than just a distance (metric) and vector (next-hop router) for the local router. A local router also learns the metric as used by the next-hop router. This added information is used to help EIGRP converge quickly, without causing loops.