Routing Loop Definition

A routing loop is a type of network failure in which packets continue to be routed in an endless circle rather than reaching their intended destinations.

Routing loops can be caused by the failure of a router or a link together with notification of such failure not yet having been received by all routers. It can also occur over time as a result of network growth or the merging of networks.

There are several techniques for reducing the changes for routing loops to occur, each of which can be used in combination with the others. One is putting a limit into the number of hops (i.e., trips by packets between routers), as is the case with the RIP (routing information protocol), which has a maximum of 15. However, this can have the disadvantage of limiting network size, and thus newer routing protocols allow this limit to be exceeded.

Another is through the use of a holddown timer, which is a router function that prevents a route from being updated for some period of time. The holddown period is usually calculated to just slightly exceed the amount of time necessary to update all routers regarding a router failure or other network change.

Split horizon works to prevent routing loops by preventing information about the routing for particular packets from being sent back in the same direction from which they were received (and thus to their source). This is effective not only for routes learned via a distance vector routing protocol (e.g., RIP) but also for routes installed in routing tables as directly connected networks.

Still another method, poison reverse, operates by establishing a single direction through which destinations can be reached by poisoning (i.e., blocking) the reverse direction.

Created November 22, 2005.
Copyright © 2005 The Linux Information Project. All Rights Reserved.