Inter-Gateway Routing Protocol (IGRP) is Cisco's proprietary classful distance vector routing protocol.
IGRP was developed in the 1980s and does not
actually use hops as a metric, although it does track hops and allows routes to be propagated
up to 255 hops away. It was meant to be an enhancement on RIP which was limited to 16 hop networks.
It was later modified and was adopted by the OSI to operate in CLNP networks, so IGRP is not limited to IP
IGRP uses IP directly, using protocol number 9; RIP uses UDP port 520. IGRP uses
Autonomous System numbers to distinguish between routing domains and it is a classful routing protocol.
IGRP sends updates every 90 seconds and uses a number of factors to determine the metric.
Bandwidth is one factor used in determining this metric and this can be adjusted to fool the router if so desired.
Whereas RIP uses the metric of hops, IGRP uses the following metrics:
- Internetwork Delay - this represents the delay on the medium in units of 10 microseconds e.g. for Ethernet
this value is 100 microseconds i.e. 1ms, so the value of Delay is 100/10 = 10.
- Bandwidth (Bw) - this represents the speed of the link where the speed can range from 1200bps to 10Gbps.
The value used is actually the inverse of the Bandwidth (in Kb/s) multiplied by 107 e.g. for a 64Kb/s link
the value of Bw is 107/64 = 156250.
- Reliability - fractions of 255 where 255 means totally reliable.
- Administrative Distance - can take a value between 1 and 255 and creates a Load or weighting
on that particular link, the higher the number the less attractive the link is.
The formula used to calculate the metric is [K1*Bw + K2*Bw/(256-Load)
+ K3*Delay]*[K5/(Reliability + K4)]. Be aware that the MTU is NOT
used in the calculation of the metric, however the MTU is tracked through the path to find the smallest MTU.
The default values for weights are:
- K1 - 1
- K2 - 0
- K3 - 1
- K4 - 0
- K5 - 0
This gives the default formula of Bw + Delay for the metric.
The term [K5/(Reliability + K4)] is completely ignored
if K5 = 0! You can change the weights if you want to.
However note that these weights must be the same on all the routers!.
The following table lists media and common Bandwidth and Delay values:
|Token Ring (16Mb/s)
An example is a network where the bandwidth to a particular destination is 128k and the delay is 84000 microseconds.
Using the cut down formula metric = Bw + Delay, we obtain the value 107/128 + 84000/10
which gives 86525.
IGRP Packet Format
The respective field descriptions are as follows:
- Version - Always 0x01
- Opcode - 0x01 for a Request (a header with no entries) and 0x02 for an Update
- Edition - This number is incremented by the sender so that the receiving router does not use an old update
- Autonomous System number - The IGRP process ID
- Number of Interior routes - indicates how many of the routing entries in this update are subnets of a directly connected
- Number of System routes - indicates how many of the routing entries in this update are not from a directly connected
- Number of Exterior routes - indicates how many of the routing entries in this update are default networks.
- Checksum - calculated on the header and the entries. With his field set to 0, the 16-bit one's complement
sum is calculated and then inserted into this field. At the other end, the 16-bit one's complement is calculated again
by the other router but this time including the already calculated value in the Checksum field. The result on a good packet
will be 0xFFFF.
- Destination - Destination network, just containing the last three octets for interior routes (e.g. 24.5.0 for the network
10.24.5.0) since the first octet will be known. For System and External routes, the routes would have been summarised so the last octet
will always be zero (e.g. 10.24.5.0 will be entered as 10.24.5).
- Delay - The number of 10 microsecond chunks which is the sum of delays
- Bandwidth - IGRP bandwidth
- MTU - The smallest MTU encountered along the route to this particular destination network.
- Reliability - A number between 0x01 and 0xFF to indicate the error rates totalled along the route. 0xFF is reliable.
- Load - A number between 0x01 and 0xFF expressing the total load along a route where 0xFF is totally loaded.
- Hop Count - A number between 0x00 (directly connected network) and 0xFF.
Note that the Delay and Bandwidth values are 24-bit with IGRP. With EIGRP, they are 32-bit values (256*IGRP value).
IGRP will only send routing updates to routers that are within the same Autonomous System.
There are three types of routes:
- Interior Routes - if there are subnets then these are advertised. These routes are subnets that
are locally connected.
- System Routes - routes to summarised networks within an AS.
- Exterior Routes - routes to networks outside the AS and are called default networks.
RIP and OSPF advertise default networks as 0.0.0.0. IGRP and EIGRP can advertise more specific networks
as default networks, and have a number of them. The default network is configured within the IGRP
routing process with the command ip default-network network.
The default Update Timer is 90 seconds, the Invalid Timer is three times the update timer, 270 seconds.
The Holddown Timer is the Invalid Timer plus 10 seconds and the Flush Timer is seven times
the Update Timer i.e. 630 seconds. 20% jitter is added to the update timer to prevent waves of updates flooding a network.
The timers can be changed with the command timers basic update invalid holddown flush sleeptime.
Holddown can be disabled with the command no metric holddown if the topology is loop free, this
will reduce convergence time.
Unequal-cost Load Balancing
Consider the following dual-linked routers:
R1 and R2 are linked by two links, a 64Kb/s link and a faster 2Mb/s link.
R1 needs to reach the network 172.16.0.0/16 off R2. By default IGRP will choose the faster link
because according to the simplified formula Metric = Bw + Delay and using the table for the values
of Bw and Delay the metric for the 64Kb/s link is given by 178571 + (2000 + 100) = 180671
where the Ethernet has a Delay of 100 and the Serial link a Delay of 2000. The 'Bw' for the
serial link need only be taken into account since we do not have to cross the
Ethernet off R2 to reach 172.16.0.0/16. The Metric for the 2Mb/s
link is given by 5000 + (2000 + 100) = 7100. The lower metric wins.
By default, if there are multiple equal-cost paths to a destination the router will load share across
up to four paths. You can change this in the routing process with the command maximum-paths number
and have up to 6 paths.
You can also load share over unequal cost paths such as in the above example. To do this we use the variance
command in the IGRP routing process. The variance is defined with a multiplier that represents the difference
between the metrics of the paths. The default variance is '1' which means that the multiple paths must have the
In the above example the metric for the 2Mb/s link is 7100 and the metric for the
64Kb/s link is 180671. 180671 is 25.4 times the size of 7100 so the variance should be set one whole number higher
i.e. variance 26.