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.
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:
The default metric is Bw + Delay. You can change the weights if you want to. However note that these weights must be the same on all the routers!.
IGRP will only send routing updates to routers that are within the same Autonomous System. There are three types of routes:
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.
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.