Octet

How does EIGRP do unequal cost load balancing with variance? Give me a worked example.

Show the answer

Say this first

variance N lets EIGRP install extra paths whose metric is within N times the best metric, but only paths through feasible successors. Example: the best path is 3328 via R2. R3's path is 26368 with RD 3072, so it is a feasible successor; 26368 / 3328 is about 7.9, so variance 8 installs it. R4's path also costs 26368 but fails the feasibility condition, so no variance value ever uses it. Traffic is shared in inverse proportion to the metric.

Go deeper

The checks for each extra path

  1. Is the neighbor a feasible successor (RD less than FD)? If not, stop.
  2. Is its metric within variance x FD?
  3. Is there room under maximum-paths (default 4)?

Worked numbers

ViaMetricRDFeasible successorVariance 7 (limit 23296)Variance 8 (limit 26624)
R233283072SuccessorInstalledInstalled
R3263683072YesNoInstalled
R42636826112NoNoNo
Cisco IOS
router eigrp 100
 variance 8
Output
R1# show ip route eigrp | section 10.50.0.0
D        10.50.0.0/24 [90/3328] via 10.0.12.2, 00:02:10, GigabitEthernet0/0/0
                      [90/26368] via 10.0.13.3, 00:02:10, GigabitEthernet0/0/1

Each next hop keeps its own metric in the brackets. R2 gets roughly eight times as much traffic as R3.

How traffic is really split

CEF shares load per flow by default, hashing source and destination addresses. The ratio is applied to hash buckets, so with a few big flows the real split can be far from the intended one.

Keeping backups in the RIB only

traffic-share min across-interfaces installs the variance paths but sends traffic only on the best one. The others are already in the routing table if the best fails.

Traps

  • Saying variance can use any path within the multiple. It only uses feasible successors.
How did you do?Book 3.4 Routing