Cisco Systems



Enhanced IGRP (EIGRP)

Enhanced Interior Gateway Routing Protocol (EIGRP)

Enhanced Interior Gateway Routing Protocol (EIGRP) is a Cisco protocol that runs on Cisco routers and on some Cisco switches

EIGRP has a number of features that make it especially useful within large, complex networks. A real standout among these is its support of VLSM, which is crucial to its ultraefficient scalability.

Cisco refers to EIGRP as a distance-vector routing protocol but also as an advanced distance-vector or even a hybrid routing protocol.

Features

There are a bunch of powerful features that make EIGRP a real standout from other protocols. Here’s a list of some of the major ones:
  • Support for IP and IPv6 (and some other useless routed protocols) via protocol-dependent modules
  • Considered classless (same as RIPv2 and OSPF)
  • Support for VLSM/CIDR
  • Support for summaries and discontiguous networks
  • Efficient neighbor discovery
  • Communication via Reliable Transport Protocol (RTP)
  • Best path selection via Diffusing Update Algorithm (DUAL)
  • Reduced bandwidth usage with bounded updates
  • No broadcasts

Neighbor Discovery

Before EIGRP routers can exchange routes with each other, they must become neighbors, and there are three conditions that must be met before this can happen


And these three things will be exchanged with directly connected neighbors:
  • Hello or ACK received [acknowledgement (ACK)]
  • AS numbers match
  • Identical metrics (K values)

Understand that the AS number is irrelevant—that is, as long as all routers use the same number! You can use any number from 1 to 65,535.

LAB(config)#router eigrp ?
<1-65535> Autonomous system number

Syntax

Method 1
R1(config)#router eigrp AS-number
R1(config-router)#network net IP
R1(config-router)#network net2 IP
R1(config-router)#no auto-summary

NB:
📝 Eigrp est configuré dans un environnement composé uniquement de routeurs cisco
📝 Par défaut le routeur est en "auto-summary".si dans l’environnement on a eu à utiliser des masques de sous réseaux, on ajoute "no auto-summary".

Method 2

By using the command network 10.0.0.0, we can effectively advertise to all subnets within that classful network; however, take a look at this configuration now:

R1(config)#router eigrp AS-Number
R1(config-router)#network Network-IP Wildcard mask
R1(config-router)#network Network-IP Wildcard mask


Example
R1#config t
R1(config)#router eigrp 20
R1(config-router)#network 10.10.11.0 0.0.0.255
R1(config-router)#network 172.16.10.0 0.0.0.3
R1(config-router)#network 172.16.10.4 0.0.0.3

Corp(config)#router eigrp ?
<1-65535> Autonomous System
WORD EIGRP Virtual-Instance Name
Corp(config)#router eigrp 20

Commands

LAB#show ip eigrp neighbors
Shows all EIGRP neighbors, their IP addresses, and the retransmit interval and queue counts for the adjacent routers

LAB#show ip eigrp interfaces Lists the interfaces on which the router has actually enabled EIGRP
LAB#show ip route eigrp Shows EIGRP entries in the routing table
LAB#show ip route Net-IP Display Routing Details for a Network
LAB#show ip eigrp topology Shows entries in the EIGRP topology table
LAB#show ip eigrp topology Net-IP mask Shows entries in the EIGRP topology table for a network
LAB#show ip eigrp traffic Shows the packet count for EIGRP packets sent and received
LAB#show ip protocols Shows information about the active protocol sessions
LAB#show ip eigrp interface detail s0/0
LAB#show ip eigrp events
LAB#show ip route Net-IP

R1#sh ip route 192.168.2.0

Controlling EIGRP Traffic

But what if you need to stop EIGRP from working on a specific interface? Maybe it’s a connection to your ISP, or where we didn’t want to have the g0/0 interface be part of the EIGRP process as in our earlier example. All you need to do is to flag the interface as passive, and to do this from an EIGRP session, just use this command:
passive-interface interface-type interface-number

This works because the interface-type portion defines the type of interface and the interface-number portion defines the number of the interface. The following command makes interface serial 0/0 into a passive interface:
Corp(config)#router eigrp 20
Corp(config-router)#passive-interface g0/0


EIGRP Tables

Neighbor table Contains information about the specific routers with whom neighbor relationships have been formed. It also displays information about the Hello transmit interval and queue counts for unaccounted Hello acknowledgment.

LAB#show ip eigrp neighbors

Topology table Stores the route advertisements received from each neighbor. All routes in the AS are stored in the topology table, both successors and feasible successors.

LAB#show ip eigrp topology Shows entries in the EIGRP topology table

Route table Stores the routes that are currently in use to make local routing decisions. Anything in the routing table is considered a successor route.

LAB#show ip route eigrp Shows EIGRP entries in the routing table

The neighbor and topology tables are stored in RAM and maintained through the use of Hello and update packets. While the routing table is also stored in RAM, the information stored in the routing table is gathered only from the topology table.

EIGRP Terms

Successor A successor route—again, think “successful”—is the best route to a remote network. A successor route is the lowest cost to a destination and stored in the topology table along with everything else. However, this particular best route is copied and placed in the routing table so IP can use it to get to the remote network. The successor route is backed up by a feasible successor route, which is also stored in the topology table, if there’s one available. The routing table contains only successor routes; the topology table contains successor and feasible successor routes.

Feasible successor (FS) So a feasible successor is basically an entry in the topology table that represents a path that’s inferior to the successor route(s). An FS is defined as a path whose advertised distance is less than the feasible distance of the current successor and considered a backup route. EIGRP will keep up to 32 feasible successors in the topology table in 15.0 code but only up to 16 in previous IOS versions, which is still a lot! Only the path with the best metric—the successor—is copied and placed in the routing table. The show ip eigrp topology command will display all the EIGRP feasible successor routes known to the router.

A feasible successor is a backup route and is stored in the topology table. A successor route is stored in the topology table and is copied and placed in the routing table.

Reliable Transport Protocol (RTP)

EIGRP depends on a proprietary protocol, called Reliable Transport Protocol (RTP), to manage the communication of messages between EIGRP-speaking routers. As the name suggests, reliability is a key concern of this protocol, so Cisco designed this mechanism, which leverages multicasts and unicasts, to ensure that updates are delivered quickly and that data reception is tracked accurately.

When EIGRP sends multicast traffic, it uses the Class D address 224.0.0.10, and each EIGRP router knows who its neighbors are. For each multicast it sends out, a list is built and maintained that includes all the neighbors who have replied. If a router doesn’t get a reply from a neighbor via the multicast, EIGRP will then try using unicasts to resend the same data. If there’s no reply from a neighbor after 16 unicast attempts, that neighbor will then be declared dead. This process is often referred to as reliable multicast.

Routers keep track of the information they send by assigning a sequence number to each packet that enables them to identify old, redundant information and data that’s out of sequence. You’ll get to actually see this information in the neighbor table coming up when we get into configuring EIGRP.

Remember, EIGRP is all about topology changes and updates, making it the quiet, performance-optimizing protocol it is. Its ability to synchronize routing databases at startup time, while maintaining the consistency of databases over time, is achieved quietly by communicating only necessary changes. The downside here is that you can end up with a corrupted routing database if any packets have been permanently lost or if packets have been mishandled out of order!

Diffusing Update Algorithm (DUAL)

I mentioned that EIGRP uses Diffusing Update Algorithm (DUAL) for selecting and maintaining the best path to each remote network. DUAL allows EIGRP to carry out these vital tasks:

  • Figure out a backup route if there’s one available.
  • Support variable length subnet masks (VLSMs).
  • Perform dynamic route recoveries.
  • Query neighbors for unknown alternate routes.
  • Send out queries for an alternate route.

Quite an impressive list, but what really makes DUAL so great is that it enables EIGRP to converge amazingly fast! The key to the speed is twofold: First, EIGRP routers maintain a copy of all of their neighbors’ routes to refer to for calculating their own cost to each remote network. So if the best path goes down, all it often takes to find another one is a quick scan of the topology table looking for a feasible successor. Second, if that quick table survey doesn’t work out, EIGRP routers immediately ask their neighbors for help finding the best path. It’s exactly this, ahem, DUAL strategy of reliance upon, and the leveraging of, other routers’ information that accounts for the algorithm’s “diffusing” character. Unlike other routing protocols where the change is propagated through the entire network, EIGRP bounded updates are propagated only as far as needed.

Three critical conditions must be met for DUAL to work properly:
  • Neighbors are discovered or noted as dead within a finite time.
  • All transmitted messages are received correctly.
  • All changes and messages are processed in the order in which they’re detected.

As you already know, the Hello protocol ensures the rapid detection of new or dead neighbors, and RTP provides a reliable method of conveying and sequencing messages. Based upon this solid foundation, DUAL can then select and maintain information about the best paths. Let’s check further into the process of route discovery and maintenance next.

VLSM Support and Summarization

Being one of the more sophisticated classless routing protocols, EIGRP supports using variable length subnet masks. This is good because it allows us to conserve address space by using subnet masks that map to specific host requirements in a much better way. Being able to use 30-bit subnet masks for the point-to-point networks that I configured in our internetwork is a great example. Plus, because the subnet mask is propagated with every route update, EIGRP also supports the use of discontiguous subnets, giving us greater administrative flexibility when designing a network IP address scheme. Another versatile feature is that EIGRP allows us to use and place route summaries at strategically optimal locations throughout the EIGRP network to reduce the size of the routing table.

Keep in mind that EIGRP automatically summarizes networks at their classful boundaries and supports the manual creation of summaries at any and all EIGRP routers. This is usually a good thing, but by checking out the routing table in the Corp router, you can see the possible complications that auto-summarization can cause:

Maximum Paths and Hop Count

By default, EIGRP can provide equal-cost load balancing across up to 4 links. RIP and OSPF do this too. But you can have EIGRP actually load-balance across up to 32 links with 15.0 code (equal or unequal) by using the following command:

Corp(config)#router eigrp 10
Corp(config-router)#maximum-paths ?
<1-32> Number of paths

EIGRP has a default maximum hop count of 100 for route update packets, but it can be set up to 255. Chances are you wouldn’t want to ever change this, but if you did, here is how you would do it:

Corp(config)#router eigrp 10
Corp(config-router)#metric maximum-hops ?
<1-255> Hop count

As you can see from this router output, EIGRP can be set to a maximum of 255 hops. Even though it doesn’t use hop count in the path metric calculation, it still uses the maximum hop count to limit the scope of the AS.

EIGRP Metrics

Unlike many other protocols that use a single element to compare routes and select the best possible path, EIGRP uses a combination of these four factors:

  • Bandwidth
  • Delay
  • Load
  • Reliability


By default, K1 = 1, K2 = 0, K3 = 1, K4 = 0, K5 = 0.

Note: If K5 is set to zero, the last part of the EIGRP metric calculation formula (K5/(Reliability + K4)) is taken as 1.

If necessary, you can adjust the constant K values on a per-interface basis, but I would recommend that you only do this under the direction of the Cisco Technical Assistance Center (TAC). Metrics are tuned to change the manner in which routes are calculated. The K values can be seen with a show ip protocols output:

Delay equals the sum of all the delays of the links along the path.
Delay = [Delay in 10s of microseconds] × 256.

Bandwidth is the lowest bandwidth of the links along the path.
Bandwidth = [10000000 / (bandwidth in Kbps)] × 256.

By default, metric = lowest bandwidth along path + sum of all delays along path.



EIGRP has total 5 metrics which are the following:

K1= Bandwidth (Slowest outgoing interface’s BW measured in Kbits)
K2= Load (total load of the path)
K3= Delay (Total delay of path)
K4= Reliability(Avg reliability of the path)
K5= MTU (Min MTU of the interface)


K Value Component Description
K1 Bandwidth Lowest bandwidth of route
K2 Load Worst load on route based on packet rate
K3 Delay Cumulative interface delay of route
K4 Reliability Worst reliability of route based on keep alive
K5 MTU Smallest MTU in path [Not used in route calculation]








EIGRP Packets

5 different types of packets used by EIGRP

Update An Update packet contains route information. When these are sent in response to metric or topology changes, they use reliable multicasts. In the event that only one router needs an update, like when a new neighbor is discovered, it’s sent via unicasts. Keep in mind that the unicast method still requires an acknowledgment, so updates are always reliable regardless of their underlying delivery mechanism.

Query A Query packet is a request for specific routes and always uses the reliable multicast method. Routers send queries when they realize they’ve lost the path to a particular network and are searching for alternatives.

Reply A Reply packet is sent in response to a query via the unicast method. Replies either include a specific route to the queried destination or declare that there’s no known route.

Hello A Hello packet is used to discover EIGRP neighbors and is sent via unreliable multicast, meaning it doesn’t require an acknowledgment.

ACK An ACK packet is sent in response to an update and is always unicast. ACKs are never sent reliably because this would require another ACK sent for acknowledgment, which would just create a ton of useless traffic!


Eninam BAGNABANA     |         |     bagnadavid@outlook.fr     |