Enhanced Interior Gateway Routing Protocol (EIGRP)
What is EIGRP?
Enhanced Interior Gateway Routing Protocol
Successor to Interior Gateway Routing Protocol (IGRP)
Cisco proprietary hybrid protocol
Both Distance Vector and Link State (Active Adjacency) behaviour Really Advanced Distance Vector
Classless protocol
Supports VLSM and summarization
Why Use EIGRP?
Guarantees loop-free topology
Diffusing Update Algorithm (DUAL)
Fast convergence
Fastest of all IGP in certain designs
Reliable & Efficient Updating
Forms active neighbor adjacencies Guarantees packet delivery with Reliable Transport Protocol (RTP) Supports partial updates Not all neighbors need all routes
Why Use EIGRP? (cont.)
Multiple routed protocol support
IPv4, IPX, & Appletalk Legacy now, but originally important in non-converged networks
Granular Metric
Hybrid metric derived from multiple factors
(bandwidth -K1, reliability -K2, delay -K3, load -K4, MTU -K5)
Seamless Connectivity across all data link layer protocols and topologies
No special configuration is required
Why Use EIGRP? (cont.)
Unequal Cost Load Balancing
Only IGP that supports true load distribution
Control Plane Security
Supports MD5 based authentication
EIGRP Packet types
EIGRP sends out five different types of packets
Hello (5): Identifies neighbors and serves as a keep-alive mechanism Update (1): Reliably sending route information Query (3): Reliably requests specific route information Reply (4): Reliably responds to a query Ack (8): Non reliable packets used to acknowledge update, query and replies
In detail
Hello Packets
Hello packets are used for neighbor discovery and recovery process Sent as multicast Unreliable
Do not need acknowledgement packets
5 Seconds on Fast network links 60 seconds on Slow links (< T1 links) 3 times hello times is dead Can be changed using
ip hello-interval eigrp <as> / ip hold-time eigrp <as> interface command
Hello packet Capture
Update Packet
Convey Route information Sent to communicate routes that a router has used to converge Update is sent to affected routers Updates are sent as multicast when a new route is discovered and convergence is completed Updates are sent as unicast during synchronization of topology tables at startup sequence Updates are sent reliably
Update Packet
Query Packet
Query packet is generated when performing
Route computation No Feasible successor Sends query packet to its connected neighbors if they have a successor to the destination Queries are multicast, can send unicast in certain conditions Reliable packet and needs an acknowledgement
Reply Packet
Reply is generated and sent across in response to a query packet Reply packets are always unicast Only reply to the originator of the query Reliable packet, and needs an acknowledgement
Acknowledgement Packet
Used to ACK updates, queries and replies Unicast hello packets contain a nonzero acknowledgement number Hello packet and ACK packet do not require acknowledgements A reliable packet is not acknowledged, EIGRP periodically retransmits packet to neighbor as unicast, EIGRP window size = 1, no other traffic is sent to this neighbor 16 unacknowledged retransmissions, neighbor is removed from neighbor table
EIGRP Data Table Structures
EIGRP uses three data table structures
Neighbor table: built from EIGRP Hellos and used for reliable delivery
show ip eigrp neighbors [listed devices are ready to exchange topology information]
Topology table: contains EIGRP routing information for the best paths and loop-free alternatives
Show ip eigrp topology all-links Show ip eigrp topology Entry for a prefix can exists in two forms Active / Passive
Routing table: Places best routes from its topology table into the common routing table
Passive Vs. Active Routes
Route is passive when the router is not performing re-computation on that route Route will be active when it is undergoing recomputation (looking for an alternate path)
Note: Passive state is operational and Stable state A route will never go into active state if there are feasible successor
How EIGRP Works
Step 1 - Discover EIGRP Neighbors Step 2 - Exchange Topology Information Step 3 - Choose Best Path via DUAL Step 4 - Neighbor and Topology Table Maintenance
Step 1 -- Discovering EIGRP Neighbors
EIGRP uses multicast HELLO packets to discover neighbors on EIGRP enabled attached links
Hello packets contain
Transport via IP protocol 88 (EIGRP) Destination address [Link]
Neighbors found are inserted into EIGRP neighbor table Neighbors that agree on attributes and exchange updates form active adjacency
show ip eigrp neighbors
Autonomous System Number Hold Time (do not have to match) Authentication Metric Weightings (K values)
Step 2 -- Exchanging Topology Information
Once neighbors are found, EIGRP UPDATE messages used to exchange routes
RTP uses sequence numbers and acknowledgements (ACKs) to ensure delivery
Update messages describe attributes of a route Prefix + Length Next-Hop Bandwidth Delay Load Reliability MTU Hop Count External Attributes Sent as multicast to [Link] or as unicast
All routes learned from all neighbors make up the EIGRP topology table
show ip eigrp topology
Step 3 -- Choosing The Best Path
Once topology is learned, DUAL runs to choose loop-free best path to each destination Unlike other protocols, EIGRP uses complex composite metric to choose best path Composite metric calculated from
Administrative Weighting Bandwidth Delay Load Reliability MTU
Path with lowest composite metric is considered best and installed in IP routing table One or more backup routes can also be pre-calculated per destination Only best route is advertised to other EIGRP neighbors
Step 4 -- Neighbor and Topology Table Maintenance
Unlike RIP or IGRP, active EIGRP neighbor adjacency reduces convergence time in event of network failure Adjacent neighbors hello packets contain hold time When neighbor is lost
If no hello is received within hold time, neighbor declared unreachable Paths via that neighbor are removed from topology and routing table If backup routes exist, they become new best paths and are inserted in routing table If no backup routes exist, DUAL must run again
In this case EIGRP can have sub-second convergence
DUAL Reconvergence
When best path is lost and no backup routes exist, route goes into active state and active timer starts
EIGRP QUERY message is reliably sent to remaining neighbors asking if there is an alternate route QUERY is propagated to all neighbors within EIGRP query domain or flooding domain Neighbors respond with EIGRP REPLY packet indicating if alternate route is available
More on this later Stable routes not in active state are considered passive
If alternate route exists, DUAL recalculates new best path If no alternate route, prefix removed from topology table If active timer expires and no REPLY received, route is declared Stuck-In-Active (SIA) and removed from topology table
EIGRP Loop Prevention
EIGRP guarantees loop-free topology through usage of
Split Horizon
Dont advertise routes out the link they came in on
DUAL Feasibility Condition
If your metric is lower than mine, you are loop-free
DUAL Terms
Successor Nearest router to a destination Feasible Distance (FD) Composite metric of best path Feasible Successor (FS) Next nearest router to a destination Advertised Distance (AD) Composite metric learned from neighbor Local Distance (LD) Composite metric to reach local neighbor Feasibility Condition (FC) Criteria for valid backup paths
Local Distance
20
R1 R3
15
R5
1
VLAN X
Local Distance
Local Distance cost to reach R3 is 20
LD =20
R1 R3
15
R5
1
VLAN X
Local Distance
LD =20
R1 R3
LD=15
R5
1
VLAN X
Local Distance cost to reach R1 is 20 and R5 is 15
Local Distance
Local Distance cost to reach R3 is 15 and VLAN X is 1 LD=20
R1 R3
LD=15
R5
LD=1
VLAN X
Advertised Distance
Local Distance cost to reach VLAN X is 1
LD=20
R1 R3
LD=15
R5
LD=1
VLAN X
Advertised Distance
Advertised distance by R5 to reach VLAN X is 1
Local Distance cost to reach VLAN X is 1
AD VLAN X = 1
LD =20
R1 R3
LD =15
R5
LD =1
VLAN X
Advertised Distance
Advertised distance by R3 to reach VLAN X is 15 (LD), 1(AD) Advertised distance by R5 to reach VLAN X is 1
AD VLAN X = 1
Local Distance cost to reach VLAN X is 1
LD =20
R1
LD =15
R3 R5
LD =1
VLAN X
AD VLAN X = R3s LD + R5s AD
Feasible Distance
AD for VLAN X is 1 cost to reach VLAN X is LD+AD
Local Distance cost to reach VLAN X is 1
AD VLAN X = 1
LD =20
R1 R3
LD =15
R5
LD =1
VLAN X
Feasible Distance: Metric of Successor + LD (END to END Cost)
Feasible Distance
Feasible Distance is AD + LD
Local Distance cost to reach VLAN X is 1
AD VLAN X = 1
LD =20
R1 R3
LD =15
R5
LD =1
VLAN X
Feasible Distance: Metric of Successor + LD (END to END Cost)
Feasible Distance
Feasible Distance for VLAN X is LD to R3 + AD by R3 for VLAN X
Local Distance cost to reach VLAN X is 1
AD VLAN X = 1
LD =20
R1 R3
LD =15
R5
LD =1
VLAN X
Feasible Distance: Metric of Successor + LD (END to END Cost)
Feasible Distance
Feasible Distance for VLAN X is LD to R3 + AD by R3 for VLAN X
Local Distance cost to reach VLAN X is 1
AD VLAN X = 1
LD =20
R1 R3
LD =15
R5
LD =1
VLAN X
Note: It is FD that affects the selection of the best routes for incorporation in the routing table. AD is used only to calculate FD
Successor
Neighboring router to reach prefix
The route installed in routing table Least path cost to prefix Has lowest FD of all possible paths to a prefix
Many entries in topology table with equal cost FD for a prefix
All successors (up to 4) for that destination in routing table
Feasible Successor
A EIGRP router with a back up route to the prefix Route must be loop free
Must not loop to current successor FS are selected when successors are identified FS paths are placed in topology table Topology table retains multiple FS for a prefix
Requirements: Must Qualify Feasibility condition
Feasibility condition
The Neighbors advertised distance must be less than feasible distance of the current successor for a prefix
Cost to [Link]/24 is 1000
FD for [Link]/24 via A is 2000 FD for [Link]/24 via B is 2500
A [Link]/24
LD = 1000
LD = 1000 Cost to [Link]/24 is 1500
Feasibility condition
Cost to [Link]/24 is 1000
A is the Successor A LD = 1000
[Link]/24
LD = 1000 Cost to [Link]/24 is 1500 B is the Feasible Successor
DUAL Path Selection in Detail
Once adjacency occurs and update messages are exchanged, path selection begins Each update includes the metric the upstream router uses to reach destination (AD) Local router knows the metric to reach each upstream router (LD) Best path (successor) is chosen based on lowest AD + LD
DUAL Example
Local Distance Advertised Distance Feasible Distance
R1
10
20
15
10
R2 R3
20
R4
10
15
20
R5
R5 x = 1
VLAN x
DUAL Example
Local Distance Advertised Distance Feasible Distance
R1
10
20
15
10
R2 R3
20
R4
10 1
15 1
R5 R5 x = 1
20
VLAN x
DUAL Example
Local Distance Advertised Distance Feasible Distance
R1 R2R5 x = 11 R2R3R5 x = 26
11
10 11
20
15
10
R2 R3
20
R4
10 1
15 1
R5 R5 x = 1
20
VLAN x
DUAL Example
Local Distance Advertised Distance Feasible Distance
R1 R2R5 x = 11 R2R3R5 x = 26
11
10 11
20
R3R2R5 x = 21 R3R5 x = 16
15
10
R2 R3
20
R4
10 1
15 1
R5 R5 x = 1
20
VLAN x
DUAL Example
Local Distance Advertised Distance Feasible Distance
R1 R2R5 x = 11 R2R3R5 x = 26
11
10 11
20
R3R2R5 x = 21 R3R5 x = 16 R3R4R5x=31
15 21
21
R4R3R5 x = 26 R4R5 x = 21
10
R2 R3
10
R4
10 1
15 1
R5 R5 x = 1
20
VLAN x
DUAL Example
Local Distance Advertised Distance Feasible Distance
R1 R2R5 x = 11 R2R3R5 x = 26
11
10 11
16
20
15 21
21
R4R3R5 x = 26 R4R5 x = 21
R3R2R5 x = 21 R3R5 x = 16 R3R4R5x=31
10
R2 R3
10
R4
10 1
15 1
R5 R5 x = 1
20
VLAN x
DUAL Example
AD for R1: 11 vs. 16 vs. 21
Local Distance Advertised Distance Feasible Distance
FD to x: 11+10 vs. 16+20 vs. 21+15
R1 R2R5 x = 11 R2R3R5 x = 26
11
10 11
16
20
15 21
21
R4R3R5 x = 26 R4R5 x = 21
R3R2R5 x = 21 R3R5 x = 16 R3R4R5x=31
10
R2 R3
10
R4
10 1
15 1
R5 R5 x = 1
20
VLAN x
DUAL Example
Local Distance Advertised Distance Feasible Distance
R1R2 R5 x = 21 R1R3R5 x = 36 R1R4R5 x = 36
R1 R2R5 x = 11 R2R3R5 x = 26
11
10 11
16
20
15 21
21
R4R3R5 x = 26 R4R5 x = 21
R3R2R5 x = 21 R3R5 x = 16 R3R4R5x=31
10
R2 R3
10
R4
10 1
15 1
R5 R5 x = 1
20
VLAN x
DUAL Example
FD to x: Via R2 (21) vs. Via R3 (36) vs. R4(36)
Local Distance Advertised Distance Feasible Distance
R1
10
Successor
20
15
10
R2 R3
10
R4
10
15
20
R5
R5 x = 1
VLAN x
Feasibility Condition in Detail
Once best path is chosen, additional paths are examined for backup routes Feasibility Condition (FC) finds loop-free backup
routes via logic If AD < FD, path is loop-free and viable backup e.g. if your metric is lower than mine, you are closer to the destination and loop-free
Paths that meet the FC are Feasible Successors (FS) Only Feasible Successors can be used for unequal cost load balancing
DUAL Example
Local Distance Advertised Distance Feasible Distance
R1R2 R5 x = 21 R1R3R5 x = 36 R1R4R5 x = 36
R1
10
Successor
16
20
15
21
R4R3R5 x = 26 R4R5 x = 21
R3R2R5 x = 21 R3R5 x = 16 R3R4R5x=31
10
R2 R3
10
R4
10
15
20
R5
R5 x = 1
VLAN x
DUAL Example
R1R2 R5 x = 21 R1R3R5 x = 36 R1R4R5 x = 36
Local Distance Advertised Distance Feasible Distance
FD = 21 Find path with AD < 21
X via R4 = 21
X via R3 = 16
R1
10
Successor
16
20
15
21
R4R3R5 x = 26 R4R5 x = 21
R3R2R5 x = 21 R3R5 x = 16 R3R4R5x=31
10
R2 R3
10
R4
10
15
20
R5
R5 x = 1
VLAN x
DUAL Example
R1R2 R5 x = 21 R1R3R5 x = 36 R1R4R5 x = 36
Local Distance Advertised Distance Feasible Distance
FD = 21 Find path with AD < 21
X via R4 = 21
X via R3 = 16
R1
10
Successor
16
20
15
21
R4R3R5 x = 26 R4R5 x = 21
Feasible Successor
10
R2 R3
10
R4
10
15
20
R5
R5 x = 1
VLAN x
Composite Metric - EIGRP
2 256 1 + + 3 256
5 + 4
bw = 107 / minimum path bandwidth in kbps delay = interface delay in secs / 10
The concept of composite metric is always misunderstood
Metric Parameters
Bandwidth: Slowest between Source and Destination Load: Worst load on a link between Source and Destination Delay: Cumulative Delay along the path Reliability: The worst reliability along the path MTU: Smallest MTU on the path (not used in metric calculation) In detail
Composite Metric Calculation in Detail
Unlike other IGPs hop count or BW-based cost, EIGRP metric is a hybrid value comprised of Lowest bandwidth along path in Kbps scaled by 107 * 256 Cumulative delay along path in tens of microseconds (s) scaled by 256 Worst load along path Worst reliability along path Composite metric is computed as metric = [k1 * bandwidth + (k2 * bandwidth)/(256 - load) + k3 * delay] If k5 != 0, metric = metric * [k5/(reliability + k4)] K values allow for manual administrative weighting Must match for adjacency to occur Default K values are K1 = 1, K2 = 0, K3 = 1, K4 = 0, K5 = 0 Implies default composite is bandwidth + delay Reliability and load typically not used since they are constantly changing
Bandwidth
Bandwidth: Slowest between Source and Destination
100,000 Kbps
R1 R2
1544 Kbps
R3
100,000 Kbps
R4
100,000 Kbps 1544 Kbps
Link Type 10 Mbps Ethernet 100 Mbps Ethernet 1 Gbps Ethernet Serial (<=T1) Bandwidth 10000 Kpbs 100000 Kpbs 1000000 Kbps 1544 Kbps Delay 1000
107 / BW = 10,000,000 / 1544 = 156250 Bandwidth is taken from configured interface BW
R1#sh int serial 0/0 | in BW
100 10 20000
MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec, R1#sh int ethernet 0/0 | in BW MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec, R1#sh int fastEthernet 0/0 | in BW MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,
Load
Worst load on a link between Source and Destination Huge file transfer, load will vary Load constantly keeps changing and DUAL calculates for successor, feasible successor Not advised to use in metric calculation
R1#sh int fastEthernet 0/0 | in load reliability 255/255, txload 1/255, rxload 1/255
Delay
100,000 Kbps
R1
1544 Kbps
R2
100,000 Kbps
R3
100 secs
20000 secs
100 secs
R4
Delay: Cumulative Delay along the path Represented in 10s microseconds R1 R2 100secs / 10 == 10 R2 R3 20000secs / 10 == 2000 R3 R4 100secs / 10 == 10 10 + 2000 + 10 = 2020
Reliability
The worst reliability along the path Most of the times it is 255 Depends on keep alive between neighbors Link flaps will change the reliability of the link Not advised to use in metric calculation Reliability will be calculated and informed to upper layer by Physical layer algorithms
MTU
Smallest MTU on the path maximum size of IP packet that can be transmitted without fragmentation
Media Maximum Transmission Unit (bytes) Notes
Internet IPv4 Path MTU
At least 68
Practical path MTUs are generally higher. IPv4 links must be able to forward packets of size up to 68 bytes. Systems may use Path MTU Discovery to find the actual path MTU. This should not be mistaken with the packet size every host must be able to handle, which is 576. Practical path MTUs are generally higher. Systems must use Path MTU Discovery to find the actual path MTU. Nearly all IP over Ethernet implementations use the Ethernet V2 frame format. The limit varies by vendor. For correct interoperation, the whole Ethernet network must have the same MTU. Jumbo frames are usually only seen in special purpose networks.
Internet IPv6 Path MTU Ethernet v2 Ethernet (802.3)
At least 1280 1500 1492
Ethernet Jumbo Frames WLAN (802.11) Token Ring (802.5) FDDI
1500-9000 2272 4464 4352
All Links are Fast Ethernet BW = 100,000 Kbps DLY = 100 Sec Loopback = 10,000,000Kbps DLY = 5000 Sec Loopback Advertised Distance Feasible Distance
Composite Metric calculation
R1
R2
R3
R4
R5
Loopback: [Link]/32
2 + 3 256 5 + 4
256 1 +
All Links are Fast Ethernet BW = 100,000 Kbps DLY = 100 Sec Loopback = 10,000,000Kbps DLY = 5000 Sec Loopback Advertised Distance Feasible Distance
Composite Metric calculation
R1
R2 R5s Metric Calculation to reach [Link]/32 Values: K1 = K3 = 1 (default) bw =
107 10,000,000
R3
R4
10,000,000 10,000,000
=1
delay =
5000 10
= 500 Sec R5
Loopback: [Link]/32
2 + 3 256 5 + 4
Substituting bw and delay into the give formula 256 * ( 1*1 + 1* 500) = 256 * ( 1 + 500) = 256 * (501) = 128256
256 1 +
All Links are Fast Ethernet BW = 100,000 Kbps DLY = 100 Sec Loopback = 10,000,000Kbps DLY = 5000 Sec Loopback Advertised Distance Feasible Distance
Composite Metric calculation
R1
R2
R3
R4
Cost for Loopback is 128256 (AD)
R5
Loopback: [Link]/32
2 + 3 256 5 + 4
256 1 +
All Links are Fast Ethernet BW = 100,000 Kbps DLY = 100 Sec Loopback = 10,000,000Kbps DLY = 5000 Sec Loopback Advertised Distance Feasible Distance
Composite Metric calculation
R1
R2 R2s Metric Calculation to reach [Link]/32 Values: K1 = K3 = 1 (default) bw =
107 100,000
R3
R4
Cost for Loopback is 128256 (AD)
10,000,000 100,000
= 100
delay =
5000 10
= 500 Sec
R5
Substituting bw and delay into the give formula 256 * ( 1*100 + 1* 500) = 256 * ( 1 + 500) = 256 * (501) = 128256
Loopback: [Link]/32
2 + 3 256 5 + 4
256 1 +