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.

2 Answers 2

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.

2
  • Can you use poison-reverse without split-horizon? After going back and reading about poison-reverse to correct my answer, I didn't see any implementations that used poison-reverse without split-horizon. In this example you would depend on split-horizon and holddown timers.
    – cpt_fink
    Jan 12, 2015 at 3:13
  • Poison reverse implies split horizon — the poison route is being sent instead of the route suppressed by split horizon.
    – jch
    Jan 13, 2015 at 11:02
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---

3
  • This is not the case.Let's assume EIGRP is running. If link AB fails, and B does not have a feasible successor to netX, B will query it's neighbors about netX and will find a route through D.
    – Silviu
    Dec 29, 2014 at 8:43
  • In this topology, a poison reverse will be sent for example by router B to router A when link netX-A fails and A sends a route poisoning to routers B and C. But in this case the B's poison reverse is useless, as netX was already deleted from router A routing table.
    – Silviu
    Dec 29, 2014 at 8:48
  • I'll add more detail, hopefully that will help.
    – cpt_fink
    Dec 29, 2014 at 15:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.