How to Configure EIGRP Load Balancing for IPv4

EIGRP is a Cisco proprietary routing protocol. Router-enabled EIGRP calculates the best route to a destination using the metric value based on the link bandwidth and delay. The protocol selects the shortest path and installs that path in the routing table. If the destination has more than one path with the same administrative distance and a metric value, all least-metric and same routes are installed in the routing table.

When there are several routes with equal metric values, by default, all dynamic routing protocols, including EIGRP, forward packets using load balancing. We can configure EIGRP to install multiple paths even if the metric is unequal. This is the only protocol that supports unequal cost load balancing. There are two types of load balancing:

Equal-cost load balancing

When a router has two or more paths to a destination with equal cost metrics, it forwards the packets using all paths equally, a process called equal-cost load balancing. When forwarding packets, the protocol should have an equal administrative distance to a destination. Using load balancing, the router uses network segments and bandwidth more efficiently.

By default, Cisco IOS Software can balance the load across four equal-cost paths. We can configure the EIGRP load balancing up to 16 equal-cost paths using the “maximum-path” in the router configuration mode. The router can keep up to 32 equal-cost routes in the routing table.

If we set the maximum-path value to 1, the equal-path load balancing is disabled on the router. The Cisco router uses two types for balancing the network load: per-destination basis and per-packet basis. The command syntax for equal-cost EIGRP load balancing configuration is:

Router(config-router)# maximum-paths value

We can verify the EIGRP load balancing using the “show ip protocols” command. The command displays the number of equal-cost paths currently configured on the router. Cisco IOS, by default, allows EIGRP load balancing for four equal-cost path routes. The output in Figure 1 illustrates the topology that we will use in this lesson, and Figure 2 illustrates that R1 is using the default equal-cost EIGRP load balancing.

EIGRP Load Balancing

Figure 3 illustrates the routing table of R1. The Router R1 has two successors for network 192.168.5.0/24 via 192.168.0.2 and 192.168.1.2. The metric for both routes is equal, so both are installed in the routing table. This is an example of equal-cost load balancing. EIGRP uses four routes with equal cost by default in the routing table.

Unequal Cost Load Balancing

If routing metrics are not equal, load balancing will not occur automatically. So a command called “variance” must be used to configure a load-balancing. This command makes EIGRP load balance on unequal metrics values. The command syntax for unequal load-balancing is:

Router(config-router)variance < Metric variance Multiplier>

The command will enable EIGRP to install multiple loop-free routes with unequal cost in a local routing table. A route learned through EIGRP should meet two criteria to be installed in the local routing table:

  • The route should be loop-free, being both a feasible successor (FS) and having a reported distance (RD) less than the total distance.
  • The route’s metric must be lower than the metric of the best route (the successor) multiplied by the variance configured on the router.

If the variance value is set to 1 on the router then only routes with the same metric are installed as the successor in the local routing table, this is called equal-cost load balancing. But if the variance is set to 2, any EIGRP-learned route with a metric less than 2 times the successor metric will also be installed in the local routing table as successor.

Figure 4 illustrates that the R1 has two unequal links to reach network 192.168.5.0. The links via R3 have 256 kb/s, and the links via R2 have a speed of 128 Kb/s. We know that the EIGRP installs the route with the lowest cost in the routing table. Let’s check the routing table of R1 in Figure 5.

Now, let’s configure R1 with the variance command. We know that the link with R2 is two times slower than the link with R3, so the variance value should be 2. The range of variance that we can configure is from 1 to 128.

Figure 7 illustrates the variance configuration and the routing table of R1 after the variance configuration. You can see that two routes are installed for the destination 192.168.5.0/24 network; even the metric is not equal. This is unequal load balancing.

We can also examine the topology table with the “show ip eigrp topology” to verify successor routes for this destination. Figure 7 illustrates the output of this command.

We can control the traffic among routes in case multiple routes for the same destination network have different costs. The “traffic-share balanced” command can distribute traffic proportionately to the cost ratio.