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 | 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.