EIGRP Tutorial
In this article we will mention about the EIGRP protocol.
In the past, Enhanced Interior Gateway Routing Protocol (EIGRP) is a Cisco-proprietary routing protocol but from March-2013 Cisco opens up EIGRP as an open standard in order to help companies operate in a multi-vendor environment. EIGRP is a classless routing protocol, meaning that it sends the subnet mask of its interfaces in routing updates, which use a complex metric based on bandwidth and delay.
EIGRP is referred to as a hybrid routing protocol because it has the characteristics of both distance-vector and link-state protocols but now Cisco refers it as an advanced distance vector protocol.
Notice: the term “hybrid” is misleading because EIGRP is not a hybrid between distance vector and link-state routing protocols. It is a distance vector routing protocol with enhanced features.
EIGRP is a powerful routing protocol and it is really standout from its ancestor IGRP. The main features are listed below:
+ Support VLSM and discontiguous networks
+ Use Reliable Transport Protocol (RTP) to delivery and reception of EIGRP packets
+ Use the best path selection Diffusing Update Algorithm (DUAL), guaranteeing loop-free paths and backup paths throughout the routing domain
+ Discover neighboring devices using periodic Hello messages to discover and monitor connection status with its neighbors
+ Exchange the full routing table at startup and send partial* triggered updates thereafter (not full updates like distance-vector protocols) and the triggered updates are only sent to routers that need the information. This behavior is different from the link-state protocol in which an update will be sent to all the link-state routers within that area. For example, EIGRP will send updates when a new link comes up or a link becoming unavailable
+ Supports multiple protocols: EIGRP can exchange routes for IPv4, IPv6, AppleTalk and IPX/SPX networks
+ Load balancing: EIGRP supports unequal metric load balancing, which allows administrators to better distribute traffic flow in their networks.
* Notice: The term “partial” means that the update only includes information about the route changes.
EIGRP use metrics composed of bandwidth, delay, reliability, and load. By default, EIGRP uses only bandwidth and delay.
EIGRP use five types of packets to communicate:
+ Hello: used to identify neighbors. They are sent as periodic multicasts
+ Update: used to advertise routes, only sent as multicasts when something is changed
+ Ack: acknowledges receipt of an update. In fact, Ack is Hello packet without data. It is always unicast and uses UDP.
+ Query: used to find alternate paths when all paths to a destination have failed
+ Reply: is sent in response to query packets to instruct the originator not to recompute the route because feasible successors exist. Reply packets are always unicast to the originator of the query
EIGRP sends every Query and Reply message using RTP, so every message is acknowledged using an EIGRP ACK message.
EIGRP Route Discovery
Suppose that our network has 2 routers and they are configured to use EIGRP. Let’s see what will happen when they are turned on.
Firstly, the router will try to establish a neighboring relationships by sending “Hello” packets to others running EIGRP. The destination IP address is 224.0.0.10 which is the multicast address of EIGRP. By this way, other routers running EIGRP will receive and proceed these multicast packets. These packets are sent over TCP.
After hearing “Hello” from R1, R2 will respond with another “Hello” packet.
R2 will also send its routing table to R1 by “Update” packets. Remember that R2 will send its complete routing table for the first time.
R1 confirms it has received the Update packet by an “ACK” message.
R1 will also send to R2 all of its routing table for the first time
R2 sends a message saying it has received R1′s routing table.
Now both R1 & R2 learn all the paths of the neighbor and the network is converged. But there are some notices you should know:
+ After the network converged, “Hello” messages will still be sent to indicate that the it is still alive.
+ When something in the network changes, routers will only send partial updates to routers which need that information.
+ Hellos are sent as periodic multicasts and are not acknowledged directly.
+ The first hellos are used to build a list of neighbors; thereafter, hellos indicate that the neighbor is still alive
To become a neighbor, the following conditions must be met:
+ The router must hear a Hello packet from a neighbor.
+ The EIGRP autonomous system must be the same.
+ K-values must be the same.
EIGRP builds and maintains three tables:
+ Neighbor table: lists directly connected routers running EIGRP with which this router has an adjacency
+ Topology table: lists all routes learned from each EIGRP neighbor
+ Routing table: lists all best routes from the EIGRP topology table and other routing processes
Configuring EIGRP
Router(config)#router eigrp 1 |
Syntax: router eigrp <AS number> Turn on the EIGRP process 1 is the Autonomous System (AS) number. It can be from 1 to 65535. All routers in the same network must use the same AS number. |
Router(config-router)#network 192.168.1.0 |
Router will turn on EIGRP 1 process on all the interfaces belonging to 192.168.1.0/24 network. |
In the next part we will learn about the Feasible Distance & Administrative Distance of EIGRP
@jeff
keep in mind that the admin can set up a different administrative distance for eigrp. 90 is the default value
I know that it is the default value and it can be changed. But on the routing table on page 2, the metric there was feasible distance and not AD. That is my whole issue basically, why is it FD on that routing table.
@jeff
you’re talking about the 3rd table, right? the routing table.
i’m not that good at eigrp, but… it looks like you’re right, it should be “(Administrative Distance)”, not “(Feasible Distance).
anyone else?
Yep, the 3rd table.
@Jeff2: Maybe this is what you want to mention:
Routing table (page 2, 3rd table):
IOWA | Metric (FD) = 90 | Outbound Int = 50 | Next hop: IDAHO
The metric here equals to 90 but it is just a coincidence because 90 = 40 (routerA -> IDAHO) + 50 (IDAHO -> IOWA). 90 here is not the AD of EIGRP.
Now I am confused. On the lab you created, from Router 0, how can I show the neighbor, topology and routing table just for Router 3?
After reading up on EIGRP (from Odom book), the correct entry for the Routing Table on page 2 should be [90/90] and not [90/50]. First 90 is AD of EIGRP and second 90 is FD of successor route.
Thanks alot mate, doing a great job!
great job 9tut
this is not what is on ccna. there was a question about feasible successor. It showed 4 different outputs (not sure to what, show ??)
Can anyone help?
Hi 9tut,
I might be wrong here or there is a typo. AD is used both for Administrative Distance and Advertised Distance. Like in the first line of 2nd page of this tutorial, it says “Administrative Distance (AD)” but in the 3rd line, it says “Advertised distance (AD): the cost from the neighbor to the destination”. I think in the first line, it should also be Advertised Distance because AD is constant for the routing protocols.
Please clarify.
Thanks!!
@Nash D: Yes, I want to mention about Advertised Distance, not Administrative Distance. Thanks for your detection, I updated it!
Thanks 9tut.
Very informative….I appriciate your work….and thanks
Thanks… Very Clean details…
“+ Ack: acknowledges receipt of an update… It is always unicast and uses UDP.”
UDP has no business here. EIGRP uses RTP (Reliable Transport Protocol) for transport which as we know has 3 PDMs (protocol dependent modules) which run on top of IP, IPX and AppleTalk.
The other RTP (Real-time Transport Protocol) which is being used in voice over IP (VoIP) uses UDP, but otherwise than the totally unfortunate acronym collision, it’s entirely unrelated to the RTP used by EIGRP.
Very easy to understand. Thanks so much !!
Good work..keep it up
@9tut
if there is a route with a AD less than the FD of the current successor , but the route is not loop free , like this scenario is it would be elected as feasible successor route to the destination , even if there is a loop back to the current successor route
eg.
naveda->oklahoma->idaho->iowa
this route has AD of 50 wich is less than 90 even 70 wich is elected as a f. successor route
@abdibasid: Yes, the route naveda->oklahoma->idaho->iowa is also elected as a feasible successor route. Notice the above route is loop free.
reallly much appreciated guys.. your efforts are ooossssssssum
If the metric is
metric = [K1 * bandwidth + (K2 * bandwidth)/(256 - load) + K3 * delay] * [K5/(reliability + K4)]
and only K1 and K3 are not zero then the formula becomes K1*bandwidth + K3*delay. Because K1 and K3 are 1 that leave us with metric=bandwidth + delay.
So where can we find that bandwidth=[10^8/(slowest bandwidth)]*256 and delay = [(sum of delay)/10]*256 ?
It Really Good ……
This is very gud information.
Thank you very much.
Hi, I realized an excel file with a comparison of RIP, RIPv2, IGRP, EIGRP, and OSPF. Link to download:
http://matteocappelli.files.wordpress.com/2011/10/compare_rip_igrp_eigrp_ospf_v1-1.xls
Bye!
very precise.
Very helpful.
thnks
If there were Routers E and F connected with Router D with some random AD Between them and Router A had to communicate with ‘F’.
In such topology, Would the AD value change as it is the distance between the neighbor and the Destination but here the Destination is Far. Plz suggest
@9tut
Thanks
Thank you for this short course. Very helpful. :D
@9tut: a small comment about EIGRP packet types
EIGRP uses five packet types:
•Hello/Acks
•Updates
•Queries
•Replies
•Requests
Source: http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080093f07.shtml
As stated earlier, hellos are multicast for neighbor discovery/recovery. They do not require acknowledgment. A hello with no data is also used as an acknowledgment (ack). Acks are always sent using a unicast address and contain a non-zero acknowledgment number.
Updates are used to convey reachability of destinations. When a new neighbor is discovered, update packets are sent so the neighbor can build up its topology table. In this case, update packets are unicast. In other cases, such as a link cost change, updates are multicast. Updates are always transmitted reliably.
Queries and replies are sent when destinations go into Active state. Queries are always multicast unless they are sent in response to a received query. In this case, it is unicast back to the successor that originated the query. Replies are always sent in response to queries to indicate to the originator that it does not need to go into Active state because it has feasible successors. Replies are unicast to the originator of the query. Both queries and replies are transmitted reliably.
Request packets are used to get specific information from one or more neighbors. Request packets are used in route server applications. They can be multicast or unicast. Requests are transmitted unreliably.
really great
there is a question on the test, got me, not sure if i should post it on the routing forum but here is:
it gives 3 routing protocols, RIPv2, OSPF and EIRGP, and ask us to compare which one gets to put onto the routing table, we know the administrative distance is one factor and usually EIGRP would be the choice of the protocols.., how about metric, it gives a metric for RIPv2 of 2, OSPF is 714 and EIGRP is some long number like 424566346
@Me: EIGRP will be chosen because it has the lowest Administrative Distance (90) regardless of the metric.
Thnks guys to all your useful work here. It is saving a lot of preparation time for me.
This week on Thursday I have this CCNA exam.
Before finding this site, I was praying to GOD, wanna talk to the people who has recently
taken this exam to know, the next day morning I have found it.
Thanks to GOD who answers our prayers.
Blessings,
Omnivoice27@yahoo.com
Outbount interface in Routing table must be E0
This site is quiet informative.I love the way each concept was discussed.
thank u,wo learned many new knowledge
will i pass mara?
Good information and nicely put together with easy visuals. I commend you.
Thanks Man…. Very Nice Tutorial…
@9tut and xallax.
Just got confused on calculating the cost. ICND cisco press said that the cisco IOS default formula is 10^8/bandwidth. on page 3 of your tutorial if we use the formula it would be 10^8/100 Mbps = 1.
is this correct?… please advise.
Thanks.
@jay
then something is wrong here because…
“The formulae for calculating EIGRP metric is:
Metric = 256*((K1*Bw) + (K2*Bw)/(256-Load) + (K3*Delay)*(K5/(Reliability + K4)))
k1=bandwidth
k2=load
k3=delay
k4=reliability
k5=MTU
usuallly only Bandwidth and Delay are considered for Bandwidth calculation (by default) . so K1 = 1 and K3 = 1 and rest all are Zero. (although you can change these metric weights (k- values))
applying that on the formula.
the Metric would be
256 *( (k1 * BW) + (K3 * Delay))
BW is Minimum Bandwidth in kpbs and delay is cummulative delay in tens of microseconds.
Apply BW and Delay of that interface in the above said formula and you should be able to calculate the metric.” (https://learningnetwork.cisco.com/thread/37278)
are you sure it said “eigrp cost”? eigrp uses metric (just a name difference)
thanks xallax. Kindly disregard my question.. just got confused.. sorry… the formula is for OSFP cost.
to xallax.
in the routing table of EIGRP…. is the second parameter called FD (feasible distance) or Metric?
Thanks.
@jay
http://www.cisco.com/en/US/docs/ios/12_0/np1/command/reference/1reigrp.html#wp1021269
“The first number is the EIGRP metric that represents the cost to the destination. The second number is the EIGRP metric that this peer advertised.”
first is FD, second is AD
Enlighting enough!!
Thanks….!!
Anyone able to send the latest dumps to me? deskimogangsta@gmail.com
Taking the test this Thursday. Thanks 9tut, you’ve helped so much!
Thanks for all the hard work! Now i’ll be able to actually get a good job :P
This is a great initiative, really helpful. Keep up the good work 9tut whosoever is working behind the scenes :)
@ 9tut
we can easily calculate the AD of that route (with slowest bandwidth = 100,000Kpbs; sum of delay = 10)
metric = (100 + 10) * 256 = 28160
how come delay became 10?? delay=sum of delay/10, so 10/10=1 right??
Thanks