04-04-2012 03:00 AM - edited 03-01-2019 04:47 PM
EIGRP provides a mechanism to load balance over unequal cost paths throungh Variance Command. Variance is a number (1 to 128), multiplied by the local best metric then includes the routes with the lesser or equal metric. The default Variance value is 1, which means equal-cost load balancing.
A condition, Feasibility Condition, must be met for all routes to be installed in routing table via Variance Command.
What is Feasibility Condition?
If, for a destination, a neighbour router advertises a distance that is stricktly lower than our feasible distance, then this neighbour lies on a loop free route to this destination.
Understanding of EIGRP routing protocol
In this document we are trying to understand the feasibility condition and the working of variance command. All routers depcited in the topology diagram are configured with EIGRP routing protocol. The Lo3 address (3.3.3.3/32) is redistributed in EIGRP via redistribute connected command under the EIGRP process.
Router R1 has three paths to the route 3.3.3.3/32
Specifically, we have used different interface selection to provide unequal cost.
With default configuration, the route R1-R2-R3 is chosen over the others as the overall metric of this path is less as compared to that of the paths. Please see the output of the command "show ip route eigrp".
So far so good. Everything is working as expected.
As we desire, EIGRP with load balancing functionality, the route 3.3.3.3/32 should be available with R1 via R4 and R5. We verify the minimum and the maximum cost to reach 3.3.3.3 network from R1 via command "show ip eigrp topology all-links". R1 from its EIGRP topology table is learning the route 3.3.3.3/32 from all the sources but installed the route learned via neighbour R2 in its routing table.
The lowest metric is 435200 (that of path R1-R2-R3) and the maximum 2809856 (that of path R1-R5-R3).
Doing a small calculation to find the variance number, 2809856/435200 = 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, the route 3.3.3.3/32 now has two sources, R2 and R4. This can be verified by command "show ip route eigrp" on R1.
The output is not what we desired, the expected result was route 3.3.3.3 to be available from all the three neighbours i.e. R2, R4 and R5. Why the route from R4 was included and the route R5 discarded?
For R1 and R4
For R1 and R5, this condition is not met as R5 advertises a distance 2297856 which is much higher that the feasible distance (435200) on R1.
Note: Even though the overall metric from R5 (2323456) is less than the Metric Calculated via Variance Multiplier (3046400), the route 3.3.3.3 is discarded as it does not meet the Feasibility Condition.
Please see attached files.
. Very easy & clear explanation.
Good and useful post.
Kunal,
Thanks for your kind words!
Regards,
Sunil.
Nice doc as topic is always create confusion but in this doc it is so easy to understand.
Hi,
How can we check if the packet is passing through on all 3 interfaces? I tried traceroute but it seems on my lab, it only passes through the serial interface that has the lowest metric than the 2?
R1
22.0.0.0/24 is subnetted, 1 subnets
D 22.22.22.0 [90/2700800] via 122.122.122.2, 00:14:55, Virtual-Access4
[90/2297856] via 12.12.12.2, 00:14:55, Serial1/0
[90/1468928] via 1.1.1.2, 00:14:55, MFR1
R1(config-router)#do traceroute 22.22.22.22
Type escape sequence to abort.
Tracing the route to 22.22.22.22
VRF info: (vrf in name/id, vrf out name/id)
1 122.122.122.2 21 msec 20 msec *
R1(config-router)#do traceroute 22.22.22.22
Type escape sequence to abort.
Tracing the route to 22.22.22.22
VRF info: (vrf in name/id, vrf out name/id)
1 122.122.122.2 20 msec 13 msec *
R1(config-router)#do traceroute 22.22.22.22
Type escape sequence to abort.
Tracing the route to 22.22.22.22
VRF info: (vrf in name/id, vrf out name/id)
1 122.122.122.2 15 msec 20 msec *
R1(config-router)#do traceroute 22.22.22.22
Type escape sequence to abort.
Tracing the route to 22.22.22.22
VRF info: (vrf in name/id, vrf out name/id)
1 122.122.122.2 20 msec 20 msec *
R1(config-router)#do traceroute 22.22.22.22
Type escape sequence to abort.
Tracing the route to 22.22.22.22
VRF info: (vrf in name/id, vrf out name/id)
1 122.122.122.2 22 msec 20 msec *
R1(config-router)#do sh run | s router eigrp
router eigrp 12
variance 3
network 0.0.0.0
R2
11.0.0.0/24 is subnetted, 1 subnets
D 11.11.11.0 [90/2700800] via 122.122.122.1, 00:14:55, Virtual-Access4
[90/2297856] via 12.12.12.1, 00:14:55, Serial2/0
[90/1468928] via 1.1.1.1, 00:14:55, MFR2
R2(config-router)#do traceroute 22.22.22.22
Type escape sequence to abort.
Tracing the route to 22.22.22.22
VRF info: (vrf in name/id, vrf out name/id)
1 22.22.22.22 5 msec 3 msec *
R2(config-router)#do traceroute 22.22.22.22
Type escape sequence to abort.
Tracing the route to 22.22.22.22
VRF info: (vrf in name/id, vrf out name/id)
1 22.22.22.22 5 msec 1 msec *
R2(config-router)#do traceroute 22.22.22.22
Type escape sequence to abort.
Tracing the route to 22.22.22.22
VRF info: (
1 22.22.22.22 5 msec 4 msec
R2(config-router)#do traceroute 11.11.11.11
Type escape sequence to abort.
Tracing the route to 11.11.11.11
VRF info: (vrf in name/id, vrf out name/id)
1 122.122.122.1 21 msec 19 msec *
R2(config-router)#do traceroute 11.11.11.11
Type escape sequence to abort.
Tracing the route to 11.11.11.11
VRF info: (
1 122.122.122.1 21 msec 18 msec *
R2(config-router)#do sh run | s router
router
variance 3
network 0.0.0.0
*As you can see it only use 1 link (Virtual-access 4)
*** NEVERMIND!!! IF YOU DISABLE CEF, YOU CAN SEE LOAD-BALANCING WORKS, :))
Which then brings me to the question, if CEF then
SunilKhanna Thank you for the very good and clear explanation
Hi SunilKhana
Very clear..
Thank you so much !
Hi,
I see a little error when you announce the metric of R5
You say:
Even though the overall metric from R5 (2323456) not R5 is R4
R5 correct metric is 2809856
Tks.
Ciro Gustavo Mele
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: