EIGRP Feasible Successor Routes

EIGRP routers know only of routes advertised by directly adjacent neighbors because EIGRP is a distance vector routing protocol. When a destination network is removed from the EIGRP topology, a router initiates a route querying process in an attempt to locate a different route to that destination. As it is preferable to avoid this querying process, EIGRP routers will opportunistically store backup routes, known as feasible successors, when certain requirements are met.

To understand the concept of a feasible successor route, we must first understand what a successor is. The term successor can be defined as "one thing that succeeds another." In IP routing, this simply refers to the next-hop of the best route. A feasible successor, therefore, is not our current best route, but one which could be used in the event our successor route disappears.

An EIGRP router advertises each destination it can reach as a route with an attached metric. This metric is called the route's reported distance (the term advertised distance has also been used in older documentation). A successor route for any given destination is chosen as having the lowest computed feasible distance; that is, the lowest sum of reported distance plus the cost to get to the advertising router.

reported_vs_feasible_distance.png

By default, an EIGRP router will store only the route with the best (lowest) feasible distance in the routing table (or, multiple routes with equivalent feasible distances). However, under certain conditions, EIGRP will also maintain less-than-optimal routes in its topology table. These feasible successor routes are not used in the forwarding of traffic, but can be injected into the routing table immediately in place of a failed successor route, to avoid the querying process mentioned earlier.

A route is entered into the EIGRP topology table as a feasible successor only if it meets the feasibility condition, which asserts that the reported distance of a route must be lower than the feasible distance of the current successor route. To better illustrate this concept, consider the following scenario.

topology.png

A simplified metric for each link is shown in red. R5 advertises a route for 192.168.5.0/24 to R3 and to R4 with a reported distance of 512. R4's feasible distance to 192.168.5.0/24 is calculated as 1792: R5's reported distance of 512, plus R4's cost of 1280 to get to R5.

R4# show ip eigrp topology
IP-EIGRP Topology Table for AS(1)/ID(4.4.4.4)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 10.0.12.0/24, 1 successors, FD is 6400
        via 10.0.34.3 (6400/3840), Serial1/0
P 10.0.13.0/24, 1 successors, FD is 5120
        via 10.0.34.3 (5120/2560), Serial1/0
P 10.0.23.0/24, 1 successors, FD is 5120
        via 10.0.34.3 (5120/2560), Serial1/0
P 10.0.45.0/24, 1 successors, FD is 1280
        via Connected, Serial1/1
P 10.0.34.0/24, 1 successors, FD is 2560
        via Connected, Serial1/0
P 10.0.35.0/24, 1 successors, FD is 3840
        via 10.0.45.5 (3840/2560), Serial1/1
        via 10.0.34.3 (5120/2560), Serial1/0
P 192.168.5.0/24, 1 successors, FD is 1792
        via 10.0.45.5 (1792/512), Serial1/1

If we inspect the EIGRP topology table on R3, we see that it has two paths to reach 192.168.5.0/24:

R3# show ip eigrp topology
IP-EIGRP Topology Table for AS(1)/ID(3.3.3.3)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 10.0.12.0/24, 2 successors, FD is 3840
        via 10.0.13.1 (3840/1280), Serial1/0
        via 10.0.23.2 (3840/1280), Serial1/1
P 10.0.13.0/24, 1 successors, FD is 2560
        via Connected, Serial1/0
P 10.0.23.0/24, 1 successors, FD is 2560
        via Connected, Serial1/1
P 10.0.45.0/24, 2 successors, FD is 3840
        via 10.0.34.4 (3840/1280), Serial1/2
        via 10.0.35.5 (3840/1280), Serial1/3
P 10.0.34.0/24, 1 successors, FD is 2560
        via Connected, Serial1/2
P 10.0.35.0/24, 1 successors, FD is 2560
        via Connected, Serial1/3
P 192.168.5.0/24, 1 successors, FD is 3072
        via 10.0.35.5 (3072/512), Serial1/3
        via 10.0.34.4 (4352/1792), Serial1/2

We can tell from this output that there is only one successor route, through R5 (with a feasible distance of 3072), but the secondary route through R4 is being held as a feasible successor. The route through R5 meets the feasibility requirement because its reported distance of 1792 is lower than the successor route's feasible distance of 3072.

As noted earlier, feasible successor routes are not used to forward traffic. Only successor routes are placed into the routing table:

R3# show ip route 192.168.5.0
Routing entry for 192.168.5.0/24
  Known via "eigrp 1", distance 90, metric 3072, type internal
  Redistributing via eigrp 1
  Last update from 10.0.35.5 on Serial1/3, 00:28:32 ago
  Routing Descriptor Blocks:
  * 10.0.35.5, from 10.0.35.5, 00:28:32 ago, via Serial1/3
      Route metric is 3072, traffic share count is 1
      Total delay is 120 microseconds, minimum bandwidth is 1544 Kbit
      Reliability 255/255, minimum MTU 1500 bytes
      Loading 1/255, Hops 1

To illustrate how the feasibility condition protects against routing loops, suppose the following topology wherein R4 has been removed for simplicity. R5 advertises 192.168.5.0/24 to R3, which in turn advertises it to R1, which finally relays the route to R2. Some instability in the network has temporarily disrupted the adjacency between R2 and R3, so R2 only learns of this route from R1. Once the adjacency is restored, R2 advertises the route for 192.168.5.0/24 to R3 until the network fully converges.

loop.png

If R3 accepted this advertisement and installed the route for 192.168.5.0/24 through R2 as a feasible successor, a routing loop would occur if the successor route became invalid. The feasibility requirement prevents the route from becoming a feasible successor: the route's reported distance of 6912 is higher than R3's feasible distance of 3072.

Finally, the command show ip eigrp topology all-links can be used to show the entire topology table including successor, feasible successor, and non-successor routes. The output below was taken from R4 in the original example topology. Non-successor routes have been highlighted.

R4# show ip eigrp topology all-links
IP-EIGRP Topology Table for AS(1)/ID(4.4.4.4)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 10.0.12.0/24, 1 successors, FD is 6400, serno 95
        via 10.0.34.3 (6400/3840), Serial1/0
        via 10.0.45.5 (7680/6400), Serial1/1
P 10.0.13.0/24, 1 successors, FD is 5120, serno 91
        via 10.0.34.3 (5120/2560), Serial1/0
        via 10.0.45.5 (6400/5120), Serial1/1
P 10.0.23.0/24, 1 successors, FD is 5120, serno 94
        via 10.0.34.3 (5120/2560), Serial1/0
        via 10.0.45.5 (6400/5120), Serial1/1
P 10.0.45.0/24, 1 successors, FD is 1280, serno 90
        via Connected, Serial1/1
P 10.0.34.0/24, 1 successors, FD is 2560, serno 89
        via Connected, Serial1/0
P 10.0.35.0/24, 1 successors, FD is 3840, serno 96
        via 10.0.45.5 (3840/2560), Serial1/1
        via 10.0.34.3 (5120/2560), Serial1/0
P 192.168.5.0/24, 1 successors, FD is 1792, serno 97
        via 10.0.45.5 (1792/512), Serial1/1
        via 10.0.34.3 (5632/3072), Serial1/0

About the Author

Jeremy Stretch is a freelance networking engineer, instructor, and the maintainer of PacketLife.net. He currently lives in Fairfax, Virginia, on the edge of the Washington, DC metro area. Although primarily an R&S guy, he likes to get into everything, and runs a free network training lab out of his basement for fun. You can contact him by email or follow him on Twitter.

Comments

isn't it a little misspeling here "We can tell from this output that there is only one successor route, through R5 (with a feasible distance of 3072), but the secondary route through R5 is being held as a feasible successor."

i think it should be "We can tell from this output that there is only one successor route, through R5 (with a feasible distance of 3072), but the secondary route through R4 is being held as a feasible successor."

Correct me if I'm wrong.

Really good article Stretch...:)

@wredniak: Yep, fixed the typo. Thanks!

the term "Reported Distance" is addition to my knowledge and author did a great job in here to explain this topic.

Great article. I think I've spotted a little typo in the second sentence of the third last paragraph. "which finally relays the route to R1." should read "which finally relays the route to R2."

Best Regards,

Jochen

Thanks, stretch - great article. I finally inderstand the way it chooses some feasible routes and not others... Helped a lot...

Thanks for your article strech. I am currently preparing for the CCNP ROUTE and your articles help me to grasp the material even more.

Regards
THD

Wat a article! Thanks author for keeping it so simple and easy to understand...

any thing on OSPF?

Its realy nice explanation, thanks

Very good!!

Nice explanation!

Zaheer

Great explanation!
thanks you...

avi

It's very nice and clear.
thanks.

Hi Jeremy

It would be great of you can answer to my question,

As you said Feasible Distance (FD) is Reported Distance(RD) value received from neighbor + cost to get to the advertising router. Which cost are you talking about, is it the end to end cost or just cost to get to the advertising neighbor?
How cost to advertising neighbor is calculated?

Also if a topology looks like three routers R1,R2,R3 connected to each other via serial links. On R3 and Fast Ethernet interface with an ip address 192.168.2.0/24 is advertised through EIGRP network command.

In my calculation for FD on Router 2: i.e FD = RD received from R3 + Cost to R3

From below sample o/p my Que is:

If the RD received from R3 is 28160 how Feasible Distance (FD) is being calculated as on R2.

On R2 = [(10,000,000 / Bandwidth) + ((sum of delays) /10)] * 256

On R2 = ((10,000,000/ 1544) + ((20000 + 100) /10)) *256
On R2 = ((6476 + 2010) * 256)
On R2 = (8486 * 256)
On R2 = 2172416

According to your statement and my calculation WHY I AM NOT ADDING THE RD VALUE TO GET THE FD.

The following is the O/P on the following routers:

R2#show ip eigrp topology 192.168.2.0
EIGRP-IPv4 Topology Entry for AS(1)/ID(172.17.0.1) for 192.168.2.0/24
  State is Passive, Query origin flag is 1, 1 Successor(s), FD is 2172416
  Descriptor Blocks:
  20.0.0.2 (Serial1/1), from 20.0.0.2, Send flag is 0x0
      Composite metric is (2172416/28160), route is Internal
      Vector metric:
        Minimum bandwidth is 1544 Kbit
        Total delay is 20100 microseconds
        Reliability is 255/255
        Load is 1/255
        Minimum MTU is 1500
        Hop count is 1
        Originating router is 172.18.0.1
-----------------------------------------------------------------
R1#show ip eigrp topology 192.168.2.0
EIGRP-IPv4 Topology Entry for AS(1)/ID(172.16.0.1) for 192.168.2.0/24
  State is Passive, Query origin flag is 1, 1 Successor(s), FD is 2684416
  Descriptor Blocks:
  10.0.0.2 (Serial1/0), from 10.0.0.2, Send flag is 0x0
      Composite metric is (2684416/2172416), route is Internal
      Vector metric:
        Minimum bandwidth is 1544 Kbit
        Total delay is 40100 microseconds
        Reliability is 255/255
        Load is 1/255
        Minimum MTU is 1500
        Hop count is 2
        Originating router is 172.18.0.1

Thanks Jeremy!
great explanation! it helped a lot.
Yusuf

Leave a Comment


Register to comment as a member. You'll look cooler.

Optional; will not be displayed publicly or given out.

No commercial links. Only personal (e.g. blog, Twitter, or LinkedIn) and/or on-topic links, please.
_____ is a secure alternative to Telnet.