Octet

Explain split horizon, route poisoning, poison reverse and holddown. What problem do they solve?

Show the answer

Say this first

They stop distance vector routing loops and count to infinity. Split horizon: never advertise a route back out the interface you learned it on. Route poisoning: when a route fails, advertise it at once with an infinite metric (16 in RIP) instead of just going quiet. Poison reverse: advertise routes back toward the neighbor you learned them from, but with metric 16, as an explicit "do not use me". Holddown: after a route fails, ignore worse news about it for a while. Triggered updates send changes right away instead of waiting for the next 30 second cycle.

Go deeper

Count to infinity

Chain R1 to R2 to R3, with 10.30.0.0/24 behind R3. R2 has it at 1 hop via R3, and R1 at 2 hops via R2. The R2 to R3 link fails.

  1. R2 loses its route. Without split horizon, R1 still advertises "10.30.0.0/24, 2 hops" to R2.
  2. R2 believes it and installs 3 hops via R1.
  3. R2 advertises 3 hops to R1. R1 uses R2 as its next hop, so it updates to 4 hops.
  4. They ping-pong upward until the metric hits 16. Until then, packets loop between R1 and R2.

What each tool does in that story

MechanismEffect
Split horizonR1 never tells R2 about the route it learned from R2. The two node loop never starts.
Route poisoningR2 sends 10.30.0.0/24 with metric 16 straight away, so R1 drops it quickly.
Poison reverseR1 already advertises the route to R2 as 16, so R2 can never mistake it for a path.
HolddownR2 ignores any non-better news about the route for 180 s, which protects against stale updates in larger loops.
Triggered updatesThe poison goes out immediately, not at the next 30 s tick.

The limits

Split horizon only stops loops between two neighbors. In a ring of three or more routers, a loop can still form through the other side, which is why RIP also needs holddown and the 15 hop ceiling.

Traps

  • Mixing up route poisoning and poison reverse. Poisoning advertises a failed route as infinite; poison reverse advertises working routes back to their source as infinite.
How did you do?Book 3.4 Routing