6.3 EIGRP Data Structures
6.3.1 EIGRP tables
EIGRP is a fairly information-intensive routing protocol; it must keep track of the current state (or nearly current state) of many different facets of the network. This information is organized into collections of related information, which are stored in tables. EIGRP maintains the currency of these tables via a series of specialized packet types. Each packet type is used for a specific function. This section examines the basic functionality and use of each of the EIGRP tables.

EIGRP uses many different tables, each dedicated to organizing and storing data pertinent to a specific facet of the network. The proprietary nature of EIGRP precludes an exhaustive survey of these tables as well as their structures. It is possible, however, to examine the role of some of the more important EIGRP tables, including the following:

  • The neighbor table
  • The routing table
  • The topology table

There are other tables, but these three should adequately convey the bulk of EIGRP internal mechanics.

The Neighbor Table

The single most important table in EIGRP is the neighbor table. The neighbor relationships tracked in this table are the basis for all of the EIGRP routing update and convergence activity.

The neighbor table tracks state information about adjacent neighboring EIGRP nodes. Whenever a new neighbor is discovered, the address of that neighbor and the interface used to reach it are recorded in a new entry in the neighbor table. Actually, an EIGRP router may contain several neighbor tables because one is required for each protocol- dependent module. Therefore, a network that runs both AppleTalk and IP would have two different neighbor tables. A separate EIGRP process would have to be configured for each routed protocol used in the network.

Additionally, a neighbor table is used to support reliable, sequenced delivery of packets. One field in each row of the table is populated with the last sequence number of the packet received from that neighbor. EIGRP uses this field for two purposes:

  • Sequence numbers are used to acknowledge specific packets that were delivered reliably. Acknowledgments are transmitted bearing the sequence number of the packet of which they are acknowledging receipt, enabling the router that receives the acknowledgment to know which packet is being acknowledged.
  • This field can also alert EIGRP to packets being received out of sequence.

For both of these reasons, EIGRP records the sequence number of the last message received from each specific neighbor.

The Routing Table

The routing table contains the lowest-metric routes that DUAL calculated for all known destinations. The routing table can contain up to six routes to each destination. Whenever a router detects a change in a routing table entry, it must notify its neighbors of that change. These neighbors must then determine the impact that change has on their routes.

A separate routing table is maintained for each routed protocol that EIGRP is configured to support. Thus, if you are simultaneously running IP and AppleTalk, your EIGRP routers will each have two routing tables—one for each routed protocol.

The Topology Table

EIGRP uses its topology table to store all the information it needs to calculate a set of distances, and vectors, to all known and reachable destinations. This information includes the following fields:

  • Bandwidth --- The bandwidth of the slowest interface in the path to a destination effectively limits the performance of the route and is used to calculate the route composite metric. This metric is calculated the same way in both IGRP and EIGRP.
  • Total delay --- This field contains the sum total of delay values in that route. This sum is calculated the same way as IGRP.
  • Reliability --- The reliability of the path is also recorded in the topology table. This metric is identical to the IGRP reliability metric.
  • Load --- The load level of the path is another of the IGRP metrics that has been retained by EIGRP.
  • MTU --- This field contains the size of the smallest maximum transmission unit (MTU) supported by the router interfaces in the path. As the least-common MTU, datagrams exceeding this value will be fragmented en route to their destination. Therefore, EIGRP attempts to notify all routers, in advance, of the maximum MTU on each path to a given destination.
  • Reported distance --- The reported distance of the path is the distance reported by an adjacent neighbor to a specific destination. This metric does not include the distance between this router and the adjacent neighbor.
  • Feasible distance --- The feasible distance is the lowest calculated metric to each destination.
  • Route source --- The source of the route is the identification number of the router that originally advertised that route. This field is populated only for routes learned externally from the EIGRP network. Route tagging can be particularly useful with policy-based routing. For more information on EIGRP route tagging capabilities, refer to the section "Route Tagging with EIGRP" later in this chapter.

Also recorded for each entry is the interface through which this destination is reachable. The topology table is sorted. Successors are at the top, followed immediately by feasible successors. EIGRP even stores routes that DUAL believes to be loops in the topology table. These routes are at the bottom of the topology table. You can see the entire contents of the EIGRP topology table by executing the following command:

show ip eigrp topology all

A separate topology table is maintained for each protocol-dependent module being used by EIGRP. The information contained in a topology table is used as input to the DUAL finite-state machine.

Entries in a topology table can be in one of two states: active or passive. These states identify the status of the route indicated by the entry rather than the status of the entry itself. A passive route is one that is stable and available for use.

An active route is one currently being recomputed. Recomputation is the process of recalculating routes in search of new successors. This process isn't necessarily processor intensive, but it can be time intensive. Consequently, extensive recomputation can exacerbate convergence times in an EIGRP network. Recomputation is a rather resource-intensive measure. Therefore, in the event of a topology change, DUAL is designed to use any and all available feasible successors before recomputing. A recomputation will occur only if there are no successors or feasible successors to a route.