Enhanced Interior Gateway Routing Protocol (EIGRP)

Enhanced Interior Gateway Routing Protocol (EIGRP) is an Open standard routing protocol loosely based on their original IGRP created by Cisco. Most of the routing optimizations are based on Diffuse Update Algorithm (DUAL), which guarantees loop-free operation and provide a mechanism for fast convergence. EIGRP has following features:
  • Simple configuration
  • Flexibility in summarization
  • Unequal cost load balancing
  • Scalability
  • Authentication
  • VLSM support
  • Keeps Backup routes
  • Incremental updates
EIGRP is the only routing protocol which keeps backup routes in its topology table. So when the primary route fails, it pick that backup route from the topology table and puts it into the routing table, eliminating the need of querying a new route from neighbors on failure on primary link, which results in fast convergence.


Specificatons

                  Protocol type           Enhanced Distance vector
                     Internal AD           90
                    External AD           170
                  Summary AD           5
                 Authentication           None, md5 (key-chain)
            Multicast address           224.0.0.10
                     Seed metric          Infinite
                       RFC Draft           Informational RFC

Why is Cisco opening up EIGRP?



Timer Intervals

Hello Timer: The rate at which EIGRP sends hello packets is called the hello interval.
Hold-down Timer: Time in seconds to wait before declaring a neighbor dead. By default, the hold-down timer interval is three times the hello timer interval.

Default Timers
For low-speed, NBMA networks
         Hello            60 seconds
 Hold-down           180 seconds

For all other networks
         Hello            5 seconds
 Hold-down           15 seconds

It is possible for two routers to become EIGRP neighbors even though the hello and hold timers do not match.



Packet Types

  • Hello: Establishes and maintains neighbor relationships
  • Update: Used to send routing updates
  • Query:  Used to ask for routes from neighbors when EIGRP looses any successor
  • Reply: Used to answer a query
  • Ack: Used to acknowledge Update, Query and Reply packets.



EIGRP Metrics

EIGRP uses the minimum bandwidth on the path to a destination network and the total delay to compute routing metrics. Although you can configure other metrics, it is not recommended, as it can cause routing loops in your network.
Mismatched K values prevent a neighbor relationship from being built.

EIGRP metric calculation formula
where,
Bandwidth is the least bandwidth of all outgoing interfaces on the route to the destination network. EIGRP uses the following formula to scale the bandwidth:
Bandwidth = 107/Bandwidth in Kbps

Delay is the sum of delays configured on the interfaces (exit interface of every router including the interface on which the destination network is connected), on the route to the destination network, in tens of microsecond. The delay as shown in the show ip eigrp topology or show interface commands is in microseconds, so you must divide by 10 before you use it in this formula. Thus,
Delay = Delay 10


The default values for K are:
  • K1 (Bandwidth) = 1
  • K2 (Load) = 0
  • K3 (Delay) = 1
  • K4(Reliability) = 0
  • K5(MTU) = 0
For default behavior, you can simplify the formula as follows:
metric = 256 * (bandwidth + delay)
Note the bandwidth and delay values we used are those configured on the interface through which the router reaches its next hop to the destination network.



EIGRP Feasibility condition

"To be considered as a feasible successor, the reported distance must be less than the feasible distance of the successor."

where,
Successor is the route with best metric and is installed in the routing table.

Feasible Successor is the backup route which usually resides in the topology table of the EIGRP process.

Reported distance is the total metric  along a path to a destination network as advertised by an upstream neighbor. (the peer's metric to reach the destination network.)
Reported distance = metric between the neighbor advertising that path and the destination network.
Feasible Distance is the best metric along a path to a destination network including the metric to the neighbor advertising that path. (local best metric to reach the destination)
Feasible Distance = Reported Distance + metric to reach the neighbor advertising that path.
Feasible Distance vs Reported Distance
Feasible successors will be displayed in show ip eigrp topology; you can see the routes that are not feasible successors using show ip eigrp topology all-links.



Load Balancing

EIGRP supports equal as well as unequal cost load balancing. You can achieve unequal cost load balancing by setting the “variance” value to something greater than 1. The variance is a multiplier; traffic will be placed on any link that has a metric less than the best path multiplied by the variance i.e. traffic will be placed on any link only if it satisfy the following criteria:
metric < FD*variance
Here metric is the full metric of the alternate path and FD is the metric of the primary path. By default, the variance value is 1, meaning that only equal-cost paths are used.

EIGRP puts up to four routes of equal cost in the routing table, which the router then load-balances. Using max-paths, you can configure EIGRP to use up to six routes of equal cost.
RTR(router-config)# max-paths

Load-balancing example:
Let us say there are four paths to a given destination, and the metrics for these paths are:
  • path 1: 1100
  • path 2: 1100
  • path 3: 2000
  • path 4: 4000
The router, by default, places traffic on both path 1 and 2. To load balance over paths 1, 2, and 3, use variance 2, because 1100 x 2 = 2200, which is greater than the metric through path 3. Similarly, to also add path 4, issue variance 4 under the router eigrp command.

Note: Even with variance configured, EIGRP will not send traffic over an unequal cost path if the reported distance is greater than the feasible distance for that particular route.



Stuck In Active Routes

In some circumstances, it takes a very long time for a query to be answered. So long, in fact, that the router that issued the query gives up and clears its connection to the router that is not answering, effectively restarting the neighbor session. This is known as a stuck in active (SIA) route.

EIGRP route states:
Passive: The network is available and the route can be installed in the routing table.
Active: The network is not available. EIGRP is actively looking for a route to the destination by sending query packets.

More often, some router on the network can not answer a query for one of the following reasons:
  • the router is too busy to answer the query (generally due to high CPU utilization.
  • the router is having memory problems, and cannot allocate the memory to process the query or build the reply packet
  • the circuit between the two routers is not good - enough packets are getting through to keep the neighbor relationship up, but some queries or replies are getting lost between the routers
  • unidirectional links (a link on which traffic can only flow in one direction because of a failure)
  • Large range of queries.
Route summarization should be used to reduce the range of queries.

By default, the amount of time the router waits after sending a query before declaring the route SIA is three minutes. If, in three minutes, EIGRP doesn't receive the query response from all its neighbors, EIGRP declares that the route is stuck in active state and resets the neighbor that has not responded to the query. This setting can be changed using the following command.
timers active-time [time-limit in minutes]


Route Summarization

EIGRP performs auto-summarization by default. It also allows you to summarize internal and external routes on virtually any bit boundary using manual summarization. For mannual summarization, use the following command under interface configuration mode.
ip summary-address eigrp [as-number] A.B.C.D [netmask]



Authentication

To configure EIGRP authentication, the keys used in the authentication process have to be configured and attached to an interface along with MD5 as the mode of authentication.

! configure the keys under global configuration mode
key chain EIGRP_KEYS
 key 1
   key-string cisco
! Enable authentication on interfaces by
! issuing the following commands under interface configuration mode.
ip authentication mode eigrp 10 md5
ip authentication key-chain eigrp 10 EIGRP_KEYS

Comments

Popular posts from this blog

Specifying SSH port in Ansible Inventory

Ansible-Playbook to display output of multiple show commands (using stdout_lines with Loop)

Filtering Routes in BGP using Route-maps and Prefix-list

Ansible Playbook for Network OS Upgrade with pre and post checks

Bypassing Proxy Server in Google Chrome

VMware NSX Traffic Flow — East-West & North-South

Export or Backup Azure Network Security Groups into CSV using PowerShell

Ansible-playbook for backing up running config of Cisco IOS