EIGRP uses an alternative convergence algorithm known as the diffusing update algorithm (DUAL) that is specifically designed to perform distributed routing calculations while maintaining freedom from loops at every instant. EIGRP does not send periodic updates, which was the core cause of the loop in the previous example. Instead, it maintains a topology table in which routes from neighbors, within certain distance limits, are kept. The best of these feasible routes is selected and added to the routing table. If the router learns that a route has become invalid, it looks in the topology table for an alternate route. Keeping a set of alternative routes at the ready means that EIGRP can often reconverge faster than protocols that must wait for an update.
A route advertised by a neighbor is only considered feasible and added to the topology table if the distance from the neighbor to the destination is shorter than the router’s own shortest distance to the destination. This selection rule, called the feasibility condition, is key to loop avoidance: If my neighbor’s advertised distance to a destination is less than my own shortest distance to the destination, the neighbor’s route cannot possibly loop through me. The feasibility condition is applied in Figure 2.9. Router A has chosen the route through B, at a cost of 20 (B’s advertised distance of 15 plus the link cost of 5) as its shortest path to destination X. Router A has also selected the route through router C as a feasible route and placed it into the EIGRP topology table, because C’s advertised distance of 18 is lower than A’s distance of 20.
Figure 2.9. With EIGRP, router A selects route B as its shortest path to destination X, and router C as a feasible route to be used as an alternative if the route through B becomes invalid.
The absence of an alternative route in the topology table does not necessarily mean that no alternative route exists. Router D in Figure 2.9 also has a valid route to destination X. But because D’s distance to X is 25, which is higher than A’s distance to X, the route is not considered feasible and is not added to the topology table. But what happens if the route through B fails, and either the alternate route through C also fails or does not exist? If A looks into its topology table and finds no feasible successor to the failed route through B, it sends a query to each of its downstream neighbors asking them for a route to X. The neighbor then looks into its own topology table for a feasible successor. If it finds one, it sends a reply to the querying router with the route information. If it does not find a feasible successor, it in turn queries its own downstream neighbors. If it has no downstream neighbors, it sends a reply saying so.
So when a router queries its neighbors for a route to a destination, either it will receive one or more replies with alternative routes or, if there are no alternative routes, the queries will reach the edges of the EIGRP domain where there are no more neighbors to query and replies will come back empty. A querying router waits until it has received a reply from every queried neighbor before choosing a new route or declaring that the destination is unreachable.
DUAL makes EIGRP a decided improvement over RIP and IGRP, but it has two possible drawbacks. The first is that EIGRP is a proprietary protocol, so an EIGRP domain is an all-Cisco domain. Whether this is an issue varies from one network operator to another, depending on their preferences.
The second drawback is that although EIGRP works well in small to medium networks, it can begin to exhibit scalability problems as a network grows very large. Queries can take a long time to return, causing slow convergence. And in extreme cases, a query might take so long to return that the querying router will decide that the query is lost, and declare the neighbor to whom the query was sent stuck in active (SIA). When that happens, the router clears its adjacency to the neighbor and drops all routes learned from the neighbor, resulting in sometimes serious network stability problems.
There are two solutions to an EIGRP network prone to SIAs. The first is to increase the time that a router waits for replies to queries. This works as long as queries are just slow and not actually being lost, but it increases convergence time. The second solution is to break up the network into areas. However, EIGRP has no facility for easily doing this. Instead, multiple EIGRP processes must be used, and careful design and operational procedures are needed to control traffic in such a network.