Data Network Resource
       Earn on the Web


IGRP



Introduction


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 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 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:

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 107/128 + 84000/10 which gives 86525.

IGRP Packet Format


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 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).

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 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:

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 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.

Valid HTML 4.01 Transitional




Earn on the Web    


All rights reserved. All trademarks, logos, and copyrights are property of their respective owners.