EIGRP Variance question

Answered Question
Jun 25th, 2010

Hello all. My question is - how does EIGRP do unequal path load balancing? I know that you can utilize the variance command to install unequal cost paths in the EIGRP routing table. My question is - after EIGRP has installed the unequal metric paths into the routing table, how does the load-balancing to the destination occur? Does CEF or process switching perform the load-balancing? Is the load-balancing at a ratio of 1:1 between these 2 unequal paths or does the variance command or interface bandwidth influence the load-balancing ratio? Please answer only if you are definite. I'm trying to clear up some confusion. Thanks in advance!

I have this problem too.
0 votes
Correct Answer by Richard Burts about 6 years 5 months ago

EIGRP is only responsible for getting routes into the routing table. EIGRP does not do load balancing. The load balancing is done by CEF (or whichever switching path the router is currently using).

Here is a good post from a Cisco expert describing how CEF does the load balancing and does maintain the ratios of the unequal links as it does unequal load sharing:

https://supportforums.cisco.com/message/806399#806399

HTH

Rick

  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 5 (2 ratings)
Loading.
Jon Marshall Fri, 06/25/2010 - 12:39

west33637 wrote:

Hello all. My question is - how does EIGRP do unequal path load balancing? I know that you can utilize the variance command to install unequal cost paths in the EIGRP routing table. My question is - after EIGRP has installed the unequal metric paths into the routing table, how does the load-balancing to the destination occur? Does CEF or process switching perform the load-balancing? Is the load-balancing at a ratio of 1:1 between these 2 unequal paths or does the variance command or interface bandwidth influence the load-balancing ratio? Please answer only if you are definite. I'm trying to clear up some confusion. Thanks in advance!

It is done based on the variance you use. So if you use a 2:1 variance ie. one link is 100Mbps and one is 50Mbps then for every two packets sent on the 100Mbps link one will be sent on the 50Mbps link.

Jon

west33637 Wed, 06/30/2010 - 13:31

hello Jon/giuslar. My understanding is that the variance command influences what gets admitted into the eigrp routing table. Once the routes are in the routing table, CEF does the load balancing depending on what type of CEF load balancing is configured.

Heres an example,

Sh ip eigrp topology 150.1.6.0 255.255.255.0

1 successor --- only one route to the destination is installed in the EIGRP routing table

FD – Feasible distance to the destination – 665600 - lowest end to end metric for the path as advertised by next hop router (successor)

The router that advertised the feasible distance of 665600 gets installed as a successor. No other router gets installed as a successor because the metric they are advertising is higher than the feasible distance.

Composite metric is (665600/153600)  -----  successor (the route being advertised gets installed in the EIGRP routing table

                                      metric      advertised distance to get to this next-hop that is advertising this route

So a router that is advertising the below composite metric will not get installed as a successor because the metric is higher than the feasible distance.

Composite metric is (665700/153600)

Now, if you configure an EIGRP variance of 2. The feasible distance is then multiplied by 2 and any router advertising a route with a metric lower than 2 x the FD will now get installed in the EIGRP routing table.

Therefore, the router advertising the composite metric (665700/153600) will now be installed in the EIGRP routing table since its metric is now less than 2 x the FD. Now we have 2 routes in the EIGRP routing table going to the destination instead of one due to the variance command.

My thought is that the variance command has completed its job in the above scenario, which is to install to EIGRP routes with unequal metrics to the destination into the EIGRP routing table.

If all this is correct, my question is – after unequal metric routes have been installed into the routing table, does CEF load balance them at a 1:1 ratio?  Does CEF load balance per destination as usual? Or per packet if configured to do per packet load balancing? What if one of the links is a t1 and the other is a gig eth interface? Thanks,

Giuseppe Larosa Sun, 06/27/2010 - 12:55

Hello West33637,

a possible way to implement efficiently non equal cost load balancing could be the following:

from the list of physical interfaces a modified longer list is built : in the modified list the link with better metric appears more times then the link with worse metric.

in this way CEF can use its algorithm to find an index for a given flow identified by source IP address and destination IP address: the link with better metric will have twice the probability to be chosen then the the other link.

An explanation of this method and a possible confirmation has been given by Cisco expert Harold Ritter in an older thread

see

https://supportforums.cisco.com/message/806400#806400

so yes CEF flow based load balancing supports EIGRP unequal cost load balancing

Hope to help

Giuseppe

Mohamed Sobair Wed, 06/30/2010 - 13:57

Guys,

The Cisco's Implementation of Eigrp Variance command doesnt relate to the ratio of the packet, the variance command defines which paths to a particular destination should be placed in the routing table. However, I have never seen in any documentation state the exact ratio once the variance command configured under the eigrp process , but I am definite about two things here:

1- Once Eigrp Variance configured and muttiple paths now for Netwok x exist on the routing table, with the command (Traffic share-balanced) enabled equal cost balancing between those paths.

2- Once Eigrp Variance configured and Multiple paths now exist for Network x on the routing table , The command (Traffic share-min) allow Eigrp to still use one path , although there are multiple paths in the routing table, but it will be excluded until the primary path fails. This command is certailnly use to speed up the convergence in Eigrp , what it does , it places Extra paths in the routing table for faster convergence.

The last note is that, Eigrp will still use CEF Switching for packet forwarding, and the default CEF Switching is per destination unless otherwise changed.

Hope this helps,

Mohamed

Jon Marshall Thu, 07/01/2010 - 04:25

Mohamed

However, I have never seen in any documentation state the exact ratio once the variance command configured under the eigrp process , but I am definite about two things here:

From EIGRP unequal cost load-balancing doc -

===============================

Traffic Sharing

EIGRP not only provides unequal cost path load balancing, but also       intelligent load balancing, such as traffic sharing. In order to control how       traffic is distributed among routes when there are multiple routes for the same       destination network that have different costs, use the       traffic-share balanced command. With the keyword       balanced, the router distributes traffic proportionately to       the ratios of the metrics that are associated with different routes. This is       the default setting:

router eigrp 1 
network x.x.x.x
variance 2
traffic-share balanced

The traffic share count for this example is:

  • For path E-C-A: 30/20 = 3/2 = 1

  • For path E-B-A: 30/30 = 1

Because the ratio is not an integer, round down to the nearest integer.       In this example, EIGRP sends one packet to E-C-A and one packet to E-B-A.

Now, assume that the metric between E-B is 25 and the metric between       B-A is 15. In this case, the E-B-A metric is 40. However, this path will not be       selected for load balancing because the cost of this path, 40, is not less than       (20 * 2 ), where 20 is the FD and 2 is the variance. In order to include this       path also in load sharing, the variance should be changed to 3. In this case,       the traffic share count ratio is:

  • For path E-C-A: 40/20 = 2

  • For path E-B-A: 40/40 = 1

In this situation, EIGRP sends two packets to E-C-A and one packet to       E-B-A. In this way, EIGRP provides both unequal cost path load balancing and       intelligent load balancing. Refer to the       Load       Balancing section of       Enhanced       Interior Gateway Routing Protocol for more information on how EIGRP load       balances traffic over unequal cost links.

=================================

Full link -

EIGRP unequal cost load-balancing

The above clearly states that EIGRP will use the metrics of the routes together with the variance to not only select which routes go in the routing table but also how many packets are sent across each link.

Jon

west33637 Thu, 07/01/2010 - 09:33

Hello Jon. Interesting article. Makes sense. I actually read another article from the cisco documentation site that said EIGRP did not participate in the actual load balancing and that the LB was performed by CEF.  See quote and link below.

"Note EIGRP does not load-share between multiple routes; it only installs the routes in the local routing table. Then, the local routing table enables switching hardware or software to load-share between the multiple paths."

http://www.cisco.com/en/US/docs/ios/iproute_eigrp/command/reference/ire_s1.html#wp1037872

"For this example, the traffic share counts are:

  • for paths 1 and 2: 4000/1100 = 3

  • for path 3: 4000/2000 = 2

  • for path 4: 4000/4000 = 1

The router sends the first three packets over path 1, the next three packets over path 2, the next two packets over path 3, and the next packet over path 4. The router then restarts by sending the next three packets over path 1, and so on."

Per the above extract from the link you referred me to, can I  conclude that EIGRP with the variance command is not just installing routes in the EIGRP routing table, but actually performing unequal per-packet load balancing and this supercedes CEFs load balancing? Is the traffic-share balanced command needed to effect this behavior? Thanks,

Correct Answer
Richard Burts Thu, 07/01/2010 - 11:13

EIGRP is only responsible for getting routes into the routing table. EIGRP does not do load balancing. The load balancing is done by CEF (or whichever switching path the router is currently using).

Here is a good post from a Cisco expert describing how CEF does the load balancing and does maintain the ratios of the unequal links as it does unequal load sharing:

https://supportforums.cisco.com/message/806399#806399

HTH

Rick

west33637 Thu, 07/01/2010 - 12:36

Rick thanks. This put all the pieces of the puzzle together. I completely get it now. Thanks to everyone for your replies.

Jon Marshall Thu, 07/01/2010 - 14:11

rburts wrote:

EIGRP is only responsible for getting routes into the routing table. EIGRP does not do load balancing. The load balancing is done by CEF (or whichever switching path the router is currently using).

Here is a good post from a Cisco expert describing how CEF does the load balancing and does maintain the ratios of the unequal links as it does unequal load sharing:

https://supportforums.cisco.com/message/806399#806399

HTH

Rick

Rick

What happens if you use "traffic-share min" ie. you have a variance of 3 so 3 routes are installed in the routing table but you use traffic-share min so only the minimum cost route is used for traffic. With CEF are you saying that it will use all 3 routes even though you have used traffic-share min because CEF is responsible for load-balancing and therefore once the routes are installed in the routing table by EIGRP, and all 3 are installed because of the variance, then CEF simply uses them all ?

I haven't tested, wondered if you knew from experience.

Jon

Richard Burts Thu, 07/01/2010 - 17:59

I did not realize it until I re-read this complete thread that the link that I posted was slightly different than the link posted by Giuseppe but is to the exact same thread. So I acknowledge that Giuseppe got there first and rate his post.

Jon

It is a very interesting question and I do not know the answer from experience. From what I understand if you specify traffic=share min then EIGRP introduces multiple routes into the routing table but does something so that only the best will be actively used. I would assume that it does something like set the traffic share to 0 for the other routes. But that is my best thought and not anything authoritative.

HTH

Rick

Mohamed Sobair Thu, 07/01/2010 - 09:17

Jon,

This is an excellent document, However, I have read multiple Eigrp documents and gone through different Cisco Press books including (Routing TCP/IP, CCIE R/S and the Old version of BSCI) , its not mentioning the ratio specifically.

So, as I have posted earlier I am definite about the concept of (Traffic-share balanced/min).

Just to confirm: if I have variance 3 for example configured and I have a router with a metric of 1 and a metric of 4, the ratio between both paths will be 1:3 and likewise for a variance of 2 , the ration for forwarding a packet will be 1:2.

In this case , the conclusion is the ration is actually identical to the variance command value.

BTW: I couldnt access the link you have provided.

HTH

Mohamed

Jon Marshall Thu, 07/01/2010 - 16:02

Mohamed

So, as I have posted earlier I am definite about the concept of (Traffic-share balanced/min).

Sorry to belabour the point but traffic-share balanced does not mean equal cost load-balancing. Regardless of how the ratio is related to the variance command EIGRP is able to do unequal cost load-balancing. So to say that traffic-share balanced will lead to equal cost load-balancing isn't accurate as far as i can see.

Jon

Actions

This Discussion