Courseiva
EIGRPRouter Config

variance [multiplier]

The variance command allows EIGRP to load-balance across multiple routes with unequal costs by specifying a multiplier that defines the range of feasible successor metrics relative to the best successor metric.

Definition: variance [multiplier] is a Cisco IOS router config command. The variance command allows EIGRP to load-balance across multiple routes with unequal costs by specifying a multiplier that defines the range of feasible successor metrics relative to the best successor metric.

Overview

The `variance` command is a powerful EIGRP feature that enables unequal-cost load balancing across multiple routes to the same destination. In EIGRP, by default, only the best path (the successor) is installed in the routing table, and load balancing occurs only over equal-cost paths. However, network engineers often encounter scenarios where multiple paths exist with different metrics, and they want to utilize the additional bandwidth provided by the slower links without waiting for equal-cost paths.

The variance command allows you to specify a multiplier (from 1 to 128) that defines the range of feasible successor metrics relative to the best successor metric. Any feasible successor whose metric is less than or equal to the product of the best metric and the variance multiplier will be considered for load balancing. This command is crucial for optimizing link utilization in networks with diverse link speeds, such as a primary T1 line and a backup DSL link.

Without variance, the backup link would remain idle until the primary fails. With variance, traffic can be distributed proportionally, improving overall throughput and redundancy. The command is typically used in conjunction with the `traffic-share` command to control how traffic is distributed (e.g., `traffic-share balanced` or `traffic-share min across-interfaces`).

The variance command is entered in router configuration mode under the EIGRP process. It affects the routing table immediately, but only if feasible successors exist. If no feasible successors meet the variance criteria, the command has no effect.

It is important to note that variance does not change the metric of routes; it only expands the set of routes that can be installed. The command is saved in the running configuration and can be verified with `show ip eigrp topology` or `show ip route`. A common pitfall is forgetting that the route must be a feasible successor (i.e., the reported distance from the next-hop router must be less than the feasible distance of the successor).

Variance alone cannot make a non-feasible successor become a candidate. Therefore, engineers sometimes adjust the `metric weights` or use `offset-list` to influence the metric and create feasible successors. The variance command is a staple in CCNP-level EIGRP troubleshooting and design, and understanding its behavior is essential for passing the exam and real-world deployment.

Syntax·Router Config
variance [multiplier]

When to Use This Command

  • Load-balancing traffic across two links where one link has a lower bandwidth (e.g., 1.5 Mbps T1) and the other has higher bandwidth (e.g., 10 Mbps Ethernet) but both paths are feasible.
  • Utilizing a backup satellite link (higher delay) alongside a primary fiber link to increase total throughput in a WAN environment.
  • Distributing traffic across multiple paths to different ISPs when one ISP link has a higher cost due to slower speed or higher delay.
  • Balancing traffic in a hub-and-spoke topology where the spoke has two paths to the hub with different metrics.

Parameters

ParameterSyntaxDescription
multiplier<1-128>An integer from 1 to 128 that multiplies the best metric (successor's metric) to define the upper limit for feasible successor metrics. A value of 1 means only equal-cost load balancing (default). Common values are 2, 3, or 4 to include slightly worse paths. Setting it too high may cause routing loops or suboptimal routing if the path is significantly worse.

Command Examples

Basic variance configuration to allow load balancing across unequal-cost paths

router eigrp 100 variance 2
router eigrp 100
 network 192.168.1.0
 variance 2
!

The command 'variance 2' is entered in EIGRP router configuration mode. It sets the multiplier to 2, meaning any feasible successor route with a metric less than or equal to 2 times the best successor metric will be installed in the routing table. The output shows the configuration snippet as it would appear in 'show running-config'.

Verifying unequal-cost load balancing with show ip route

show ip route 192.168.2.0
Routing entry for 192.168.2.0/24
  Known via "eigrp 100", distance 90, metric 30720
  Redistributing via eigrp 100
  Last update from 10.0.0.2 on Serial0/0/0, 00:00:05 ago
  Routing Descriptor Blocks:
  * 10.0.0.2, from 10.0.0.2, 00:00:05 ago, via Serial0/0/0
      Route metric is 30720, traffic share count is 1
    10.0.0.6, from 10.0.0.6, 00:00:05 ago, via Serial0/0/1
      Route metric is 56320, traffic share count is 1

The output shows two paths to 192.168.2.0/24. The best path has metric 30720 via 10.0.0.2. The second path has metric 56320, which is less than 2*30720=61440, so it is installed. Both have traffic share count 1, meaning traffic is distributed equally (since variance is 2, but share counts are equal because the metric ratio is less than 2). The asterisk (*) indicates the active path used for the next packet.

Understanding the Output

When you configure 'variance [multiplier]', EIGRP will include any feasible successor route whose metric is less than or equal to the product of the multiplier and the best successor metric. The 'show ip route' command displays all installed routes. Each route entry shows the metric and traffic share count.

The traffic share count is inversely proportional to the metric; for example, if one path has metric 30720 and another 56320, the share counts would be 56320/30720 ≈ 1.83, but since variance only allows routes within the multiplier, both get share count 1 if the ratio is less than 2. In practice, the share counts are calculated as (worst metric / best metric) rounded down. Good values: variance set to 1 (default) means only equal-cost load balancing; variance >1 allows unequal-cost.

Watch for routes that are not feasible successors (i.e., not meeting the feasibility condition) – they will not be installed even if within variance. Also, variance does not affect which route is the successor; it only affects which feasible successors are installed.

Configuration Scenarios

Unequal-cost load balancing across two WAN links with different speeds

A branch office has two connections to the head office: a primary T1 (1.544 Mbps) and a backup DSL (512 Kbps). The EIGRP metrics differ significantly. The goal is to use both links simultaneously to increase total throughput, with the faster link carrying more traffic.

Topology

Branch_Router(Gi0/0)---10.0.1.0/30---(Gi0/0)Head_Router Branch_Router(Gi0/1)---10.0.2.0/30---(Gi0/1)Head_Router

Steps

  1. 1.Step 1: Enter global configuration mode: Branch_Router# configure terminal
  2. 2.Step 2: Enter EIGRP router configuration mode for AS 100: Branch_Router(config)# router eigrp 100
  3. 3.Step 3: Set variance multiplier to 2 to allow routes with metric up to twice the best metric: Branch_Router(config-router)# variance 2
  4. 4.Step 4: (Optional) Configure traffic-share balanced to distribute traffic proportionally: Branch_Router(config-router)# traffic-share balanced
  5. 5.Step 5: Exit configuration mode: Branch_Router(config-router)# end
  6. 6.Step 6: Verify the routing table: Branch_Router# show ip route eigrp
Configuration
!
router eigrp 100
 variance 2
 traffic-share balanced
!

Verify: Use `show ip route 10.0.0.0` to see multiple entries for the same destination with different metrics. For example, output may show two routes: one via 10.0.1.2 with metric 28160 and another via 10.0.2.2 with metric 30720 (if best is 28160, variance 2 allows up to 56320). Also use `show ip eigrp topology 10.0.0.0/24` to see the feasible successors and their metrics.

Watch out: A common mistake is not verifying that the backup route is a feasible successor. If the reported distance from the next-hop router is not less than the feasible distance of the successor, variance will not include it. Use `show ip eigrp topology all-links` to check feasibility.

Using variance to load balance over a primary and a backup link with offset-list

A network has a primary link (FastEthernet) and a backup link (Serial) with a much higher delay. The backup link is not a feasible successor because its reported distance is too high. The engineer uses offset-list to artificially increase the metric of the primary link to make the backup feasible, then applies variance to load balance.

Topology

R1(Fa0/0)---10.0.12.0/30---(Fa0/0)R2 R1(Se0/0)---10.0.13.0/30---(Se0/0)R3---(Fa0/0)R2

Steps

  1. 1.Step 1: Configure offset-list on R1 to increase metric on primary link by 1000: R1(config)# access-list 1 permit 10.0.0.0 0.255.255.255
  2. 2.Step 2: Apply offset-list under EIGRP: R1(config)# router eigrp 100
  3. 3.Step 3: offset-list 1 in 1000 FastEthernet0/0
  4. 4.Step 4: Set variance to 2: R1(config-router)# variance 2
  5. 5.Step 5: Verify: R1(config-router)# end
  6. 6.Step 6: Check routing table: R1# show ip route 10.0.0.0
Configuration
!
access-list 1 permit 10.0.0.0 0.255.255.255
!
router eigrp 100
 offset-list 1 in 1000 FastEthernet0/0
 variance 2
!

Verify: Use `show ip route` to see both paths installed. The primary path will have a slightly higher metric due to offset, but still within variance range. Use `show ip eigrp topology` to confirm both routes are feasible successors.

Watch out: Offset-list affects inbound updates, so it must be applied on the router receiving the route. Also, increasing the metric too much may cause the primary path to become worse than the backup, leading to suboptimal routing. Always calculate the metrics carefully.

Troubleshooting with This Command

When troubleshooting EIGRP unequal-cost load balancing with the variance command, the first step is to verify that the command is configured correctly. Use `show running-config | section router eigrp` to confirm the variance value. Next, check the EIGRP topology table with `show ip eigrp topology` to see all routes, including feasible successors.

Healthy output shows multiple entries for the same destination network, with one marked as the successor (best metric) and others as feasible successors. The feasible successors must have a reported distance (RD) less than the feasible distance (FD) of the successor. If no feasible successors appear, variance will have no effect.

Common symptoms include: only one route in the routing table despite variance being set, or traffic not being distributed as expected. For the first symptom, use `show ip eigrp topology all-links` to see all possible paths, including those that are not feasible. If a path is not feasible, you may need to adjust metrics using offset-list or change the delay/bandwidth on interfaces to make it feasible.

For traffic distribution issues, verify the `traffic-share` setting. By default, EIGRP uses `traffic-share balanced`, which distributes traffic proportionally to the metric. If you see `traffic-share min across-interfaces`, only the best path will be used for traffic, but multiple routes are still installed for redundancy.

Use `show ip route` to see the routing table; multiple entries indicate that variance is working. The metric values should be within the variance range. For example, if the best metric is 28160 and variance is 2, the second route should have a metric <= 56320.

If the metric is higher, variance is not including it. Also check the `show ip eigrp interfaces detail` to ensure the interfaces are participating in EIGRP and have the correct bandwidth/delay settings. Correlate with `debug eigrp packets` to see if updates are being exchanged correctly, but use debug sparingly in production.

Another useful command is `show ip eigrp traffic` to see if load balancing is occurring. If you see unequal packet counts per interface, that indicates unequal-cost load balancing is active. Remember that variance only affects routes that are already feasible successors.

If you need to include a path that is not a feasible successor, you must first make it feasible by adjusting metrics or using the `maximum-paths` command (though that doesn't change feasibility). In some IOS versions, the variance command may not work with named EIGRP mode; ensure you are using classic mode or check compatibility. Finally, always verify the routing table after configuration changes to ensure the desired paths are installed.

CCNA Exam Tips

1.

The variance command only works with feasible successors; a route must first satisfy the feasibility condition (reported distance < feasible distance) to be considered.

2.

The default variance is 1, meaning only equal-cost load balancing occurs.

3.

Traffic share count is calculated as the integer ratio of the worst metric to the best metric; for example, if metrics are 100 and 150, share counts are 1 and 1 (since 150/100=1.5, truncated to 1).

4.

CCNA exam may test that variance does not change the successor; the best path remains the successor and is used for all traffic if no other feasible successors exist.

Common Mistakes

Setting variance too high (e.g., 10) can cause suboptimal paths to be used, potentially causing routing loops or poor performance.

Forgetting that variance only applies to feasible successors; if a route does not meet the feasibility condition, it will not be installed regardless of variance.

Assuming variance affects the metric calculation; it only affects which routes are installed, not how metrics are computed.

variance [multiplier] vs show ip eigrp topology

The variance and show ip eigrp topology commands are often considered together because variance controls which routes are selected for unequal-cost load balancing, while the show command displays the full topology table, allowing verification of variance's impact on path selection.

Aspectvariance [multiplier]show ip eigrp topology
ScopeControls load balancing across multiple EIGRP routesDisplays the entire EIGRP topology table
Configuration modeRouter Config (config-router)Privileged EXEC (#)
PersistencePersists in running-config and startup-configTransient output; no configuration impact
PrecedenceAffects which routes are installed in routing table via feasible successorsShows all learned routes, including those not selected for routing table
Typical useEnable unequal-cost load balancing by setting a multiplierVerify EIGRP convergence, metrics, and feasible successors

Use variance when you want to allow EIGRP to load balance across multiple unequal-cost paths to the same destination.

Use show ip eigrp topology to view all learned EIGRP routes and their metrics for troubleshooting or verifying path selection.

Platform Notes

In IOS-XE (e.g., 16.x), the variance command syntax and behavior are identical to classic IOS. However, in IOS-XE, EIGRP can be configured in named mode (address-family) or classic mode. The variance command is available in both, but in named mode, it is configured under the address-family configuration: `router eigrp test` then `address-family ipv4 unicast autonomous-system 100` then `variance 2`.

The output of `show ip eigrp topology` may have slightly different formatting in IOS-XE, but the key fields (FD, RD, feasible successors) remain the same. In NX-OS (Cisco Nexus switches), EIGRP is not supported; instead, OSPF or EIGRP stub is used, but the variance command does not exist. For load balancing, NX-OS uses OSPF's `maximum-paths` and `equal-cost` only.

There is no direct NX-OS equivalent for EIGRP variance. On Cisco ASA firewalls, EIGRP is not supported; routing is typically static or OSPF. Therefore, variance is not applicable.

In IOS-XR, EIGRP is not supported; the platform uses OSPF or IS-IS. However, IOS-XR does have a similar concept for OSPF with `maximum-paths` and `variance` is not used. For EIGRP on IOS-XR, it is not available.

Across IOS versions (12.x, 15.x, 16.x), the variance command behavior is consistent. One minor difference: in older IOS 12.x, the `traffic-share balanced` command was not available; only `traffic-share min` was supported. In 15.x and later, `traffic-share balanced` is the default.

Also, in some early 12.x versions, variance could cause routing loops if used carelessly, but later versions have safeguards. Always check the specific IOS documentation for your version.

Related Commands

Practice for the CCNA 200-301

Test your knowledge with practice questions covering all CCNA 200-301 exam domains.

Practice CCNA 200-301 Questions