Understanding Basics of EIGRP Routing Protocol

Enhanced Interior Gateway Routing Protocol (EIGRP) is an advanced dynamic routing protocol that is used for routing decisions and configuration on the routers. EIGRP was developed by Cisco Systems as a proprietary protocol, which can be used only on Cisco routers but in 2013 partial functionality of EIGRP was converted to an open standard.  EIGRP only sends incremental updates, reducing the workload on the router and the amount of data that needs to be transmitted. Understanding basics of EIGRP routing protocol is very important before configuring the protocol in production environment. 

Understanding Basics of EIGRP Routing Protocol

Features of EIGRP

  • Administrative Distance – 90 (internal, when routers are connected in the same autonomous system), 170 (external, when routers are connected in different autonomous system).
  • EIGRP uses Diffusing Update Algorithm (DUAL) to choose the best path from the source to the destination.
  • EIGRP is an example of Hybrid routing protocol, which has the properties of Distance Vector & Link State routing protocol.
  • Support for classless routing.
  • Support for automatic & manual summarization on an EIGRP enabled interface.
  • Support for VLSM & CIDR.
  • In EIGRP routers update each other through multicasting using multicast IP 224.0.0.10.
  • Supports MD5 authentication on routers running EIGRP.
  • Provides routing support for multiple Network layer protocols: IP, IPX, AppleTalk, and even IPv6.
  • EIGRP has three conditions that must be met for neighbourship establishment:
    • Neighbor routers should be in the same IP subnet.
    • Autonomous System number should match.
    • Identical metrics (K1, K2, K3, K4 & K5 values should match between both the neighbor routers)
  • EIGRP has a maximum hop count of 255 (by default is set to 100).
  • EIGRP creates three separate tables – neighbor table, topology table & routing table.
  • EIGRP supports load balancing over equal cost (maximum 32 equal cost path, by default it’s 4) & un-equal cost path.
A network topology running EIGRP routing protocol.

EIGRP Tables

1. Neighbor table
The neighbor table (sometimes referred to as the neighbourship table) contains information about routers with whom neighbourship relationships have been formed. The “show ip eigrp neighbours” command lists the information about neighbour routers.

R1#show ip eigrp neighbors

IP-EIGRP neighbors for process 100
H     Address     Interface     Hold      Uptime      SRTT      RTO       Q       Seq
                                          (sec)       (ms)               Cnt      Num
0     11.0.0.2    Gig0/1         13       00:12:20     40       1000      0        6

The fields in the neighbor table are as under:

  • H: Handle: Order in which neighbor adjacency is formed. The first router will have ‘0’ the following one will have ‘1’ and so on.
  • Address: IP address of the neighbor router.
  • Interface: Interface of the neighbor router connected.
  • Hold Time: How long to hold neighbor information if a hello is not received from the neighbor router. By default it is 15 seconds.
  • Uptime: Since when the neighbor router is up.
  • SRTT: Smooth Round Trip Time: Time taken for a packet to reach the neighbor and get an acknowledgment back. This time is in milliseconds.
  • RTO: Retransmission Timeout: Time taken to wait before router retransmits a packet to the neighbor router.
  • Q Cnt: Queue Count: Number of packets that are waiting to be transmitted (Update, Reply, Query). Any number greater than 0, signifies some congestion in the network.
  • Seq Number: Sequence Number: Sequence number of the last packet received from neighbor router.

2. Topology table
The topology table stores all paths to destinations networks learnt by the EIGRP neighbour routers. The “show ip eigrp topology” command shows the EIGRP topology table.

R1#show ip eigrp topology 

IP-EIGRP Topology Table for AS 100/ID(11.0.0.1)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - Reply status

P 10.0.0.0/8, 1 successors, FD is 5120
via Connected, GigabitEthernet0/0
P 11.0.0.0/8, 1 successors, FD is 2816
via Connected, GigabitEthernet0/1
P 12.0.0.0/8, 1 successors, FD is 5376
via 11.0.0.2 (5376/5120), GigabitEthernet0/1
P 13.0.0.0/8, 1 successors, FD is 3072
via 11.0.0.2 (3072/2816), GigabitEthernet0/1
P 14.0.0.0/8, 1 successors, FD is 5632
via 11.0.0.2 (5632/5376), GigabitEthernet0/1
  • P: Passive: Means the router is not looking for the route actively. The status of ‘A – Active’ means the router is actively trying to find out a route for the destination, if the successor fails.
  • FD: Feasible Distance: This is the best metric along all paths to a remote network.
  • 5632/5376: In the output 5632 is the feasible distance and 5376 is the advertised distance.
  • Advertised distance: Is the distance from your neighbour router to destination.
  • Feasible distance : This is the best metric along all paths to a remote network.

3. Routing table
The routing table stores the routes that are currently used for sending packets to the destination network. This is the table that has the best possible route to a destination.  There would be separate copies of each of these tables for each protocol that is actively being supported by EIGRP, whether it’s IPv4 or IPv6. The “show ip route” command shows all IPv4 routes and “show ipv6 route” command shows all IPv6 routes information the router has. To specifically see the routing information obtained by EIGRP in IPv4 we can use the “show ip route eigrp” command.

R1#show ip route eigrp 

11.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
D    12.0.0.0/8 [90/5376] via 11.0.0.2, 00:16:42, GigabitEthernet0/1
D    13.0.0.0/8 [90/3072] via 11.0.0.2, 00:16:42, GigabitEthernet0/1
D    14.0.0.0/8 [90/5632] via 11.0.0.2, 00:16:42, GigabitEthernet0/1
  • D: Shows this route is learnt from EIGRP.
  • 90/ 5632:  Here 90, is the Administrative Distance of EIGRP. 5632 is the metric to the destination network.
  • Via 11.0.0.2: The next hop router to send the packet to reach the destination network.
  • 00:16:42: Time since the route was learnt
  • GigabitEthernet0/1: The outbound interface which router will use for sending packets to the destination network.

EIGRP Metric Calculation

  1. Bandwidth (K1) – By default is set to 1.
  2. Delay (K3) – By default is set to 1.
  3. Reliability (K4 & K5) – By default is set to 0.
  4. Load (K2) – By default is set to 0.
  5. MTU

EIGRP metric calculation uses five parameters, so-called K values, K1 through K5. These act as multipliers or modifiers in the composite metric calculation.

By default, only total delay and minimum bandwidth are considered when EIGRP is started on a router, but a network administrator can enable or disable all the K values as needed to consider the other Vector metrics.

Generally we don’t use K2, K4 & K5 values because loading and reliability are dynamic values and they keep on changing with time. We don’t want our EIGRP routers calculating metric 24/7 and sending updates to each other just because the load or reliability of an interface has changed. We want routing protocols to be nice and quiet and only base their routing decisions on static values like bandwidth and delay. If we only use these two static values our EIGRP routers don’t have to do any recalculation unless an interface goes down or a router goes down.

For the purposes of comparing routes, these are combined together in a weighted formula to produce a single overall metric:

 

where the various constants K1 to K5 can be set by the user to produce varying behaviours. An important and unintuitive fact is that if K5 is set to zero, then term  is not used (i.e. taken as 1).

Since only K1 and K3 are enabled we can simplify the EIGRP formula:

Metric = bandwidth (slowest link) + delay (sum of delays)

Bandwidth: [107 / minimum bandwidth in the path] * 256.
Delay: sums of delays in the path multiplied by 256 (in tens of microseconds).

So the formula looks like:
Metric = (107 / minimum bandwidth) * 256 + (sum of delays) * 256

EIGRP Packet Types

  • Hello: It identifies neighbours routers and serves as a keep alive mechanism between the routers. For example if Router A is directly connected with Router B and Router A is not receiving Hello packets from Router B for a specified period of time, Router A will know that Router B is down or reachability to Router B is down.
  • Update: Updates are used to send route information to the neighbour routers. When a new neighbour is discovered, update packets are sent so the neighbour router 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. An acknowledgement is sent for the update packet.
  • Query: Used for requesting specific route information. Queries are always multicast unless they are sent in response to a received query. Queries are sent when destinations go into Active state. An acknowledgement is sent for the query packet.
  • Reply: Reply packets respond to a query to indicate to the originator router that it does not need to go into Active state because it has feasible successors for the destination network. Replies are unicast to the originator of the query. Replies are sent when destinations go into Active state. An acknowledgement is sent for the reply packet.
  • ACK: Acknowledgment packet is sent for the EIGRP Update, Query & Reply packets. Acknowledgment is always sent using a unicast address and contains a non-zero acknowledgment number. An acknowledgement is not sent for the Hello and Acknowledgement packet. 

EIGRP Terms

  • Successor – A successor route is the best route to a remote network. A successor route is used by EIGRP to forward traffic to a destination and is stored in the routing table. It is backed up by a feasible successor route that is stored in the topology table—if one is available.
  • Feasible successor – A feasible successor is a path whose reported distance is less than the feasible distance, and it is considered a backup route. EIGRP is going to keep up to six feasible successors in the topology table. Only the one with the best metric (the successor) is copied and placed in the routing table.
  • Feasible distance – This is the best metric along all paths to a remote network.
  • Reported/advertised distance – This is the metric of a remote network, as reported by a neighbor.
  • Active Route – It means that the router is actively trying to find out a route for the destination, if the successor fails.
  • Passive Route – It means that the router has a backup route.

Advantages of EIGRP

  • EIGRP supports both classfull and classless routing.
  • Support for automatic & manual summarization on an EIGRP enabled interface.
  • Support for VLSM & CIDR.
  • Supports MD5 authentication on routers running EIGRP.
  • Provides routing support for multiple Network layer protocols: IP, IPX, AppleTalk, and even IPv6.
  • In EIGRP the routers can communicate to other routers which can be maximum 255 hops away (by default it is 100 hops).
  • EIGRP supports load balancing over equal cost (maximum 32 equal cost path, by default it’s 4) & un-equal cost path.
  • Whenever any  new network is added, modified or deleted EIGRP only sends incremental updates, reducing the workload on the router and the amount of data that needs to be transmitted.