In this post I will describe the role and functionality of Interior Gateway Protocols (IGP). As you may recall from a previous post, the main interior gateway protocols used in networking are Rip, EIGRP and OSPF. I will talk about these dynamic routing protocols in the following articles, for now I will describe the main features of Interior Gateway Protocols. This category is divided in two types of protocols: Distance Vector Protocols and Link State Routing Protocols.
Devices that use a distance vector protocol such as RIPv2 or EIGRP, do not have a full image of the network topology. Routers configured with a distance vector protocol know only the distance to the destination network and the exit interface to which packets should be forwarded to. RIP protocol uses hop count as metric while IGRP uses a combination between bandwidth, load, reliability and delay. Despite the fact that these two distance vector protocols are different, they share some operating elements:
– they send the entire routing tables at predefined intervals.
– they use broadcast address 255.255.255.255 to propagate update messages through networks.
– they use a routing algorithm to calculate paths, send and receive routing messages and to detect network changes.
But what protocol to use? What do you need to keep in mind when choosing a routing protocol? The first aspect is the network size, if the network is dynamic than think about how the routing protocol addresses scalability. Another aspect is the complexity of the routing protocol and how hard will it be to implement, maintain and troubleshoot such a network. Dynamic protocols use a percent of the network hardware resources so keep that in mind. Depending of the network requirements you can choose a classless or classful approach (Ripv1 for example does not support VLSM). The time to converge will decrease with network size so choose a routing protocol that will serve your desires. With this things in mind remember that distance vector protocols have the following features:
– relative low speed of converge (Ripv1, Ripv2 and IGRP except EIGRP).
– Ripv1 and IGRP do not support VLSM while RIPv2 and EIGRP offer VLSM support.
– except EIGRP, distance vector protocols are hard to implement in large neworks.
– low resource utilization.
– simple implementation and maintenance.
In the next article we will talk about RIPv1 and RIPv2, that’s why you will need to know that these protocols use some timers and techniques when sending/receiving updates. The invalid timer is used to mark an idle route as invalid, after 180 seconds. After 60 more seconds, the route is deleted from the routing table (this is called the flush timer and by default is 240 seconds). If a route becomes unreachable it is marked and kept 180 seconds until all network devices learn about it (holddown timer). Besides these timers, RIP uses triggered updates when network changes occur. We will talk more about these elements in the next article. Unlike the RIP protocol, EIGRP sends updates only when a network change occurs, these are called bounded updates. To prevent two or more devices from sending simultaneous routing messages, a variable called RIP_JITTER is used. By using this element, devices will send updates at different times and updates will never get synchronized.
Routing loops are a constant threat to network routing mechanisms. This article from Wikipedia will make you understand what a routing loop is: http://en.wikipedia.org/wiki/Routing_loop_problem
. A routing loop is a common problem with various types of networks, particularly computer networks. They are formed when an error occurs in the operation of the routing algorithm, and as a result, in a group of nodes, the path to a particular destination forms a loop.
To avoid routing loops, the following mechanisms are used:
– Maximum hop count – RIP uses hop count for metric, if this field is set to 16 then the route will be marked as invalid. A field called TTL (Time to Live) in the IP packet is used to set the number of routers a packet can travel through. When a packet arrives at a router, the TTL field is decremented, the packet is forwarded to the next router and so on. When TTL becomes 0, then the packet is dropped.
– Split Horizon – routing update messages will not be send through interfaces from which they came.
– Hold-down timers – if a route is marked as invalid, then the router will not send or accept routing messages for a period of time (usually 180 seconds).
– Route Poisoning or Split Horizon with Poison Reverse – if a router detects that a certain route became invalid, it will set the metric to infinite. This way that route will not be used by other devices and so routing loops are avoided.
The following article from Wikipedia describes a problem called count-to-infinity, that can occur when distance vector protocols are used:
The Bellman-Ford algorithm does not prevent routing loops from happening and suffers from the count-to-infinity problem. The core of the count-to-infinity problem is that if A tells B that it has a path somewhere, there is no way for B to know if the path has B as a part of it. To see the problem clearly, imagine a subnet connected like as A-B-C-D-E-F, and let the metric between the routers be “number of jumps”. Now suppose that A is taken offline. In the vector-update-process B notices that the route to A, which was distance 1, is down – B does not receive the vector update from A. The problem is, B also gets an update from C, and C is still not aware of the fact that A is down – so it tells B that A is only two jumps from C (C to B to A), which is false. This slowly propagates through the network until it reaches infinity (in which case the algorithm corrects itself, due to the relaxation property of Bellman-Ford).
This is all for this post, if you have any questions don’t hesitate to contact me. Have a great day!