IGRP – Interior Gateway Routing Protocol

IGRP (Interior Gateway Routing Protocol) is Dynamic Routing protocol which works on Distance Vector technique very similar to RIP.  This was created by Cisco to overcome the drawback of RIP being able to scale only up to 15 hops.

Distance: Means actual distance, how far is a network. In IGRP distance is measured in hop counts.

Vector: Means direction, to reach a destination which direction should I take.

Below is some information about IGRP:

–         It uses Bellman-ford Distance Vector Algorithm to determine the best path to a destination.

–         IGRP is a Cisco Proprietary, thus it works only on Cisco Routers

–         Updates are broadcasted using IP address

–         Administrative distance is 100

–         Metric is a Composite: 24 bit. It makes use of these below factors to choose the best path.  (Bandwidth + Delay+ Load + MTU + Reliability)

–         Max hop count is 255, default is 100

–         Load balancing up to 6 equal or unequal paths

–         Used for large organizations

–         Send periodic updates, i.e. send information about its routes every 90 seconds

–         It supports on IP routing (Not IPX)

–         It use IP protocol number 9

–         It is a Classful routing protocol, i.e. Subnet masks are not included in routing table updates.

IGRP uses the concept of Autonomous System number, which is like a boundary or domain. Routers in same Autonomous system can communicate and send routing updates to each other.

IGRP Timers 

IGRP users certain timers to sends its information to other neighboring routers.

  1. Update Timer: is of 90 seconds by default. It is the time between consecutive updates i.e. router send updates every 90 seconds. 
  2. Invalid Timer: is of 270 seconds by default. It is the time a router waits to hear an update before marking it as invalid. If an update is received before the timer expires, then the timer is reset. The route is marked unreachable if there is no update during this interval ( metric of 101) 
  3. Flush Timer: is of 630 seconds by default. It is the time before an invalid route is removed/flushed from the Routing Table. It runs along with the Invalid timer and if a route is marked invalid, after 360 seconds, it is removed from the routing table. 
  4. Hold down timer: is of 280 seconds by default. The amount of time for which the information about poorer routes are ignored. The default is three times the update timer and additional 10 seconds. 

These timers must be same on all the devices in the network to avoid instability.

Autonomous System Number (AS) 

It is a unique number that identifies the routing domain of the routers.

It ranges from 1 – 65535
For Public use 1 – 64512
For Private use 64513 – 65535

An autonomous system is a collection of networks under one common administrative domain.

Advantages of IGRP 

–         Has more scalability compared to RIP ( 255 hops, 100 by default)
–         Use of composite metric
–         Easy to configure

Disadvantages of IGRP

–         Cisco Proprietary so only works on Cisco routers
–         Slow convergence
–         Forms routing Loops

To Configure IGRP

Router(config)# router igrp <AS number>
Router(config-router)# network < Network ID >

Let’s take a scenario, consider the below diagram with two routers and configure IGRP on them.

To Configure IGRP

Before we configure IGRP if we try to ping the other network i.e. /24 from /24, we get failed response.

Now let’s configure IGRP and then check connectivity.

The configuration on Router A would look like:

Router_A(config)# router igrp 20
Router_A(config-router)# network
Router_A(config-router)# network

The configuration is pretty much like the one for RIP. Using the ‘router igrp 20’ command we start the IGRP process and give an autonomous number of 20. It means other routers that have same autonomous number i.e. 20 will be able to communicate with this IGRP router.

The ‘network’ command tells IGRP to advertise the network to other RIP routers. We can do this for all the networks that we want to advertise. We do not mention the subnet mask while giving the network to advertise.

The configuration on Router B would look like:

Router_B(config)# router igrp 20
Router_B(config-router)# network
Router_B(config-router)# network

Thus, both routers being in same autonomous system i.e. 20 will form neighbors and exchange routing updates.

Check the connectivity again; we should be able to get successful pings.


The show ip protocols command will give us good information about the protocol IGRP

show ip protocols

It tells us, the protocol configured is IGRP. It also says the updates are sent every 90 seconds. The timers are shown with their default times. Information about Network which is being routed using RIP is also mentioned. The administrative distance is also seen in this output of show ip protocols i.e. 100.

Let us have a look at the routing table to see how it looks after IGRP configuration.

Router_A# show ip route

Gateway of last resort is not set
C is directly connected, Serial0/0/0
C is directly connected, FastEthernet0/1
I /24 [100/8576] via, 00:00:02, Serial0/0/0

IGRP configuration

Router_B# show ip route

Gateway of last resort is not set
C is directly connected, Serial0/0/0
C /24 is directly connected, FastEthernet0
I /24 [100/8976] via, 00:00:09, Serial0/0/0

Routing Loop Avoidance

Routing Loop AvoidanceIGRP being a distance vector is also prone to loops and it has loop avoidance mechanism similar to RIP.

Split Horizon:  This is a mechanism in which, if a Router learns something from a neighbor router, it will NOT advertise that same information to it.  Split-horizon is by default enabled on Cisco routers.

Route Poisoning:  If a network goes down (e.g. /24) a triggered update is sent to all its neighbors. The triggered update contains the network that is down as an infinite metric (101).

Hold-down Timer:  When the other routers know that network /24 is down, they start the hold-down timer which runs for 280 seconds and the below happens:

–         If any information about the /24 network from another router with a same or poorer metric than existing in the router, then the information is ignored.

–         If information with better metric for network /24 is received, then the hold-down timer is stopped and the routing table is updated with the new information.

–         If no information is received and the hold-down timer expires the network is removed from the routing table.

The Difference between RIP and IGRP is mentioned in the below table:

Difference between RIP and IGRP IGRP as it is no more supported by CISCO routers.  A newer protocol the Enhanced IGRP is supported these days called EIGRP.

Read more

    Free Cisco CCNA Study Guide