Ex2 Chapter 9 – EIGRP

Interior Gateway Routing Protocol (IGRP) is a distance vector interior routing protocol (IGP) invented by Cisco. It is used by routers to exchange routing data within an autonomous system.
IGRP was developed in 1985 in response to the limitations of RIPv1. 

Enhanced Interior Gateway Routing Protocol (EIGRP) -  is a Cisco proprietary routing protocol loosely based on their original IGRP. EIGRP is an advanced classless distance-vector routing protocol, with optimizations to minimize both the routing instability incurred after topology changes, as well as the use of bandwidth and processing power in the router.
EIGRP was released in 1992 with Cisco IOS v 9.21 .

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. 

Both IGRP and EIGRP use bandwidth, delay, reliability, and load as metrics instead of hop count.

•  Classful routing
•  Bellman-Ford Algorithm
•  Periodic Updates
•  Holddown timer

•  No periodic updates
•  Uses a topology table in addition to routing table
•  Does not use holddown timer
•  Hello packets to maintain connection status
•  Provides authentication and encryption methods

EIGRP Class Facts
EIGRP is a powerful routing protocol and it is really standout from its ancestor IGRP. The main features are listed below:
+ Support VLSM,
CIDR and discontiguous networks
* VLSM (Variable Length Subnet Masking) is a technique that allows network administrators to divide an IP address space to subnets of different sizes, unlike simple same-size subnetting.
- Classless Inter-Domain Routing. CIDR is also called supernetting. It's an IP addressing scheme that replaces the older system based on classes A, B, and C. With CIDR, a single IP address can be used to designate many unique IP addresses. A CIDR IP address looks like a normal IP address except that it ends with a slash followed by a number, called the IP prefix. For example: 

* CIDR is based on VLSM which allows a network to be divided into different sized subnets. * VLSM was designed for subnetting (making smaller). 
   CIDR was designed for supernetting/aggregating (making larger).
Summarization is the process of advertising only the major network portion of subnets in a routing table.
* A contiguous network is a single Class A, B, or C network for which all routes to subnets of that network pass through only other subnets of that same single network
* Discontiguous networks refer to the concept that, in a single Class A, B, or C network, there is at least one case in which the only routes to one subnet pass through subnets of a different network.
or A discontiguous network will have two or more subnetworks of a classful network connected together by different classful 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.

+ By default, EIGRP uses auto summarization (can be disabled this with the no auto-summary command )
Everything will be auto-summary by default at the classful boundaries since the EIGRP process for the IOS version is for auto-summary enabled.
Router auto-summarize only local network (connecteed).
It wont summarise routes learned from other routers. 
When auto summarization is turned on: If there is at least one subnet learned from EIGRP then there will be a child route with Null0 as the exit interface.  This happens so that if a packet does not match any of the learned routes in the parent then the packet is forwarded to the Null0 interface (bit bucket).
Null0 is not an actual interface.
Notice that the summary routes are sourced from Null0 - this is because these routes are used for advertisement purposes
Note: EIGRP automatically includes a null0 summary route as a child route whenever both of following conditions exist:There is at least one subnet that was learned via EIGRP

EIGRP Message Format
IP Address (multicast) =
Protocol = 88
Destination MAC = 01-00-5E-00-00-0A
EIGRP is protocol independent it can run on IP, IPX or any other routed protocol that has an EIGRP module created.  Because it is protocol independent it cannot use TCP or UDP for delivery services.  Therefore it has its own protocol RTP, Reliable Transport Protocol that handles these services. RTP can send both unicast and multicast addresses and handles both reliable and unreliable transport (similar to TCP / UDP concept).

EIGRP Packets
•  Hello – discover neighbors and adjacencies, unreliable transport
•  Update – sent only when necessary, contain only needed information, and is directed only to routers that need the information via unicast or multicast, reliable transport
•  Acknowledgement – are sent in response to a reliable transport, unreliable transport
•  Query – used by DUAL to search for networks and other tasks, queries sent via unicast or multicast, reliable transport
•  Reply – used by DUAL to search for networks and other tasks, queries sent via unicast, reliable transport.

Hello Packet
To initialize information sharing in EIGRP Hello Packets are used.  They help establish adjacencies with neighbors.  Neighbors are other routers running EIGRP on shared, directly connected networks.  These packets are sent every 5 seconds on most networks

On Non-Broadcast Multi-Access networks (NBMA) such as ATM, Frame Relay, and X.25 with access links of T1 or slower unicast Hello Packets are sent every 60 seconds.
The assumption EIGRP routers make is that if it is receiving hello packets from its neighbors then the routes are viable. EIGRP uses a hold time of 15 seconds (3 times the hello packet interval) and 180 seconds on NBMA networks.  After this time has expired without any hello packets received the router considers the path down and uses DUAL to locate the next best path.

EIGRP Bounded Updates
When the state of a destination changes routers send partial updates, which only includes information about the route changes.  Bounded updates refers to the concept that partial updates are only sent to routers that require this information change.  This method of sending updates help conserve bandwidth.

Administrative Distances
EIGRP Summary Route = 5
Internal EIGRP = 90
External EIGRP = 170
Autonomous Systems
An autonomous system (AS) is a collection of networks under the administrative control of a single entity that presents a common routing policy to the Internet.  Usually only ISP, backbone providers, or large corporations are assigned an AS.  IANA assigns AS numbers along with IP address blocks.  Prior to 2007 AS numbers were 16 bit, now they are 32 bit.  The only protocol that uses AS numbers in its configuration is BGP, which is used by ISPs and large networks to connect to other autonomous systems.

Process ID
Both EIGRP and OSPF used Process ID’s to represent a single instance of the protocol. EIGRP can have multiple instances running one for each different routed protocol running on the router.  Unfortunately they use AS as the description of the process ID, which is incorrect.  You need to create your own process ID, which is not related to an assigned AS and it can be any 16 bit number.  You enter this when you start the EIGRP service.
Router(config)# router eigrp 1
Router(config-router)# network
Note:  All routers within this EIGRP routing domain must use the same process ID.  Also note that the network command requires the classful network address to be entered. There are times when you only want specific subnets to be shared.  If this is desired you need to enter a wildcard mask after the network address. For example, you have three networks connected to one router:,, and  You want only the last two networks to be included in the EIGRP updates.  Therefore you enter the following commands.
Router(config)# router eigrp 1
Router(config-router)# network
Router(config-router)# network
The wildcard mask is the binary inverses of each bit.  For example /30 is if you translate this into binary you have 11111111.11111111.11111111.11111100 now take the inverse of each bit and you have 00000000.00000000.00000000.00000011 which is (wildcard mask).  Any easier way to come up with the solution is to take and subtract you’ll end up with your wildcard mask each time.

Verifying EIGRP
Issue the command show ip eigrp neighbors.  This provides information about the status and connections you have with your neighbors.  This is also known as the neighbor table.
show ip protocols command also is an option for learning information about the status of EIGRP.

Bandwidth -  is a STATIC (depending on interface: T1, FE) value used by some routing protocols such as EIGRP and OSPF to calculate their routing metric. The bandwidth is displayed in Kbit (kilobits).     Modifying the bandwidth value does not change the actual bandwidth of the link.           
Delay - is a measure of the time it takes for a packet to traverse a route.           The delay (DLY) metric is a STATIC (depending on media type: FE, ATM, T1, 56K) value based on the type of link to which the interface is connected and is expressed in microseconds.
Reliability - is a measure of the probability that the link will fail or how often the link has experienced errors. Unlike delay, Reliability is measured dynamically with a value between 0 and 255, with 1 being a minimally reliable link and 255 one hundred percent reliable           
Load - reflects the amount of traffic utilizing the link. Like reliability, load is measured dynamically with a value between 0 and 255. Similar to reliability, load is expressed as a fraction of 255.

Metric Formula
metric = [ K1*bandwidth + (K2*bandwidth) / (256 – load) + K3*delay ] * [ K5 / (reliability + K4) ]
By default the following values are set for K:
K1 (bandwidth) = 1
K2 (load) = 0
K3 (delay) = 1
K4 (reliability) = 0
K5 (reliability) = 0
 To change the values enter the following command.
Router(config-router)# metric weights tos k1 k2 k3 k4 k5
You can view the default values through the command show ip protocols.

Setting Bandwidth
Because bandwidth is used as part of the metric a value needs to be set.  There is a default value for most interfaces of 1544 kb (values are set in terms of kb).  This is not a true reflection of the actual bandwidth.  Bandwidth is a static value when it comes to configuration of routing protocols.  If you need to change the value to reflect the true bandwidth of the link then issue the following commands.
Router(config-if)# bandwidth 64
Issuing no bandwidth will return the configuration back to the default setting.

DUAL Concepts

DUAL provides:
- Loop-free paths
- Loop-free backup paths which can be used immediately
- Fast convergence
- Minimum bandwidth usage with bounded updates.

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

EIGRP saves not only the best (least-cost) route but all routes, allowing convergence to be much quicker. Further, EIGRP updates are sent only upon a network topology change; updates are not periodic.


Successor is a neighboring router that is used for packet forwarding and is the least-cost route to the destination network.  
Feasible distance (FD) is the lowest calculated metric to reach the destination network.FD is the metric listed in the routing table entry.
Feasible successor (FS) is a neighbor who has a loop-free backup path to the same network as the successor by satisfying the feasibility condition. 
Feasibility condition (FC) is met when a neighbor's reported distance (RD) to a network is less than the local router's feasible distance to the same destination network. The reported distance or advertised distance is simply an EIGRP neighbor's feasible distance to the same destination network.
To view the topology database issue the following command, 
show ip eigrp topology

The successor, feasible distance, and any feasible successors with their reported distances are kept by a router in its EIGRP topology table or topology database.  
P - This route is in the passive state ( DUAL is not performing its diffusing computations to determine a path for a network, the route will be in a stable mode)
If DUAL is recalculating or searching for a new path, the route will be in an active state. - This is the destination network that is also found in the routing table.
1 successors - This shows the number of successors for this network.
FD is 3014400 - This is the feasible distance, the EIGRP metric to reach the destination network.

via - This is the next-hop address of the successor. This address is shown in the routing table.
3014400 - This is the feasible distance to It is the metric shown in the routing table.
28160 - This is the reported distance of the successor and is R3's cost to reach this network.
Serial0/0/1 - This is the outbound interface used to reach this network, also shown in the routing table.

via - This is the next-hop address of the feasible successor.
41026560 - This would be R2's new feasible distance to if R1 became the new successor.
2172416 - This is the reported distance of the feasible successor or R1's metric to reach this network. This value, RD, must be less than the current FD of 3014400 to meet the feasibility condition.
Serial0/0/0 - This is the outbound interface used to reach feasible successor, if this router becomes the successor.

To view all links, even those not installed as a FS issue,  
show ip eigrp topology all-links

Finite State Machine
The centerpiece of EIGRP is DUAL and its EIGRP route-calculation engine. The actual name of this technology is DUAL Finite State Machine (FSM). To watch how the FSM works issue this command, debug eigrp fsm.
What if there are no feasible successors available?  If there are no feasible successors in the topology table, DUAL will put the network into the active state. DUAL will actively query its neighbors for a new successor.

Manual Summarization
EIGRP allows you to manually configure summarization on each interface.  The commands to issue are:
Router(config)# int s0/0
Router(config-if)# ip summary-address eigrp 1
Default Route
You can use redistribute static to propagate a static default route with EIGRP.  Notice inside the routing table how it is listed as an externally learned EIGRP route with AD of 170.

R(config)#ip route loopback 1
R(config)#router eigrp 1
R(config-router)#redistribute static
D*EX [170/3651840] via, 00:01:08, Serial0/1
D - This static route was learned from an EIGRP routing update.
* - The route is a candidate for a default route.
EX - The route is an external EIGRP route, in this case a static route outside of the EIGRP routing domain.
170 - This is the administrative distance of an external EIGRP route.

EIGRP sample config:
router eigrp 89
  redistribute connected
  passive-interface default
  no passive-interface FastEthernet0/0/0
  distribute-list EIGRP out
  distribute-list EIGRP in
  no eigrp log-neighbor-changes

EIGRP uses split horizon or advertises a route as unreachable when:
 - two routers are in startup mode (exchanging topology tables for the first time),
 - advertising a topology table change,
 - sending a query,
Count to infinite
EIGRP use 224 maximum hop count
Split Horizon
Never advertise a route out of the interface through which you learned it.
Split Horizon basically just sums up to this one rule: When you tell someone about something, you don't tell that person about something that he/she already knows. Facts :
1. Turned on by default on EIGRP, IGRP and RIP.
2. When it is ON, the rule is active.
Poison reverse is another way of avoiding routing loops. Its rule states:
Once you learn of a route through an interface, advertise it as unreachable back through that same interface.

Notes from http://kintner.files.wordpress.com/2007/11/eigrp-notes.doc


  • Cisco Proprietary Protocol
  • Advanced distance vector
  • Automatic summarization at classful boundary (can be disabled/turned off)
    • supports VLSM/CIDR
    • manually summarized routes have AD of 5, point to NULL0
    • more specific routes within summarized range must exist in routing table, or summarized route disappears
  • multicast address
    • Unicast and multicast are used for updates
  • IP/IPX/Appletalk routed protocol support
  • no special configuration required for various layer 2 technologies
  • Unequal cost load balancing
  • Successor - Best path to a destination
  • Feasible sucessor - second best path to a destination
    • Advertised Distance - cost from next hop to final destination
    • Feasible Distance - cost from local router to final destination
    • For Feasible successor to be used, AD must be less than the FD through successor
  • Hello Packets are sent every 5 seconds on links greater than T1
    • sent every 60 seconds for T1 and slower
    • hold time interval defaults to 3 times the hello interval
    • changing default hello interval does NOT automatically update the hold time
    • ip hello-interval eigrp {as} {seconds} interface command
    • ip hold-time eigrp {as} {seconds} interface command
  • Un-acknowledged multicast updates are unicast to the host that did not ack.  This avoids hold ups with further updates to the rest of the network
  • EIGRP metric is based on load, bandwidth, delay, and reliability. 
    • Cisco recommends leaving k values at default
  • Configuration of EIGRP
    • router eigrp {as}
    • network {address | wildcard mask} (wildcard is optional)
    • no auto-summary (turns off summarization at classful boundary)
    • redistribute static (redistributes any static routes into the protocol)
    • variance {#} (modifies which routes will be considered for unequal cost load balancing)
    • max-paths {#} (number of paths to be used for load balancing. default is 4, max is 16)
    • ip summary-address eigrp {as} {address | mask} (interface configuration command to summarize routes at a non classful boundary.)
    • eigrp stub receive-only ( this creates a stub in eigrp.  The “receive-only option” tells the stub router to not send ANY routes)
  • EIGRP Authentication
    • EIGRP supports cleartext and MD5 authentication.  It looks like we’re only concerned with MD5 for the exams (for obvious security reasons)
    • ip authentication mode eigrp {as} md5 (interface config mode)
    • ip authentication key-chain eigrp {as} {name of keychain}
    • key chain {name of keychain} (global config mode)
      • key {key-id} (this can be between 0-2147483647)
      • key-string {key}
  • As of IOS 12.3, EIGRP sends a graceful goodbye message when bringing the process down.  Goodbye messages are sent inside of Hello packets
  • Helpful Commands
    • show ip eigrp neighbors
    • show ip route
    • show ip route eigrp
    • show ip protocols – shows active routing protocol info (displays k values)
    • show ip eigrp interfaces
    • show ip eigrp toplogy – successor/feasible successor
    • show ip eigrp traffic
    • debug eigrp packets
  • Key technologies
    • DUAL Finite State
    • RTP
    • Neighbor discovery/recovery
    • Protocol dependant modules (ip, ipx, appletalk)

No comments :

Post a Comment