EIGRP Maximum Paths and Variance

Like OSPF, EIGRP supports the ability to put multiple equal-metric routes in the routing-table.  Like OSPF, EIGRP defaults to support four such routes for each subnet, and it can be configured to support up to 16 using the maximum-paths number EIGRP command.  However, EIGRP’s metric calculation often prevents competing routes from having the exact same metric.  The formula may result in similar metrics, but given that the metric values can easily be in the millions, calculating the exact same metric is statistically unlikely.

IOS includes the concept of EIGRP variance to overcome this problem.  Variance allows routes whose metrics are relatively close in value to be considered equal, allowing multiple unequal-metric routes to the same subnet to be added to the routing table.

The variance multiplier EIGRP router subcommand defines an integer between 1 and 128.  The router then multiples the variance times a route’s FD – the best metric with which to reach that subnet.  Any FS routes whose metric is less than the product of the variance times the FD are considered to be equal routes and may be placed in the routing table, depending on the setting of the maximum-paths command.

Summarization of variance key points:

* The variance is multiplied by the current FD (the metric of the best route to reach the subnet).

* Any FS routes whose calculated metric is less than or equal to the product of variance times the FD are added to the IP routing table, assuming that the maximum-paths setting allows more routes.

* Routes that are neither successor nor feasible successor can never be added to the IP routing table, regardless of the variance setting.

As soon as the routers have been added to the routing table, the router supports a variety of options for how to load-balance traffic across the routes.  The router can balance the traffic proportionally with the metrics, meaning that lower metric routes send more packets.  The router can send all traffic over the lowest-metric route, with the other routes just being in the routing table for faster convergence in case the best route fails.