Mental model
EIGRP is the protocol that takes the best of both routing-protocol families and avoids their worst sins.
- From distance-vector (RIP-style): simple, no link-state database, just trust your neighbors’ summaries.
- From link-state (OSPF-style): fast convergence, no routing loops, smart algorithm.
The killer feature: DUAL (Diffusing Update Algorithm) keeps a backup path ready in the routing table. When the primary fails, EIGRP doesn’t have to flood updates and re-compute — it instantly switches to the backup. Sub-second convergence is normal.
EIGRP was Cisco-only for two decades. Cisco opened it in 2013 (RFC 7868). It’s still mostly seen in Cisco-only environments — multi-vendor networks default to OSPF.
The metric
EIGRP’s metric is a formula combining up to five values weighted by K-constants. In practice only two matter:
metric ≈ (10^7 / minimum-bandwidth + total-delay) × 256
- Bandwidth — the slowest link in the path, in Kbps
- Delay — sum of interface delays, in tens of microseconds
Don’t touch the K-values. The K1–K5 constants control which factors are weighted. Defaults are K1=K3=1, everything else 0 — bandwidth + delay. Mismatched K-values between neighbors prevents adjacency formation. Just leave them alone.
Successor vs Feasible Successor (THE concept)
EIGRP terms that confuse everyone:
- Successor — the primary next-hop for a destination. The route that goes in the routing table.
- Feasible Successor (FS) — a backup next-hop, pre-validated as loop-free.
For a backup path to qualify as a Feasible Successor, it must satisfy the Feasibility Condition (FC):
The neighbor’s reported distance to the destination must be LESS than my distance to the destination via the successor.
In English: the backup neighbor must already be closer to the destination than I am (via my primary path). If yes, taking that route can’t cause a loop, so it’s safe to pre-install as backup.
When the successor dies, EIGRP doesn’t have to ask anyone — it knows the FS is loop-free and starts using it immediately.
Commands
Basic config (classic, with network statements)
R1(config)# router eigrp 100
R1(config-router)# eigrp router-id 1.1.1.1
R1(config-router)# network 10.0.12.0 0.0.0.3
R1(config-router)# network 10.0.13.0 0.0.0.3
R1(config-router)# network 192.168.1.0 0.0.0.255
R1(config-router)# passive-interface default
R1(config-router)# no passive-interface GigabitEthernet0/0
AS number 100 must match on every router for them to form neighbors. Unlike OSPF process IDs, this matters.
Named-mode config (the modern way)
R1(config)# router eigrp CORP
R1(config-router)# address-family ipv4 unicast autonomous-system 100
R1(config-router-af)# eigrp router-id 1.1.1.1
R1(config-router-af)# network 10.0.0.0 0.255.255.255
R1(config-router-af)# af-interface default
R1(config-router-af-interface)# passive-interface
R1(config-router-af)# af-interface GigabitEthernet0/0
R1(config-router-af-interface)# no passive-interface
Named mode is more readable and required for some advanced features. Either form works for CCNA.
Verification
R1# show ip eigrp neighbors
R1# show ip eigrp topology
R1# show ip eigrp interfaces
R1# show ip route eigrp
show ip eigrp neighbors— your bidirectional partners. Should show your peers inupstate.show ip eigrp topology— successors and feasible successors. If you seeFD/RDcolumns, you’re looking at the heart of DUAL.show ip route eigrp— routes EIGRP installed in the routing table.
Common mistakes
-
Mismatched AS numbers. Two routers running EIGRP on the same wire with different AS numbers won’t form a neighborship. Easy mistake, silent failure. Check
show ip eigrp neighbors. -
Wildcard mask backwards. Same trap as ACLs and OSPF — wildcard is the inverse of subnet mask. For a /24 it’s
0.0.0.255, not255.255.255.0. -
Touching K-values. Don’t. They must match between neighbors. The defaults are correct for 99% of cases.
-
Forgetting
passive-interface default. Like OSPF, EIGRP tries to form neighbors on every interface. A user-facing port is a security risk. Always default to passive, then explicitly enable peering. -
Using
auto-summaryon classless networks. EIGRP used to auto-summarize at classful boundaries (10.0.0.0/8 etc.). This is wrong on modern networks.no auto-summaryis the default on IOS 15+, but verify on older gear. -
Setting feasible successor expectations too high. Not every destination has an FS — it depends on the topology. Without an FS, EIGRP falls back to the slower diffusing-update process (called “going active”) when the successor fails.
Lab to try tonight
- Three routers in a triangle. Each with a loopback (1.1.1.1, 2.2.2.2, 3.3.3.3) and /30 links between them.
- Configure EIGRP AS 100 on all three. Hardcode router IDs. Set
passive-interface default, then enable only the WAN-facing interfaces. - Run
show ip eigrp neighborson each. Two neighbors per router. - Run
show ip eigrp topologyfor the loopback of one router. Identify successor and feasible successor (if any). - Bring down a link between two routers. Watch
show ip route eigrpre-converge — typically sub-second. - Bonus: increase a link’s delay with
delay <tens-of-microsec>on the interface. Watch the metric change and the path selection adjust.
Cheat strip
| Concept | Plain English |
|---|---|
| DUAL | Diffusing Update Algorithm — pre-computes backup paths |
| AS number | Must match on all routers for neighborship |
| Successor | Primary next-hop, in the routing table |
| Feasible Successor (FS) | Pre-validated backup, available for instant failover |
| Feasibility Condition | Backup’s reported distance < my distance via primary |
| Hello / Hold timers | Default 5s / 15s on LAN, 60s / 180s on slow WAN |
| Metric | Bandwidth + delay (default K-values). Leave K-values alone. |
| AD | 90 (internal EIGRP), beats OSPF (110), RIP (120), but loses to static (1) |