IGRP
Introduction
InterGateway 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
networks.
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.
Metrics
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 10^{7} e.g. for a 64Kb/s link
the value of Bw is 10^{7}/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 [K_{1}*Bw + K_{2}*Bw/(256Load)
+ K_{3}*Delay]*[K_{5}/(Reliability + K_{4})]. 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:
 K_{1}  1
 K_{2}  0
 K_{3}  1
 K_{4}  0
 K_{5}  0
This gives the default formula of Bw + Delay for the metric.
The term [K_{5}/(Reliability + K_{4})] 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:
Media 
Bandwidth (Kb/s) 
Bw 
Delay (uS) 
Delay 
ATM 155Mb/s 
155000 
65 
100 
10 
Fast Ethernet 
100000 
100 
100 
10 
FDDI 
100000 
100 
100 
10 
HSSI 
45045 
222 
20000 
2000 
Token Ring (16Mb/s) 
16000 
625 
630 
63 
Ethernet 
10000 
1000 
1000 
100 
T1 
1544 
6476 
20000 
2000 
E1 
2048 
5000 
20000 
2000 
DS0 
64 
156250 
20000 
2000 
56Kb/s 
56 
178571 
20000 
2000 
Tunnel 
9 
1111111 
500000 
50000 
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 10^{7}/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
network.
 Number of System routes  indicates how many of the routing entries in this update are not from a directly connected
network.
 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 16bit one's complement
sum is calculated and then inserted into this field. At the other end, the 16bit 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 24bit with IGRP. With EIGRP, they are 32bit values (256*IGRP value).
Operation
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 defaultnetwork 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.
Unequalcost Load Balancing
Consider the following duallinked 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 equalcost 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 maximumpaths 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
same metrics.
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.
