On this post, I will be sharing my observations about EIGRP’S SUCCESSOR and FEASIBLE SUCCESSOR.  In EIGRP,  Successor is the best path towards a certain destination while feasible successor is the backup path.

My lab will be focusing on analysing the various behaviour of EIGRP in terms of path selections considering the various EIGRP metrics. So what are the metrics used by EIGRP?

As we might already know, we have the following EIGRP metrics:

1. Bandwidth (K1)
2. Load ( K2)
3. Delay (k3)
4. Reliability (K4)
5. MTU (K5)

Bandwidth and Delay is something we could change under interface mode:

R1(config)#int gi0/1
R1(config-if)#bandwidth ?
     Bandwidth in kilobits
  inherit        Specify how bandwidth is inherited
  qos-reference  Reference bandwidth for QOS test
  receive        Specify receive-side bandwidth

R1(config-if)#delay ?
    Throughput delay (tens of microseconds)

By default, a 1 Gbps interface has a delay of 10 microseconds while a 100 Mbps links has 100 microseconds.

The other 3 metrics could be dynamically updated depending on severable factors, e.g.  how busy the interface.

On my lab, I will not be changing the delay as all my interface is 1 Gbps but rather I will be updating the bandwidth on each links to understand the concepts of successor and feasible successor.

My topology will be as follows:

Configuration

R1:
R1#show ip int brief 
Interface                  IP-Address      OK? Method Status                Protocol
GigabitEthernet0/0         unassigned      YES unset  administratively down down    
GigabitEthernet0/1         12.0.0.1        YES manual up                    up      
GigabitEthernet0/2         13.0.0.1        YES manual up                    up      
GigabitEthernet0/3         14.0.0.1        YES manual up                    up  


EIGRP Configurations:

R1#show run | sec eigrp
router eigrp 12345
 network 12.0.0.0 0.0.0.255
 network 13.0.0.0 0.0.0.255
 network 14.0.0.0 0.0.0.255
R2:

R2#show ip int brief 
Interface                  IP-Address      OK? Method Status                Protocol
GigabitEthernet0/0         unassigned      YES unset  administratively down down    
GigabitEthernet0/1         12.0.0.2        YES manual up                    up      
GigabitEthernet0/2         25.0.0.2        YES manual up                    up   
R2#show run | sec ei
router eigrp 12345
 network 12.0.0.0 0.0.0.255
 network 25.0.0.0 0.0.0.255
R3:
R3#show ip int brief 
Interface                  IP-Address      OK? Method Status                Protocol
GigabitEthernet0/0         unassigned      YES unset  administratively down down    
GigabitEthernet0/1         13.0.0.3        YES manual up                    up      
GigabitEthernet0/2         35.0.0.3        YES manual up                    up      

R3#show run | sec ei
router eigrp 12345
 network 13.0.0.0 0.0.0.255
 network 35.0.0.0 0.0.0.255
R4:

R4#show ip int brief 
Interface                  IP-Address      OK? Method Status                Protocol
GigabitEthernet0/0         unassigned      YES unset  administratively down down    
GigabitEthernet0/1         14.0.0.4        YES manual up                    up      
GigabitEthernet0/2         45.0.0.4        YES manual up                    up      

R4#show run | sec ei
router eigrp 12345
 network 14.0.0.0 0.0.0.255
 network 45.0.0.0 0.0.0.255


 R5:

R5#show ip int brief 
Interface                  IP-Address      OK? Method Status                Protocol
GigabitEthernet0/0         unassigned      YES unset  administratively down down    
GigabitEthernet0/1         25.0.0.5        YES manual up                    up      
GigabitEthernet0/2         35.0.0.5        YES manual up                    up      
GigabitEthernet0/3         45.0.0.5        YES manual up                    up      
Loopback5                  5.5.5.5         YES manual up                    up      

R5#show run | sec ei
router eigrp 12345
 network 5.5.5.5 0.0.0.0
 network 25.0.0.0 0.0.0.255
 network 35.0.0.0 0.0.0.255
 network 45.0.0.0 0.0.0.255

So let’s check the EIGRP neighbors:

R1:
R1#show ip eigrp neighbors 
EIGRP-IPv4 Neighbors for AS(12345)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
2   14.0.0.4                Gi0/3                    13 00:44:40    5   100  0  6
1   13.0.0.3                Gi0/2                    14 00:44:50  657  3942  0  9
0   12.0.0.2                Gi0/1                    12 00:45:04  526  3156  0  12
R2:
R2#show ip eigrp neighbors 
EIGRP-IPv4 Neighbors for AS(12345)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
1   25.0.0.5                Gi0/2                    13 00:44:37    3   100  0  12
0   12.0.0.1                Gi0/1                    10 00:45:12    3   100  0  19
R3:
R3#show ip eigrp neighbors 
EIGRP-IPv4 Neighbors for AS(12345)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
1   35.0.0.5                Gi0/2                    12 00:44:46    4   100  0  10
0   13.0.0.1                Gi0/1                    12 00:45:05    4   100  0  20
R4:
R4#show ip eigrp neighbors 
EIGRP-IPv4 Neighbors for AS(12345)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
1   45.0.0.5                Gi0/2                    13 00:44:51 1598  5000  0  11
0   14.0.0.1                Gi0/1                    10 00:45:01 1276  5000  0  21
R5:
R5#show ip eigrp neighbors 
EIGRP-IPv4 Neighbors for AS(12345)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
2   25.0.0.2                Gi0/1                    12 00:44:59 1597  5000  0  11
1   45.0.0.4                Gi0/3                    14 00:45:00    3   100  0  7
0   35.0.0.3                Gi0/2                    14 00:45:01    4   100  0  10

By this time, I wanted to have a look into the the EIGRP routes on R1:

R1#show ip route eigrp 
Codes: L – local, C – connected, S – static, R – RIP, M – mobile, B – BGP
       D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area 
       N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
       E1 – OSPF external type 1, E2 – OSPF external type 2
       i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2
       ia – IS-IS inter area, * – candidate default, U – per-user static route
       o – ODR, P – periodic downloaded static route, H – NHRP, l – LISP
       a – application route
       + – replicated route, % – next hop override, p – overrides from PfR
Gateway of last resort is not set
      5.0.0.0/32 is subnetted, 1 subnets
D        5.5.5.5 
                 [90/131072] via 14.0.0.4, 00:48:03, GigabitEthernet0/3
                 [90/131072] via 13.0.0.3, 00:48:03, GigabitEthernet0/2
                 [90/131072] via 12.0.0.2, 00:48:03, GigabitEthernet0/1
      25.0.0.0/24 is subnetted, 1 subnets
D        25.0.0.0 [90/3072] via 12.0.0.2, 00:48:06, GigabitEthernet0/1
      35.0.0.0/24 is subnetted, 1 subnets
D        35.0.0.0 [90/3072] via 13.0.0.3, 00:48:03, GigabitEthernet0/2
      45.0.0.0/24 is subnetted, 1 subnets
D        45.0.0.0 [90/3072] via 14.0.0.4, 00:48:03, GigabitEthernet0/3
R1#
Observations:
1. The destination prefix 5.5.5.5/32 is reachable via 3 paths (via R2, R3, and R4).

2. It also shows 90/131072 on the routing table for the prefix 5.5.5.5/32. 90 indicates the EIGRP administrative distance while 131072 represents the Feasible distance. 

3. The feasible distance 131072 is computed as follows:
   EIGRP Metrics Computations  = 256 * [  BW  + Delay ]
           Where:      BW   =    10,000,000
                                         ———————
                                            Minimum BW
                            Delay =   Sum of All Delays
                                           ————————-
                                                   10
Looking at R1 routes for 5.5.5.5/32
  
R1#show ip route 5.5.5.5  
Routing entry for 5.5.5.5/32
  Known via “eigrp 12345”, distance 90, metric 131072, type internal
  Redistributing via eigrp 12345
  Last update from 12.0.0.2 on GigabitEthernet0/1, 01:23:30 ago
  Routing Descriptor Blocks:
  * 14.0.0.4, from 14.0.0.4, 01:23:30 ago, via GigabitEthernet0/3
      Route metric is 131072, traffic share count is 1
      Total delay is 5020 microseconds, minimum bandwidth is 1000000 Kbit
      Reliability 251/255, minimum MTU 1500 bytes
      Loading 1/255, Hops 2
    13.0.0.3, from 13.0.0.3, 01:23:30 ago, via GigabitEthernet0/2
      Route metric is 131072, traffic share count is 1
      Total delay is 5020 microseconds, minimum bandwidth is 1000000 Kbit
      Reliability 253/255, minimum MTU 1500 bytes
      Loading 1/255, Hops 2
    12.0.0.2, from 12.0.0.2, 01:23:30 ago, via GigabitEthernet0/1
      Route metric is 131072, traffic share count is 1
      Total delay is 5020 microseconds, minimum bandwidth is 1000000 Kbit
      Reliability 251/255, minimum MTU 1500 bytes
      Loading 1/255, Hops 2
The minimum Bandwidth is 1000000 kbit while the Total Delay is 5020 microseconds.
Using the above formula:
              BW =   10,000,000 kbit
                        ———————-    = 10
                            1,000,000 kbit
              Delay =   5020 microseconds
                            —————————–  = 502
                                   10 microseconds
  
Therefore, this provides a total Metrics of 131,072 as computed below,
      Metrics =   = 256 * [  BW  + Delay ] = 256 * [ 10 + 502]  = 131,072
     
This value could also be verified using the command “show ip eigrp topology“. It shows that there were 3 SUCCESSORS that can be use to reach 5.5.5.5/32.
R1#show ip eigrp topology | sec 5.5.5.5
P 5.5.5.5/32, 3 successors, FD is 131072
        via 12.0.0.2 (131072/130816), GigabitEthernet0/1
        via 13.0.0.3 (131072/130816), GigabitEthernet0/2
        via 14.0.0.4 (131072/130816), GigabitEthernet0/3
So what about the 130816 as shown above?  This actually represents the metrics of R2, R3 and R4 towards the same prefix 5.5.5.5/32. Let’s check that using the same command above.
R2#show ip eigrp topology | sec 5.5.5.5
P 5.5.5.5/32, 1 successors, FD is 130816
        via 25.0.0.5 (130816/128256), GigabitEthernet0/2
R3#show ip eigrp topology | sec 5.5.5.5 
P 5.5.5.5/32, 1 successors, FD is 130816
        via 35.0.0.5 (130816/128256), GigabitEthernet0/2
R4#show ip eigrp topology | sec 5.5.5
P 5.5.5.5/32, 1 successors, FD is 130816
        via 45.0.0.5 (130816/128256), GigabitEthernet0/2
4. The prefix learned with the lesser Feasible distance will be installed on EIGRP routing table. This means that in order for R1 to reach 5.5.5.5/32, R1 will be doing a load balancing.
R1#show ip route eigrp | se 5.5.5.5
D        5.5.5.5
                 [90/131072] via 14.0.0.4, 01:43:41, GigabitEthernet0/3
                 [90/131072] via 13.0.0.3, 01:43:41, GigabitEthernet0/2
                 [90/131072] via 12.0.0.2, 01:43:41, GigabitEthernet0/1
      25.0.0.0/24 is subnetted, 1 subnets
R1#
The below traceroutes are showing three paths to reach the destination prefix 5.5.5.5/32.
R1#traceroute 5.5.5.5
Type escape sequence to abort.
Tracing the route to 5.5.5.5
VRF info: (vrf in name/id, vrf out name/id)
  1 12.0.0.2 3 msec
    13.0.0.3 2 msec
    14.0.0.4 2 msec
  2 25.0.0.5 3 msec
    35.0.0.5 3 msec
    45.0.0.5 3 msec

So the fun part is to tweak the bandwidth and analysed if we could produce a Feasible successor in order to reach 5.5.5.5/32 from R1.

I’m gonna be changing the bandwidth based on my topology above. So here are my changes on the bandwidth:

R1: 

R1#config t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#int gi0/1
R1(config-if)#int gi0/3
R1(config-if)#bandwidth 100
R1(config-if)#
 R4:

R4#config t
Enter configuration commands, one per line.  End with CNTL/Z.
R4(config)#int gi0/1
R4(config-if)#bandwidth 100

R4(config-if)#exit  
R4(config)#int gi0/2
R4(config-if)#bandwidth 700

R2: 

R2(config)#int gi0/2
R2(config-if)#bandwidth 500
R2(config-if)#

R5:
R5(config)#int gi0/1
R5(config-if)#bandwidth 500
R5(config-if)#exit
R5(config)#int gigabitEthernet 0/3
R5(config-if)#bandwidth 700

Now let’s check the prefix learned by R1 by this time:

R1#show ip eigrp topology | sec 5.5.5
P 5.5.5.5/32, 1 successors, FD is 131072
        via 13.0.0.3 (131072/130816), GigabitEthernet0/2
R1#

So i would expect the routes will be installed as the preferred path which we can verify from the EIGRP routing table. 

R1#show ip route eigrp | sec 5.5.5.5
D        5.5.5.5 [90/131072] via 13.0.0.3, 00:14:30, GigabitEthernet0/2
      25.0.0.0/24 is subnetted, 1 subnets
R1#
Observations:

1.  There is only one Successor which is via R3 as I did not change the bandwidth on the links between R1 to R3 and R3 to R5. So does this means that the higher the bandwidth along the path, it will be selected as the Successor?  Let’s find out later.

Now, I’m also interested to find out if the there are feasible successors or the backup path towards 5.5.5.5/32 from R1. We can use the command “show ip eigrp topology all-links“to check.

R1#show ip eigrp topology all-links      
EIGRP-IPv4 Topology Table for AS(12345)/ID(14.0.0.1)
Codes: P – Passive, A – Active, U – Update, Q – Query, R – Reply,
       r – reply Status, s – sia Status 

P 14.0.0.0/24, 1 successors, FD is 25600256, serno 12
        via Connected, GigabitEthernet0/3
P 13.0.0.0/24, 1 successors, FD is 2816, serno 2
        via Connected, GigabitEthernet0/2
        via 14.0.0.4 (25601024/3657728), GigabitEthernet0/3, serno 16
P 12.0.0.0/24, 1 successors, FD is 2816, serno 1
        via Connected, GigabitEthernet0/1
P 5.5.5.5/32, 1 successors, FD is 131072, serno 20
        via 13.0.0.3 (131072/130816), GigabitEthernet0/2
        via 14.0.0.4 (25728512/3785216), GigabitEthernet0/3
So here we go, we can see that there were two paths possible, via R3 which we already knew as the Successor. But the question is will the path via R4 will really be used if R3 fails?
There’s another concept to understand in EIGRP called Feasibility Conditions. So Feasibility conditions states that in order for a router to become a Feasible Successor, the Advertised Distance (also called Reported Distance) of the potential Feasible Successor MUST BE LESS that the Feasible Distance of the Successor.

Rule to become a Feasible Successor:
      Advertise Distance (of Potential F.S.) < Feasible Distance of Successor
So with the context above based on the output of the “show ip eigrp-topology all-links”, we can quickly verified the above rules to become a feasible successor.

But let’s check first R4 eigrp topology.

R4#show ip eigrp topology | sec 5.5.5.5
P 5.5.5.5/32, 1 successors, FD is 130816
        via 45.0.0.5 (3785216/128256), GigabitEthernet0/2
R4#
From R4, the Feasible distance is 3785216. This value will be advertise to R1 as the reported distance.

R1#show ip eigrp topology all-links 
EIGRP-IPv4 Topology Table for AS(12345)/ID(14.0.0.1)
Codes: P – Passive, A – Active, U – Update, Q – Query, R – Reply,
       r – reply Status, s – sia Status 
P 5.5.5.5/32, 1 successors, FD is 131072, serno 20
        via 13.0.0.3 (131072/130816), GigabitEthernet0/2
        via 14.0.0.4 (25728512/3785216), GigabitEthernet0/3
Is R4 Advertise Distance  <  R3 Feasible Distance ?

                     Is 3785216 <  131072   ?  

So it seems that R4 will not become a feasible successor as the Advertise Distance of R4 is greater than the Feasible Distance of R3.

How can we test this in actual ? Yup, you’re right, we could try to shutdown the link between R1 and R3 and check whether the path between R1 to R4 will be chosen as the next available path.

R1#config t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#interface gigabitEthernet 0/2
R1(config-if)#shut                   
R1(config-if)#

And look on what happen….Apparently, R2 was chosen as the Successor as we already knew based on the Feasibility Conditions that R4 will not become a Successor in case R3 will not be available.

R1#show ip eigrp topology | sec 5.5.5.5
P 5.5.5.5/32, 1 successors, FD is 5248512
        via 12.0.0.2 (5248512/5248256), GigabitEthernet0/1
        via 14.0.0.4 (25728512/3785216), GigabitEthernet0/3
R1#

R1#show ip route | sec 5.5.5.5
D        5.5.5.5 [90/5248512] via 12.0.0.2, 00:01:59, GigabitEthernet0/1
      12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
R1#


Well from R1 perspective, will R4 will qualify as Feasible successor by this time? We can again check the Feasibility Conditions as follows:

R4#show ip eigrp topology | sec 5.5.5. 
P 5.5.5.5/32, 1 successors, FD is 130816
        via 45.0.0.5 (3785216/128256), GigabitEthernet0/2
R4#

R4 Feasible distance is 3785216 which will be the advertise distance on R1 as seen below,

R1#show ip eigrp topology | sec 5.5.5.5
P 5.5.5.5/32, 1 successors, FD is 5248512
        via 12.0.0.2 (5248512/5248256), GigabitEthernet0/1
        via 14.0.0.4 (25728512/3785216), GigabitEthernet0/3


Feasibility Condition:

    R4 Advertise Distance      <         R2  Feasible Distance 
       3785216                            <                5248512

So apparently, R4 have meet the feasibility condition by this time.
Analysis:

1. Bandwidth is a deciding factor on the selection of Successor and Feasible Successor. On this particular post, I just keep the delay unchanged ( 10 microseconds by default for 1Gbps link.)

2. In our first scenario, although R1 is showing R4 on the eigrp topology table, R4 was not qualified to become a feasible successor. This is a behaviour of a EIGRP as it does not have an overall topology of the network. ( Routing by Rumours as the says).

3. Only the Successor is installed on EIGRP routing table.

Summary:

Commands used:
router eigrp
network x.x.x.x
Verifications commands:
show ip eigrp neighbors
show ip eigrp topology
show ip eigrp topology all-links
show ip route | sec eigrp

EIGRP Metrics  = 256 * [  BW  + Delay ]
           Where:      BW   =    10,000,000
                                         ———————
                                            Minimum BW
                            Delay =   Sum of All Delays
                                           ————————-
                                                   10
Feasibility Conditions:
Advertise Distance of Potential Feasible Succesors should be less that the Feasible Distance of Successor
        Advertised Distance (F.S)  <     Feasible Distance of Succesor.
Successor = Primary Path
Feasible Successor = Backup Path

##################################END OF LAB###################################

Leave a comment

Quote of the week

"People ask me what I do in the winter when there's no baseball. I'll tell you what I do. I stare out the window and wait for spring."

~ Rogers Hornsby