EIGRP Basics and Steady-State Operation
- Transport: IP protocol 88 (does not use UDP or TCP)
- Metric: bandwidth + delay (by default) and load + reliability + MTU (optionally)
- Hello interval
- Hold timer
- Update destination: 224.0.0.10
- Full updates: when neighbors are discovered
- Partial updates: otherwise
- Authentication: only MD5
- VLSM: supported
- Route tags: routes redistributed into EIGRP
- Next-hop field: advertisement of routes with a different next-hop router
- Manual summarization
- Multiprotocol: IP, IPX and AppleTalk
Hellos, Neighbors, and Adjacencies
Two EIGRP neighbors become adjacents when:
- Pass the authentication process
- Use the same AS number
- Believe that the source IP of a received Hello is in the same subnet
- K values match (
metric wights tos k1 k2 k3 k4 k5
)
Hello and Hold time paremeters do not need to match for EIGRP neighbor relationship to form. When monitoring a neighbor relationship, a router uses each neighbor's stated timers.
EIGRP Updates
Sequence:
- Initially full updates are sent.
- Future partials updates occur when one or more routes change.
- If a neighbor fails, recovers or a new adjacency is formed, full updates are sent.
EIGRP uses RTP (Reliable Transport Protocol) to send multicast updates, waiting on a unicast EIGRP ACK from each neighbor.
If a neighbor fails to acknowledge the update then RTP resends a unicast update.
A SRTT (Smoothed Round-Trip Time) is calculated for each neighbor and a RTO (Retransmission TimeOut) from each SRTT. Both values are shown in the
show ip eigrp neighbor
. If the RTO expires before the acknowledge reception then a unicast update is sent.
Each acknowledge has a window size of one message and a sequence number.
The EIGRP Topology Table
EIGRP uses 3 tables: neighbor, topology and IP routing table.
The
bandwidth
and
delay
sub-interface commands set manually the default EIGRP metrics.
The neighbor's metric for a route is called the reported distance (RD).
The feasible distance (FD) is the router's best calculated metric among all posible routes for a particular prefix.
The route with the FD is called the successor route (placed in the IP routing table).
EIGRP Convergence
- Reported distance (RD): metric reported by a neighbor router
- Feasible distance (FD): lowest metric to reach a particular subnet
- Feasibility condition (FC): when multiple routes exist, the case in which a RD is lower than the FD
- Successor route (SR): the route with the FD
- Feasible successor (FS): a route that is not de SR but meets the FC.
Input Events and Local Computation
EIGRP sends updates only as a result of changed or new topology information.
For a failed route:
- If a FS routes exists, install the lowest-metric FS route and send updates to neighbors.
- If no FS routes exists, query the neighbors.
Going Active on a Route
When no FS route is found, the EIGRP router goes active for the route.
Once the router is active, EIGRP multicasts Query messages to its neighbors and waits for unicast Reply packets. Both are acknowledged using Ack messages.
When receiving a Query:
- If the router does not have an entry sends a Reply packet stating that it has no route.
- If the router has an entry sends a Reply packet with the details of the route.
- Otherwise, the routers goes active.
Diffusing Update ALgorithm (DUAL) refers to the totality of the logic used by EIGRP to calculate new routes.
Stuck-in-Active
Any router in active state for a route must wait for a Reply to each of its Query messages.
EIGRP includes a timer called Active timer. If expires, the router places the route in a stuck-in-active state and also brings down any neighbors from which no Reply was received.
Limiting Query Scope
- Route summarization: the router immediately replies that it does not have that route.
- Stub routers: non-stub routers do not send Query messages to the stub routers.
EIGRP Configuration Example
R1(config)# router eigrp 1
R1(config-router)# eigrp log-neighbor-changes
! enabled by default
R1(config-router)# network 172.31.0.0 0.0.255.255
R1(config-router)# metric weights 0 0 0 1 0 0
! delay active
R2(config)# int fa0/0
R2(config-if)# ip hello-interval eigrp 1 2
! AS and hello-interval
R2(config-if)# ip hold-time eigrp 1 6
R2(config)# router eigrp 1
R2(config-router)# network 172.31.0.0 0.0.255.255
R2(config-router)# metric weights 0 0 0 1 0 0
R4(config)# int s0/0.1 point-to-point
R4(config-if)# bandwidth 64
R4(config-if)# ip bandwidth-percent eigrp 1 150
! 150% for EIGRP traffic
R4(config)# router eigrp 1
R4(config-router)# passive-interface e0/0
! no routes learned or advertised on e0/0
R4(config-router)# network 172.31.0.0 0.0.255.255
R4(config-router)# metric weights 0 0 0 1 0 0
R5(config)# router eigrp 1
R5(config-router)# network 172.31.0.0 0.0.255.255
R5(config-router)# eigrp stub connected summary
EIGRP timers
Default hello interval is 5 seconds. For NMBA interfaces with a slow bandwidth, 60 seconds.
The hold time defaults to 3 times the default hello interval (15 or 180 seconds).
EIGRP Load Balancing
EIGRP allows for up to 6 equal-metric routes to be installed into the IP routing table.
The
variance _multiplier_
command allows different metrics to be considered equal (metric < _multiplier_*FD).
EIGRP allows only FS routes to be considered for addition as a result of using the
variance
command.
maximum-path {1..6}
(default to 4).
traffic-share balanced
: more traffic to lower-metric routes.
traffic-share min
: only use the lowest-metric route.
traffic-share min across-interfaces
: for routes with the same metric choose those with different outgoing interfaces.
no traffic-share
: balances evenly across routes.
EIGRP Authentication
EIGRP does not support clear-text authentication.
EIGRP uses MD5 authentication using a key chain. If multiple keys in a key chain overlap in time, EIGRP use the key with the lowest key number.
R1(config)# key chain MYKEYCHAIN
R1(config-keychain)# key 1
R1(config-keychain-key)# key-string MYKEY-1
R1(config-keychain-key)# accept-lifetime 00:00:00 Jan 01 2012 00:00:00 Jan 01 2013
R1(config-keychain-key)# send-lifetime 00:00:00 Jan 01 2012 00:00:00 Jan 01 2013
R1(config-keychain)# key 2
R1(config-keychain-key)# key-string MYKEY-2
R1(config-keychain-key)# accept-lifetime 00:00:00 Jan 01 2013 00:00:00 Jan 01 2014
R1(config-keychain-key)# send-lifetime 00:00:00 Jan 01 2013 00:00:00 Jan 01 2014
R1(config)# int fa0/0
R1(config-if)# ip authentication mode eigrp 1 md5
R1(config-if)# ip authentication key-chain eigrp 1 MYKEYCHAIN
EIGRP Automatic Summarization
EIGRP defaults to use automatic summarization.
Use
no auto-summary
under
router eigrp _asn_
to disable autosummarization.
EIGRP Split Horizon
Split horizon prevents a route from being readvertised out the interface on which it was received.
Most interface types enable split horizon by default.
Can be disabled by using the
no ip split-horizon eigrp _asn_
interface subcommand.
EIGRP Route Filtering
Using an ACL:
R1(config)# access-list 1 deny 172.31.196.0 0.0.3.255
R1(config)# access-list 1 permit any
R1(config)# router eigrp 1
R1(config-router)# distribute-list 1 in fa0/0
Using a prefix list:
R1(config)# ip prefix-list MYPREFIXLIST seq 5 deny 172.31.192.0/21 ge 30 le 30
R1(config)# ip prefix-list MYPREFIXLIST seq 10 permit 0.0.0.0/0 le 32
R1(config)# router eigrp 1
R1(config-router)# distribute-list prefix MYPREFIXLIST in fa0/0
An incoming filter prevents information from entering the EIGRP topology table.
EIGRP Offset Lists
Allow to add an offset to a route's metric, either before sending and update, or for routes received in an update, using ACLs.
Clearing the IP Routing Table
clear ip route *
clears the IP routing table but the router does not send any EIGRP message. The router simply refills the IP routing table with the information of the topology table.
clear ip eigrp neighbor
clears all neighbors relationship, which clears the entire topology table. The neighbors then come back up, send new updates, and repopulate the topology and routing tables.
EIGRP messages
- Hello: identifies neighbors, exchanges parameters, keepalive function
- Update
- Ack: for Update, Query and Reply messages
- Query
- Reply
- Goodbye: to notify a gracefully shutting down