Background
The Enhanced Interior Gateway Routing Protocol (IGRP) represents an evolution
from its
predecessor IGRP This evolution resulted from changes in networking and
the demands of diverse,
- large-scale internetworks.
Enhanced IGRP integrates the capabilities of link-state protocols into
distance-vector protocols. It
incorporates the
Diffusing-Update Algorithm (DUAL)
developed at SRI
International by Dr. J.J.
Garcia-Luna-Aceves.
Enhanced IGRP provides compatibility and seamless interoperation with IGRP
routers. An
automatic-redistribution mechanism allows IGRP routes to be imported into
Enhanced IGRP, and
vice versa, so it is possible to add Enhanced IGRP gradually into an existing
IGRP network.
-
- Because the metrics for both
protocols are directly translatable, they are as easily comparable as if
- they were routes that
originated in their own Autonomous Systems (ASs). In addition, Enhanced IGRP
- treats IGRP routes as
external routes and provides a way for the network administrator to customize
them.
Enhanced IGRP
Capabilities and Attributes
Key capabilities that distinguish Enhanced IGRP from other routing protocols
include
fast
convergence, support variable-length subnet mask, support for partial updates,
and support for
multiple network-layer protocols.
A router running Enhanced IGRP stores all its neighbors' routing tables so
that it can quickly adapt
to alternate routes. If no appropriate route exists, Enhanced IGRP queries its
neighbors to discover
an alternate route. These queries propagate until an alternate route is found.
Its support for variable-length subnet masks permits routes to be
automatically summarized on a
network number boundary. In addition, Enhanced IGRP can be configured to
summarize on any bit
boundary at any interface.
Enhanced IGRP does not make periodic updates. Instead, it sends partial
updates only when the
metric for a route changes.
Propagation of partial updates is automatically bounded so that only
those routers that need the information are updated. As a result of these two
capabilities, Enhanced
IGRP consumes significantly less bandwidth than IGRP.
Enhanced IGRP includes support for AppleTalk, IP, and Novell NetWare. The
AppleTalk
implementation redistributes routes learned from the Routing Table Maintenance
Protocol (RTMP).
The IP implementation redistributes routes learned from OSPF, Routing
Information Protocol (RIP),
IS-IS, Exterior Gateway Protocol (EGP), or Border Gateway Protocol (BGP). The
Novell
implementation redistributes routes learned from Novell RIP or Service
Advertisement Protocol
(SAP).
Underlying Processes
and Technologies
To provide superior routing performance, Enhanced IGRP employs four key
technologies that
combine to differentiate it from other routing technologies:
neighbor
discovery/recovery, reliable
transport protocol (RTP), DUAL finite-state machine, and protocol-dependent
modules.
Neighbor discovery/recovery is used by 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 neighboring router, it
assumes that the neighbor is
functioning, and the two can exchange routing information.
Reliable Transport Protocol (RTP) is responsible for guaranteed, ordered
delivery of
Enhanced IGRP packets to all neighbors. It supports intermixed transmission of
multicast or unicast
packets. For efficiency, only certain Enhanced IGRP packets are transmitted
reliably.
-
- On a multiaccess network
that has multicast capabilities, such as Ethernet, it is not necessary to send
hello
packets reliably to all neighbors individually. For that reason, Enhanced IGRP
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
when unacknowledged
packets are pending, which helps ensure that convergence time remains low in
the presence of
varying speed links.
DUAL finite-state machine embodies the decision process for all route
computations by tracking all
routes advertised by all neighbors. DUAL uses distance information to select
efficient, loop-free
paths and selects routes for insertion in a routing table based on feasible
successors.
-
- A feasible successor is a
neighboring router used for packet forwarding that is a least-cost path to a
- destination that is
guaranteed not to be part of a routing loop. When a neighbor changes a metric,
or when a
topology change occurs, DUAL tests for feasible successors. If one is found,
DUAL uses it to avoid
recomputing the route unnecessarily.
-
- When no feasible successors
exist but neighbors still advertise the destination, a recomputation
- (also known as a diffusing
computation) must occur to determine a new successor. Although recomputation
- is not processor-intensive,
it does affect convergence time,so it is advantageous to avoid unnecessary
- recomputations.
Protocol-dependent modules are responsible for network-layer protocol-specific
requirements. The
IP-Enhanced IGRP module, for example, is responsible for sending and receiving
Enhanced IGRP
packets that are encapsulated in IP.
-
- Likewise, IP-Enhanced IGRP
is also responsible for parsing Enhanced IGRP packets and informing DUAL of
the
- new information that has
been received.IP-Enhanced IGRP asks DUAL to make routing decisions, the
results of
- which are stored in the IP
routing table. IP-Enhanced IGRP is responsible for redistributing routes
learned by other
- IP routing protocols.
Routing Concepts
Enhanced IGRP relies on four fundamental concepts: neighbor tables, topology
tables, route states,
and route tagging. Each of these is summarized in the discussions that follow.
Neighbor Tables
When a router discovers a new neighbor, it records the neighbor's address and
interface as an entry
in the neighbor table. One neighbor table exists for each protocol-dependent
module. When a
neighbor sends a hello packet, it advertises a hold time, which is the amount
of time a router treats
a neighbor as reachable and operational.
-
- If a hello packet is not
received within the hold time, the hold time expires and DUAL is informed of
the
- topology change.
The neighbor-table entry also includes information required by RTP. Sequence
numbers are
employed to match acknowledgments with data packets, and the last sequence
number received from
the neighbor is recorded so that out-of-order packets can be detected.
-
- A transmission list is used
to queue packets for possible retransmission on a per-neighbor basis.
Round-trip
- timers are kept in the
neighbor-table entry to estimate an optimal retransmission interval.
Topology Tables
The topology table contains all destinations advertised by neighboring
routers. The
protocol-dependent modules populate the table, and the table is acted on by
the DUAL finite-state
machine. Each entry in the topology table includes the destination address and
a list of neighbors
that have advertised the destination.
-
- For each neighbor, the entry
records the advertised metric,which the neighbor stores in its routing table.
An
- important rule that distance
vector protocols must follow is that if the neighbor advertises this
destination, it must
- use the route to forward
packets.
The metric that the router uses to reach the destination is also associated
with the destination. The
metric that the router uses in the routing table, and to advertise to other
routers, is the sum of the best
advertised metric from all neighbors, plus the link cost to the best neighbor.
Route States
A topology-table entry for a destination can exist in one of two states:
active or passive. A destination
is in the passive state when the router is not performing a recomputation, or
in the active state when
the router is performing a recomputation. If feasible successors are always
available, a destination
never has to go into the active state, thereby avoiding a recomputation.
A recomputation occurs when a destination has no feasible successors. The
router initiates the
recomputation by sending a query packet to each of its neighboring routers.
The neighboring router
can send a reply packet, indicating it has a feasible successor for the
destination, or it can send a
query packet, indicating that it is participating in the recomputation.
-
- While a destination is in
the active state, a router cannot change the destination's routing-table
information.
- After the router has
received a reply from each neighboring router, the topology-table entry for
the destination
- returns to the passive
state, and the router can select a successor.
Route Tagging
Enhanced IGRP supports internal and external routes. Internal routes originate
within an
Enhanced IGRP AS. Therefore, a directly attached network that is configured to
run Enhanced IGRP
is considered an internal route and is propagated with this information
throughout the Enhanced
IGRP AS. External routes are learned by another routing protocol or reside in
the routing table as
static routes. These routes are tagged individually with the identity of their
origin.
External routes are
tagged with the following information:
. Router ID of the Enhanced IGRP router that redistributed the route
. AS number of the destination
. Configurable administrator tag
. ID of the external protocol
. Metric from the external protocol
. Bit flags for default routing
Route tagging allows the network administrator to customize routing and
maintain flexible policy
controls. Route tagging is particularly useful in transit ASs, where Enhanced
IGRP typically
interacts with an interdomain routing protocol that implements more global
policies, resulting in a
very scalable, policy-based routing.
Enhanced IGRP Packet
Types
Enhanced IGRP uses the following packet types: hello and acknowledgment,
update, and query and
reply.
Hello packets are multicast for neighbor discovery/recovery and do not require
acknowledgment. An
acknowledgment packet is a hello packet that has no data. Acknowledgment
packets contain a
non-zero acknowledgment number and always are sent by using a unicast address.
Update packets are used to convey reachability of destinations. When a new
neighbor is discovered,
unicast update packets are sent so that the neighbor can build up its topology
table. In other cases,
such as a link-cost change, updates are multicast. Updates always are
transmitted reliably.
Query and reply packets are sent when a destination has no feasible
successors. Query packets are
always multicast. Reply packets are sent in response to query packets to
instruct the originator not
to recompute the route because feasible successors exist. Reply packets are
unicast to the originator
of the query. Both query and reply packets are transmitted reliably.
Back
Home