Cisco has been the leader of the networking industry for decades. In that position, they not only create reliable products such as switches or routers. Instead, they maintain an active role in producing new technologies and protocols. Because of that, they created the EIGRP – Enhanced Interior Gateway Protocol. This routing protocol, a hybrid between distance vector and link-state, has some unique features that any network engineer must know. In this article, we will learn about EIGRP and how we can use it in our network.
Introducing EIGRP
Many people call EIGRP “hybrid protocol”. This is because it has some features of Distance Vector protocols and some of Link-State protocols. This is not entirely correct: EIGRP is an Advanced Distance Vector. In fact, its entire logic comes from Distance Vector protocols. It has some enhancement that we generally see in Link-States, but it doesn’t propagate link states. It propagates routes, just like RIP.
Unlike RIP, however, EIGRP establishes adjacencies. Routers detect neighbors and start to exchange routing updates only after the neighborship is formed. Those routing updates are just routes. A neighbor propagates a route with a related metric, that indicates how convenient that route is.
We have also another improvement when comparing to RIP. With RIP, at periodic interval routes send out their full routing table. With EIGRP, instead, that happens only the first time. When two routers form an adjacency, they exchange their full routing table. After that, they will update only specific entries, and only when there is a topology change. There is no periodic broadcast of updates.
But that’s not all! EIGRP has a lot of unique features we want to check. Continue reading to find out what they are.
Understanding EIGRP
EIGRP is a Cisco proprietary protocol. In 2013, they released the specification of some of its features, converting them to Open Standard. In 2016, they published the RFC 7868 with those specifications.
The components
EIGRP relies on two simple tables for its normal operation. In the neighbor table, the router stores the list of all current neighbors. In that table, we associate the IP address of the neighbor (next hop) with the exit interface. Instead, in the topology table, the router stores all the EIGRP-received routes. Then, the routers select the best routes from the topology table and put them in the routing table.
While the routing table can contain only active routes, the topology table contains backup routes as well. In case the primary route becomes unavailable, EIGRP will push the backup route into the routing table.
Having two tables on each router is simply not enough to create a routing protocol. Another key component is the inter-router communication. To talk with each other, routers use the multicast address 224.0.0.10
. EIGRP directly encapsulates into IP packets, with protocol number set to 88
.
Since we are not sending periodic updates, we need another way to see if links go down. Because of that, we use periodic hello packets. Just like in OSPF, they contain the minimum information required to form an adjacency. If we don’t receive any more hello, we will consider the neighbor dead after a while.
DUAL and Feasibility Condition
The Diffusing Update Algorithm (DUAL) is the one EIGRP uses to find the best path in a network. With DUAL, we can overcome the limits we had with RIP. In fact, RIP has a metric that ranges from 1 to 15. This, with the fact that we just send “bare” routes, makes it hard to prevent loops. Because of that, RIP can’t handle big topologies.
Instead, EIGRP implements a simple yet great system to prevent loops, at large-scale. The fact that each router doesn’t know the entire topology poses us some challenges. How can the router be sure to select a loop-free path? It checks the feasibility condition.
EIGRP has a metric system similar to the ones of other protocols. Each link has a cost, and the metric to a destination is the sum of the costs of the links in the path. The lower, the better the route. We call that metric feasible distance (FD).
Feasible Successors
Each route, besides the feasible distance (metric), must have a next-hop, or successor in terms of EIGRP.
In the topology table, EIGRP prepares a backup successor (the feasible successor). In case the successor goes down, the feasible successor quickly goes into the routing table. To define who will be the feasible successor, we need to consider the FD of the local router and the metric of any possible successor. The feasibility condition states this:
If for a destination, a neighbor router tells us that it is closer to the destination than we have ever been, then this neighbor lies on a loop-free route to this destination.
In other words, a router can become a feasible successor if its advertised metric is lower than our current metric toward the destination. Most likely, that metric will be between the one of our current successor and our own metric. Take a look at the following picture.
Both R2 and R3 have a metric of 10 toward the network 192.168.1.0/24
. Since 10 is less than 20, R4 will use R3 if R2 fails. Then, it will re-elect a new feasible successor. In case there is no feasible successor, EIGRP will have to run DUAL again and find new paths.
EIGRP Metric
Each protocol implements its own strategy when it comes to metrics. RIP counted the number of hops, OSPF verified the bandwidth. With EIGRP, Cisco tried to consider every possible item. In fact, the metric formula considers:
- The bandwidth of the link, the higher the better
- The load of the link (how much traffic is already using the link), the lower the better
- The delay, or latency, of the link (the lower the better)
- The reliability, or how much we trust the link – the higher the better
EIGRP also propagates MTU but doesn’t use it in metric calculation. The cool thing is that we can tune the metric to consider, or not consider, some of the previous parameters. By default, EIGRP metric evaluates only bandwidth and delay, and we should keep it this way. In fact, Cisco officially recommends to not check load and reliability. This is because these values change over time, and they might make the network re-converge too often. The full formula for the EIGRP metric is the one below.
As administrators, we can change the K values to influence the metric calculation. Specifically, we can set them to be 0 or 1 to include or exclude an element from the calculation. By default, only K1 and K2 are 1, so the effective formula is this:
For the CCNA, just remember this last version of the formula.
Unequal Cost Load Balancing
All routing protocols can perform load balancing. If they have two routes with the same metric to the same destination, they can push them to the routing table. As a result, the router will forward half the traffic over a path, and the remaining on the other. If we have two paths with different metrics, however, routing protocols will select only the best one.
That’s not the case of EIGRP, where we can do unequal cost load balancing. With this technique, we can load-balance between links with different metrics. Furthermore, we can do that intelligently. If we have two links, with one being twice better of the other (half the metric), we can send 1/3 of the traffic on the normal link, and 2/3 on the best one. This way, we are leveraging two links instead of just one, and increasing the throughput by 33%.
While doing this, we need to define clear limits. In fact, Cisco allows us to set a range of metrics for which we want to do load balancing. The thing is, this is not a static range. Given our feasible distance, we can allow unequal cost load balancing for any successor that has a metric up to X times our feasible distance. We can configure that X, the variance, at our will. If it is 1, then we will turn off this feature.
Conclusion
Simple, huh? Many people think about EIGRP has a complex protocol, probably because of the concept of the feasible successor. The truth is, it is just an advanced RIP that establishes adjacencies. Nonetheless, there are some key concepts you want to take with you from this article.
- EIGRP stands for Enhanced Interior Gateway Protocol, and it is an advanced Distance Vector routing protocol. It runs using multicast (
224.0.0.10
) and establish adjacencies. - The entire routing table is exchanged only when an adjacency is formed. After that, it uses only specific updates on topology changes.
- To verify the availability of a neighbor, we use the hello packets
- EIGRP keeps the list of neighbors in the neighbor table and the list of routes in the topology table
- The metric of EIGRP is known as feasible distance, and it is based on bandwidth and delay of links
- Each router stores in the topology table a backup next-hop (the feasible successor) to a destination, to be used in cased our primary successor fails. The feasible successor must meet the feasibility condition: its metric must be lower than our metric.
- EIGRP can load balance between links of different costs
With this knowledge, you are now ready to implement EIGRP. This is what we are going to do in the following articles: with IPv4 and with IPv6.