Cisco’s proprietary routing protocol, EIGRP, offers and interesting tidbit of functionality to the network that decides to run on entirely IOS based routers. This little tidbit is known as the EIGRP variance command. What this function does, is allow for unequal cost load balancing on a router.
Please see Diagram below:
You’ll notice that the HQ router is connected to both remote office via some sort of serial based medium. One interface bandwidth being 128Kbps and one being 256Kbps (I know, not a whole hell of a lot of bandwidth, but this is just for ease of example). Along with that, the remote offices are connected using a FastEthernet standard at 100Mbps.
You’ll notice that Remote Office – 1 has network 10.10.20.0/24 connected to it. Now, if all routers in the diagram are running EIGRP and are all fully converged, the HQ router will have a route installed in it’s route table for the 10.10.20.0/24 network. Due to the low bandwidth on the 128Kbps link directly to Remote Office – 1, router HQ is going to install the HQ <-> RO2 <-> Switch <-> RO1 route into its routing table strictly because the cost of traversing that 128Kbps link, as opposed to the 256Kbps link and then the 100Mbps link between the two remote sites, would be far more costly on the time it would take for the traffic to reach it’s destination.
That being said. We all know, in the IT industry, we’re looking for newer and faster ways to get data from point A to point B. And we all know a little bit about what load-balancing is – Utilizing more than one medium to transport traffic from A to B at the same time – balancing the traffic 1-to-1 across multiple links.
Well, Cisco decided that the whole “only equal cost load balancing” model was a little too restrictive. So, they took it upon themselves to not only create their own routing protocol, but add a few little tidbits of functionality to it that truly make it their own. And this is where the variance command was born.
The variance command allows you to load balance the traffic across unequal cost paths, as opposed to the traditional load balancing across only equal cost paths.
If we refer back to the diagram above, we can see that we can now issue the variance command on the device for that particular instance of EIGRP on the HQ router. We will call the multiplier (n) for the sake of the following example. To keep it simple math wise, if we entered the variance 2 on the HQ router, the router would then include routes with a metric of less than 2 times the minimum metric route for that destination. What that means is, once this command is issued, the router will look for routes to the 10.10.20.0/24 network that are proportionally unequal to the metric of 2 defined in the variance command. (ie. 128Kbps is exactly 2 times less than 256Kbps)
A little tricky at first, but once you actually sit and think about it, just make sure that you have your math right before you enable the command, and watch the previously useless routes come to life and allow even more optimization to your network. 🙂