Skip to content
Log in Sign up My account

1.9.e and 1.9.f EIGRP Metrics and Load Balancing

Blueprint 1.9.e and 1.9.f: Troubleshoot EIGRP (classic and named mode)

  • 1.9.e Load balancing: equal cost and unequal cost (variance, maximum-paths, traffic-share)
  • 1.9.f Metrics: classic 32-bit metric, wide 64-bit metric, K values, metric rib-scale
  • Which interface's bandwidth and delay count, and how bandwidth and delay change paths

EIGRP metric questions on the exam come in two forms: a calculation (given interfaces or a vector metric, what is the metric, or what variance is needed) and a troubleshooting story (someone changed bandwidth, delay or metric weights, and traffic moved or an adjacency died). This page works every number from the module baseline so you can check them on your own lab routers.

The classic metric

The full classic formula uses five K values:

metric = 256 x [ K1 x BW + (K2 x BW) / (256 - load) + K3 x delay ] x [ K5 / (reliability + K4) ]

The last bracket is applied only when K5 is not 0. With the defaults K1 = 1, K2 = 0, K3 = 1, K4 = 0, K5 = 0, it reduces to:

metric = 256 x ( 10,000,000 / minimum bandwidth in kbps + total delay in tens of microseconds )

  • Bandwidth is the lowest bandwidth on the path, in kbit/s. The division is an integer division, so fractions are dropped.
  • Delay is the sum of the delays of every interface along the path, converted from microseconds to tens of microseconds.
  • Each router adds the bandwidth and delay of the interface on which it received the update, that is, its outgoing interface toward the destination. The far router's interface delay on the same link is not counted.
  • Load and reliability are carried in updates but ignored by default. Do not enable K2, K4 or K5 in production: a metric that changes with load causes route flapping.

Interface defaults on IOS and IOS XE

Interface Bandwidth (kbps) Delay (usec) delay value (tens of usec)
GigabitEthernet 1,000,000 10 1
FastEthernet 100,000 100 10
Ethernet 10,000 1,000 100
Serial (T1 default) 1,544 20,000 2,000
Loopback 8,000,000 5,000 500

show interfaces shows them as BW 1000000 Kbit/sec, DLY 10 usec. The bandwidth command takes kbps, and the delay command takes tens of microseconds. delay 100 therefore means 1000 usec, and show interfaces will show DLY 1000 usec.

Exam trap

The delay interface command is in tens of microseconds but show interfaces displays microseconds. A question that says "the engineer set delay 100" means 1000 usec, which adds 100 to the classic delay term, not 1000. The bandwidth command also changes nothing about the real link speed. It only changes routing metrics and QoS percentages.

Worked example 1: the baseline in classic terms

The baseline runs named mode, but the classic numbers are simpler, so start there. R1 learns 10.4.40.0/24 (R4 Loopback40) two ways. Every link is GigabitEthernet. R1 Gi0/2 has delay 100.

Router and path Minimum BW term (Gig: 10,000,000 / 1,000,000) Delays added (tens of usec) Classic metric
R4 itself (connected Lo40, 8,000,000 kbps) Not yet relevant: the Gig links further on set the minimum 500 (loopback)
R2, via R4 (RD) 10 500 + 1 (R2 Gi0/2) = 501 256 x 511 = 130,816
R3, via R4 (RD) 10 500 + 1 (R3 Gi0/2) = 501 256 x 511 = 130,816
R1, via R2 10 501 + 1 (R1 Gi0/1) = 502 256 x 512 = 131,072 (FD)
R1, via R3 10 501 + 100 (R1 Gi0/2) = 601 256 x 611 = 156,416

R3 is a feasible successor (130,816 is less than 131,072). For unequal-cost load balancing, the path through R3 needs a variance that makes 156,416 smaller than variance x 131,072. The ratio is 1.19, so variance 2 (limit 262,144) is enough.

A branch LAN 172.20.1.0/24 sits on GigabitEthernet at router B. B connects over a T1 serial link to router A, and A connects over GigabitEthernet to R1.

graph LR
  R1["R1"] -- "Gi 1 Gbps, 10 us" --- A["A"]
  A -- "Serial T1 1544 kbps, 20000 us" --- B["B"]
  B -- "Gi LAN 10 us" --- LAN["172.20.1.0/24"]
  1. Minimum bandwidth: 1544 kbps. 10,000,000 / 1544 = 6476.68, truncated to 6476.
  2. Delays: B's LAN interface 10 usec, A's serial interface 20,000 usec, R1's Gi interface 10 usec. Total 20,020 usec = 2002 tens of usec.
  3. Metric at R1: 256 x (6476 + 2002) = 256 x 8478 = 2,170,368.
  4. A's RD: 256 x (6476 + 1 + 2000) = 256 x 8477 = 2,170,112.

The slow link dominates both terms. That is the normal pattern: bandwidth is set by the single worst link, and delay accumulates over every hop.

Wide metrics (named mode)

The classic metric runs out of resolution on fast links. 10,000,000 divided by 10 Gbps (10,000,000 kbps) is 1, and anything faster rounds down to 0, so classic EIGRP cannot tell 10G, 40G and 100G apart. Named mode uses a 64-bit wide metric with delay measured in picoseconds and a scaling factor of 65,536:

wide metric = 65,536 x ( 10,000,000 / minimum bandwidth in kbps + total delay in microseconds ), with default K values

Two differences from the classic formula: the multiplier is 65,536 instead of 256, and delay is in microseconds, not tens of microseconds. The routing table only holds 32-bit metrics, so the wide value is divided by metric rib-scale (default 128) before it is installed. With the defaults, the number in show ip route is therefore 512 x (BW term + delay in usec).

Classic Wide (named mode)
Size 32-bit 64-bit
Delay unit in formula Tens of microseconds Microseconds (picoseconds internally)
Scaling 256 65,536, then divided by rib-scale 128 for the RIB
K values K1 to K5 K1 to K6 (K6 for extended attributes such as jitter and energy)
metric weights syntax metric weights 0 1 0 1 0 0 metric weights 0 1 0 1 0 0 0
One-hop GigabitEthernet route 256 x (10 + 2) = 3,072 65,536 x (10 + 20) = 1,966,080, RIB 15,360

Worked example 3: the baseline in wide metrics

Router and path BW term Total delay (usec) Wide metric RIB value (/128)
R2 via R4 (RD) 10 5000 + 10 = 5010 65,536 x 5020 = 328,990,720
R3 via R4 (RD) 10 5010 328,990,720
R1 via R2 10 5010 + 10 = 5020 65,536 x 5030 = 329,646,080 (FD) 2,575,360
R1 via R3 10 5010 + 1000 = 6010 65,536 x 6020 = 394,526,720 3,082,240

Those are exactly the numbers in the baseline topology table and routing table:

R1# show ip eigrp topology 10.4.40.0/24 | include FD|Composite
  State is Passive, Query origin flag is 1, 1 Successor(s), FD is 329646080, RIB is 2575360
      Composite metric is (329646080/328990720), route is Internal
      Composite metric is (394526720/328990720), route is Internal

R1# show ip route eigrp | include 10.4.40.0|3082240
D        10.4.40.0/24 [90/2575360] via 10.1.2.2, 00:21:05, GigabitEthernet0/1
                      [90/3082240] via 10.1.3.3, 00:21:05, GigabitEthernet0/2

Exam trap

In named mode the topology table shows the 64-bit composite metric (and RIB is ...), while show ip route shows the value divided by the rib-scale. If an exhibit shows FD is 329646080 and the route as [90/2575360], nothing is wrong. Variance and the feasibility condition are evaluated on the topology table values.

K values

router eigrp CORP
 address-family ipv4 unicast autonomous-system 100
  metric weights 0 1 0 1 0 0 0      ! TOS (always 0), K1, K2, K3, K4, K5, K6

K values are carried in every hello. Neighbors with different K values refuse to peer and log K-value mismatch. Changing them on one router cuts it off from every neighbor at once. show ip protocols displays the active weights, so it is the first place to look when a router has lost all neighbors after a change.

Load balancing

Equal cost

When several neighbors give exactly the same computed distance, they are all successors and are installed together, up to maximum-paths (default 4 on IOS and IOS XE). CEF then shares traffic per destination by default.

Unequal cost with variance

A path is installed alongside the successor only when both conditions hold:

  1. It is a feasible successor (its RD is less than the FD).
  2. Its computed distance is less than variance x FD.

The default variance 1 means equal cost only. The maximum is 128. maximum-paths still caps the total number of installed paths.

graph TB
  P["Path to prefix"] --> FS{"RD less than FD?"}
  FS -- No --> N1["Never installed,<br/>whatever the variance"]
  FS -- Yes --> V{"Metric less than<br/>variance x FD?"}
  V -- No --> N2["Kept as FS only"]
  V -- Yes --> M{"Installed paths fewer<br/>than maximum-paths?"}
  M -- Yes --> I["Installed, unequal share"]
  M -- No --> N3["Not installed"]
router eigrp CORP
 address-family ipv4 unicast autonomous-system 100
  topology base
   variance 2
   maximum-paths 4
   traffic-share balanced
  exit-af-topology
router eigrp 100
 variance 2
 maximum-paths 4
 traffic-share balanced

traffic-share balanced (the default) shares traffic in inverse proportion to the metrics, so the better path carries more. show ip route <prefix> displays a traffic share count for each path. traffic-share min across-interfaces installs all the qualifying paths but sends traffic only over the lowest-metric one. The others sit ready in the routing table for instant use if the best path fails.

Finding the smallest working variance: divide the backup path's metric by the FD and round up to the next whole number, adding one if the result is a whole number already (because the comparison is strictly "less than"). For a backup of 300,000 against an FD of 131,072: 300,000 / 131,072 = 2.29, so variance 3.

Exam trap

A path with a better metric than the FS can still be excluded from load balancing because it fails the feasibility condition, while a worse-metric FS is included. When an exhibit asks which next hops are installed with variance, check the FC first for every path, then the variance limit, then maximum-paths.

Lab: three metric tickets

Use the module baseline from the address-family lab and reload it before each ticket. For each ticket, predict the new metrics on paper before you look at the router.

Ticket 8: "Traffic to the data centre no longer uses the R3 link at all."

Inject on R1:

router eigrp CORP
 address-family ipv4 unicast autonomous-system 100
  topology base
   no variance 2
  1. show ip route 10.4.40.0 on R1 shows one path, through 10.1.2.2.
  2. show ip eigrp topology 10.4.40.0/24 still shows 10.1.3.3 as a feasible successor (RD 328,990,720 is less than FD 329,646,080). So the FC is fine.
  3. show ip protocols shows Maximum metric variance 1. 394,526,720 is not less than 1 x 329,646,080.
  4. Fix with variance 2 under topology base. Confirm both [90/2575360] and [90/3082240] entries return.

Ticket 9: "R4 dropped off EIGRP for IPv4 after someone 'tuned the metric'. IPv6 is fine."

Inject on R4:

router eigrp CORP
 address-family ipv4 unicast autonomous-system 100
  metric weights 0 1 0 1 1 0 0
  1. R2 and R3 log Neighbor 10.2.4.2 (GigabitEthernet0/2) is down: K-value mismatch and Neighbor 10.3.4.2 ... respectively.
  2. show ip protocols on R4 shows K1=1, K2=0, K3=1, K4=1, K5=0 K6=0. The other routers show the defaults.
  3. show ipv6 eigrp neighbors on R4 still shows R2 and R3, because K values are configured per address family.
  4. Fix with no metric weights (or metric weights 0 1 0 1 0 0 0) on R4. Check that 10.4.40.0/24 is back on R1 with both paths.

Ticket 10: "After the QoS team worked on R1, all data centre traffic goes over the backup link."

Inject on R1:

interface GigabitEthernet0/1
 bandwidth 1000

Work the numbers before checking:

Path from R1 BW term Delay (usec) Wide metric RIB
via R2 (Gi0/1, now 1000 kbps) 10,000,000 / 1000 = 10,000 5020 65,536 x 15,020 = 984,350,720 7,690,240
via R3 (unchanged) 10 6010 65,536 x 6020 = 394,526,720 3,082,240
  1. R3 becomes the successor with FD 394,526,720. R2's RD (328,990,720, unchanged because R2's interfaces were not touched) is less than the new FD, so R2 is now the feasible successor.
  2. Variance 2 allows paths below 789,053,440. The R2 path at 984,350,720 is above it, so only the R3 path is installed.
  3. show ip route 10.4.40.0 confirms one path via 10.1.3.3 with metric 3,082,240. show interfaces Gi0/1 | include BW shows BW 1000 Kbit/sec on a gigabit link.
  4. Fix: remove the bandwidth statement (a shaper belongs in a QoS policy, not in the interface bandwidth). If the QoS team needs the value for percentage-based policies, discuss using absolute rates in the policy instead.

Quick check

What is the classic metric of a route that crosses one FastEthernet link to a directly connected FastEthernet LAN on the neighbor?

Minimum bandwidth 100,000 kbps gives 10,000,000 / 100,000 = 100. Delay is two FastEthernet interfaces, 100 + 100 = 200 usec = 20 tens. Metric = 256 x (100 + 20) = 30,720.

In named mode, show ip route shows [90/15360] for a neighbor's connected subnet. What is the composite metric in the topology table?

15,360 x 128 = 1,966,080, which is 65,536 x (10 + 20) for two GigabitEthernet interfaces.

The FD is 20,000 and a feasible successor has a metric of 60,000. What is the smallest variance that installs it?

60,000 / 20,000 = 3 exactly. The metric must be strictly less than variance x FD, so variance 3 (limit 60,000) is not enough. Variance 4 is needed.

References