EIGRP Introduction

EIGRP

EIGRP is an advanced distance vector routing protocol. It is enhancement of IGRP, IGRP is distance vector hence EIGRP is called as advanced distance vector routing protocol. It takes best of link-state routing protocol and best of distance vector routing protocol, it combines advantages of both worlds.

EIGRPs operations are like link-state routing protocol: it uses hellos to form neighbor relationship, updates are incremental and triggered like OSPF. It uses DUAL (Diffusion Algorithm) for best path selection.

EIGRPs configurational simplicity comes from Distance Vector routing protocol. EIGRP is based on key distance vector routing protocols principles in which visibility of all the network is learned from directly connected neighbors.

It is classless routing protocol that sends mask as part of update. It is Cisco Proprietary Protocol, but Partial functionality of EIGRP was changed to open standard in 2013.

Convergence is fast because EIGRP routers send triggered updates and EIGRP routers have details of all paths and its metric in its topology table. If best path (successor) goes down EIGRP will fetch next best path (feasible successor) from topology table and put it in routing table. If next best path does not exist EIGRP will send queries to its neighbors to discover an alternate route.

Wild Card Mask: It is just another way of writing mask. subnet mask and wild card mask both are used with same intention. They are used by routers to identify the bits that needs to be matched / not matched. In subnet mask:

  • 1 = match bits (should match).
  • 0 = don’t match (match not needed) Wild Card Mask: is just the reverse of the subnet mask:
  • 1 = don’t match (match not needed)
  • 0 = match bits (should match).

To get the wildcard mask from a subnet mask, you just need to subtract each octet of the subnet mask with 255. For e.g.; Example:

Subnet mask indicates: the network ID and host ID of an IP network upon subnetting.

Wildcard mask indicate: what parts of an IP address matter when checking it.

Task 1: Configure EIGRP:

As we can see in the above example, for EIGRP routers to exchange routing information and form neighbor adjacencies, they must be configured with the same Autonomous System (AS) number. An Autonomous System (AS) number is a unique global identifier assigned to each AS. It acts like a postal code for the internet, allowing different ASes to exchange routing information accurately. The AS number is 100 for all the routers in the above example.

Step 1: Configure EIGRP on Routers R1, R2, R3 and configure EIGRP to send updates on all its directly connected interfaces.

Enter the following command on R1 router.

R1#conf t
R1(config)#router eigrp 100				(Starts EIGRP process for AS 100.)
R1(config-router) #network 172.16.0.0 		(major classful network without mask)
R1(config-router) #network 10.0.0.0 255.255.255.0	(with subnet mask)
R1(config-router) #end	
R1#				

Enter the following command on R2 router.

R2#conf t
R2(config)#router eigrp 100
R2(config-router) #network 10.0.0.0 0.0.0.255	(with wildcard mask)
R2(config-router) #network 20.0.0.0 255.255.255.0	(network command is used to send) 
R2(config-router) #end	           (updates on interfaces where these)
R2#	

Enter the following command on R3 router.

R3#conf t
R3(config)#router eigrp 100
R3(config-router) #network 20.0.0.3 255.255.255.255    (with host specific mask)
R3(config-router) #network 192.168.0.3 0.0.0.0	     (with host specific wildcard mask)
R3(config-router) #end

Host Specific Subnet mask (/32):

Creating a Host-Specific Mask:

  • It's made by setting all bits in the network ID part of the mask to 1s, and all bits in the host ID part to 0s.
  • This creates a mask like 255.255.255.255, which identifies a single device within a network.

Task 2: Configure EIGRP for multiple AS:

Step 1: Configure EIGRP on Routers R1, R2, R3 and configure ‘EIGRP AS’ as seen in the diagram above.

Enter the following command on R1 router.

R1#conf t
R1(config)#router eigrp 100
R1(config-router) #network 172.16.0.0 
R1(config-router) #network 10.0.0.0 255.255.255.0
R1(config-router) #end	
R1#	

Enter the following command on R2 router.

R2#conf t
R2(config)#router eigrp 100
R2(config-router) #network 10.0.0.0 0.0.0.255
R2(config)#router eigrp 200
R2(config-router) #network 20.0.0.0 255.255.255.0 
R2(config-router) #end	
R2#	

Enter the following command on R3 router.

R3#conf t
R3(config)#router eigrp 200
R3(config-router) #network 20.0.0.3 255.255.255.255 
R3(config-router) #network 192.168.0.3 0.0.0.0
R3(config-router) #end

Step 2: Examine the IP routing table of all router.

As seen in the routing table of R2 router, R2 router has learnt route from both the autonomous (AS100 and AS200) and routes are reflecting in the same routing table. As per rule: routes will not automatically exchange between Autonomous, in above example route from AS 100 will not enter AS200 and vice versa. But an administrator can configure to manually redistribute routes between different autonomous.

Step 3: Exchange routes between different AS.

Enter the following command on R2 router to exchange routes between AS100 and AS200.

R2#conf t
R2(config)#router eigrp 100
R2(config-router) #network 10.0.0.0 0.0.0.255
R2(config-router) #redistribute eigrp 200
R2(config)#router eigrp 200
R2(config-router) #network 20.0.0.0 255.255.255.0 
R2(config-router) #redistribute eigrp 100	 
R2#

Network 172.16.0.0/24 on R1 router is part of AS100, when R1 router sends update of this route to R2 router, R2 router will reflect it as ‘D’ route with AD value 90 in its routing table. This is because R2 router is also part of AS100, so route received from its own autonomous will be considered as internal route with AD value 90.

Now, when R2 will send this route (172.16.0.0/24) to R3 router that belongs to AS200, this route will reflect as ‘D EX’ route with AD value 170 in R3’s routing table. This is because when R2 router will redistribute this route from AS100 to AS200 it will mark it as ‘D EX’ route and propagate it as external route to R3 router, which will reflect this external route as AD value 170 route in its routing table.

EIGRP Administrative Distance: Administrative distance is the feature that routers use to select the best path when there are two or more different routes to the same destination from two different routing protocols. EIGRP has 3 different Administrative distances.

EIGRP initial route discovery:

The following describes the initial route discovery process:

  1. A new router (Router A) comes up and sends out hello packet on all its EIGRP configured interface.
  2. On receiving hello, Router B will reply with update packets that contain all the routes they have in their routing table, except those learned through that interface (because of the split horizon rule). Router B sends an update packet to Router A, but a neighbor relationship is not established until Router B sends a hello packet to Router A. The update packet from Router B has the initial bit set, indicating that this is the initialization process. The update packet contains the routes and its metric.
  3. After both routers have exchanged hellos and the neighbor adjacency is established, Router A replies to Router B with an ACK packet, indicating that it received the update information.
  4. Router A will now insert all routes with metrics just received from Router B in its topology table. The topology table includes all destinations networks learnt from all neighbors, all paths to reach all networks and its associated metric.
  5. Router A then sends an update packet to Router B.
  6. Upon receiving the update packet, Router B sends an ACK packet to Router A.

After Router A and Router B successfully receive the update packets from each other, they are ready to choose the successor (best path) and feasible successor (next best path) in the topology table and put the best path successor routes to the routing table.

Once routers have learnt about all networks and its paths from their neighbors and have selected best path to reach all networks they are said to have converged. EIGRP uses periodic hellos to monitor their neighbor status.

EIGRP routers maintain neighbor table that has list of all directly connected EIGRP neighbors. It also maintains topology table that contains details of all networks and all paths to reach all network. EIGRP uses DUAL (Diffusion Algorithm) to select best path to reach all network and best path is put in routing table.

EIGRP Path Selection:

Advertised Distance(AD) also called as Reported Distance(RD) is the metric to reach a network. In the above diagram R1 router’s metric to reach 10.0.0.0/24 network is 1000 that is advertised to R3 router. So, R1 routers Advertised Distance(AD) for 10.0.0.0/24 is 1000 that it sends to R3 router.

Now on R3 router had received AD 1000 for 10.0.0.0/24 from neighbor R1, R3 routers metric to reach R1 router is 2000. So, its Feasible Distance (FD) to reach 10.0.0.0/24 via R1 router is 3000

EIGRP Metric and Best Path Selection: EIGRPs metric is called as composite metric, by default EIGRP uses 2 criteria to calculate its metric:

  • Bandwidth
  • Delay

As seen in the above diagram, R4 Router has 2 paths (via R2 & Via R3) to reach 10.0.0.0/24 network, EIGRP on R4 Router has calculated metric via both paths as seen in the diagram above. Metric to reach 10.0.0.0/24 network via R2 Router is 768000 and similarly, metric to reach 10.0.0.0/24 network via R3 Router is 537600. Both these routes will reflect in R4 Routers topology table and best path via R3 Router that has lesser metric will reflect in R4 Routers routing table. EIGRP has capability of load balancing over unequal metric path using variance command.

EIGRP Metric:

EIGRP has four criteria, but by default EIGRP uses only two:

Bandwidth: The smallest bandwidth of all outgoing interfaces between the source and destination, in kilobits.

Delay: The cumulative (sum) of all interface delay along the path, in tens of microseconds.

Two additional criteria can be used but are not recommended because they typically result in frequent recalculation of the topology table.

Reliability: This value represents the worst reliability between the source and destination which is based on keepalives.

Load: This value represents the worst load on the link between the source and destination, which is computed based on the packet rate and the configured bandwidth of the interfaces.

MTU: is exchanged in EIGRP packets between neighbor routers, the MTU is not factored into the EIGRP metric calculation.

Note: If K5 is not equal to 0, the following will also be part of formula: metric = metric * [K5 / (reliability + K4)] *metric = 256[(K1 * bandwidth) + [(K2 * bandwidth) / (256 – load)] + (K3 * delay) [K5 / (reliability + K4)]]

EIGRP Terminology:

EIGRP Packets:

2 Types of Packets are exchanged between communicating devices:

  • Control Packets
  • Data Packets

Control packets like Update, query, reply hello’s, etc. are exchanged for proper functioning of devices. Control packets are normally broadcast and multicasts.

Data packets that are sent by users through communicating devices and they are normally unicast packets.

EIGRP exchanges 5 types of control packets

  • Hello: Establish neighbor relationships
  • Update: Send routing updates
  • Query: Ask neighbors about routing information
  • Reply: Response to query about routing information
  • ACK: Acknowledgment of a reliable packet

Update, query and reply are TCP based (Guaranteed Delivery) requires Acknowledgement.

EIGRP Uses Multicast address 224.0.0.10 to exchange these control packets

EIGRP Neighbors: EIGRP keeps track of slow neighbors and fast neighbors.

  • Fast neighbors are connected on links greater than T1(1.544mb): ISDN PRI, SMDS, Frame Relay
  • Slow Neighbors are connected on links less than or equal to T1(1.544mb): ISDN BRI, Frame Relay, SMDS, and so on
  • Hellos are sent every 5sec to fast neighbors and every 60 seconds to slow neighbors
  • Neighbors are declared Dead if router misses 3 hellos EIGRP neighbor ship Rule:
  • EIGRP will not form neighbor if K-values are mismatched
  • EIGRP will not form neighbor if AS numbers are mismatched