7

Can you give me an example when poison reverse is actually necessary?

Distance vector routing protocols employ split horizon with poison reverse to minimize the convergence time when a route is no longer available. The thing is that I can't think of an example when poison reverse is actually useful.

Silviu
  • 413
  • 2
  • 4
  • 8

2 Answers2

5

The only useful example I could find for split-horizon/poison-reverse is multi-access routed segments (point-to-multipoint frame relay or an ethernet segment with >2 routers).

Both the RIP RFC (section 2.2.1), Cisco's EIGRP doc and Juniper's RIP document all show multi-access examples. Cisco's EIGRP RFC doesn't detail it's split horizon or poison-reverse implementation.

---Edit to remove previous incorrect info---

cpt_fink
  • 1,470
  • 7
  • 17
4

Consider the following topology:

               A
             / |
Internet -- S  |
             \ |
               B

Using RIP, S announces (0.0.0.0/0, 0), and both A and B announce (0.0.0.0/0, 1).

Suppose now that router S fails. Suppose further that you're unlucky, and that A and B both switch their next hops to each other -- they create a routing loop.

  • with plain Bellman-Ford, A and B have no way to get rid of the loop in a timely manner — they need to count to infinity;
  • with split horizon, A and B immediately stop announcing the default route to each other — they get rid of the loop as soon as the route times out;
  • with poison reverse, A and B announce an infinite metric default route to each other, which gets rid of the routing loop as soon as an update is successfully transmitted.

Note that poison reverse has a drawback ­— it increases the size of updates, sometimes dramatically so (especially from stub routers). Note further that poison reverse only gets rid of loops of size two — in order to get rid of larger loops in a timely manner, you need a feasibility condition, as in EIGRP or Babel.

jch
  • 400
  • 1
  • 5