RIP - poison reverse

Poison reverse is a method used in the RIP routing protocol to prevent routing loops in a network.

With poison reverse, when a router loses a route (for example, if a link goes down), it communicates this to all its neighbors by setting the number of hops to the unreachable destination as infinite. The maximum hop count for RIP is 16, so a value of 16 assigned to a route represents an "unreachable" route, thus effectively "poisoning" the route.

Then, instead of simply not advertising that route anymore, the router will continue to advertise that route as unreachable in its routing updates to all other routers. This is the "reverse" aspect of poison reverse, and it helps prevent inaccurate or outdated information from propagating through the network.

In other words, poison reverse is a way for routers to tell their neighbors, "Not only can I no longer reach this network, but if you were routing through me to get to that network, you need to find a new path."

This method significantly reduces the chance of routing loops and makes RIP a more reliable routing protocol.

In the context of RIP, poison reverse is a feature that is used in conjunction with Split-horizon. According to the RIPv2 RFC, RIP uses what is called “split horizon with poison reverse.” As stated in the RFC:

The “simple split horizon” scheme omits routes learned from one neighbor in updates sent to that neighbor. “Split horizon with poisoned reverse” includes such routes in updates, but sets their metrics to infinity.


In general, split horizon with poisoned reverse is safer than simple split horizon. If two routers have routes pointing at each other, advertising reverse routes with a metric of 16 will break the loop immediately. If the reverse routes are simply not advertised, the erroneous routes will have to be eliminated by waiting for a timeout.

So poison reverse makes the process much more efficient.

Keep in mind that poison reverse is a mechanism that occurs with any type of update that may be received, including triggered updates and scheduled updates.