cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
2622
Views
0
Helpful
22
Replies

EIGRP Unequal Cost Load Balancing - 'Variance' Command

Rob M
Level 1
Level 1

Hi All,

As I'm doing an EIGRP lab, I noticed a strange behavior with the 'variance' command. Its very possible that I'm missing something, which is why I wanted to ask here so if someone can point out the cause of this behavior or if otherwise the documentation of this command is not accurate.

The issue is around the fact that for a route to be affected by the variance command it needs to pass the feasibility condition, i.e it is a feasible successor in the EIGRP topology table.

As for the topology (its based on INE EIGRP labs), Think of R6 as connected directly to two routers, R7 via Ethernet0/1.67 and R1 via Ethernet0/1.146. And frankly, the topology here does not matter that much, the end goal is that I'm trying to manipulate Delay on these two interfaces to unequally load balance to 155.1.9.0/24

Focusing on R6 and before changing anything:

R6(config-subif)#do sh ip eigrp top all | sec 155.1.9.0/24
P 155.1.9.0/24, 1 successors, FD is 76800, serno 662
via 155.1.67.7 (76800/51200), Ethernet0/1.67


R6(config-subif)#do sh ip eigrp top 155.1.9.0 255.255.255.0
EIGRP-IPv4 Topology Entry for AS(100)/ID(150.1.6.6) for 155.1.9.0/24
State is Passive, Query origin flag is 1, 1 Successor(s), FD is 76800
Descriptor Blocks:
155.1.67.7 (Ethernet0/1.67), from 155.1.67.7, Send flag is 0x0
Composite metric is (76800/51200), route is Internal
Vector metric:
Minimum bandwidth is 10000 Kbit
Total delay is 3000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 2
Originating router is 150.1.9.9

Now, I'm going to change the delay on VLAN67 to 300 and VLAN146 to 2100.

Here is where things get interesting:

R6(config-subif)#do sh ip eigrp top all | sec 155.1.9.0/24
P 155.1.9.0/24, 2 successors, FD is 76800, serno 701
via 155.1.67.7 (128000/51200), Ethernet0/1.67
via 155.1.146.1 (640000/102400), Ethernet0/1.146


R6(config-subif)#do sh ip eigrp top | sec 155.1.9.0/24
P 155.1.9.0/24, 2 successors, FD is 76800
via 155.1.67.7 (128000/51200), Ethernet0/1.67


R6(config-subif)#do sh ip eigrp top 155.1.9.0 255.255.255.0
EIGRP-IPv4 Topology Entry for AS(100)/ID(150.1.6.6) for 155.1.9.0/24
State is Passive, Query origin flag is 1, 2 Successor(s), FD is 76800
Descriptor Blocks:
155.1.67.7 (Ethernet0/1.67), from 155.1.67.7, Send flag is 0x0
Composite metric is (128000/51200), route is Internal
Vector metric:
Minimum bandwidth is 10000 Kbit
Total delay is 5000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 2
Originating router is 150.1.9.9
155.1.146.1 (Ethernet0/1.146), from 155.1.146.1, Send flag is 0x0
Composite metric is (640000/102400), route is Internal
Vector metric:
Minimum bandwidth is 10000 Kbit
Total delay is 25000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 4
Originating router is 150.1.9.9


R6(config-router)#do sh ip rou 155.1.9.0
Routing entry for 155.1.9.0/24
Known via "eigrp 100", distance 90, metric 128000, type internal
Redistributing via eigrp 100
Last update from 155.1.67.7 on Ethernet0/1.67, 00:00:08 ago
Routing Descriptor Blocks:
* 155.1.67.7, from 155.1.67.7, 00:00:08 ago, via Ethernet0/1.67
Route metric is 128000, traffic share count is 1
Total delay is 5000 microseconds, minimum bandwidth is 10000 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 2

 

Now according to the above, the route that is being learned from 155.1.146.1 has an RD of 102400 which is currently higher than the FD 76800 which means it did not satisfy the FC. All the show output above also confirms that, as it does not show in the topology table without using all-links keyword or with the exact prefix.

So, no matter how much the value of the variance command is, this route should NEVER be considered by EIGRP as it cannot guarantee that its loop free - correct? well, not in this case...

I'm going now to configure variance of 5.

 

R6(config-router)#do sh ip rou 155.1.9.0
Routing entry for 155.1.9.0/24
Known via "eigrp 100", distance 90, metric 128000, type internal
Redistributing via eigrp 100
Last update from 155.1.146.1 on Ethernet0/1.146, 00:00:07 ago
Routing Descriptor Blocks:
155.1.146.1, from 155.1.146.1, 00:00:07 ago, via Ethernet0/1.146
Route metric is 640000, traffic share count is 1
Total delay is 25000 microseconds, minimum bandwidth is 10000 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 4
155.1.67.7, from 155.1.67.7, 00:00:07 ago, via Ethernet0/1.67
Route metric is 128000, traffic share count is 5
Total delay is 5000 microseconds, minimum bandwidth is 10000 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 2


R6(config-router)#do sh ip rou | sec 155.1.9.0
D 155.1.9.0/24 [90/640000] via 155.1.146.1, 00:00:17, Ethernet0/1.146
[90/128000] via 155.1.67.7, 00:00:17, Ethernet0/1.67


R6(config-router)#do sh ip eigrp top 155.1.9.0 255.255.255.0
EIGRP-IPv4 Topology Entry for AS(100)/ID(150.1.6.6) for 155.1.9.0/24
State is Passive, Query origin flag is 1, 2 Successor(s), FD is 76800
Descriptor Blocks:
155.1.67.7 (Ethernet0/1.67), from 155.1.67.7, Send flag is 0x0
Composite metric is (128000/51200), route is Internal
Vector metric:
Minimum bandwidth is 10000 Kbit
Total delay is 5000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 2
Originating router is 150.1.9.9
155.1.146.1 (Ethernet0/1.146), from 155.1.146.1, Send flag is 0x0
Composite metric is (640000/102400), route is Internal
Vector metric:
Minimum bandwidth is 10000 Kbit
Total delay is 25000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 4

So as you can see, even though that route does not satisfy the FC, EIGRP still decided to use it and install it in the routing table, Even unequally load balancing (ratio is 5 to 1)

Anyone can shed some light on why this is happening, that would be really great.

Thanks in advance.

22 Replies 22

Hello,

 

variance 5 means you multiply the FD by 5:

 

76800 x 5 = 384000

 

The RD on the route you refer to is 102400, which is lower than the FD and as such as feasible successor ?

Hello Rob

May I suggest whilst the opportunity is available post this question to the ASK the expert for EIGRP forum
Cisco ask the expert -EIGRP


Please rate and mark as an accepted solution if you have found any of the information provided useful.
This then could assist others on these forums to find a valuable answer and broadens the community’s global network.

Kind Regards
Paul

Hi Georg,

I think the variance multiplier works on the composite metrics (128000x5 = 640000). I confirmed that by changing the variance to 4, which removed the second route from the routing table.

 

Hi Paul,

Thanks for suggesting that thread, I actually did see it late last night and managed to post this question there, I know the session ends today but hopefully I'll get an answer from David or Peter.

 

Thanks

 

Hi,

I think the variance multiplier works on the composite metrics (128000x5 = 640000). I confirmed that by changing the variance to 4, which removed the second route from the routing table.

@Georg Pauwen  is correct. The EGRP variance will work with the FD. Means It will multiply with FD only. You can understand here as example:

 

One Router is having a FD is:  435200 

And Here two another links are connected and higher metric is: 2809856

 

Doing a small calculation to find the variance number, 2809856/435200 (Higher Metric/FD) = 6.4567. I wil use a variance value of 7. Now 7*435200 = 3046400, routes with metric less than this value should be included.

On configuring command "variance 7" under EIGRP process will give you Unequal Cost Load Balancing.

 

Regards,

Deepak Kumar

Regards,
Deepak Kumar,
Don't forget to vote and accept the solution if this comment will help you!

Thanks for your input.

Again, I could be wrong but I really think there is some sort of confusion with EIGRP terms here.

In my example:

R6 has this route 155.1.9.0/24 with FD of 76800. It knows about it from two neighbors:

  • 155.1.67.7 With CD (Computed distance) of 128000 and RD (Reported Distance) of 51200.
  • 155.1.146.1 With CD (Computed distance) of 640000 and RD (Reported Distance) of 102400.

155.1.146.1's route is 5 times worse that the one reported by 155.1.67.7.

If it a matter of V*FD, then 2*76800= 153600 which is more than 102400 which in turn means a variance of 2 should be enough to install that second route. As I mentioned above, that did not work, I tried all the way to 4 and still did not work. Only 5 and above worked since 128000*5 = 640000.

 

Thanks

 

Hi,

Here something miss understanding:

If it a matter of V*FD, then 2*76800= 153600 which is more than 102400 which in turn means a variance of 2 should be enough to install that second route. As I mentioned above, that did not work, I tried all the way to 4 and still did not work. Only 5 and above worked since 128000*5 = 640000.

 Your FD is: 76800

Variance is: 2

(76800*2=153600). Now compare this value (153600) with the CD value, not with the RD value. 

 

155.1.146.1 With CD (Computed distance) of 640000 and RD (Reported Distance) of 102400.

Above link is not fulfill the feasibility condition, which asserts that the reported distance of a route must be lower than the feasible distance of the current successor route.

 

Regards,

Deepak Kumar

 

Regards,
Deepak Kumar,
Don't forget to vote and accept the solution if this comment will help you!

Thanks again for your input.

But I'm sorry I have to disagree with you here for these two reasons:

1) The router is not installing a route because its not meeting the FC. If 'variance' is a multiplier of FD, this means 'variance' will "force" the router to install a route that it knows that it did not meet the FC and forcing it take a risk of installing a route in the routing table that is not guaranteed to be loop-free. This is against the very design of EIGRP. Documentation of 'variance' clearly says that if the router has more than one routes that have PASSED the FC condition and they dont have the same metric, by default, EIGRP will install the route with best/lowest metric. When we use variance, we tell the router to use the other route(s) that is/are 1, 2, 3...128 times worse (metric wise) than the best route. But each and every one of these routes are guaranteed to be loop-free.

2) If we ignore the above, and take your point, we need to set the variance to 9 (640000/76800=8.33) to have the second route installed. However, I was able to get it installed with a variance of 5. That is (76800x5=384000) which is still <640000.

 

Thanks

Hi,

I hope this Cisco website reference will clear your things as

 

This is a primary condition for variance  "Feasibility Condition, must be met for all routes to be installed in routing table via Variance Command" 

 

Spoiler
This configuration increases the minimum metric to 40 (2 * 20 = 40). EIGRP includes all routes that have a metric of less than or equal to 40 and satisfy the feasibility condition. In the configuration in this section, EIGRP now uses two paths to get to Network X, E-C-A and E-B-A, because both paths have a metric of under 40. EIGRP does not use path E-D-A because that path has a metric of 45, which is not less than the value of the minimum metric of 40, because of the variance configuration. Also, the reported distance of neighbor D is 25, which is greater than the feasible distance (FD) of 20 through C. This means that, even if variance is set to 3, the E-D-A path is not selected for load balancing because Router D is not a feasible successor.

https://www.cisco.com/c/en/us/support/docs/ip/enhanced-interior-gateway-routing-protocol-eigrp/13677-19.html

 

Read this document for the Variance troubleshooting.

https://community.cisco.com/t5/networking-documents/troubleshooting-eigrp-variance-command/ta-p/3129662

 

And this is the formula for Variance:

CD of feasible successor < FD of successor * multiplier

https://networklessons.com/eigrp/eigrp-variance-command-example

 

Regards,

Deepak Kumar

 

Regards,
Deepak Kumar,
Don't forget to vote and accept the solution if this comment will help you!

FD of feasible successor < FD of successor * multiplier

How would you know an FD of a successor/feasible successor...or any neighbor for this matter? this value is not advertised to neighbors. I think the misunderstanding here is with RD vs FD which are NOT the same. Each destination has ONE single FD but could have multiple RD, one per route. Check Peter's reply here: https://community.cisco.com/t5/routing/eigrp-feasible-distance-vs-reported-distance/td-p/1841441 

Also For "This is a primary condition for variance  "Feasibility Condition, must be met for all routes to be installed in routing table via Variance Command" 

 

Yes, I agree and this is the whole point of this post, I have a route that does not meet the FC, yet its installed in the routing table.
I think we are going in circles since we are not in agreement of how variance works really. But anyway, I appreciate your effort trying to help with this so far.

Thanks

 

FD of feasible successor < FD of successor * multiplier

How would you know the FD of a successor/feasible successor or even for any neighbor for this matter? This value is never advertised. I think most of these posts/articles are under the same wrong impression that by definition FD=RD. Check Peter's post for more info: https://community.cisco.com/t5/routing/eigrp-feasible-distance-vs-reported-distance/td-p/1841441

For any given route, you should have only single FD but can have one or more RD (one per reporting neighbor)

FD is a value that is local for the router. It uses it as a historical reference so it can avoid loops when neighbors send their Reported Distance. FD might be equal to RD (as I have in the initial post) or can be less (as I have after I changed the Delay value).

Also " This is a primary condition for variance  "Feasibility Condition, must be met for all routes to be installed in routing table via Variance Command"  -  Yes, I agree, and this is why I have this question int the first place. The route did not meet the FC, yet it was installed in the routing table.

 

Thanks, I appreciate your effort in trying to help.

 
Regards,
Deepak Kumar,
Don't forget to vote and accept the solution if this comment will help you!

First of all, FD will advertise to the next neighbor router and this will be RD value for the next neighbor

The above statement is not correct. FD is local to any EIGRP router, per destination and will remain local. The CD will be advertised and considered as RD for the neighbor for that specific destination through that neighbor.

 

Also:

 

As example:

via 192.168.2.1 (131072/130816), GigabitEthernet0/0

Here 131072 is the FD and 130816 is the RD.

 

This is also incorrect. 131072 is the CD not FD. However, it might or might not equal (in value) to this router FD which is not shown in this example you have above.


Again, if we are not going to agree on these, I'm afraid we are going in circles and far from addressing the main issue here which is related to variance command.

 
Regards,
Deepak Kumar,
Don't forget to vote and accept the solution if this comment will help you!

Thanks. I appreciate you spending the time and post this reply. No, I'm not saying that all of what you posed is wrong. But FD is not the same as CD. What the neighbor advertised is their CD NOT their FD. We agree on the RD which is good!

 Please check this post that specifically discusses this in length https://community.cisco.com/t5/routing/eigrp-feasible-distance-vs-reported-distance/td-p/1841441

 

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: