Cisco’s Enhanced Interior Gateway Routing Protocol (EIGRP)

EIGRP uses some concepts from IGRP such as a composite metric, protocol domain, AS numbers, un-equal cost load balancing, but it is a very different protocol.

One of the major differences is the routing algorithm used. IGRP (and other distance vector protocols) use the Bellman Ford algorithm. EIGRP uses the Diffusing Computations, based on the Diffusing Update Algorithm (DUAL). Distributed route calculation is performed in a coordinated approach among several routers to attain rapid convergence, while being loop free at every instant.

EIGRP updates are vectors of distances send out to adjacent neighbors. Updates are: Bounded, Non-Periodic and Partial. Bounded means that the update is send to only affected neighbors. Non-Periodic means that updates are send in case of a topology change. Partial means only affected routes are advertise, not the full routing table.

EIGRP uses IP Protocol number 89.

Components of EIGRP

EIGRP has four components:

1. Protocol Dependent Module

2. Reliable Transport Protocol

3. Neighbor Discovery/Recovery

4. Diffusing Update Algorithm (DUAL)

 

Protocol Dependent Module (PDM)

EIGRP emerged from IGRP, therefore, support for IPX and AppleTalk are still there. The PDM is responsible for protocol-specific routing. For example: AppleTalk EIGRP is responsible for exchanging route information about AppleTalk network with other AppleTalk EIGRP processes and passing the information to the DUAL.

 

Reliable Transport Protocol (RTP)

RTP is responsible for delivery and reception of EIGRP messages. Reliable as the name suggest, the packet delivery will be guaranteed and in-order. EIGRP uses a propriety algorithm known as Reliable Multicast with a reserved class D address: 224.0.0.10. The acknowledgement is then unicast to neighbors. Ordered delivery is guaranteed with sequence numbers.

 

Neighbor Discovery and Tracking

Remember that updates are non-periodic, so there must be some mechanism to track the neighbor an in-case of new adjacency, how a node will announce itself or discover a new neighbor? EIGRP implement a hello protocol; hello packet are multicast to reserved class D address 224.0.0.10 every 5-seconds (by-default) on multi-access network. Hellos are usually unacknowledged.

 

DUAL Concepts

 

DUAL is diffusing computation algorithm published by Dr. J. J. Garcia. There are lots details however the following concepts are essential to EIGRP.

 

 Adjacency: logical session between two neighbors over which route information is exchanged

 Feasible Distance (FD): Lowest-Cost = Lowest FD. Lowest calculated distance to each destination. Cost from local router = AD of next-hop + cost b/w local router and next-hop router.

 Reported/Advertised Distance (AD or RD): is the distance (metric) towards a destination as advertised by an upstream neighbor.

 Feasible Condition (FC): AD/RD of neighbor must be less than FD of current successor route. That is: RD/AD (feasible successor) < FD (current successor). If a neighbor’s metric is less than that of a router then the router knows that the neighbor doesn't have a loop going through itself.

 Successor: A (Current) Successor is a neighboring router that is currently being used for packet forwarding, provides the least-cost route to the destination, and is not part of a routing loop. With two or more successors (routes) if FDs are the same, load balancing happens automatically.

 Feasible Successor (FS): Backup router with loop-free path. FS is a neighbor who’s Reported or Advertised Distance (AD/RD) is less than the current Feasible Distance (FD). Feasible Successor is one who meets the feasible condition (FC).

Now let us look at some configuration examples. Consider figure-1 for details. R1 and R2 are advertising loopbacks 1.1.1.1/32 and 2.2.2.2/32.

 

FIGURE-1: EIGRP Basic Configuration Example

 

Step-1: configure terminal

Step-2: router eigrp

Step-3: eigrp router-id

Step-3: network |

[wildcard mask]

Step-4: no auto-summary

Step-5: end

 

For EIGRP neighbor to become adjacent, the following conditions must be met including:

 

1. Same AS number

2. Same subnet ID on the connected interface

3. Same weight value

4. Have same authentication parameters

 

Below is the configuration script for R1 and R2.

Router R1

Router R2

router eigrp 100

network 1.0.0.0

network 192.168.12.0

auto-summary

router eigrp 100

network 2.2.2.2 0.0.0.0

network 192.168.12.2 0.0.0.0

auto-summary

Note that both routers use different styles. One with wildcard mask and other simply include the network number. The advantage of using wildcard mask is that EIGRP is enables on specific interface dictated by the wildcard mask. For example: If R2 has multiple interface using network number 192.168.12.0 with different subnet mask, wildcard mask will allows us to selectively run the EIGRP process on selective interface only. It is totally contrary to the plain network number where EIGRP is run on all interface belonging to the major network number.

Now let us look at the routing tables.

R1# show ip route | begin Gateway

Gateway of last resort is not set

192.168.12.0/24 is variably subnetted, 2 subnets, 2 masks

C 192.168.12.0/30 is directly connected, Serial0/0

D 192.168.12.0/24 is a summary, 00:10:26, Null0

1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

C 1.1.1.1/32 is directly connected, Loopback0

D 1.0.0.0/8 is a summary, 00:10:26, Null0

2.0.0.0/32 is subnetted, 1 subnets

D 2.2.2.2 [90/3139840] via 192.168.12.2, 00:07:04, Serial0/0

 

R2# show ip route | begin Gateway

Gateway of last resort is not set

D 1.0.0.0/8 [90/3139840] via 192.168.12.1, 00:08:25, Serial0/0

2.0.0.0/32 is subnetted, 1 subnets

C 2.2.2.2 is directly connected, Loopback0

C 192.168.12.0/22 is directly connected, Serial0/0

 

Note EIGRP routes are indicated with letter “D” and for network 1.1.1.1/32; we also have 1.0.0.0/8 pointing to Null 0 interfaces on R1. What is it? Actually EIGRP is CLASSFULL by nature and it does auto summarization at major network boundary only. In this case for R1 and R2, 1.1.1.1/32 and 2.2.2.2/32 are separated with 192.168.12.0/30. That is why, R2 has only 1.0.0.0/8 route. To override this behavior, we must include the “no auto-summary” command. Also note, if routes are advertise with complete wildcard mask (on R2), this auto-summary rule is override.

 

Router R1 and R2

router eigrp 100

no auto-summary

 

Let us look at R1 and R2 routing tables:

R1# show ip route | begin Gateway 

Gateway of last resort is not set

192.168.12.0/30 is subnetted, 1 subnets

C 192.168.12.0 is directly connected, Serial0/0

1.0.0.0/32 is subnetted, 1 subnets

C 1.1.1.1 is directly connected, Loopback0

2.0.0.0/32 is subnetted, 1 subnets

D 2.2.2.2 [90/3139840] via 192.168.12.2, 00:00:06, Serial0/0

 

R2# show ip route | begin Gateway 

Gateway of last resort is not set

1.0.0.0/32 is subnetted, 1 subnets

D 1.1.1.1 [90/3139840] via 192.168.12.1, 00:00:02, Serial0/0

2.0.0.0/32 is subnetted, 1 subnets

C 2.2.2.2 is directly connected, Loopback0

C 192.168.12.0/22 is directly connected, Serial0/0

Note there are no summaries being advertise after “no auto-summary” is applied.

Next we look at the how EIGRP calculate the so called composite metric. Only R2 is considered. Since EIGRP rooted toward IGRP, it has the same composite metric formula but scaled by 8-bits (2^8=256) to compensate enhancement. The composite metric is given by:

Metric = 256 x [k1xBW(IGRP) + {k2xBW(IGRP)/256-LOAD} + k3xDLY(IGRP)] x k5/(Reliability +k4)]

As show above, the composite metric consists of:

 

1- BW(EIGRP)= 10^7/minimum BW toward the route

2- Delay is expressed as tens of microseconds, denoted by DLY with “show interface” command. Delay of EGRP is expressed as: DLY(EIGRP)=DLY/10

3- Reliability is an 8-bit number expressed as ratio with “show interface” command, 255 being 100% reliable

4- Load is an 8-bit number and express as a fraction with “show interface” command. 255 denotes the maximum load and 1 is minimum load

5- Maximum Transmission Unit (MTU)

 

Warning: BW(EIGRP) is the minimum BW(EIGRP) of outgoing interfaces along the route to the destination and DLY(EIGRP) the sum of total DLY(EIGRP) of the route

By default only bandwidth and delay is considered, therefore:

Metric = 256 x (Bandwidth + Delay)

Now let us look at the detail at R2 for route 1.1.1.1/32 advertised by R1:

 

R2# show ip route 1.1.1.1

Routing entry for 1.1.1.1/32

Known via “eigrp 100”, distance 90, metric 3139840, type internal

Redistributing via eigrp 100

Last update from 192.168.12.1 on Serial0/0, 00:24:00 ago

Routing Descriptor Blocks:

* 192.168.12.1, from 192.168.12.1, 00:24:00 ago, via Serial0/0

Route metric is 3139840, traffic share count is 1

Total delay is 25000 microseconds, minimum bandwidth is 1024 Kbit

Reliability 255/255, minimum MTU 1500 bytes

Loading 1/255, Hops 1

R2# show interface serial0/0

R2#sh interface ser0/0

Serial0/0 is up, line protocol is up

Hardware is PowerQUICC Serial

Internet address is 192.168.12.2/22

MTU 1500 bytes, BW 1024 Kbit, DLY 20000 usec,

reliability 255/255, txload 1/255, rxload 1/255

 

Now let look at R1:

R1# show interface loopback 0

R1#sh interface lo0

Loopback0 is up, line protocol is up

Hardware is Loopback

Internet address is 1.1.1.1/32

MTU 1514 bytes, BW 8000000 Kbit, DLY 5000 usec,

reliability 255/255, txload 1/255, rxload 1/255

Since minimum bandwidth is considered across a route, and R1 and R2 are configured for 1024 Kbps. The delay toward R1 through interface serial0/0 is 20000 microseconds (or 20000/10=2000) and delay for loopback0 interface is 5000 microseconds (or 500).

Metric = 256 x [10^7/1024 + (2000+500)]

Metric = 256 x [9765.625 + 2500]

Metric = 256 x [12265.625]

Metric = 3140000 (approximately equal to 3139840)

 

Lastly, EIGRP also include the Hop Count feature, which is extended to 255 as compared to 16 for RIP. The default hop count limit for EIGRP is 100 and can be changed with “metric maximum-hops” command. Consider R1:

router eigrp 100

metric maximum-hops 150

R1# show ip protocols

Routing Protocol is “eigrp 100”

Outgoing update filter list for all interfaces is not set

Incoming update filter list for all interfaces is not set

Default networks flagged in outgoing updates

Default networks accepted from incoming updates

EIGRP metric weight K1=1, K2=0, K3=1, K4=0, K5=0

EIGRP maximum hopcount 150

EIGRP maximum metric variance 1

Redistributing: eigrp 100

EIGRP NSF-aware route hold timer is 240s

Automatic network summarization is not in effect

Maximum path: 4

Routing for Networks:

1.0.0.0

192.168.12.0

Routing Information Sources:

Gateway Distance Last Update

(this router) 90 01:07:42

192.168.12.2 90 00:00:04

Distance: internal 90 external 170

It is easy to configure a technology, but an important thing is to understand how it works. Today’s lesson discussed some important details of a hybrid routing protocol, specifically, Cisco’s EIGRP that is essential for CCNA level engineer.