Enhanced IGRP (interior gateway routing protocol) is an advanced distance vector routing protocol.
|
It offers features available in distance vector routing protocols such as IGRP.
|
It combines these with advantages found in link state routing protocols such as OSPF.
|
For more information on distance vector and link state routing see the CBT Systems course £RImplementing Distance Vector Routing Protocols£r.
|
Enhanced IGRP is compatible with IGRP routers.
|
In fact, an automatic redistribution mechanism allows the routes from either of these protocols to be imported into the other.
|
And the metrics of both protocols can be easily compared because they can be directly translated.
|
This facilitates the gradual implementation of Enhanced IGRP in existing IGRP networks.
|
Enhanced IGRP treats IGRP routes as external routes, and provides a way for the network administrator to customize them.
|
Enhanced IGRP includes the following features:

• fast convergence
|
• partial, bounded updates
|
• variable length subnet masks
|
• multiple network layer support
|
Routers running Enhanced IGRP support fast convergence by using the diffusing update algorithm (DUAL).
|
A router's £RDUAL finite state machine£r is the process responsible for determining the routes along which packets are sent.
|
It selects routes to be inserted into the routing table based on feasible successors.
|
An Enhanced IGRP feasible successor is a neighboring router used for packet forwarding that has a least-cost path to a destination that is guaranteed not to be part of a routing loop.
|
Each Enhanced IGRP router stores every routing table belonging to its neighbors.
|
In the context of Enhanced IGRP, neighbors are routers that are directly connected to each other and also running Enhanced IGRP.
|
These tables are received when a router first communicates with its neighbors.
|
This means that an alternate route can be adapted quickly if a routing change becomes necessary.
|
This helps to eliminate routing loops.
|
When a route becomes unusable, a router running Enhanced IGRP examines the routing table compiled from its neighbors and selects the most appropriate route.
|
However, it may occur that no such route is immediately apparent.
|
In such a case, the router queries its neighbors in an attempt to discover an alternative route.
|
These queries are propagated until a new route is found.
|
Enhanced IGRP routers update their routing tables only when there is a specific need to do so.
|
These updates are made when the routing path changes or when the metric for that route changes.
|
This distinguishes these routers from those that run pure distance vector routing protocols, which perform periodic updates to routing tables.
|
When an update is made to a routing table, an Enhanced IGRP router sends that update to its neighbors.
|
But it is automatically bounded so that it sends only the information that needs to be updated.
|
And it sends that information only to those routers affected by the update.
@@
By default, Enhanced IGRP uses a flat (non-hierarchical) topology.
|
Subnet routes are automatically summarized at a network number boundary.
|
Route summarization allows a single router to act as the interface between the subnetwork and the rest of the network.

This means that a single, summary route can be advertised for the entire subnetwork.
|
This is sufficient for most IP networks.
|
You can also configure route summarization at any interface with any bit boundary.
|
This allows ranges of networks to be summarized arbitrarily.
|
Enhanced IGRP allows you to use bit-wise subnetting in conjunction with variable length subnetwork masks when assigning addresses.
|
This allows you to save address space.
|
For more information on assigning addresses and defining subnet masks, see the CBT Systems course £RTCP/IP Addressing and Cisco Routers£r.
@@
Enhanced IGRP supports some of the most commonly used protocols:

• TCP/IP
|
• AppleTalk
|
• Novell IPX
|
The functionality of Enhanced IGRP can be divided into two areas:

• tasks that are shared between protocols
|
• tasks that are separate for each
  supported protocol
|
For each network layer protocol supported by Enhanced IGRP, a separate set of tables must be maintained.
|
To facilitate this, Enhanced IGRP offers a specific protocol-dependent module for each supported protocol.
|
Protocol-dependent modules are responsible for network layer protocol-specific tasks. 

For example, the IP Enhanced IGRP module is responsible for sending and receiving Enhanced IGRP packets that are encapsulated in IP.
|
Each protocol-dependent module is responsible for sending and receiving packets associated with that specific protocol.
|
<f>This includes the reception and redistribution of packets containing protocol-specific routing data.
|
The protocol-dependent modules parse the incoming packets and pass the relevant data to DUAL, which uses the data to make routing decisions.
|
The results of these decisions are stored in routing tables - one for each supported protocol.
|
There is also a neighbor table and a topology table for each protocol.
@@
Enhanced IGRP's protocol engine allows for some tasks to be shared between protocols, such as

• route processing using DUAL
|
• neighbor discovery
|
• reliable transport
|
Although Enhanced IGRP maintains separate routing tables for each supported protocol, the process of making routing decisions is performed by one common algorithm.
|
The DUAL algorithm applies a common metric structure to each protocol when performing this task.
|
An Enhanced IGRP router uses neighbor discovery to attempt to locate other Enhanced IGRP routers.
|
It does this by sending protocol-dependent hello packets.
|
But this process, critical to proper Enhanced IGRP operation, is the same for all supported protocols.
|
Enhanced IGRP depends on sending partial route updates to notify other routers of route changes.
|
So reliable transport is essential in order to ensure a loop-free network topology.
|
To achieve this, routers receiving certain types of packets send a packet back to the source router acknowledging reception.
|
Enhanced IGRP guarantees ordered delivery of all packets by using the reliable transport protocol (RTP).
|
RTP supports intermixed transmission of multicast and unicast packets.
|
There are some packets that do not need to be transmitted reliably by Enhanced IGRP routers.
|
Hello packets that are multicast over an Ethernet network are examples of packets that do not need to be transmitted reliably.
|
In such cases, an indicator is set in the packet to inform receiving routers that no acknowledgment to the packet is required.
|
This increases efficiency by reducing unnecessary network traffic.
@@
Let's take a closer look at the types of packets used by Enhanced IGRP routers to maintain routing information.
|
These packets are exchanged between neighbors only.
|
Enhanced IGRP supports the following message types:

• hellos
|
• acknowledgments
|
• updates
|
• queries
|
• replies
|
• requests
|
Enhanced IGRP routers use £Rhello£r packets to discover neighbors.
|
To achieve this purpose each router multicasts hello packets at regular intervals.
|
Routers determine that a neighbor is operating based on regular reception of the transmitting router's packets.
|
Generally, these packets are transmitted unreliably, and no acknowledgment is required.
|
When a packet is transmitted reliably a response is required from the router receiving the packet.
|
In such a case, the receiving router sends an acknowledgment packet to the source router.
|
An £Racknowledgment£r packet is a hello packet that has no data.
|
Instead, it contains a non-zero acknowledgment number.
|
Unlike hello packets, acknowledgments are always sent using a unicast address.
|
£RUpdate£r packets are sent by routers to inform neighbors of network topology changes.
|
Because they are reliably transmitted they require acknowledgments.
|
Depending on the nature of the update they can be either multicast or unicast transmissions.
|
When a router discovers a new neighbor it informs all its other neighbors.
|
It does this by sending a unicast update packet to each established neighbor.
|
The neighbors use this information to amend their topology tables.
|
Some updates are sent as a result of a metric change.
|
For example, when a router is informed of a link cost change it sends an update to all its neighbors.
|
This type of update is multicast.
|
In the event that a router can no longer avail of a specific route to a destination, 
(i.e. destination has no feasible successors), a new route must be determined.
|
An Enhanced IGRP feasible successor is a neighboring router used for packet forwarding that has a least-cost path to a destination that is guaranteed not to be part of a routing loop.

The router determines feasible successors by recomputing the route to a destination when no feasible successors exist in the router's routing table and neighboring routers are advertising the destination.
|
In order to establish the new route it sends £Rquery£r packets to all its neighbors, as a multicast address.
|
In this way the router attempts to identify an alternate route by enquiring how neighbors reach the same destination.
|
Each Enhanced IGRP router that receives a query packet must unicast a £Rreply£r packet. They indicate that the originator of a query packet does not need to recompute the route because there are feasible successors.
|
It can occur, however, that a router receiving the query packet does not know how to reach the requested destination.
|
In such a case, it sends a similar query to £Rits£r neighbors.
|
Reply packets ensure that query packets are broadcast reliably.
|
Reply packets are also broadcast reliably, so must be acknowledged.
|
£RRequest£r packets are used to get specific information from one or more neighbors.
|
They are used in route server applications.
|
They can be either multicast or unicast, and are transmitted unreliably.
@@
A protocol-dependant module is provided for every network layer protocol supported by Enhanced IGRP.
|
These modules are used to manage a set of tables corresponding to each protocol.
|
Enhanced IGRP uses these tables to facilitate its specific discovery methods.
|
<f>Every Enhanced IGRP router remains aware of its neighbors by maintaining a £Rneighbor£r table for each supported protocol.
|
These tables are built based on the reception of hello packets from neighbors.
|
When a router sends a hello packet it advertises a £Rhold£r time.
|
This is the amount of time that it can be assumed by the receiving neighbor to be reachable and operational.
|
This relationship is maintained provided that the router transmits the next hello packet before the hold time expires.
|
If a hello packet is not transmitted within its specified hold time, a topology change is indicated.
|
The router expecting the hello packet informs DUAL that the packet has not been received.
|
And a change is made to the neighbor table.
|
Enhanced IGRP routers use £Rtopology£r tables to store their neighbors' routing table information.
|
This information is used when a new route to a destination needs to be identified.
|
Each entry in a topology table includes a destination address, and a list of neighbors that have advertised the address.
|
<f>For every listed neighbor, the metric that the neighbor advertises for reaching the destination is also listed.
|
The metric that a router advertises to its neighbors (and uses itself) is the sum of the best advertised metric from its neighbors plus the link cost to the best neighbor.
|
The information relating to the router containing the topology table is also included in this list.
|
Every neighbor advertising a destination associates a route with that destination.
|
Since Enhanced IGRP is a distance vector protocol, it must follow the rules associated with that type of protocol.
|
In other words, in this example, if the router is advertising a route to a destination, it must itself be using that route to forward packets.
@@
An Enhanced IGRP router's topology tables are used by the DUAL finite state machine in order to generate its £Rrouting£r tables.
|
Updates to the routing table occur whenever the router is made aware of a routing change.
|
This can be caused by a change in a neighbor's metric.
|
Or there may be a problem on the network, such as when a router malfunctions.
|
When a routing change becomes necessary, DUAL seeks to identify successors from its host routers topology tables.
|
A successor is a neighbor with a route to the destination.
|
DUAL performs a feasibility calculation to determine which successor provides the most cost effective route.
|
Then the appropriate routing table is updated to include that successor and its destination.
|
This eliminates the need to recompute the route.
|
There may be occasions when DUAL can find no successors in the topology table that are associated with a specific destination.
|
When this occurs, DUAL must perform a computation to find a new successor.
|
This process begins by changing the state of the topology table entry for that destination.
|
Destinations listed in a topology table can be in one of two states - active or passive.
|
A destination is in the £Rpassive£r state providing that

• the current path is in operation, or
|
• a successor can be identified from
  the list of possible successors
  associated with the destination in
  the topology table
|
If no successor can be found in a topology table, the listed destination is changed to be in an £Ractive£r state.
|
The router then multicasts query packets to determine whether neighbors' routing tables contain a successor.
|
When each neighbor has replied the topology table's destination entry is returned to the passive state.
|
A router cannot change a destination's routing table information while the topology table lists that destination as being in an active state.
|
<F>Then DUAL identifies a feasible successor from information that neighbors return in reply packets.
|
Once a feasible successor is identified, DUAL updates the appropriate routing table on its host router.
@@
Let's look at a hypothetical situation that demonstrates how routing tables might be updated by Enhanced IGRP.
|
For this example, assume that there are five Enhanced IGRP routers connected as shown.
|
At present, the network is stable.
|
No packets containing routing information are being transmitted because no updates are required.
|
The routing information stored in router C specifies that router C reaches router A by way of router B.
|
This has been set by a network administrator, and based on local network policy.
|
For router E, DUAL has dynamically determined that its best path to router A is through routers C and B.
|
Let's say that a link failure is detected between routers C and B.
|
Router B can still transmit packets to router A.
|
But router C has lost the route specified by the network administrator.
|
And router E has lost its dynamically established route.
|
The routing updates performed by routers C and E occur at virtually the same moment.
|
However, the way in which they re-establish a path to router A is different for each.
|
This is because their routes were established by different methods.
|
Because router E established its path to router A dynamically, router E has topology table entries that include all neighbors with a path to router A.
|
In this example, that includes router D as well as router C.
|
When DUAL searches through router E's topology table entries it identifies router D as a successor.
|
This means that the path to router A remains in the passive state.
|
There is no need for router E to send query packets and recompute a path.
|
Instead, a local calculation is performed and a routing table entry is made specifying the new path to router A.
|
In this example, router E's convergence time is almost instantaneous.
|
This is because the path to router A remained in the passive state.
@@
Because router C's path to router A was determined by local network policy, router C's topology table contains no list of successors for that router.
|
This means the table entry for that destination goes into the active state and the route needs to be recomputed.
|
In order to recompute the path to router A, router C multicasts query packets to all its neighbors.
|
In this example there is only one neighbor that can reply to router C's query.

But on a larger network there could be other routers directly connected to router C.
|
The more routers that reply to a router's query, the longer the convergence time.
|
The reply that router E sends to router C contains routing table information about router E's path to router A.
|
Because router E did not need to recompute the route it was able to update its routing table before router C.
|
So the reply contains the new path to router A.
|
Once router C receives router E's reply, the topology table entry for router A is returned to a passive state.
|
Next, DUAL calculates the new successor to router A.
|
Then router C must multicast an update to its neighbors.
|
Once this occurs, the network is once again stable.
|
It is worth noting that the routing update did not affect all the network's routers.
|
It is possible, although not inevitable, that routers A and B would need to determine a new path to router C, router E, or both.
|
However, in this example, there is no possibility of router D's routing table being updated.
