Skip to content

EIGRP Routing

EIGRP automatically exchanges routes between routers - uses bandwidth and delay to calculate the best path (faster convergence than OSPF for large networks).

You need EIGRP when:

  • You have a Cisco-only network
  • You want faster convergence than OSPF
  • You need unequal-cost load balancing (variance feature)
  • Your network is very large and you want efficient routing updates

When to use EIGRP vs OSPF: EIGRP is faster and uses less CPU/bandwidth, but only works on Cisco routers. OSPF is an open standard that works with any vendor.

Router(config)# router eigrp 100
Router(config-router)# no auto-summary
Router(config-router)# eigrp router-id 1.1.1.1

Parameters:

  • 100 - AS (Autonomous System) number. Can be 1-65535. All EIGRP routers in the same domain MUST use the same AS number.
  • 1.1.1.1 - Router ID. Replace with a unique ID for each router.

Autonomous System (AS) number (100): Must match on all routers in the EIGRP domain.

auto-summary: Disabled by default in modern IOS. Always explicitly disable it with no auto-summary to prevent classful summarization issues.

Router(config-router)# network 10.1.1.0 0.0.0.255
Router(config-router)# network 192.168.10.0 0.0.0.255

Format: network [network address] [wildcard mask]

Add all interfaces (wildcard 0.0.0.0 means exact match):

Router(config-router)# network 10.1.1.5 0.0.0.0

Stop EIGRP from sending hello packets on interfaces where no EIGRP neighbors exist.

Make specific interface passive:

Router(config-router)# passive-interface GigabitEthernet0/0/0

Make all interfaces passive, then enable only needed ones:

Router(config-router)# passive-interface default
Router(config-router)# no passive-interface GigabitEthernet0/0/1
Router(config-router)# no passive-interface Serial0/1/0

EIGRP uses hello packets to detect neighbors.

Default timers:

  • Hello: 5 seconds (high-speed links), 60 seconds (low-speed links)
  • Hold: 15 seconds (high-speed), 180 seconds (low-speed)

Change timers on interface:

Router(config-if)# ip hello-interval eigrp 100 3
Router(config-if)# ip hold-time eigrp 100 10

⚠️ Timers don’t need to match on both sides (unlike OSPF), but it’s best practice to keep them consistent.

EIGRP metric calculation uses bandwidth. Set correct bandwidth on serial interfaces.

Router(config-if)# bandwidth 1544

Value in Kbps. Example: T1 = 1544 Kbps, E1 = 2048 Kbps.

Reduce routing table size by summarizing multiple networks.

On the interface sending the summary:

Router(config-if)# ip summary-address eigrp 100 192.168.0.0 255.255.252.0

This summarizes 192.168.0.0/24 through 192.168.3.0/24 into one route.

Advertise a default route into EIGRP.

First, create a default static route:

Router(config)# ip route 0.0.0.0 0.0.0.0 203.0.113.1

Then redistribute it into EIGRP:

Router(config-router)# redistribute static

EIGRP supports equal-cost and unequal-cost load balancing.

Equal-cost load balancing (default, up to 4 paths):

Router(config-router)# maximum-paths 4

Unequal-cost load balancing (variance):

Router(config-router)# variance 2

Variance of 2 means EIGRP will load-balance across paths with metrics up to 2x the best path’s metric.

Secure EIGRP with MD5 authentication.

Create key chain:

Router(config)# key chain EIGRP-KEY
Router(config-keychain)# key 1
Router(config-keychain-key)# key-string SecurePass123
Router(config-keychain-key)# exit
Router(config-keychain)# exit

Apply to interface:

Router(config)# interface GigabitEthernet0/0/1
Router(config-if)# ip authentication mode eigrp 100 md5
Router(config-if)# ip authentication key-chain eigrp 100 EIGRP-KEY
Router# show ip eigrp neighbors
Router# show ip eigrp topology
Router# show ip eigrp interfaces
Router# show ip route eigrp
Router# show ip protocols
Router# show ip eigrp traffic

Neighbors not forming? Check:

  • AS numbers match
  • Authentication (if configured) matches
  • K-values match (default: K1 and K3 enabled)

Verify neighbor states:

Router# show ip eigrp neighbors

Clear EIGRP neighbors (force re-election):

Router# clear ip eigrp neighbors
Router(config)# router eigrp 100
Router(config-router)# eigrp router-id 1.1.1.1
Router(config-router)# no auto-summary
Router(config-router)# network 10.1.1.0 0.0.0.255
Router(config-router)# network 192.168.10.0 0.0.0.255
Router(config-router)# passive-interface default
Router(config-router)# no passive-interface GigabitEthernet0/0/1
Router(config-router)# maximum-paths 4
Router(config-router)# variance 2
Router(config-router)# exit
Router(config)# interface Serial0/1/0
Router(config-if)# bandwidth 1544
Router(config-if)# ip hello-interval eigrp 100 5
Router(config-if)# ip hold-time eigrp 100 15