3

I have an understanding about RIP options that to some extent contradicts with the text books.

I understand that the hold-time is used to give the network enough time to converge so to avoid false updates that may cause loops. Hold-time is one of the reasons for which RIP is considered as a slow protocol.

That is fine up to now. However, the split-horizon option can take care of loops problem, then why do we need the hold-time which causes latency. The answer can be that the hold-time is required in case of circular topology where the false update about a down route may still reach the router from the other side even if split-horizon is used.

Okay, that is fine. However, as far as hold-down time is used along with the split horizon, this means that the hold-down is preventing loops not the split-horizon as even if there is no split horizon, hold-down time will be good enough to stop the loops alone.

In other words, split-horizon is good enough to avoid loops in non-circular topologies while hold-down can stop loops in both cases (circular and non-circular). That means there is no advantage in stopping the loops by applying both methods. Split-horizon alone will be good enough for non-circular topologies (so RIP can work faster without the hold-time here). While hold-time is good enough to stop the loops in circular topologies (so no more advantage in stopping loops by having split-horizon also applied in this scenario).

Then why we get both of them usually applied? The only thing I can find here is that split-horizon saves the bandwidth but does not help in stopping the loops if the hold-down timer is used. Am I right?

Generally, according to my understanding, I am advising to use split-horizon alone for non-circular topology by making the hold-timer = 0. Is it possible? And in case of circular topologies, we need to apply both, hold-timer to prevent loops and split-horizon to save the bandwidth NOT to stop the loops. Am I right?

The other issue is about poison-reverse. I do not understand how it can help by breaking the split-horizon rule and advertising infinite routes to the same interface from where it got the update. I hope you can help me in that.

Ron Maupin
  • 98,218
  • 26
  • 115
  • 191
MKSOI
  • 55
  • 1
  • 1
  • 6

1 Answers1

1

The holddown timer prevents a router from updating its routing table with an unreachable route while the network may be in an unstable state by waiting three times the update period. Networks, especially large networks, can have flapping links or congestion which causes missed routing updates (you appear to want to drop a route immediately on a single missed update). This is useful for routes that are several hops away (indirectly reported routes) which can take time to propagate through the network (advertised every 30 seconds, and a missed update will need to wait another 30 seconds to see if it, too, is missed), and it can prevent problems which split horizon wouldn't necessarily catch (especially if split horizon is disabled due to use of a non-broadcast medium). This addresses a problem that split horizon, even if enabled, does not.

Split horizon is used on broadcast media like ethernet. It prevents routing loops so that the routers don't keep sending updates for the same route back and forth to each other. Split horizon may need to be disabled on non-broadcast media where you need to maintain a specific list of neighbors to which you must advertise routes. Since the neighbors don't broadcast to each other, you may need to specifically tell one neighbor on an interface about a route you learned from another neighbor on that same interface, and not having split horizon doesn't present a problem since the advertisement will not go to the originating neighbor (non-broadcast). Split horizon keeps routing deterministic. The holddown timer has nothing to do with this.

In the event of a routing loop without route poisoning, you would need to wait for timers to expire, but a poisoned route is immediately unusable, breaking the loop right away. Using split horizon with route poisoning is considered safer than split horizon alone.

All these subject are covered in the RFCs, in particular RFC 1058, Routing Information Protocol which has been subsequently updated with several RFCs (RFCs 1723 and 2453) pertaining to RIP version 2, and have been studied and vetted over many years. There are legitimate reason for changing update timers (hence the holddown timer) or split horizon, but careful thought has gone into them, and any change should not be taken lightly. You should read and understand the reasons for the decisions which went into the choices made in the RFCs, and a good place to start is the RFCs themselves.

Ron Maupin
  • 98,218
  • 26
  • 115
  • 191
  • Thanks for your reply. I am still confused about poison-reverse. If router R1 updates R2 about unreachable route that it has just discovered, what will help R1 if R2 replies to R1 with the poison-reverse? R1 already knows about the broken route. – MKSOI Oct 17 '15 at 11:41
  • @user3480226, from RFC 1058, Routing Information Protocol, Section 2.2.1, Split Horizon, "_In general, split horizon with poisoned reverse is safer than simple split horizon. If two gateways 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._" – Ron Maupin Oct 17 '15 at 15:20
  • Thanks for your reply. I found this topic: [link](http://networkengineering.stackexchange.com/questions/14856/poison-reverse-example) it has an example that helps to conceptualize the special case mentioned in the RFC. However, it explain why poison-reverse is required but it does not explain why it has to break the split-horizon rule (which is not to send updates to the same link from where it has got it from). – MKSOI Oct 19 '15 at 07:24
  • In the example, If A knows that its route to S has fall down, then it will immediately create a poison-reverse update about that and send it to B without waiting for the next update or time out. Similarly, when B knows that its route to S is unreachable, it will immediately create a poison-reverse update about that and send it to A. – MKSOI Oct 19 '15 at 07:27
  • These are two different updates about two different routes (A<->S and B<->S) sent on the same link (A<->B) but in different directions and it does not break the split-horizon rule as they do mention in the text!!! Am I right? – MKSOI Oct 19 '15 at 07:27
  • According to the text, when A, for example, receives an update from B telling that the route from B<->S is down, it has to send this update everywhere including the source of it (B in this case). I am unable to know how this can be useful for A or B ?!! – MKSOI Oct 19 '15 at 07:27
  • This forum is not designed for chatting this way. You can take this line of questioning to the general chat room where one or more people can pick it up and hold a discussion about this subject. Unfortunately, I'm starting a conference call so I can't be there immediately, but the room is usually monitored by someone. – Ron Maupin Oct 19 '15 at 18:33