Enhanced Interior Gateway Routing Protocol

Last updated

Enhanced Interior Gateway Routing Protocol (EIGRP) is an advanced distance-vector routing protocol that is used on a computer network for automating routing decisions and configuration. The protocol was designed by Cisco Systems as a proprietary protocol, available only on Cisco routers. In 2013, Cisco permitted other vendors to freely implement a limited version of EIGRP with some of its associated features such as High Availability (HA), while withholding other EIGRP features such as EIGRP stub, needed for DMVPN and large-scale campus deployment. Information needed for implementation was published with informational status as RFC   7868 in 2016, which did not advance to Internet Standards Track level, and allowed Cisco to retain control of the EIGRP protocol. [1] [2]

Contents

EIGRP is used on a router to share routes with other routers within the same autonomous system. Unlike other well known routing protocols, such as RIP, EIGRP only sends incremental updates, reducing the workload on the router and the amount of data that needs to be transmitted.

EIGRP replaced the Interior Gateway Routing Protocol (IGRP) in 1993. One of the major reasons for this was the change to classless IPv4 addresses in the Internet Protocol, which IGRP could not support.

Overview

Almost all routers contain a routing table that contains rules by which traffic is forwarded in a network. If the router does not contain a valid path to the destination, the traffic is discarded. EIGRP is a dynamic routing protocol by which routers automatically share route information. This eases the workload on a network administrator who does not have to configure changes to the routing table manually.

In addition to the routing table, EIGRP uses the following tables to store information:

Information in the topology table may be inserted into the router's routing table and can then be used to forward traffic. If the network changes (for example, a physical link fails or is disconnected), the path will become unavailable. EIGRP is designed to detect these changes and will attempt to find a new path to the destination. The old path that is no longer available is removed from the routing table. Unlike most distance vector routing protocols, EIGRP does not transmit all the data in the router's routing table when a change is made, but will only transmit the changes that have been made since the routing table was last updated. EIGRP does not send its routing table periodically, but will only send routing table data when an actual change has occurred. This behavior is more inline with link-state routing protocols, thus EIGRP is mostly considered a hybrid protocol.

When a router running EIGRP is connected to another router also running EIGRP, information is exchanged between the two routers. They form a relationship, known as an adjacency. The entire routing table is exchanged between both routers at this time. After the exchange has completed, only differential changes are sent.

EIGRP is often considered a hybrid protocol because it also sends link state updates when link states change.

Features

EIGRP supports the following features: [4]

Configuration

Cisco IOS example

Example of setting up EIGRP on a Cisco IOS router for a private network. The 0.0.15.255 wildcard in this example indicates a subnetwork with a maximum of 4094 hosts—it is the bitwise complement of the subnet mask 255.255.240.0. The no auto-summary command prevents automatic route summarization on classful boundaries, which would otherwise result in routing loops in discontiguous networks.

 Router# configure terminal  Router(config)# router eigrp 1  Router (config-router)# network 10.201.96.0 0.0.15.255  Router (config-router)# no auto-summary  Router (config-router)# exit 

Technical details

EIGRP is a distance vector & Link State routing protocol that uses the diffusing update algorithm (DUAL) (based on work from SRI International) to improve the efficiency of the protocol and to help prevent calculation errors when attempting to determine the best path to a remote network. EIGRP determines the value of the path using five metrics: bandwidth, load, delay, reliability and MTU. [3] EIGRP uses five different messages to communicate with its neighbor routers – Hello, Update, Query, Reply, and Acknowledgement. [6]

EIGRP routing information, exchanged to a router from another router within the same autonomous system, has a default administrative distance of 90. EIGRP routing information, that has come from an EIGRP-enabled router outside the autonomous system, has a default administrative distance of 170. [7]

EIGRP does not operate using the Transmission Control Protocol (TCP) or the User Datagram Protocol (UDP). This means that EIGRP does not use a port number to identify traffic. Rather, EIGRP is designed to work on top of Layer 3 (i.e. the IP protocol). Since EIGRP does not use TCP for communication, it implements Cisco's Reliable Transport Protocol (RTP) to ensure that EIGRP router updates are delivered to all neighbors completely. [8] [9] The Reliable Transport Protocol also contains other mechanisms to maximize efficiency and support multicasting. [4] EIGRP uses 224.0.0.10 as its multicast address and protocol number 88. [4]

Distance vector routing protocol

Cisco Systems now classifies EIGRP as a distance vector routing protocol, but it is normally said to be a hybrid routing protocol. [5] [10] While EIGRP is an advanced routing protocol that combines many of the features of both link-state and distance-vector routing protocols, EIGRP's DUAL algorithm contains many features which make it more of a distance vector routing protocol than a link-state routing protocol. [10] [11] Despite this, EIGRP contains many differences from most other distance-vector routing protocols, including: [12]

EIGRP composite and vector metrics

EIGRP associates six different vector metrics with each route and considers only four of the vector metrics in computing the Composite metric:

 Router1# show ip eigrp topology 10.0.0.1 [13]  255.255.255.255  IP-EIGRP topology entry for 10.0.0.1/32    State is Passive, Query origin flag is 1, 1 Successor(s), FD is 40640000    Routing Descriptor Blocks:    10.0.0.1 (Serial0/0/0), from 10.0.0.1, Send flag is 0x0        Composite metric is (40640000/128256), Route is Internal        Vector metric:          Minimum bandwidth is 64 Kbit          Total delay is 25000 microseconds          Reliability is 255/255          Load is 197/255          Minimum MTU is 576          Hop count is 2
Bandwidth
Minimum Bandwidth (in kilobits per second) along the path from router to destination network.
Load
Number in range 1 to 255; 255 being saturated
Total Delay
Delay, in 10s of microseconds, along the path from router to destination network
Reliability
Number in range 1 to 255; 255 being the most reliable
MTU
Minimum path Maximum Transmission Unit (MTU) (never used in the metric calculation)
Hop Count
Number of routers a packet passes through when routing to a remote network, used to limit the EIGRP AS. EIGRP maintains a hop count for every route, however, the hop count is not used in metric calculation. It is only verified against a predefined maximum on an EIGRP router (by default it is set to 100 and can be changed to any value between 1 and 255). Routes having a hop count higher than the maximum will be advertised as unreachable by an EIGRP router.

Routing metric

The composite routing metric calculation uses five parameters, so-called K values, K1 through K5. These act as multipliers or modifiers in the composite metric calculation. K1 is not equal to Bandwidth, etc.

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

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

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

The default is for and to be set to 1, and the rest to zero, effectively reducing the above formula to .

Obviously, these constants must be set to the same value on all routers in an EIGRP system, or permanent routing loops may result. Cisco routers running EIGRP will not form an EIGRP adjacency and will complain about K-values mismatch until these values are identical on these routers.

EIGRP scales the interface Bandwidth and Delay configuration values with following calculations:

= 107 / Value of the bandwidth interface command
= Value of the delay interface command

On Cisco routers, the interface bandwidth is a configurable static parameter expressed in kilobits per second (setting this only affects metric calculation and not actual line bandwidth). Dividing a value of 107 kbit/s (i.e. 10 Gbit/s) by the interface bandwidth statement value yields a result that is used in the weighted formula. The interface delay is a configurable static parameter expressed in tens of microseconds. EIGRP takes this value directly without scaling into the weighted formula. However, various show commands display the interface delay in microseconds. Therefore, if given a delay value in microseconds, it must first be divided by 10 before using it in the weighted formula.

IGRP uses the same basic formula for computing the overall metric, the only difference is that in IGRP, the formula does not contain the scaling factor of 256. In fact, this scaling factor was introduced as a simple means to facilitate backward compatility between EIGRP and IGRP: In IGRP, the overall metric is a 24-bit value while EIGRP uses a 32-bit value to express this metric. By multiplying a 24-bit value with the factor of 256 (effectively bit-shifting it 8 bits to the left), the value is extended into 32 bits, and vice versa. This way, redistributing information between EIGRP and IGRP involves simply dividing or multiplying the metric value by a factor of 256, which is done automatically.

Feasible successor

A feasible successor for a particular destination is a next hop router that is guaranteed not to be a part of a routing loop. This condition is verified by testing the feasibility condition.

Thus, every successor is also a feasible successor. However, in most references about EIGRP the term feasible successor is used to denote only those routes which provide a loop-free path but which are not successors (i.e. they do not provide the least distance). From this point of view, for a reachable destination, there is always at least one successor, however, there might not be any feasible successors.

A feasible successor provides a working route to the same destination, although with a higher distance. At any time, a router can send a packet to a destination marked "Passive" through any of its successors or feasible successors without alerting them in the first place, and this packet will be delivered properly. Feasible successors are also recorded in the topology table.

The feasible successor effectively provides a backup route in the case that existing successors become unavailable. Also, when performing unequal-cost load-balancing (balancing the network traffic in inverse proportion to the cost of the routes), the feasible successors are used as next hops in the routing table for the load-balanced destination.

By default, the total count of successors and feasible successors for a destination stored in the routing table is limited to four. This limit can be changed in the range from 1 to 6. In more recent versions of Cisco IOS (e.g. 12.4), this range is between 1 and 16.

Active and passive state

A destination in the topology table can be marked either as passive or active. A passive state is a state when the router has identified the successor(s) for the destination. The destination changes to active state when the current successor no longer satisfies the feasibility condition and there are no feasible successors identified for that destination (i.e. no backup routes are available). The destination changes back from active to passive when the router received replies to all queries it has sent to its neighbors. Notice that if a successor stops satisfying the feasibility condition but there is at least one feasible successor available, the router will promote a feasible successor with the lowest total distance (the distance as reported by the feasible successor plus the cost of the link to this neighbor) to a new successor and the destination will remain in the passive state.

Feasibility condition

The feasibility condition is a sufficient condition for loop freedom in EIGRP-routed network. It is used to select the successors and feasible successors that are guaranteed to be on a loop-free route to a destination. Its simplified formulation is strikingly simple:

If, for a destination, a neighbor router advertises a distance that is strictly lower than our feasible distance, then this neighbor lies on a loop-free route to this destination.

or in other words,

If, for a destination, a neighbor router tells us that it is closer to the destination than we have ever been, then this neighbor lies on a loop-free route to this destination.

It is important to realize that this condition is a sufficient, not a necessary, condition. That means that neighbors which satisfy this condition are guaranteed to be on a loop-free path to some destination, however, there may be also other neighbors on a loop-free path which do not satisfy this condition. However, such neighbors do not provide the shortest path to a destination, therefore, not using them does not present any significant impairment of the network functionality. These neighbors will be re-evaluated for possible usage if the router transitions to Active state for that destination.

Unequal Path Cost Load Balancing

EIGRP features load balancing on paths with different costs. A multiplier, called variance, is used to determine which paths to include into load balancing. The variance is set to 1 by default, which means load balancing on equal cost paths. The maximum variance is 128. The minimum metric of a route is multiplied by the variance value. Each path with a metric that is smaller than the result is used in load balancing. [14]

With the functionality of the Unequal Path Cost Load Balancing on EIGRP, OSPF protocol is unable to design the network by Unequal Path Cost Load Balancing. Regarding the Unequal Path Cost Load Balancing function on industry usage, the network design can be flexible with the traffic management.

EIGRP and compatibility to other vendors

Cisco released details of the proprietary EIGRP routing protocol in an RFC in an effort to assist companies whose networks operate in a multi-vendor environment. The protocol is described in RFC   7868. EIGRP was developed 20 years ago, yet it is still one of the primary Cisco routing protocols due to its purported usability and scalability in comparison to other protocols. [1] [15]

Cisco has stated that EIGRP is an open standard but they leave out several core details in the RFC definition which makes interoperability hard to set up between different vendors' routers when the protocol is used. Even Cisco NX-OS for example does not support unequal cost load balancing. [16]

As of 2022 EIGRP has alpha support in FRRouting [17] [18] and it seems to be generally unsupported by other routing software.

Related Research Articles

Interior Gateway Routing Protocol (IGRP) is a distance vector interior gateway protocol (IGP) developed by Cisco. It is used by routers to exchange routing data within an autonomous system.

Routing is the process of selecting a path for traffic in a network or between or across multiple networks. Broadly, routing is performed in many types of networks, including circuit-switched networks, such as the public switched telephone network (PSTN), and computer networks, such as the Internet.

<span class="mw-page-title-main">Border Gateway Protocol</span> Protocol for communicating routing information on the Internet

Border Gateway Protocol (BGP) is a standardized exterior gateway protocol designed to exchange routing and reachability information among autonomous systems (AS) on the Internet. BGP is classified as a path-vector routing protocol, and it makes routing decisions based on paths, network policies, or rule-sets configured by a network administrator.

Heuristic routing is a system used to describe how deliveries are made when problems in a network topology arise. Heuristic is an adjective used in relation to methods of learning, discovery, or problem solving. Routing is the process of selecting paths to specific destinations. Heuristic routing is used for traffic in the telecommunications networks and transport networks of the world.

Open Shortest Path First (OSPF) is a routing protocol for Internet Protocol (IP) networks. It uses a link state routing (LSR) algorithm and falls into the group of interior gateway protocols (IGPs), operating within a single autonomous system (AS).

The Routing Information Protocol (RIP) is one of the oldest distance-vector routing protocols which employs the hop count as a routing metric. RIP prevents routing loops by implementing a limit on the number of hops allowed in a path from source to destination. The largest number of hops allowed for RIP is 15, which limits the size of networks that RIP can support.

The Spanning Tree Protocol (STP) is a network protocol that builds a loop-free logical topology for Ethernet networks. The basic function of STP is to prevent bridge loops and the broadcast radiation that results from them. Spanning tree also allows a network design to include backup links providing fault tolerance if an active link fails.

A distance-vector routing protocol in data networks determines the best route for data packets based on distance. Distance-vector routing protocols measure the distance by the number of routers a packet has to pass; one router counts as one hop. Some distance-vector protocols also take into account network latency and other factors that influence traffic on a given route. To determine the best route across a network, routers using a distance-vector protocol exchange information with one another, usually routing tables plus hop counts for destination networks and possibly other traffic information. Distance-vector routing protocols also require that a router inform its neighbours of network topology changes periodically.

Link-state routing protocols are one of the two main classes of routing protocols used in packet switching networks for computer communications, the others being distance-vector routing protocols. Examples of link-state routing protocols include Open Shortest Path First (OSPF) and Intermediate System to Intermediate System (IS-IS).

In computer networking, split-horizon route advertisement is a method of preventing routing loops in distance-vector routing protocols by prohibiting a router from advertising a route back onto the interface from which it was learned.

Dynamic routing, also called adaptive routing, is a process where a router can forward data via a different route for a given destination based on the current conditions of the communication circuits within a system. The term is most commonly associated with data networking to describe the capability of a network to 'route around' damage, such as loss of a node or a connection between nodes, as long as other path choices are available. Dynamic routing allows as many routes as possible to remain valid in response to the change.

<span class="mw-page-title-main">Optimized Link State Routing Protocol</span> IP routing protocol optimized for mobile ad hoc networks

The Optimized Link State Routing Protocol (OLSR) is an IP routing protocol optimized for mobile ad hoc networks, which can also be used on other wireless ad hoc networks. OLSR is a proactive link-state routing protocol, which uses hello and topology control (TC) messages to discover and then disseminate link state information throughout the mobile ad hoc network. Individual nodes use this topology information to compute next hop destinations for all nodes in the network using shortest hop forwarding paths.

Administrative distance (AD) or route preference is a number of arbitrary unit assigned to dynamic routes, static routes and directly-connected routes. The value is used in routers to rank routes from most preferred to least preferred. When multiple paths to the same destination are available in its routing table, the router uses the route with the lowest administrative distance.

The diffusing update algorithm (DUAL) is the algorithm used by Cisco's EIGRP routing protocol to ensure that a given route is recalculated globally whenever it might cause a routing loop. It was developed by J.J. Garcia-Luna-Aceves at SRI International. The full name of the algorithm is DUAL finite-state machine. EIGRP is responsible for the routing within an autonomous system, and DUAL responds to changes in the routing topology and dynamically adjusts the routing tables of the router automatically.

Destination-Sequenced Distance-Vector Routing (DSDV) is a table-driven routing scheme for ad hoc mobile networks based on the Bellman–Ford algorithm. It was developed by C. Perkins and P. Bhagwat in 1994. The main contribution of the algorithm was to solve the routing loop problem. Each entry in the routing table contains a sequence number, the sequence numbers are generally even if a link is present; else, an odd number is used. The number is generated by the destination, and the emitter needs to send out the next update with this number. Routing information is distributed between nodes by sending full dumps infrequently and smaller incremental updates more frequently.

Router metrics are configuration values used by a router to make routing decisions. A metric is typically one of many fields in a routing table. Router metrics help the router choose the best route among multiple feasible routes to a destination. The route will go in the direction of the gateway with the lowest metric.

A routing loop is a common problem with various types of networks, particularly computer networks. They are formed when an error occurs in the operation of the routing algorithm, and as a result, in a group of nodes, the path to a particular destination forms a loop.

A routing protocol specifies how routers communicate with each other to distribute information that enables them to select paths between nodes on a computer network. Routers perform the traffic directing functions on the Internet; data packets are forwarded through the networks of the internet from router to router until they reach their destination computer. Routing algorithms determine the specific choice of route. Each router has a prior knowledge only of networks attached to it directly. A routing protocol shares this information first among immediate neighbors, and then throughout the network. This way, routers gain knowledge of the topology of the network. The ability of routing protocols to dynamically adjust to changing conditions such as disabled connections and components and route data around obstructions is what gives the Internet its fault tolerance and high availability.

An interior gateway protocol (IGP) or Interior routing protocol is a type of routing protocol used for exchanging routing table information between gateways within an autonomous system. This routing information can then be used to route network-layer protocols like IP.

In a router, route redistribution allows a network that uses one routing protocol to route traffic dynamically based on information learned from another routing protocol.

References

  1. 1 2 "Enhanced Interior Gateway Routing Protocol (EIGRP)". Cisco. Archived from the original on 2013-02-21. Retrieved 2022-09-02.{{cite web}}: CS1 maint: unfit URL (link)
  2. Burke, Anthony (2013-01-31). "Why Is Cisco Bothering with "Open" EIGRP? - Packet Pushers". packetpushers.net. Retrieved 2022-09-02.
  3. 1 2 Cisco Systems (2012), Enhanced Interior Gateway Routing Protocol (EIGRP) Wide Metrics, retrieved 14 March 2014
  4. 1 2 3 Cisco Training White Paper, Global Knowledge Training LLC, 2013, archived from the original on 15 October 2013, retrieved 17 September 2013
  5. 1 2 Introduction to EIGRP. Cisco. Retrieved on 2014-05-30.
  6. "EIGRP Messages Types".
  7. Cisco Systems (2013), What is Administrative Distance?, retrieved 14 September 2013
  8. "RTP in EIGRP". Packet Life. 2009-01-17.
  9. Troubleshooting IP Routing Protocols (CCIE Professional Development Series). Cisco Press. 2002-05-07. ISBN   978-0-13-303467-7.
  10. 1 2 CCIE Practical Studies, Volume I | Chapter 11. Hybrid: Enhanced Interior Gateway Routing Protocol (EIGRP) Archived 2014-04-26 at the Wayback Machine . InformIT (2008-06-13). Retrieved on 2014-05-30.
  11. Ashraf, Muhammad Irfan, et al. "Comparative Analysis of Link State and Hybrid Routing Protocols Archived 2013-11-09 at the Wayback Machine "
  12. Albrightson, R., Garcia-Luna-Aceves, J. J., & Boyle, J. (1994, May). EIGRP a fast routing protocol based on distance vectors. In Proc. Network ID/Interop (Vol. 94, pp. 136-147).
  13. "What is 10.0.0.1 IP Address ? and How to login into 10.0.0.1 ?". 10.0.0.0.1 Consortium. 2018-03-02. Archived from the original on 2018-03-03. Retrieved 2018-03-03.
  14. How Does Unequal Cost Path Load Balancing (Variance) Work in IGRP and EIGRP Cisco. Retrieved on 2017-03-24
  15. "Enhanced Interior Gateway Routing Protocol". CISCO. Retrieved 2017-09-02.
  16. "Cisco Nexus 9000 Series NX-OS Unicast Routing Configuration Guide, Release 6.x - Configuring EIGRP [Cisco Nexus 9000 Series Switches]". Cisco. Retrieved 2022-09-02.
  17. "FRRouting". frrouting.org. Retrieved 2022-09-02.
  18. "EIGRP — FRR latest documentation". docs.frrouting.org. Retrieved 2022-09-02.