Split Horizon, Route Poisoning and Holddown Explained
RIP as a distance vector protocols is also susceptible to routing loops (network problem which enable a data packet to continually being routed through the same routers over and over. The data packets continue to be routed within the network in an endless circle.) .
Split horizon is one of the features of distance vector routing protocols that prevents routing loops. This feature prevents a router from advertising a route back onto the interface from which it was learned or received.
example network topology.
Using the above diagram, R2 has a route to the subnet 192.168.1.0/24 that is advertised to router R1 by using RIP.
R1 receives the update and stores the route in its routing table.
R1 knows that the routing update for that route has come from R2, so it won’t advertise the route back to router R2, because, if the route to the network goes down, router R1 could receive a route to the subnet 192.168.1.0/24 from R2.
Router R1 now believes that R2 has the route to reach the subnet, and uses that route. R2 receives update packets from R1 and sends them back to R2, because both routers thinks that each has a route to reach the subnet, this will go on forever; this what is called a routing loop.
Route poisoning is another method distance vector routing protocols use to prevent routing loops.
When a router detects that one of its directly connected routes has failed, the router sends the advertisement for that route with an infinite metric of 16 (“poisoning the route”).
Any router on the network that receives the update will realise that the route has failed and doesn’t use it anymore.
Consider the following example.
Note this; R1 is directly connected to the 192.168.1.0/24 subnet.
R1 has RIP enabled and the subnet is advertised to R2.
When the R1’s Fa0/1 interface fails, a route update advertisement is sent by R1 to R2, indicating that the route has failed.
The route will be labelled with a metric of 16, which is more than the RIP’s maximum hop count of 15, so R1 considers the route to be unreachable.
Holddown is another loop-prevention mechanism use by distance vector routing protocol.
This feature prevents a router from learning new information about a failed route. When a router receives update information about an unreachable route, a holddown timer is instantly started.
The router overlooks all routing updates for that route until the timer expires (180 seconds is default for RIP). The only routing updates permitted during that period are updates sent from the router that initially advertised the route.
If R1 router advertises the update, the hold-down timer is stopped and the routing information is processed.
Lets use the following network topology below as an example:
The hold down time starts by R2 after it received a failed (unreachable) route update advertisenmt from R1..
During that time all updates from any other routers about that route are ignored to prevent routing loops.
If interface Fa0/1 on R1 comes back up, R1 will advertises the route once more. R2 process that update even while the hold-down timer is still running, because the update is sent by the same router that originally advertised the route.