4.4 Enhanced Interior Gateway Routing Protocol (EIGRP)
The Enhanced Interior Gateway Routing Protocol (EIGRP) is a proprietary Cisco classless distance-vector routing protocol that is an enhanced version of IGRP and is designed for use in large networks. It uses IP protocol 88 and has the capability to support IP, AppleTalk, and IPX. EIGRP is often regarded as a hybrid protocol because it advertises routes such as the distance-vector protocols, and it creates neighbor relationships such as the link-state protocols. It uses the same distance vector technology as IGRP. The changes were effected in the convergence properties and the operating efficiency of the protocol. It has some characteristics similar to those of a link-state routing.
EIGRP also scales well. The major concern in scaling an organizational network is controlling the network overhead that is sent, particularly over slow WAN links. The less information about the network, its services, and networks that need to be sent, the greater the capacity available for the data between clients and servers. Although sending less routing information relieves the network, it gives the routers less information with which to make decisions. As seen with summarization, static and default routes can lead to poor routing decisions and loss of connectivity. As a proprietary distance vector protocol, it has solved many of these problems. However, it does face some issues with regard to scaling because of the inherent nature of distance vector. EIGRP addresses many of the problems related to scaling the network that IGRP suffered from. There are four main components of EIGRP: the protocol-dependent modules, the Reliable Transport Protocol (RTP), neighbor discovery/recovery, and of the Diffusing Update Algorithm (DUAL).
EIGRP uses protocol-dependent modules that are logical interfaces which support the IP routing protocols, Internetwork Packet Exchange (IPX) routing protocols and the AppleTalk routing protocols separately. These logical interfaces are between DUAL who performs route decision making on the packets received. When IGRP is also configured, EIQRP automatically redistributes routing information to IGRP. EIGRP communicates with RIP IPX when IPX is supported. DUAL receives the route information and chooses the best path to the destination.
RTP is used by EIGRP to make certain that the route updates are transported or distributed in a reliable and dependable manner. Sequence numbers are used to sort the routing update information that is transported in succession.
Neighbor discovery and rediscovery process: EIGRP also uses hello packets to learn about its neighbors routes. No periodic update timers are used by the protocol. The default hello / hold-time timer is 5/15 seconds in high speed networks. The hold-time to keep a neighbor relationship is three times the hello timer; 15 seconds. Networks with multipoint WAN link speeds T1 and less have a hello / holddown timer of 60/180 seconds. A neighbor is discarded from the EIGRP table when a hello is not received by the EIGRP router in the hold-time interval.
DUAL chooses the best path (successor path), and the second best path (feasible path) to the destination for EIGRP and also ensures that the path selected is free from routing loops. When there is no feasible path, and the successor is down, the route entry is put into an active state. The EIGRP routers then proceed to transmit query packets to the neighbor routers to discover a feasible path for a packet. DUAL is also used as the loop prevention technique to identify loop free paths to the packet's destination network
Because EIGRP is a classless protocol, it has CIDR and VLSM support for the multicasting of the route updates and the subnet mask is transmitted with route updates. EIGRP also has support for route authentication using MD5. Like IGRP, EIGRP can only be used in Cisco routers, can load balance across equal and unequal cost paths, and summarizes at network boundaries. Unequal cost path load balancing must be configured using the variance <n> command
The main attributes of EIGRP are:
It enables a loop-free environment
EIGRP is backward compatible with the IGRP protocol
It provides support for the multiple routed protocols
It caters for classless routing, discontiguous networks and VLSM.
EIGRP supports routing update authentication
It relays network changes in place of periodic changes
EIGRP can load balance a maximum of six equal or unequal paths.
With EIGRP, metric is based on the composite of bandwidth, delay and maximum transmission unit (MTU) sizes. This provides for the most favorable path to a destination
EIGRP has a quick convergence time and a reduced use of bandwidth
EIGRP Terminology
Term | Meaning |
---|---|
ACK | This refers to an acknowledgement that normally entails a Hello packet with no data. |
Active | This refers to the time period when a router is probing neighbors for network path information |
Feasible Distance | This is the metric to a remote network |
Feasible Successor | This is used for an EIGRP neighbor that is not utilized for forwarding data. The EIGRP router does not represent the least-cost path either |
Hello | This refers to a multicast data packet that is utilized to establish and manage EIGRP neighbor relations. |
Holdtime | This is the quantity of time that a router holds on for a Hello packet prior to 'downing' a neighbor relationship. |
Neighbor | This refers to two routers that are linked on a shared network. |
Neighbor Table | This refers to the table that is sustained by every EIGRP router that contains a list of adjacencies. An EIGRP router owns a neighbor table for every supported route protocol. |
Passive | This is the normal operating mode for locating a route to a destination |
Query | This is a data formation utilized to address neighboring routers on a lost network path. |
Reply | This refers the response to the query packet. |
Retransmission timeout (RTO) | This is the quantity of time that an EIGRP router holds on, prior to retransmitting to a neighbor. |
Routing Table | This is a table maintained for every routed protocol that is produced from the most favorable routes to a destination. |
Smooth Round Trip Time (SRTT) | This refers to the quantity of time required to dependably send a packet to a neighbor and receive the ensuing ACK. The time is recorded in milliseconds. |
Successor | This refers to the route from the topology table that holds the most favorable aspects for the destination, which is injected into the routing table. |
Stuck In Active (SIA) | This refers a route which is abandoned because it took too long a period, to reply to an EIGRP query. |
4.4.1 EIGRP Operation
As a revised and improved version of IGRP, EIGRP's purpose is to solve the scaling limitations that IGRP faces. EIGRP increases the potential growth of a network by reducing the convergence time. This is achieved by the implementation of DUAL, loop-free networks, incremental updates, multicast addressing for updates, and holding information about neighbors as opposed to the entire network
EIGRP has the following packet types:
The hello packet discovers neighbors and is transmitted every 5 seconds. EIGRP multicasts hello packets to multicast address 224.0.0.10.
The update packet is the packet that holds routing information. EIGRP multicasts update packets to multicast address 224.0.0.10. It also unicasts update packets to new neighbors. These packets need to be acknowledged.
The acknowledgement packet is actually a hello packet that contains no data / route information. These packets are transmitted to the sender of an update packet to acknowledge receipt of the packet.
The query packet is multicast, and is transmitted to detect feasible paths to a destination for a packet.
The reply packet is a response to a query packet.
The EIGRP router sends out a small hello packet to dynamically learn of other routing devices that are in the same broadcast domain. The Hello protocol uses a multicast address of 224.0.0.10, and all routers periodically send hellos. On hearing hellos, the router creates a table of its neighbors. The continued receipt of these packets maintains the neighbor table. If a hello from a known neighbor is not heard within a predetermined amount of time, the holdtime, the router will mark the neighbor as dead. The holdtime is set at the default of three times the Hello timer. Therefore, if the router misses three hellos, the neighbor is marked dead. To become a neighbor, the router must hear a hello packet or an ACK from a neighbor, the AS number in the packet header must be the same as that of the receiving router, and the neighbor's metric settings must be the same.
4.4.1.1 The Neighbor Table
In EIGRP, the neighbor table includes the address of the neighbor; the interface through which the neighbor's hello was heard; the holdtime; the uptime, i.e., how long since the router first heard from the neighbor; and the sequence number.
The neighbor table tracks all the packets sent between the neighbors. It tracks both the last sequence number sent to the neighbor and the last sequence number received from the neighbor. Although the Hello protocol is a connectionless protocol, other protocols used by EIGRP are connection-oriented. The sequence number is in reference to these protocols.
Smooth Round Trip Time (SRTT) is used to calculate the retransmission timeout (RTO). This is the time in milliseconds that it takes a packet to be sent to a neighbor and a reply to be received. This states how long the router will wait on a connection-oriented protocol without an acknowledgment before retransmitting the packet. If the original packet that was unacknowledged was multicast, the retransmitted packets will be unicast.
The number of packets in a queue. This is a means by which administrators can monitor congestion on the network.
4.4.1.2 The Topology Table
Once the router knows who its neighbors are, it is can create a database of feasible successors. This view of the network is held in the topology table. The topology table is created from updates received from the neighboring routers. The updates are exchanged between the neighbors. Packets called replies will also update the topology table. Replies are sent in response to queries sent by the router, inquiring about suspect routes. The queries and responses used by EIGRP for the DUAL algorithm are sent reliably as multicasts. If a router does not hear an acknowledgment within the specified time, it retransmits the packet as a unicast. If there is no response after 16 attempts, the router marks the neighbor as dead. The window for the RTP is set as 1. The router must hear an acknowledgment from every router before it can send the next packet. The capability to send unicast retransmissions decreases the time that it takes to build the tables.
The topology table in EIGRP manages the selection of routes to be added to the routing table. The topology table has a record of all known network routes within the organization. The table is built from the update packets that are exchanged by the neighbors and by replies to queries sent by the router. When the router has an understanding of the network, it runs DUAL to determine the best path to the remote network. The result is entered into the routing table. The topology table is updated because the router either gains or loses direct connectivity with a router or hears a change through the network communication of EIGRP.
Like the neighbor table that tracks the receipt of the EIGRP packets, the topology table records the packets that have been sent by the router to the neighbors. It also identifies the status of the networks in the table. A healthy network is marked as passive; it will be labeled as active if the router is attempting to find an alternative path to the remote network that is believed to be down. Because the routing table is built from the topology table, the topology table must have the information required by the routing table. This includes the next logical hop, or the address of the neighbor that sent the update with that network. The routing table will also calculate the metric to the remote network.
4.4.1.3 EIGRP Metrics
EIGRP uses the same metrics as used in IGRP. The main difference is that the result of the calculation is held in a 32-bit field. This means that the decision can be more detailed and makes for better granularity. The DUAL algorithm will use this metric to select the best path or paths to a destination. The computation is performed on paths held in the topology table to identify the best path to place into the routing table. There can be up to six paths held for one destination, and there can be three different types of paths:
Internal, which are paths that are internal to the AS;
Summary, which are internal paths that have been summarized; and
External, which are paths that are external to the AS that have been redistributed into the EIGRP AS.
As with IGRP, the EIGRP metric is based on bandwidth, delay, load and reliability. It is possible to change the metric, however, any configuration changes made be effected on every router in the EIGRP AS. The formula used for the calculation of the EIGRP composite metric is:
EIGRPmetric = {k1 x Lowest Bandwidth + [(k2 x bandwidth) / (256 - Load)] + k3 x Delay} x {k5 / (Reliability + k4)}
In this formula, Lowest Bandwidth is the lowest interface bandwidth in the path and Delay is the sum of all outbound interface delays in the path. A delay of all 1s (that is, a delay of hexadecimal FFFFFFFF) indicates that the network is unreachable. The formula for delay is: [sum of delays] x 256. Reliability and Load are measured dynamically by the router with 100% reliability expressed as 255/255 and load expressed as a fraction of 255. An interface with no load is represented as 1/255. By default, k1 and k3 are set to 1 and k2, k4, and k5 are set to 0.
4.4.2 Updating the Routing Table
DUAL is responsible for maintenance of the topology table and the creation of the routing table. The topology table records the metric as received from the advertising router, or the next logical hop. It then adds the cost of getting to that neighbor, the one that is advertising the route. The cost to the destination network from the advertising router, plus the cost to that router, equals the metric to the destination network from the router. The metric or cost from the neighbor advertising the route is known as the advertised distance (AD). The metric or cost from the router is referred to as the feasible distance (FD). If the AD is less than the FD, then the next-hop router is downstream and there is no loop.
4.4.2.1 Updating the Routing Table in Passive Mode
In EIGRP, DUAL determines whether there is an acceptable route in the topology table to replace the current path in the routing table, this is replacing a successor in the routing table with a feasible successor (FS) from the topology table. If the FD is more than the AD, it means that the FD is a feasible condition (FC), allowing it to become an FS. If a link between a neighboring router, i.e., the successor, and the next hop on a path goes down, the router would look in its topology table for alternative routes. It uses the metrics to determine another FS. To qualify as an FS, the alternative route must have as AD that is less than the original FD. If the router finds an alternative path through another neighbor with an AD that is less than the original AD, it replaces the original FS with the alterative route without changing from passive to active mode. The neighbor through which the FS now passes becomes the new successor.
4.4.2.2 Updating the Routing Table in Active Mode
If the router does to find an alternative path that is an acceptable FS, i.e., an alternative path with an AD that is less than the original AD, it must go into active mode to query its neighbors. The neighbors with an FD that is greater than their AD will reply. The router selects the path with the lower cost as the best alternative route. The topology and routing tables will then be updated, DUAL will be calculated, and the network will be returned to passive mode. In this event, the neighboring router through which the new path passes becomes the successor.
4.4.2.3 Adding a Network to the Topology Table
When a new network is added, the access router through which the new network is connected becomes aware of the new network and starts to send Hello packets out the new interface. It will not receive a reply because it is the access router giving connectivity to the new network. Therefore, there are no new entries in the neighbor table because no neighbors have responded to the Hello protocol. There is a new entry in the topology table, however, because this is a new network. EIGRP then send an update to all its neighbors, informing them of the new network. The sent updates are tracked in the topology table and the neighbor table because the updates are connection-oriented and the acknowledgments from the neighbors must be received within a set time frame. The router, having added the network to the topology table, adds the network to the routing table. The network then will be marked as passive because it is operational.
However, on hearing the update from the access router, a backbone router updates the sequence number in the neighbor table and adds the network to the topology table. It calculates the FD and the successor to place in the routing table. It is then in a position to send an update to all of its neighbors, except the access router, obeying the split horizon rule. In this way, the new network is propagated to the affected routers.
4.4.2.4 Removing a Path or Router from the Topology Table
If a network connected to a router is disconnected, the router updates its topology and routing table, and sends an update to its neighbor. When its neighbor receives the update, it updates the neighbor table and the topology table. The neighbor then examines the topology table for alternatives routes to the remote network. Because there was only one path to the remote network, no alternatives routes will be found. The neighbor then sends out a query to its neighbors, requesting that they look in their tables for paths to the remote network. The route is marked active in the topology table at this time. The query is tracked and, when all the replies are in, the neighbor and topology tables are updated. DUAL, which starts to compute as soon as a network change is registered, runs to determine the best path, which is placed in the routing table. However, because no alternative route is available, the neighbors reply to the query stating that they have no path, after they have queried their own neighbors, etc. When no router can supply a path to the network, all the routers remove the network from their routing and topology tables.
4.4.3 Configuring EIGRP
The commands for EIGRP are consistent with the other IP routing protocols. Although IP routing is on automatically, the chosen routing protocol must be configured and the participating interfaces must be identified. EIGRP allows for VLSM and, therefore, summarization because the mask is sent in the update packets. Although summarization is automatic, EIGRP summarizes at the NIC or major network boundary. To summarize within the NIC number, it must be manually configured. EIGRP can summarize at any router.
The router needs to understand how to participate in the EIGRP network. Therefore, it requires the EIGRP process; an EIGRP autonomous system number so that it can be identified as part of the same autonomous system; participating router interfaces to send or receive EIGRP routing updates.
By default, there is no IP routing protocol running on the Cisco router. To configure EIGRP as the routing protocol, you must issue the following command:
router eigrp autonomous_system_number
Although EIGRP has been turned on, it has no information on how to operate. The connected networks that are to be sent in the EIGRP updates and the interfaces that participate in the EIGRP updates must be defined. If the EIGRP information is not specified, the process with insufficient configuration will not start.
Prior to Cisco IOS 12.0(4)T, the network command In EIGRP played a similar role to that of the network command in RIP or IGRP. However, the network command for EIGRP is stated at the class level. EIGRP does not have the design specification of areas and, therefore, has no need for granularity. This network command used the following command syntax:
network network number
From Cisco IOS 12.0(4)T onward, there have been some changes to the network command. It is now possible to identify which interfaces are running EIGRP by stating a wildcard mask. The syntax for the network command is:
network network number [ wildcard mask ]
The no form of this command, as in no network network_number [ wiidcard_mask ] disables EIGRP.
After the network has been defined to EIGRP, it will identify the interfaces directly connected to the routers that share that network address. Once it has identified the interfaces on the router that are participating in the EIGRP domain, updates will be received on the interface, updates will be sent out the interfaces, the network will be advertised out all EIGRP interfaces, and if appropriate, the Hello protocol will be propagated.
There are a number of optional commands that can be used to configure the way EIGRP works within the network. These commands should be used in reference to the design of the network and its technical requirements. The optional EIGRP commands are:
no autosummary, which will turn off automatic summarization. If summarization is not configured, EIGRP will automatically summarize at the class boundary. This command is IOS-specific and applies to the entire router. Thus, if there are slow serial interfaces or congested links on the router, they will transmit all the subnets known on the router. This may significantly increase the overhead for the link.
ip summary address eigrp autonomous_system_number ip_address subnet_mask, which configures summarization at the interface level. This command must be preceded by the interface interface_number command.
variance multiplier, which is used to configure EIGRP to load-balance across unequal paths. By default, EIGRP automatically load-balances across links of equal cost. The variance command allows the administrator to identify by the use of the multiplier parameter the metric scope for including additional paths. The multiplier is a number that ranges from 1 to 128. The default is 1b>, which allows for equal cost load balancing. If the number is higher, it will multiply the best cost or metric value for a path by the number stated as the multiplier. All paths to the same destination that have metrics within this new range are now included in load balancing. The amount of traffic sent over each link is proportional to the metric for the path.
bandwidth iine_speed, which allows the administrator to override the default bandwidth settings on the links. EIGRP will not use more than 50 percent of the stated bandwidth on a link. This is often necessary on serial links because the default bandwidth is 1.544 Mbps or a T1. If in reality the link is 56 kbps, it is easy to see how EIGRP could saturate the link. EIGRP will try to use 50 percent of a T1 link (772 kbps), far exceeding the real bandwidth of the line. This will mean not only the dropping of data packets due to congestion, but also the dropping of EIGRP packets. Therefore, it is essential to configure all interfaces to reflect the true speed of the line. This command must be preceded by the interface interface_number command.
ip bandwidth-percent eigrp autonomous_system_number percent, which interacts with the bandwidth command on the interface. The reason for using this command is primarily because in your network, the bandwidth command does not reflect the true speed of the link. The bandwidth command may have been altered to manipulate the routing metric and path selection of a routing protocol, such as IGRP or OSPF. It might be better to use other methods of controlling the routing metric and return the bandwidth to a true value. Otherwise, the bandwidth-percent command is available. It is possible to set a bandwidth percent that is larger than the stated bandwidth. This is in the understanding that although the bandwidth may be stated to be 56 kbps, the link is in fact 256 kbps. This command must also be preceded by the interface interface_number command.
4.4.4 Verifying the EIGRP Operation
There are a number of show and debug commands that can be used to configure, maintain, and troubleshoot
a live EIGP network. The show commands are:
show ip eigrp neighbors, which provides detailed information on the neighbors. This command records the communication between the router and the neighbors as well as the interface and address by which they communicate.
show ip eigrp topology, which provides details about the routes held in the topology table and for detailed information on the networks that the router is aware of and the preferred paths to those networks, as well as the next logical hop as the first step in the path. The router will track the EIGRP packets that have been sent to neighbors in this table.
show ip eigrp topology all, which provides details about all the routes and alternative paths held in the topology table. The router will track the EIGRP packets that have been sent to neighbors in this table.
show ip eigrp traffic, which provides information on the aggregate traffic sent to and from the EIGRP process.
show ip route, which provides detailed information on the networks that the router is aware of and the preferred paths to those networks. It also gives the next logical hop as the next step in the path.
show ip protocols, which displays the IP configuration on the router, including the interfaces and the configuration of the IP routing protocols.