Enhanced Interior Gateway Routing Protocol
- Fast convergence - EIGRP uses DUAL to achieve rapid convergence.
- Partial updates - EIGRP sends partial triggered updates rather than periodic updates. These updates are sent only when the path or the metric for a route changes.
- Multiple network layer support - EIGRP supports IP Version 4 (IPv4), IP Version 6 (IPv6), AppleTalk, and Novell NetWare Internetwork Packet Exchange (IPX) using protocol-dependent modules that are responsible for protocol requirements specific to the network layer. EIGRP’s rapid convergence and sophisticated metric offer superior performance and stability when implemented in IP, IPv6, IPX, and AppleTalk networks.
- Use of multicast and unicast - For communication between routers, EIGRP uses multicast and unicast rather than broadcast. As a result, end stations are unaffected by routing updates or queries. The multicast address used for EIGRP is 188.8.131.52.
- Variable-length subnet masking (VLSM) support.
- Seamless connectivity across all data link layer protocols and topologies - EIGRP does not require special configuration to work across any Layer 2 protocols. Other routing protocols, such as Open Shortest Path First (OSPF), require different config urations for different Layer 2 protocols, such as Ethernet and Frame Relay. EIGRP was designed to operate effectively in both LAN and WAN environments.
- Sophisticated metric - EIGRP uses the same algorithm for metric calculation as IGRP, but represents values in a 32-bit format, rather than IGRP’s 24-bit format, to give additional granularity (thus, the EIGRP metric is the IGRP metric multiplied by 256). A significant advantage of EIGRP (and IGRP) over other protocols is its support for unequal metric load bala.
The EIGRP routing process is a transport layer function. IP packets carrying EIGRP information have protocol number 88 in their IP header,similar to how the Transmission Control Protocol [TCP] is protocol number 6 and the User Datagram Protocol [UDP] is protocol number 17.
EIGRP uses the following four key technologies that combine to differentiate it from other routing technologies:
- Neighbor discovery/recovery mechanism - EIGRP’s neighbor discovery mechanism enables routers to dynamically learn about other routers on their directly attached networks. Routers also must discover when their neighbors become unreachable or inoperative. This process is achieved with low overhead by periodically sending small hello packets. As long as a router receives hello packets from a neigh boring router, it assumes that the neighbor is functioning, and the two can exchange routing information.
- Reliable Transport Protocol (RTP) - RTP is responsible for guaranteed, ordered delivery of EIGRP packets to all neighbors. RTP supports intermixed transmission of multicast or unicast packets. For efficiency, only certain EIGRP packets are transmitted reliably. For example, it is not necessary to send hello packets reliably to all neighbors individually, so EIGRP sends a single multicast hello packet containing an indicator that informs the receivers that the packet need not be acknowledged. Other types of packets, such as updates, indicate in the packet that acknowledgment is required. RTP contains a provision for sending multicast packets quickly even when unacknowledged packets are pending, which helps ensure that convergence time remains low in the presence of varying speed links.
- DUAL finite-state machine - DUAL embodies the decision process for all route computations. DUAL tracks all routes advertised by all neighbors and uses distance information, known as the composite metric or cost, to select efficient, loop-free paths to all destinations.
- Protocol-dependent modules - EIGRP’s protocol-dependent modules are responsible for network layer protocol-specific requirements. As mentioned earlier, EIGRP supports IP, IPv6, and the legacy protocols AppleTalk, and IPX. Each protocol has its own EIGRP module and operates independently from any of the others that might berunning. The IP-EIGRP module, for example, is responsible for sending and receiving EIGRP packets that are encapsulated in IP. Likewise, IP-EIGRP is also responsible for parsing EIGRP packets and informing DUAL of the new information that has been received. IP-EIGRP asks DUAL to make routing decisions, the results of which are stored in the IP routing table. IP-EIGRP is also responsible for redistributing routes learned by other IP routing protocols.
- Neighbor table - EIGRP routers use hello packets to discover neighbors. When a router discovers and forms an adjacency with a new neighbor, it includes the neighbor’s address and the interface through which it can be reached in an entry in the neighbor table.
- Topology table - When the router dynamically discovers a new neighbor, it sends an update about the routes it knows to its new neighbor and receives the same from the new neighbor. These updates populate the topology table. The topology table contains all destinations advertised by neighboring routers.
- Advertised distance and feasible distance - DUAL uses distance information, known as a metric or cost, to select efficient, loop-free paths. The lowest-cost route is calculated by adding the cost between the next-hop router and the destination - referred to as the advertised distance (AD)—to the cost between the local router and the next-hop router. The sum of these costs is referred to as the feasible distance (FD).
- Successor - A successor, also called a current successor, is a neighboring router that has a least-cost path to a destination (the lowest FD) that is guaranteed not to be part of a routing loop. Successor routes are offered to the routing table to be used for forwarding packets. Multiple successors can exist if they have the same FD.
- Routing table - The routing table holds the best routes to each destination and is used for forwarding packets.
- Feasible successor - Along with keeping least-cost paths, DUAL keeps backup paths to each destination. The next-hop router for a backup path is called the feasible successor (FS). An FS is a neighbor that is closer to the destination, but it is not in the least-cost path and, therefore, is not used to forward data. To qualify as an FS, a nexthop router must have an AD less than the FD of the current successor route. This ensures a loop-free topology. Feasible successors are selected at the same time as successors but are kept only in the topology table. The topology table can maintain multiple feasible successors for a destination.
Displays all the IP entries in the topology.
Displays only the successors and feasible successors for IP routes.
- Hello - Hello packets are used for neighbor discovery. They are sent as multicasts and do not require an acknowledgment. (They carry an acknowledgment number of 0.) Multicast address 184.108.40.206. When an EIGRP router receives a hello packet from a router belonging to the same autonomous system, it establishes a neighbor relationship (adjacency). Sent every 60 seconds on T1 or slower NBMA interfaces and every 5 seconds on other serial interfaces and on LANs.
- Update - Update packets contain route change information. An update is sent to communicate the routes that a particular router has used to converge. An update is sent only to affected routers. Update packets are sent as multicasts when a new route is discovered, and when convergence is complete (in other words, when a route becomes passive). To synchronize topology tables, update packets are sent as unicasts to neighbors during their EIGRP startup sequence. Update packets are sent reliably.
- Query - When a router is performing route computation and does not have an FS, it sends a query packet to its neighbors, asking whether they have a successor to the destination. Queries are normally multicast but can be retransmitted as unicast packets in certain cases. They are sent reliably.
- Reply - A reply packet is sent in response to a query packet. Replies are unicast to the originator of the query and are sent reliably. A router must reply to all queries.
- ACK - The ACK is used to acknowledge updates, queries, and replies. ACK packets are unicast hello packets and contain a nonzero acknowledgment number. (Note that hello and ACK packets do not require acknowledgment.)
All packets carrying routing information (update, query, and reply) are sent reliably.
If the RTO expires before an ACK packet is received, the EIGRP process retransmits another copy of the reliable packet, up to a maximum of 16 times OR until the hold time expires.
The multicast flow timer (seen in the show ip eigrp interfaces command output) determines how long to wait for an ACK packet before switching from multicast to unicast.
- EIGRP waits up to 15 seconds on high-speed links and up to 180 seconds on slower WAN links.
- Two routers can become EIGRP neighbors even though the hello and hold time values do not match.
Diffusing Update Algorithm (DUAL)
The AD Advertised Distance is the metric between the next-hop neighbor router and the destination network.
The FD Feasible Distance is the sum of the AD for the particular network learned from an EIGRP neighbor, plus the EIGRP metric to reach that neighbor (the metric between this router and the next-hop router).
EIGRP Metric Calculation
The default constant weight values are K1 = K3 = 1,and K2 = K4 = K5 = 0.
If these K values are equal to their defaults, the formula becomes metric = bandwidth + delay
Two routers must have identical K values for EIGRP to establish an adjacency. The show ip protocols command is helpful in determining the current K value settings before an adjacency is attempted.
Configuring and Verifying EIGRP
Cisco IOS Software allows configuration of up to 16 paths for equal-cost load balancing, using the maximum-paths router configuration command.
To override the use of the address of a physical or loopback interface as the router ID.
eigrp router-id ip-address
A passive-interface command does the following:
- It prevents a neighbor relationship from being established over a passive interface.
- It stops routing updates from being processed or sent over passive interface.
- It allows a subnet on a passive interface to be announced in an EIGRP process.
passive-interface FastEthernet0/0 (default)
A router configured with ip default-network considers the network-number the last-resort gateway that it will announce to other routers with the exterior flag set. The network must be reachable by the router that uses this command before it announces it as a candidate default route to other EIGRP routers.
EIGRP Passes a Default Route Only if It Is Configured to Do So.
router eigrp 100
EIGRP router does not perform automatic summarization of networks in which it does not participate. To turn off automatic summarization, use the no auto-summary router configuration command. Use the ip summary-address eigrp as-number address mask [admin-distance] interface configuration command to manually create a summary route at an arbitrary bit boundary. By default, both Routers A and B summarize routes at the classful boundary. As a result, Router C would have two equally good routes to network 172.16.0.0 and would perform load balancing between Router A and Router B. This would not be correct routing behavior.
router eigrp 1
ip address 192.168.4.2 255.255.255.0
ip summary-address eigrp 1 172.16.0.0 255.255.0.0
Verifying EIGRP Operation
- Interface - Interface over which EIGRP is configured
- Peers - Number of directly connected EIGRP neighbors
- Xmit Queue Un/Reliable - Number of packets waiting in the Unreliable and Reliable retransmit queues
- Mean SRTT - Mean SRTT interval, in milliseconds
- Pacing Time Un/Reliable - Pacing time used to determine when EIGRP packetsshould be sent out the interface (for unreliable and reliable packets)
- Multicast Flow Timer - Maximum number of seconds that the router will wait foran ACK packet after sending a multicast EIGRP packet, before switching from multicast to unicast
- Pending Routes - Number of routes in the packets in the retransmit queue waiting to be sent
- Passive (P) - This network is available, and installation can occur in the routing table. Passive is the correct state for a stable network, indicating that no EIGRP computations are being performed for this route.
- Active (A) - This network is currently unavailable, and installation cannot occur in the routing table. Being active means that outstanding queries exist for this network, indicating that EIGRP computations are being performed for this route.
- Update (U) - This network is being updated (indicating that an update packet is being sent). This code also applies if the router is waiting for an acknowledgment for this update packet.
- Query (Q) - There is an outstanding query packet for this network, indicating that a query packet was sent. This code also applies if the router is waiting for an acknowledgment for a query packet.
- Reply (R) - The router is generating a reply for this network, indicating that a reply packet was sent, or is waiting for an acknowledgment for the reply packet.
- Reply status (r) - Indicates the flag that is set after the software has sent a query and is waiting for a reply.
- Stuck-in-active (s) - There is an EIGRP convergence problem for this network.
- H (handle) - A number used internally by the Cisco IOS to track a neighbor. This column lists the order in which a peering session was established with the specified neighbor, starting with 0.
- Interface - The interface on this router through which it is receiving hello packets for the neighbor, and therefore through which the neighbor can be reached.
- Hold Time - The maximum time, in seconds, that the router waits to hear from the neighbor without receiving anything from a neighbor before considering the link unavailable.
- Uptime - The elapsed time, in hours, minutes, and seconds since the local router first heard from this neighbor.
- Smooth Round Trip Timer (SRTT) - The average number of milliseconds it takes for an EIGRP packet to be sent to this neighbor and for the local router to receive an acknowledgment of that packet. This timer is used to determine the retransmit interval, also known as the retransmit timeout (RTO).
- RTO - The amount of time, in milliseconds, that the router waits for an acknowledgment before retransmitting a reliable packet from the retransmission queue to a neighbor.
- Queue (Q) count - The number of EIGRP packets (update, query, and reply) waiting in the queue to be sent out. If this value is constantly higher than 0, a congestion problem might exist. A 0 indicates that no EIGRP packets are in the queue.
- Seq Num - The sequence number of the last update, query, or reply packet that was received from this neighbor.
Debug EIGRP packets
Displays the types of EIGRP packets sent and received by the router Hello packets are sent unreliably, so the sequence number (Seq) does not increment for hello packets.
*May 11 04:02:58.309:AS 100, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
Seq 5/4 indicates that 192.168.1.101 (R1) is sending this packet as sequence number 5 to R2 and that sequence number 4 has been received from R2 by neighbor R1. R1 is expecting to receive sequence number 5 in the next reliable packet from R2.
*May 11 04:02:59.093:AS 100, Flags 0x0, Seq 5/4 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
R2 returns an ACK packet with Seq 0/5. The acknowledgment is sent as an unreliablepacket. The neighbor unreliable/reliable flag (un/rel 1/0) is set, which means that the acknowledgment was sent in response to a reliable packet.
*May 11 04:02:59.097:AS 100, Flags 0x0, Seq 0/5 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 1/0
The serial number (serno 9-9) reflects the number of changes that the two neighbors register in their EIGRP topology tables. The sequence number increments each time a query, update, or reply packet is sent, whereas the serial number increments each time the topology table changes.
*May 11 04:02:59.113:AS 100, Flags 0x0, Seq 5/5 idbQ 0/0 iidbQ un/rely 0/0peerQ un/rely 0/1 serno 9-9
An interface on R1 is shut down. R1 sends a query packet to R2 to determine whether R2 knows a path to the lost network. R2 responds with an ACK packet to acknowledge the query packet - a reliable packet must be explicitly acknowledged with an ACK packet. R2 also responds to the query with a reply packet. The serial number reference (10-12) represents the number of changes to the topology table since the start of the neighbor relationship between these
two EIGRP neighbors.
*May 11 04:20:43.361: EIGRP: Received QUERY on Serial0/0/1 nbr 192.168.1.101
*May 11 04:20:43.361: EIGRP: Enqueueing ACK on Serial0/0/1 nbr 192.168.1.101
*May 11 04:20:43.381: EIGRP: Sending REPLY on Serial0/0/1 nbr 192.168.1.101
*May 11 04:20:43.381: AS 100, Flags 0x0, Seq 6/6 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/1 serno 10-12
An internal route (indicated by Int) for 172.16.0.0/16 is advertised to R2. The EIGRP process uses the source metric (SM) information in the update to calculate the AD and place it in the EIGRP topology table. In this example, the SM information is SM 28160 – 25600 2560, which means the source metric (the AD) = 28160 = 25600 (the bandwidth) + 2560 (the delay). The EIGRP metric calculation for the total delay uses the metric (M) information in the update. In this example, the M information is M 40514560 – 40000000 514560, which means the metric (the FD) = 40514560 = 40000000 (the bandwidth) + 514560 (the delay).
M 40514560 - 40000000 514560 SM 28160 - 25600 2560
When R2 processes an incoming query packet for network 172.16.0.0/16 when the interface on the neighboring router (R1) that leads to that network is shut down. The metric value (4,294,967,295) is the highest possible value for a 32-bit number—it indicates that the route is unreachable.
debug eigrp neighbors
! R2 receives a query looking for a lost path from R1
*May 11 04:35:44.281: IP-EIGRP(Default-IP-Routing-Table:100): Processing incoming QUERY packet
! R2 realizes that if it cannot use R1 for this network then it does not have an entry in the routing table !
! for this network continues
*May 11 04:35:44.281: IP-EIGRP(Default-IP-Routing-Table:100): Int 172.16.0.0/16 M 4294967295 - 0 4294967295 SM 4294967295 - 0 4294967295
*May 11 04:35:44.281: IP-EIGRP(Default-IP-Routing-Table:100): 172.16.0.0/16 routing table not updated thru 192.168.1.101
Configuring and Verifying EIGRP in an Enterprise WAN
EIGRP over MPLS . A label identifies a flow of packets (for example, voice traffic between two nodes), also called a forwarding equivalence class (FEC). An FEC is a grouping of packets. The MPLS network nodes, called label-switched routers (LSRs).The LSRs do not need to examine the packet’s IP header; rather, they forward it based on the label. A label-switched path (LSP) must be defined for each FEC before packets can be sent . It is important to note that labels are locally significant to each MPLS node only. Therefore, the nodes must communicate what label to use for each FEC. One of two protocols is used for this communication: the Label Distribution Protocol or an enhanced version of the Resource Reservation Protocol . An interior routing protocol, such as OSPF or EIGRP is also used within the MPLS network to exchange routing information. A unique feature of MPLS is its capability to perform label stacking, in which multiple labels can be carried in a packet. The top label, which is the last one in, is always processed first.
Any Transport over MPLS (AToM) was introduced to facilitate this Layer 2 connectivity across an MPLS backbone.
The Layer 3 MPLS VPN a separate IP subnet is used.
EIGRP Load Balancing
Router R1 is configured to support up to three equal-cost paths. If this metric were the same as the others, only three of the four routes would be used because of the maximum-paths 3 command.
network 172.16.1.0 0.0.0.255
Router R1 uses Router R3 as the successor because its FD is lowest (20). With the variance 2 command applied to Router R1, the path through Router R2 meets the criteria for load balancing. In this case, the FD through Router R2 (30) is less than twice the FD through the successor Router R3 (2 * 20 = 40).
EIGRP Link Utilization
By default, EIGRP uses up to 50 percent of the bandwidth declared on an interface or subinterface.
Router(config-if)#ip bandwidth-percent eigrp 1 200
Configuring and Verifying EIGRP Authentication
- Simple password authentication (also called plain-text authentication) - Supported by Integrated System-Integrated System (IS-IS) Protocol, OSPF, and Routing Information Protocol Version 2 (RIPv2)
- MD5 authentication - Supported by OSPF, RIPv2, BGP, and EIGRP
key chain R1chain
accept-lifetime 04:00:00 Jan 1 2009 infinite
send-lifetime 04:00:00 Jan 1 2009 04:00:00 Jan 31 2009
accept-lifetime 04:00:00 Jan 25 2009 infinitesend-lifetime 04:00:00 Jan 25 2009 infinite
ip address 172.16.1.1 255.255.255.0
ip address 192.168.1.101 255.255.255.224
ip authentication mode eigrp 100 md5
ip authentication key-chain eigrp 100 R1chain
router eigrp 100
network 172.16.1.0 0.0.0.255
key chain R2chain
accept-lifetime 04:00:00 Jan 1 2009 infinite
send-lifetime 04:00:00 Jan 1 2009 infinite
accept-lifetime 04:00:00 Jan 25 2009 infinite
send-lifetime 04:00:00 Jan 25 2009 infinite
ip address 172.17.2.2 255.255.255.0
ip address 192.168.1.102 255.255.255.224
ip authentication mode eigrp 100 md5
ip authentication key-chain eigrp 100 R2chain
router eigrp 100
network 172.17.2.0 0.0.0.255
Troubleshooting MD5 Authentication:
EIGRP Packets debugging is on(UPDATE, REQUEST, QUERY, REPLY, HELLO, IPXSAP, PROBE, ACK, STUB, SIAQUERY, SIAREPLY)
R2#*Apr 21 16:38:38.321: EIGRP: received packet with MD5 authentication, key id = 2
*Apr 21 16:38:38.321: EIGRP: Received HELLO on Serial0/0/1 nbr 192.168.1.101
*Apr 21 16:38:38.321: AS 100, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
R2#debug eigrp packets
EIGRP Packets debugging is on (UPDATE, REQUEST, QUERY, REPLY, HELLO, IPXSAP, PROBE, ACK, STUB, SIAQUERY, SIAREPLY)
*Apr 21 16:50:18.749: EIGRP: pkt key id = 2, authentication mismatch
*Apr 21 16:50:18.749: EIGRP: Serial0/0/1: ignored packet from 192.168.1.101, opcode = 5 (invalid authentication)
*Apr 21 16:50:18.749: EIGRP: Dropping peer, invalid authentication
*Apr 21 16:50:18.749: EIGRP: Sending HELLO on Serial0/0/1
*Apr 21 16:50:18.749: AS 100, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0
*Apr 21 16:50:18.753: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 192.168.1.101 (Serial0/0/1) is down: Auth failure
Optimizing EIGRP Implementations
EIGRP Queries and Stuck-in-Active. Recall that when a router loses a route and does not have an FS in its topology table, it looks for an alternative path to the destination. This is known as going active on a route. If a neighbor does not have an alternative route, it queries each of its own neighbors for an alternative path.
If the router does not receive a reply to all the outstanding queries within 3 minutes (the default time), the route goes to the SIA state. Use the eigrp log-neighbor-changes command to enable logging of neighbor adjaency changes, to
monitor the routing system’s stability and to help detect problems related to SIA.
Cisco IOS Software Release 12.1(5) and later - Active Process Enhancement feature.
EIGRP Query Range
Limiting the scope of query propagation through the network (the query range), also known as query scoping, helps reduce incidences of SIA. Not only are the remote routers required to respond to queries from the regional offices, but they also continue the search by reflecting the queries back toward the other regional office’s router. This significantly complicates the convergence process on the network.
After the EIGRP neighbor relationship between Routers A and B is reestablished (just after the adjacency is reset), Router B, which no longer has a path to 10.1.8.0/24, does not pass the 10.1.8.0/24 network to Router A. Router A learns that the remote sites do not have a path to 10.1.8.0/24, and the new relationship with Router B does not include a path to 10.1.8.0/24, so Router A removes the 10.1.8.0 network from its IP EIGRP topology table.
EIGRP summarization can limit the query range. Router B sends a summary route of 172.30.0.0/16 to Router A. When network 172.30.1.0/24 goes down, Router A receives a query from Router B about that network. Because Router A has received only a summary route, that specific network is not in its routing table and so Router A replies to the query with a “network 172.30.1.0/24 unreachable” message and does not extend the query any further.
Generally, the hub router needs to send only a default route to the remote routers. A router configured as a stub with the eigrp stub command shares information about connected and summary routes with all neighbor routers by default.
- receive-only - The receive-only keyword restricts the router from sharing any of its routes with any other router within an EIGRP autonomous system. This keyword does not permit any other keyword to be specified, because it prevents any type of route from being sent. Use this option if there is a single interface on the router.
- connected - The connected keyword permits the EIGRP stub routing feature to send connected routes. If a network command does not include the connected routes, it might be necessary to redistribute connected routes with the redistribute connected command under the EIGRP process. This option is enabled by default
and is the most widely practical stub option.
- static - The static keyword permits the EIGRP stub routing feature to send static routes. Redistributing static routes with the redistribute static command is still necessary.
- summary - The summary keyword permits the EIGRP stub routing feature to send summary routes. You can create summary routes manually with the ip summary-address eigrp command or automatically at a major network border router with the auto-summary command enabled. This option is enabled by default.
- redistributed - The redistribute option permits the EIGRP stub routing feature to send redistributed routes. Redistributing routes with the redistribute command is still necessary.
Graceful shutdown, implemented with the goodbye message feature, is designed to improve EIGRP network convergence.
The goodbye message is supported in Cisco IOS Software Release 12.3(2), 12.3(3)B, and 12.3(2)T and later for no network command and no router eigrp command