Skip to content

Understanding EIGRP

    Understanding EIGRP

    Anyone who has ever studied the EIGRP protocol has at some point or another been confused by the awkwardly defined terminology that is incorporated into the protocol.

    This article’s purpose will disambiguate all the EIGRP terminology that causes so much confusion when trying to understand the protocol.

    Terms that Describe Routes

    From the perspective of each Router, the best path learned through EIGRP to a destination network is known as the Successor route.

    Part of EIGRP’s main benefits is how fast it can converge. Which is to say, how fast it can recover if a particular link goes down. It does this by keeping track of not only the best route (the Successor route), but also by keeping track of all remaining loop free routes. These remaining loop free routes are known as the Feasible Successors. This term literally means potential best routes.

    We will use this topology to illustrate these concepts:

    eigrp-terms-s_fs

    Despite there being many networks in this topology, the one we will focus on is the 9.9.9.0/29 network hosted on R6.

    R5 has only one path to get to the 9.9.9.0/29 network. In this case, R5’s Successor route to 9.9.9.0/29 is through R6. Since there is no other loop free paths to get to the 9.9.9.0/29 network, R5 does not have any Feasible Successors.

    R1, on the other hand, has three different paths to get to the 9.9.9.0/29 network: one through R2, one through R3, and one through R4.

    By comparing the link speeds across each path, we can determine easily enough that for R1, the best path to the 9.9.9.0/29 network is through R2. This path utilizes the highest bandwidth links available. The path through R2 is therefore the Successor route.

    What is left is the path through R3 and R4. Both of these paths are inferior to the path through R2, but both of these paths do constitute viable, loop-free alternate paths to get to 9.9.9.0/29. As a result, both of these routes will be stored by EIGRP as Feasible Successors.

    We can validate this against the topology using the command show ip eigrp toplogy on R1 and R5:

    R5# show ip eigrp topology
    P 9.9.9.0/29, 1 successors, FD is 30720
            via 10.5.6.6 (30720/28160), FastEthernet0/0
    


    R5 only has 1 successors for the 9.9.9.0/29 network – the path through R6 (10.5.6.6). From R5, there is no alternate route to the 9.9.9.0/29 network, therefore there are no Feasible Successors.

    R1# show ip eigrp topology
    P 9.9.9.0/29, 1 successors, FD is 31232
            via 10.1.2.2 (31232/30976), GigabitEthernet0/0
            via 10.1.3.3 (33536/30976), FastEthernet1/0
            via 10.1.4.4 (286976/30976), FastEthernet1/1
    


    R1 has one successor (one best path) to 9.9.9.0/29, but notice R1 also has two additional paths. The Successor route is the route through R2 (10.1.2.2), and the Feasible Successors are the routes through R3 and R4 (10.1.3.3 and 10.1.4.4, respectively).

    Terms that Describe Costs

    But how is the best path actually determined? It is easy for us to see the whole topology image and identify the slower links, and therefore the inferior paths. But how does EIGRP do it? That answer has to do with those numbers in parenthesis in the output above. Let’s talk through it.

    Much like any other dynamic routing protocol, EIGRP uses a metric calculation to determine how preferable (or not) a path is to a destination. The default EIGRP metric calculation is based upon the cumulative interface Delay and full path’s minimum Bandwidth. And while this is adjustable, EIGRP will not exchange routes with another router that does not consider the same values in their cost calculation.

    Recall, EIGRP is not a link-state protocol, which means EIGRP does not maintain or create a map of the entire network. Therefore, for each network, an EIGRP router can only know the neighboring router who advertised the path, and the cost for that neighbor to reach the destination.

    When receiving an advertisement from a neighboring router, the cost for the neighbor to reach the target network is known as the Reported Distance (also sometimes referred to as the Advertised Distance).

    Once an EIGRP router receives the advertisement with the neighbor’s Reported Distance, the router will add the cost associated with the interface connected to the neighbor to calculate the Router’s own total cost to get to the target network. This value is known as the Feasible Distance.

    We can see this happen if we take a closer look at R5 and R6 in the illustration above:

    eigrp-terms-rd_fd

    R6 is directly connected to the 9.9.9.0/29 network. Therefore, no one had to advertise the existence of this network to R6, hence it has a Reported Distance to 9.9.9.0/29 of 0. But there is still a cost associated with using R6’s Fa0/1 interface. As such, R6 calculates the cost using the EIGRP Metric formula and attains a Feasible Distance to 9.9.9.0/29 of 28160. This value is R6’s total EIGRP cost to get to the target network.

    When R6 shares the route with R5, it will include R6’s own Feasible Distance. But from the perspective of R5, this is the cost received from the neighbor and is therefore considered the Reported Distance. Notice R5’s Reported Distance is identical to R6’s Feasible Distance.

    R5 will then add the cost associated with R5’s Fa0/0 interface, which results in R5’s total cost of 30720. This is R5’s Feasible Distance. This is also what R5 will share with R2, R3, and R4 (not pictured above) who will each consider this value as the Reported Distance to 9.9.9.0/29.

    All this can be validated against the topology. If we use the command show ip eigrp topology <network/CIDR> we will get more information about each router’s path to 9.9.9.0/29. In this output, the values we are discussing show up in parenthesis as (Feasible_Distance/Reported_Distance):

    R6# show ip eigrp topology 9.9.9.0/29
    IP-EIGRP (AS 90): Topology entry for 9.9.9.0/29
      State is Passive, Query origin flag is 1, 1 Successor(s), FD is 28160
      Routing Descriptor Blocks:
      0.0.0.0 (FastEthernet0/1), from Connected, Send flag is 0x0
          Composite metric is (28160/0), Route is Internal
    ...
    


    R5# show ip eigrp topology 9.9.9.0/29
    IP-EIGRP (AS 90): Topology entry for 9.9.9.0/29
      State is Passive, Query origin flag is 1, 1 Successor(s), FD is 30720
      Routing Descriptor Blocks:
      10.5.6.6 (FastEthernet0/0), from 10.5.6.6, Send flag is 0x0
          Composite metric is (30720/28160), Route is Internal
    ...
    


    The same values also appear in R5’s output of show ip eigrp topology above.

    The effect of one router receiving a Reported Distance and adding the local interface cost to get a Feasible Distance can be continued and traced out all the way to R1.

    Each router will take the Reported Distance advertised by the upstream router and add the local interface’s cost to calculate its Feasible Distance. Which will then become the Reported Distance in the next advertisement.

    eigrp-terms-rd_fd_full

    Notice R1 has learned about three different paths to get to 9.9.9.0/29 – one from R2, one from R3, and one from R4. Each of these paths have different Feasible Distances, and comparing each of these tells us the best path (lowest cost), as well as other potential best paths (should something happen to the primary best path).

    To state it in EIGRP terminology:

    • R1’s Successor route for 9.9.9.0/29 is through R2 with a Feasible Distance of 31232
    • R1 has two Feasible Successor routes for 9.9.9.0/29:
      • Through R3 with a Feasible Distance of 33536
      • Through R4 with a Feasible Distance of 286976

    As before, each Router’s reception of a Reported Distance and calculation of their Feasible Distance can be validated against the topology:

    R1R2R3R4R5

    R1# show ip eigrp topology
    P 9.9.9.0/29, 1 successors, FD is 31232
            via 10.1.2.2 (31232/30976), GigabitEthernet0/0
            via 10.1.3.3 (33536/30976), FastEthernet1/0
            via 10.1.4.4 (286976/30976), FastEthernet1/1
    




    R2# show ip eigrp topology
    P 9.9.9.0/29, 1 successors, FD is 30976
            via 10.2.5.5 (30976/30720), GigabitEthernet0/1
    




    R3# show ip eigrp topology
    P 9.9.9.0/29, 1 successors, FD is 30976
            via 10.3.5.5 (30976/30720), GigabitEthernet1/0
    




    R4# show ip eigrp topology
    P 9.9.9.0/29, 1 successors, FD is 30976
            via 10.4.5.5 (30976/30720), GigabitEthernet2/0
    




    R5# show ip eigrp topology
    P 9.9.9.0/29, 1 successors, FD is 30720
            via 10.5.6.6 (30720/28160), FastEthernet0/0
    



    One final note: There is a misunderstanding that states that the Feasible Successor is only the second best route. This would only be true if there are only two paths. In actually, and as shown above in R1’s output, a Feasible Successor can be any number of paths that are loop free and that are not the best path (which would be the Successor).

    The way EIGRP determines whether a path is loop free is by testing it against the Feasibility Condition, which is a subject for another article.

    Terms that Describe Tables

    The last set of terms that sometimes create confusing is those surrounding the different tables involved in EIGRP operation.

    Neighbor Table

    The EIGRP Neighbor table contains the known neighbors the local router is directly connected to. For example, we can look at R1’s neighbor table using the command show ip eigrp neighbors, and as expected we can see the IP addresses of R2, R3, and R4:

    R1# show ip eigrp neighbors
    IP-EIGRP neighbors for process 90
    H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                                (sec)         (ms)       Cnt Num
    2   10.1.2.2                Gi0/0             10 00:10:09   46   276  0  12
    1   10.1.3.3                Fa1/0             12 00:10:09   67   402  0  9
    0   10.1.4.4                Fa1/1             11 00:10:09  550  3300  0  11
    


    We can also look at R3’s neighbor table, and as expected we can see the IP addresses of R1 and R5:

    R3# show ip eigrp neighbors
    IP-EIGRP neighbors for process 90
    H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                                (sec)         (ms)       Cnt Num
    1   10.1.3.1                Fa0/1             13 00:10:16   46   276  0  17
    0   10.3.5.5                Gi1/0             10 00:10:17  747  4482  0  25
    


    Topology Table

    The EIGRP Topology table contains everything that EIGRP has learned. We can look at R3’s Topology table entries for the 9.9.9.0/29 network to validate that we see two paths to the target network:

    R3# show ip eigrp topology 9.9.9.0/29
    IP-EIGRP (AS 90): Topology entry for 9.9.9.0/29
      State is Passive, Query origin flag is 1, 1 Successor(s), FD is 30976
      Routing Descriptor Blocks:
      10.3.5.5 (GigabitEthernet1/0), from 10.3.5.5, Send flag is 0x0
          Composite metric is (30976/30720), Route is Internal
          Vector metric:
            Minimum bandwidth is 100000 Kbit
            Total delay is 210 microseconds
            Reliability is 255/255
            Load is 1/255
            Minimum MTU is 1500
            Hop count is 2
      10.1.3.1 (FastEthernet0/1), from 10.1.3.1, Send flag is 0x0
          Composite metric is (56832/31232), Route is Internal
          Vector metric:
            Minimum bandwidth is 100000 Kbit
            Total delay is 1220 microseconds
            Reliability is 255/255
            Load is 1/255
            Minimum MTU is 1500
            Hop count is 4
    


    Notice two different paths, through two different routers, each with two different Feasible Distances and Reported Distances.

    Why this is often confusing, however, is the most commonly used command to view the topology table (show ip eigrp topology without specifying a network) only displays the Successor and Feasible Successor routes:

    R3# show ip eigrp topology
    P 9.9.9.0/29, 1 successors, FD is 30976
            via 10.3.5.5 (30976/30720), GigabitEthernet1/0
    


    But the topology table does indeed contain everything EIGRP has learned. You can see it by specifying a network (as above), or with the command show ip eigrp topology all-links:

    R3# show ip eigrp topology all-links
    P 9.9.9.0/29, 1 successors, FD is 30976, serno 6
            via 10.3.5.5 (30976/30720), GigabitEthernet1/0
            via 10.1.3.1 (56832/31232), FastEthernet0/1
    


    Routing Table

    Lastly, the Routing table contains the Router’s best routes to every destination it knows about. It should be noted, this particular table is not a specific function of EIGRP, it is simply how a Router operates.

    EIGRP does contribute to this table, however, and therefore it is usually involved in the discussion of EIGRP. Specifically, EIGRP will contribute only the Successor Route to the Routing table.

    Recall that R1 had learned three paths to 9.9.9.0/29. The successor route through R2, and feasible successor routes through R3 and R4:

    R1# show ip eigrp topology
    P 9.9.9.0/29, 1 successors, FD is 31232
            via 10.1.2.2 (31232/30976), GigabitEthernet0/0
            via 10.1.3.3 (33536/30976), FastEthernet1/0
            via 10.1.4.4 (286976/30976), FastEthernet1/1
    


    Despite EIGRP knowing of three paths, only the Successor route made it to the Routing Table:

    R1# show ip route
         9.0.0.0/29 is subnetted, 1 subnets
    D       9.9.9.0 [90/31232] via 10.1.2.2, 00:29:39, GigabitEthernet0/0
    


    Should something happen to the GigabitEthernet0/0 link to R2, R1 could instantly replace this route with one of its Feasible Successors, providing near-zero downtime convergence.

    Summary

    In this article, we discussed seven key terms that are crucial to know if you want to understand EIGRP:

    Successor – the best path to a target network
    Feasible Successors – any remaining alternate, loop-free paths to a target network
    Reported Distance – the cost for my neighbor to reach a target network
    Feasible Distance – my total cost to reach a target network
    Neighbor Table – a table containing all my EIGRP neighbors
    Topology Table – a table containing every Route learned from EIGRP
    Routing Table – a Router’s map of everything network in existence, which sometimes includes EIGRP learned routes.

    But in the end, this article wasn’t only about just these seven terms. This article was a head-fake, a discussion of EIGRP’s operation wrapped around the definition of these seven terms.

    Hopefully, having understood the terms above will have also led you to a better understanding of EIGRP’s operation.

    5 5 votes
    Article Rating
    Subscribe
    Notify of

    4 Comments
    Oldest
    Newest Most Voted
    Inline Feedbacks
    View all comments

    I just wanted to say I love your explanations. I am studying for the network + and your tutorials have allowed me to conceptualize things a lot better. Keep up the great work. I look forward to more videos and tutorials. Thanks again.

    One of the best EIGRP content available on Internet

    Thank you so much, this is what was meant to be in Cisco’s official guide.

    I’m hoping to find same explanation on BGP as I can’t get my head around that routing protocol.