2013年3月19日星期二

How to Configure Interior Gateway Routing Protocol (IGRP)?



Interior Gateway Routing Protocol (IGRP) is a distance-vector routing protocol. It is also a Cisco proprietary routing protocol – which means that all routers in your network must be Cisco routers in order to run IGRP.

Before getting into all the details of IGRP take a quick look aton Dynamic Routing Protocols for some detailed information on distance-vector routing protocols. This will help you understand the limitations and problems of distance-vector routing protocols and the necessity of an enhanced routing protocol like IGRP. The maximum hop count of 15 in RIP is enhanced into a maximum hop count of 255 with a default of 100 in IGRP – making IGRP more appropriate for larger networks.

Moreover IGRP uses a composite metric to determine the best route to an internetwork. It’s called a composite because it uses a combination of metrics – bandwidth and delay of the link by default. Reliability and load of the link can also be used as metrics.

Later on we’ll take a look at how these metrics are combined to form a composite metric.
Main Characteristics of IGRP
  • IGRP is a Cisco proprietary distance vector routing protocol.
  • IGRP sends routing updates every 90 seconds, advertising networks of a particular autonomous system.
  • By default IGRP uses bandwidth and delay as metrics. It can be configured to use a combination of variables such as bandwidth, delay, load and reliability to establish a composite metric.
  • IGRP has an administrative distance of 100 making it a more trustworthy routing protocol than RIP which has an administrative distance of 120.

IGRP Timers
  • Update timer: specifies how frequently routing update messages should be sent. The default is 90 seconds.
  • Invalid timer: specifies how long a router should wait in the absence of routing-update messages about a specific route before declaring that route invalid (or unreachable). The default is three times the update period which is equal to 270 seconds. After this period, the route is placed in the holddown state.
  • Holddown timer: specifies the amount of time a router should wait after expiration of the invalid timer. During this time the specific route is marked as unreachable and information about alternative routes is ignored. The IGRP default for this variable is three times the update timer period plus 10 seconds = 280 seconds.
  • Flush timer: indicates how much time should pass before a route is flushed from the routing table. The default is seven times the routing update timer which is equal to 630 seconds.

Configuring IGRP
Configuring IGRP is similar to configuring RIP. The only difference is that you have to use anAutonomous System (AS) number in order to be able to turn on IGRP. The same AS number needs to be configured on all IGRP enabled routers on the network in order to be able to exchange routing updates. A router may use more than one AS number. This way it can share different pieces of information with different routers.

Let’s use the following subnet internetwork to configure IGRP routing:

The router igrp command turns IGRP routing on in the router. The Autonomous System number specified here is 100 (it can be any number between 1 and 65535). Notice that IGRP uses classful routing, similar to RIP, meaning that it does not send subnet mask information along with the routing protocol updates.

Notice that we use the same AS number (100) in order for the two routers to be able to exchange IGRP routing protocol updates.

Verifying IGRP
Issuing the command show ip route on routerA you can notice that routing information for network 172.16.0.0 has been acquired via IGRP. The I means IGRP learned routes. The 100 in [100/80135] is the administrative distance of IGRP and 80135 is the composite metric. The lower this metric, the better the route.


Using the command show ip protocols you can verify IGRPs operation. Information regarding IGRP timers, AS number and maximum hop count can be obtained from this command. Moreover the metric variables can be seen here as well (K1- K5).


Metric Calculation
Use the show interface command to view the metrics used on the specific interface on which IGRP is being routed.


IGRP uses the following metric calculation:
Metric=[K1* bandwidth + (K2 * bandwidth)/(256-load) + (K3 * delay)]* [K5/(reliability +K4)]

By default only bandwidth and delay are considered in the metric calculation. To obtain this behavior (seen on the show ip protocols command as well) the following default variable values are configured:
K1=1, K2=0, K3=1, K4=0, K5=0, where
K1 is for bandwidth, K2 for load, K3 for delay, K4 and K5 for Reliability

Substituting the default values in the metric calculation we end up with:

Metric= bandwidth + delay
The values used in the metric calculation are not the raw values obtained from the show interface command. Actually these raw values are used in the following equations to compute the calculated values which are displayed in the show ip route command:
  • Bandwidth = (10000000/raw bandwidth measured in Kb/s)
  • Delay = (raw delay in s/10)

Example: For a serial interface with a bandwidth of 1544 kb/s and delay of 20000X10-6 s the calculated values used in IGRP routing updates would be:
  • Bandwidth = 10000000/1544 = 6476
  • Delay = 20000/10 = 2000

To end up with the final composite metric, the router sums up all calculated delay metrics on the outgoing interfaces along the route towards a given destination and the Bandwidth calculated metric taken from the lowest bandwidth along the route.

The IGRP Scenario
If IGRP has lower AD than RIP, then I should use IGRP, right?

Actually the answer is NO. There is no single best case solution. There is no best solution among RIP and IGRP.

Networks vary in many ways. You need to fully understand the operation of these routing protocols and try to adapt their operation into the architecture of your network in order to differentiate their pros and cons.

Though I cannot tell you which of these two protocols is better, what I am able to tell you is that if you do have the option to use EIGRP, then you should use it over IGRP or RIP. EIGRP is definitely a better routing protocol than both RIP and IGRP.

More Networking Tips:

2013年3月15日星期五

EIGRP&EIGRP Route Discovery



Enhanced Interior Gateway Routing Protocol (EIGRP) is a Cisco-proprietary routing protocol. EIGRP is a classless routing protocol, meaning that it sends the subnet mask of its interfaces in routing updates, which use a complex metric based on bandwidth and delay.

EIGRP is referred to as a hybrid routing protocol because it has the characteristics of both distance-vector and link-state protocols but now Cisco refers it as an advanced distance vector protocol.
Notice: the term “hybrid” is misleading because EIGRP is not a hybrid between distance vector and link-state routing protocols. It is a distance vector routing protocol with enhanced features.

EIGRP is a powerful routing protocol and it is really standout from its ancestor IGRP. The main features are listed below:
Support VLSM and discontiguous networks
Use Reliable Transport Protocol (RTP) to delivery and reception of EIGRP packets
Use the best path selection Diffusing Update Algorithm (DUAL), guaranteeing loop-free paths and backup paths throughout the routing domain
Discover neighboring devices using periodic Hello messages to discover and monitor connection status with its neighbors
Exchange the full routing table at startup and send partialtriggered updates thereafter (not full updates like distance-vector protocols) and the triggered updates are only sent to routers that need the information. This behavior is different from the link-state protocol in which an update will be sent to all the link-state routers within that area. For example, EIGRP will send updates when a new link comes up or a link becoming unavailable
Supports multiple protocols: EIGRP can exchange routes for IPv4, IPv6, AppleTalk and IPX/SPX networks
Load balancing: EIGRP supports unequal metric load balancing, which allows administrators to better distribute traffic flow in their networks.
Notice: The term “partial” means that the update only includes information about the route changes.

EIGRP use metrics composed of bandwidth, delay, reliability, and load. By default, EIGRP uses only bandwidth and delay.
EIGRP use five types of packets to communicate:
Hello: used to identify neighbors. They are sent as periodic multicasts
Update: used to advertise routes, only sent as multicasts when something is changed
Ack: acknowledges receipt of an update. In fact, Ack is Hello packet without data. It is always unicast and uses UDP.
Query: used to find alternate paths when all paths to a destination have failed
Reply: is sent in response to query packets to instruct the originator not to recompute the route because feasible successors exist. Reply packets are always unicast to the originator of the query
EIGRP sends every Query and Reply message using RTP, so every message is acknowledged using an EIGRP ACK message.

EIGRP Route Discovery
Suppose that our network has 2 routers and they are configured to use EIGRP. Let’s see what will happen when they are turned on.

Firstly, the router will try to establish a neighboring relationships by sending “Hello” packets to others running EIGRP. The destination IP address is 224.0.0.10 which is the multicast address of EIGRP. By this way, other routers running EIGRP will receive and proceed these multicast packets. These packets are sent over TCP.

After hearing “Hello” from R1, R2 will respond with another “Hello” packet.

R2 will also send its routing table to R1 by “Update” packets. Remember that R2 will send its complete routing table for the first time.

R1 confirms it has received the Update packet by an “ACK” message.

R1 will also send to R2 all of its routing table for the first time

R2 sends a message saying it has received R1′s routing table.

Now both R1 & R2 learn all the paths of the neighbor and the network is converged. But there are some notices you should know:
After the network converged, “Hello” messages will still be sent to indicate that the it is still alive.
When something in the network changes, routers will only send partial updates to routers which need that information.
Hellos are sent as periodic multicasts and are not acknowledged directly.
The first hellos are used to build a list of neighbors; thereafter, hellos indicate that the neighbor is still alive

To become a neighbor, the following conditions must be met:
The router must hear a Hello packet from a neighbor.
The EIGRP autonomous system must be the same.
K-values must be the same.

EIGRP builds and maintains three tables:
Neighbor table: lists directly connected routers running EIGRP with which this router has an adjacency
Topology table: lists all routes learned from each EIGRP neighbor
Routing table: lists all best routes from the EIGRP topology table and other routing processes

Configuring EIGRP
Router(config)#router eigrp 1
Syntax: router eigrp<AS number>
Turn on the EIGRP process
1 is the Autonomous System (AS) number. It can be from 1 to 65535.
All routers in the same network must use the same AS number.
Router(config-router)#network 192.168.1.0
Router will turn on EIGRP 1 process on all the interfaces belonging to 192.168.1.0/24 network.
More EIGRP Tips: