Information Technology

EIGRP (Enhanced Interior Gateway Routing Protocol)

11 Aug 2023

Note: Fundamental Routing Concepts - Routing (Concepts, Protocols and Configurations) and OSPF (Open Shortest Path First)

EIGRP is a Cisco-proprietary advanced distance-vector routing protocol. EIGRP falls under the category of advanced distance-vector protocols, but it’s quite different from traditional distance-vector protocols such as RIP. EIGRP was created as a classless version of IGRP and an ideal choice for large, multiprotocol (routed protocols) networks built primarily on Cisco routers. EIGRP is also considered a hybrid protocol because it incorporates features from both distance-vector and some of those of link-state routing protocols. EIGRP calculates routes based not only on the distance but also on additional factors such as bandwidth, delay, reliability, and load. EIGRP maintains a topology table similar to a link-state database, which allows it to quickly adapt to changes in the network and converge efficiently. However, the fundamental operation of EIGRP is based on the principles of a distance-vector routing protocol.

EIGRP distance-vector properties :

  • Bellman-Ford Algorithm : EIGRP uses the Diffusing Update Algorithm (DUAL), which is a more advanced version of the Bellman-Ford algorithm. This algorithm calculates routing paths based on distance vectors, where each router maintains its own routing table with information about the best path to destinations.
  • Routing by Rumour : An EIGRP router does not have a complete map of the topology; it is only aware of what its neighbor has told it (routing by rumour). An EIGRP router only advertises its best route to its neighbor, not every route that it is aware of.
  • Periodic Updates : Like traditional distance-vector routing protocols, EIGRP routers exchange periodic updates to share routing information. However, EIGRP’s updates not strictly regular but are sent only when there are changes to the network, reducing unnecessary traffic.
  • Count to Infinity Problem Mitigation : EIGRP addresses the count to infinity problem through the use of feasible successors and the DUAL algorithm, which quickly identifies backup routes to prevent routing loops.

EIGRP link-state properties :

  • Partial Updates : EIGRP employs a feature called “Diffusing Computation” to avoid sending complete routing tables during updates. Only the specific changes are sent, making updates more efficient, similar to the link-state routing protocols’ approach.
  • Topology Table : EIGRP routers maintain a topology table that contains information about all known routes, similar to the link-state databases (LSDBs) of link-state routing protocols. This allows routers to make informed routing decisions based on comprehensive network information.
  • Rapid Convergence : EIGRP’s ability to quickly converge after topology changes is similar to link-state routing protocols. The DUAL algorithm’s fast calculation and use of feasible successors help minimize convergence time.

EIGRP Basic Features :

DTP Table

  • Protocol-Dependent Modules (PDMs) : EIGRP uses PDMs to support different routed protocols such as IPv4, IPv6, and legacy protocols IPX and AppleTalk.
  • Authentication : EIGRP supports authentication to ensure that routers only accept routing information from other routers that have been configured with the same password or authentication information. However, authentication does not encrypt the EIGRP routing updates; it only provides a means of authenticating the source of those updates.

EIGRP Packet Types

EIGRP uses various types of packets to exchange information and maintain routing within the network. These packet types are crucial for neighbor discovery, route updates, and overall protocol operation.

  • Hello Packets : Hello packets are used for neighbor discovery and to establish and maintain neighbor relationships. EIGRP routers send Hello packets to their directly connected neighbors at regular intervals. These packets help routers identify potential neighbors and form neighbor adjacencies.
  • Update Packets : Update packets carry routing information between EIGRP routers. When a router has new or changed routing information, it sends Update packets to its neighbors to inform them about the updates. Update packets contain information about feasible routes and their metrics.
  • Query Packets : Query packets are used in the EIGRP Query process, which helps the router find an alternative path when the primary path becomes unavailable. If a route’s successor (a best path) is lost, the router sends Query packets to its neighbors to search for an alternative path. Neighboring routers respond with Reply packets if they have feasible successors.
  • Reply Packets : Reply packets are responses to Query packets. When a router receives a Query packet and has a feasible successor for the affected route, it sends a Reply packet back to the querying router. The Reply packet provides information about the feasible successor route.
  • Acknowledgement (ACK) Packets : EIGRP uses ACK packets to acknowledge the receipt of Update, Query, and Reply packets. When a router receives one of these packets from a neighbor, it sends an ACK packet to confirm receipt. ACK packets ensure reliable packet delivery. In other words, ACK packets are “dataless” Hello packets during a “reliable” (for example, RTP) exchange.
  • SIA-Query (Stuck-in-Active Query) Packets : SIA-Query packets are used in the SIA-Query process, which prevents the “Stuck-in-Active” condition. This condition can occur during topology changes when a router is waiting for replies to its Query packets but doesn’t receive them. SIA-Query packets help routers retransmit the Query and avoid the Stuck-in-Active state.
  • SIA-Reply (Stuck-in-Active Reply) Packets : SIA-Reply packets are responses to SIA-Query packets. They provide the necessary information to help a router exit the Stuck-in-Active state and resume normal operation.

How It Works? EIGRP Operation

1) EIGRP Initial Route Discovery

EIGRP routers use Hello packets to discover neighboring routers. When a router receives a Hello packet from a potential neighbor, it verifies the sender’s identity and establishes a neighbor relationship. The neighbor adjacency will only be established when both neighboring routers exchange Hello packets. After receiving an Hello packet, routers begin exchanging Update packets to share routing information. Each router populates its Topology Table with the routes and metrics provided by its neighbors. This Topology Table includes potential paths, their metrics, and information about the routers advertising those routes. Routers that received Update packets therefore reply with an ACK packet informing their neighbors that they have received the update (because EIGRP Update packets use reliable delivery).

For example, Router-A sends an Hello packets to Router-B. Router-B receives the Hello packet and adds Router-A to its neighbor table. Router-B then sends an Update packet that contains all routes it know, along with a Hello packet, to Router-A. Router-A updates its neighbor table (database) with Router-B. Both routers have exchanged Hello packets; the neighbor adjacency is established. Router-A adds all update entries from Router-B to its topology table. Router-A responds to Router-B with an ACK (acknowledgement) packet. Router-A sends an Update packet to Router-B advertising the routes that it is aware of, except those learned from Router-B (Split Horizon technique). Router-B receives the Update packet and adds all update entries from Router-A to its topology table. Router-B responds to Router-A with an ACK packet.

2) EIGRP Metrics

A metric is a numerical value that represents the “cost” of using a particular route, or attributes or characteristics of that route. The lowest metric value indicates the best route. EIGRP’s metric is a composite value calculated using a formula and based on various factors :

  • Bandwidth (most important) : This represents the available bandwidth of the link and is measured in kilobits per second (Kbps). Higher bandwidth results in a lower metric (best route).
  • Delay (most important) : Delay represents the time it takes for a packet to traverse the link and is measured in microseconds (usec). Lower delay values lead to lower metrics (best route).
  • Reliability (optional) : Reliability is a measure of link stability, ranging from 0 (least reliable) to 255 (most reliable). More reliable links have a lower metric (best route).
  • Load (optional) : Load refers to the link’s current traffic load as a fraction of 255 (255/255 is completely saturated). Lower load values result in a lower metric (best route). txload is a transmit load and rxload is a receive load.

This information can be seen using the command :

Router# show interface <interface-id>

DTP Table

Default Composite Formula :

Metric = [K1 * Bandwidth + K3 * Delay] * 256

Complete Composite Formula :

Metric = [K1 * Bandwidth + (K2 * Bandwidth) / (256 - Load) + K3 * Delay] * [K5 / (Reliability + K4)]
  • Bandwidth and Delay Constants (K1 and K3) : These are user-configurable constants that allow network administrators to adjust the importance of bandwidth and delay in the metric calculation.
  • Load and Reliability Constants (K2 and K4) : Similar to the bandwidth and delay constants, these constants let administrators adjust the impact of load and reliability on the metric.
  • Constants (K5 and K6) : These constants are set to 1 by default and are used to give reliability and load factors the same weight as bandwidth and delay. They can be adjusted if needed.

3) DUAL (Diffusing Update Algorithm)

EIGRP routers use the Diffusing Update Algorithm (DUAL) to provide the best and backup routes to each destination. DUAL uses several terms :

DTP Table

The best routes were chosen with the lowest Feasible Distance (FD, also known as “metric”). The “lowest FD” refers to the lowest cumulative metric among the available paths to reach that destination. This ensures that the chosen path is the most optimal in terms of the combined metric factors such as bandwidth, delay, reliability, and load.

DUAL converges quickly because it can use backup routes known as Feasible Successors (FSs). If the primary route (Successor) becomes unavailable, the router enters the Query process. It sends Query packets to its neighbors to find an alternative path (FS). Neighboring routers receiving Query packets respond with Reply packets containing information about themselves (candidates of Feasible Successors). The querying router uses this information to identify potential backup routes.

4) Topology Table

Topology table stores the following information required by DUAL to calculate distances and vectors to destinations :

  • Reported Distance (RD) : The metric that each neighbor advertises for each destination.
  • Feasible Distance (FD) : The metric that the router would use to reach the destination via its neighbor.

Basic Implementation of EIGRP (IPv4)

1) Initialize the EIGRP routing process and enter the EIGRP router configuration mode :

  • AS number functions as a process ID. The AS number used for EIGRP configuration is only significant to the EIGRP routing domain.
  • AS number configured in a router must be the same as the neighbor’s AS number.
Router(config)# router eigrp <AS-number>

2) Set the EIGRP Router-ID for a router :

  • Router-ID is used to uniquely identify each router in the EIGRP routing domain.
  • Router-ID is in IP address format, which is four decimal numbers separated by dots. For example, 2.2.2.2
Router(config-router)# eigrp router-id 2.2.2.2

3) Enable EIGRP routing on a specific interface port with an IP network and advertise it :

  • network” statement identifies the interface to enable EIGRP on, and it adds the interface’s connected network to the EIGRP topology table. EIGRP then advertises the topology table to other routers in the EIGRP autonomous system. In other words, it defines the networks to be advertised.
  • Wildcard mask is the inverse of a subnet mask. To calculate a wildcard mask, subtract the network subnet mask from the broadcast subnet mask (IP Addressing and Subnetting topic) Wildcard mask.
Router(config-router)# network <network-address> <wildcard-mask>

4) Suppress routing updates on an interface :

  • Passive interfaces prevent EIGRP routing updates over a specified router interface.
Router(config-router)# passive-interface <interface-id>

EIGRP Tuning (Automatic Summarization)

  • What is Automatic Summarization : Automatic summarization is a feature that summarizes IP addresses at major network boundaries. It’s a mechanism where EIGRP summarizes routes at network class boundaries (classful) by default, reducing the number of routes exchanged across the network. EIGRP automatically recognizes subnets as a single Class A, B, or C network and creates only one entry in the routing table for the summary route. (IP Addressing and Subnetting topic)
  • Why Use It : Automatic summarization helps to reduce the size of routing updates and conserves bandwidth by limiting the number of route advertisements. It can also contribute to reducing the complexity of the routing tables.
  • Considerations : While automatic summarization can be beneficial in conserving resources, it may cause suboptimal routing decisions due to summarizing more specific routes. Disabling automatic summarization with the “no auto-summary” command is common in modern networks to ensure more accurate routing.

1) Automatic summarization is disabled by default for EIGRP IPv4. To enable automatic summarization for EIGRP, enter the EIGRP router configuration mode and use the command :

Router(config-router)# auto-summary

2) (Best practice) To disable automatic summarization :

Router(config-router)# no auto-summary

EIGRP Tuning (Default Route Propagation)

  • What is Default Route Propagation : EIGRP has the ability to propagate a default route to its neighbors. This default route points to a gateway of last resort and helps routers in the network reach destinations outside their own network.
  • Why Use It : Default route propagation can simplify the routing table on remote routers, reducing the number of explicit routes required. It’s especially useful in hub-and-spoke network topologies.
  • Considerations : Care should be taken when propagating default routes to avoid inadvertently causing all traffic to flow through a central point. Use filtering mechanisms or route redistribution to control where default routes are propagated.

1) The command to propagate a default route :

Router(config-router)# redistribute static

EIGRP Tuning (Fine-tuning EIGRP Interfaces)

  • Bandwidth and Delay : EIGRP uses bandwidth and delay metrics in its metric calculation. Adjusting the bandwidth and delay values on an interface can influence the path selection process.
  • Hello and Hold Timers : EIGRP uses hello and hold timers to establish and maintain neighbor relationships. Adjusting these timers can affect how quickly EIGRP detects link failures and updates its routing table.

1) By default, EIGRP uses only up to 50 percent of an interface’s bandwidth for EIGRP information in order to prevent it from over utilizing a link. To configure the percentage of bandwidth that can be used by EIGRP on an interface, enter the interface configuration mode and use the command :

  • To restore the default value, use the “no” form in this command
Router(config-if)# ip bandwidth-percent eigrp <AS-number> <percent>

2) Hello and Hold Timers :

  • EIGRP uses a lightweight Hello protocol to establish and monitor the connection status of its neighbor.
  • The hold time tells the router the maximum time the router should wait to receive the next Hello before declaring that neighbor unreachable.
  • Hello intervals and hold times are configured on a per-interface basis and do not have to match with other EIGRP routers to establish or maintain adjacencies.
Router(config-if)# ip hello-interval eigrp <AS-number> <seconds>
Router(config-if)# ip hold-time eigrp <AS-number> <seconds>

Verify EIGRP Configuration (IPv4)

Verifying EIGRP configuration is an important step to ensure that the protocol is functioning as intended.

1) Display information about EIGRP-enabled interfaces :

Router# show ip eigrp interfaces

2) Shows the list of neighboring routers that a router has established EIGRP adjacencies with :

Router# show ip eigrp neighbors

3) Displays detailed information about the routing table entries for EIGRP :

Router# show ip eigrp topology

OR

  • The “all-links” option shows all received updates, including routes from the feasible successor (FS) and to verify automatic summarization.
    Router# show ip eigrp topology all-links
    

4) Displays the IP routing table :

Router# show ip route

OR

  • specifically the EIGRP routing table.
Router# show ip route eigrp

References