Subscribe to CCIE TalkNews Feed

EIGRP unequal cost load balancing

September 21, 2008 by CCIETalk  
Filed under EIGRP, Tutorials

EIGRP unequal-cost load balancing is one of those topics that we all try to run away from. EIGRP will not perform unequal cost load balancing by default and we have to use the variance command to do so. While working through IE’s vol 2 workbook, I came across a real nice lab that tested unequal cost load balancing. So I decided why not write a brief tutorial that might help others also.

Before we start getting into the configuration, let’s talk about how EIGRP inserts routes in the EIGRP topology table. EIGRP uses two metrics to perform all the calculations:

Advertised Distance (AD): This is the distance that is “advertised” by the upstream neighbor as their cost to the destination.

Feasible Distance (FD): Feasible distance is basically the sum of the Advertised Distance and the distance to the upstream neighbor from the local router.

Successor: Your local router will look through all the advertised paths to a destination and choose the path with the lowest Feasible Distance (FD). This path will have the lowest end-to-end metric and is called the successor. Successor is the best route to the destination.

Feasible Successor: These are paths that can be installed in the routing table if the successor is lost. For a path to be considered a feasible successor, it must satisfy the feasibility condition. A path’s Advertised Distance (AD) mst be lower than the Feasible Distance (FD) of the successor for it to be deemed a feasible successor.

Only routes that are feasible successors can be used for unequal cost load balancing in EIGRP. This is where variance command comes in.

FD of Feasible Successor <= FD of Successor x Variance

This is the only way a feasible successor will be installed in the routing table.

EIGRP Unequal Cost Load Balancing

Let’s look at an example regarding unequal cost load balancing. Our goal is to perform unequal cost loadbalancing at a ratio of 5:1 between the two paths. R1 has two paths to the 164.1.26.0/24 network in the above topology.

Path 1 - R1 > R3 > R2 > VLAN 26
Path 2 - R1 > R2 > VLAN 26

By default, EIGRP will choose the path with the lowest metric. For this topology, the Point to point link between R1-R3 is 1.536 Mbps, frame-relay link between R2-R3 is 1.28 Mbps and the frame-relay link between R1-R2 is 256Kbps. In this scenario, R1 will choose Path 1 to reach VLAN 26. At this point if we configure the variance of 5, then the traffic will be load balanced between the two paths at a ratio of 80:23 as shown in the output below.

RSRack1R1#sh ip route 164.1.26.6       

Routing entry for 164.1.26.0/24

  Known via “eigrp 100″, distance 90, metric 3026432, type internal

  Redistributing via eigrp 100

  Last update from 164.1.12.2 on Serial0/0, 00:00:56 ago

  Routing Descriptor Blocks:

  * 164.1.13.3, from 164.1.13.3, 00:00:56 ago, via Serial0/1

      Route metric is 3026432, traffic share count is 80

      Total delay is 40100 microseconds, minimum bandwidth is 1280 Kbit

      Reliability 255/255, minimum MTU 1500 bytes

      Loading 1/255, Hops 2

    164.1.12.2, from 164.1.12.2, 00:00:56 ago, via Serial0/0

      Route metric is 10514432, traffic share count is 23

      Total delay is 20100 microseconds, minimum bandwidth is 256 Kbit

      Reliability 255/255, minimum MTU 1500 bytes

      Loading 1/255, Hops 1

To achieve a 5:1 ratio, we can modify the metric through R2 to be 5 times the metric through R3. But before we can do that, let’s figure out how the metric is being calculated in the first place. 

Metric = [K1*BW+(K2*BW)/256-Load)+K3*Delay]*[K5/(Reliability+K4)]

As we know, by default K1 and K3 equals 1 while all the other values are ZERO. So we can modify the above equation as follows: 

Metric_R3 = (10^7/BW+Delay/10)*256

Metric_R3 = (10^7/1280+40100/10)*256

Metric_R3 = 3026432 

In order to get the 5:1 ratio, we must increase the metric through R2 to be 5 times that of the metric through R3. This is how we can get the value of the DELAY through R2. 

Metric_R2 = Metric_R3 * 5

(10^7/BW+Delay/10)*256 = (10^7/BW+Delay/10)*256*5

(10^7/256+Delay/10) = (10^7/1280+40100/10)*5

(39062.5+Delay/10 = (7812.5 + 4010) * 5

Delay/10 = 59112.5 - 39062.5

Delay = 20050 * 10

Delay = 200500 

Looking through the routing table, we can see that we already have a delay of 100 microseconds to reach VLAN26. 

RSRack1R2#sh ip eigrp topology 164.1.26.0 255.255.255.0

IP-EIGRP (AS 100): Topology entry for 164.1.26.0/24

  State is Passive, Query origin flag is 1, 1 Successor(s), FD is 28160

  Routing Descriptor Blocks:

  0.0.0.0 (FastEthernet0/0), from Connected, Send flag is 0×0

      Composite metric is (28160/0), Route is Internal

      Vector metric:

        Minimum bandwidth is 100000 Kbit

        Total delay is 100 microseconds

        Reliability is 255/255

        Load is 1/255

        Minimum MTU is 1500

        Hop count is 0

So R1’s local delay to R2 should be (200500 - 100 or 20040 tens of microseconds. Once we configure the delay of 20040 on R1’s Serial interface, we should be able to achieve the 5:1 ratio.

 

RSRack1R1#sh ip route 164.1.26.6

Routing entry for 164.1.26.0/24

  Known via “eigrp 100″, distance 90, metric 3026432, type internal

  Redistributing via eigrp 100

  Last update from 164.1.12.2 on Serial0/0, 00:00:05 ago

  Routing Descriptor Blocks:

  * 164.1.13.3, from 164.1.13.3, 00:00:05 ago, via Serial0/1

      Route metric is 3026432, traffic share count is 5

      Total delay is 40100 microseconds, minimum bandwidth is 1280 Kbit

      Reliability 255/255, minimum MTU 1500 bytes

      Loading 1/255, Hops 2

    164.1.12.2, from 164.1.12.2, 00:00:05 ago, via Serial0/0

      Route metric is 15132160, traffic share count is 1

      Total delay is 200500 microseconds, minimum bandwidth is 256 Kbit

      Reliability 255/255, minimum MTU 1500 bytes

      Loading 1/255, Hops 1

 

Using delay is one of the methods of achieving unqual cost loadbalancing. I hope this tutorial has been helpful to you. Don’t forget to leave comments.

 

Comments

One Response to “EIGRP unequal cost load balancing”

  1. passinzhere on October 6th, 2008 4:05 pm

    i am trying to do traffic shairing of my topology 1:5 but it is not working for me i dont know where i am doing wrong

    my topology is very simple

    R1————R2 (connected via s1/0)
    ————- (connected via s1/1)

    both are connected via 2 serial interfaces

    here is the out out of

    sh ip route to 2.2.2.2 to R2

    Router1# sh ip route 2.2.2.2
    Routing entry for 2.2.2.2/32
    Known via “eigrp 1″, distance 90, metric 2297856, type internal
    Redistributing via eigrp 1
    Last update from 192.168.1.2 on Serial1/1, 00:03:08 ago
    Routing Descriptor Blocks:
    192.168.1.2, from 192.168.1.2, 00:03:08 ago, via Serial1/1
    Route metric is 2297856, traffic share count is 1
    Total delay is 25000 microseconds, minimum bandwidth is 1544 Kbit
    Reliability 255/255, minimum MTU 1500 bytes
    Loading 1/255, Hops 1
    * 192.168.0.2, from 192.168.0.2, 00:03:08 ago, via Serial1/0
    Route metric is 2297856, traffic share count is 1
    Total delay is 25000 microseconds, minimum bandwidth is 1544 Kbit
    Reliability 255/255, minimum MTU 1500 bytes
    Loading 1/255, Hops 1

    i tried this formula

    Metric_R1 = Metric_R2 * 5
    10^7/BW+Delay/10)*256 = (10^7/BW+Delay/10)*256*5
    6476.6 + dly/10) 256 = 6476.6 + 25000/10)256*5
    6476.6+dly/10 = 6476.6 + 2500 )5
    6476.6 + dly/10 = 8976.6*5
    6476.6 +dly/10 = 44883 - 6476.6
    dly/10 = 38406.4 * 10
    dly = 384064

    Router1(config-if)#do sh ip route 2.2.2.2
    Routing entry for 2.2.2.2/32
    Known via “eigrp 1″, distance 90, metric 2297856, type internal
    Redistributing via eigrp 1
    Last update from 192.168.1.2 on Serial1/2, 00:00:14 ago
    Routing Descriptor Blocks:
    192.168.1.2, from 192.168.1.2, 00:00:14 ago, via Serial1/2
    Route metric is 2297856, traffic share count is 40
    Total delay is 25000 microseconds, minimum bandwidth is 1544 Kbit
    Reliability 255/255, minimum MTU 1500 bytes
    Loading 1/255, Hops 1
    * 192.168.0.2, from 192.168.0.2, 00:00:14 ago, via Serial1/1
    Route metric is 100107264, traffic share count is 1
    Total delay is 3845680 microseconds, minimum bandwidth is 1544 Kbit
    Reliability 255/255, minimum MTU 1500 bytes
    Loading 1/255, Hops 1

    why i am not getting ratio of 5 and 1 any one can please guide me where i am doing something wrong here

Feel free to leave a comment...
and oh, if you want a pic to show with your comment, go get a gravatar!

You must be logged in to post a comment.


Warning: stristr() [function.stristr]: Empty delimiter in /home/ccie/public_html/wp-content/plugins/wassup/wassup.php on line 2093