When choosing a routing protocol for a network, understanding how routes converge and what routers do to prevent a routing loop is important. RIP is not exactly an all-star when it comes to convergence. Not only is RIP kind of dumb in how it computes the best route, it’s also slow to converge when there’s a change in the routing table.
- Split horizon – RIP doesn’t advertise routes back out the interface in which they came. Or put another way, a router won’t tell a neighbor about routes that the neighbor presumably already knows about. That would be silly, and could cause a loop in certain circumstances.
- Triggered update – RIP will send an update out just a soon as the routing table changes. He won’t wait for the Update timer to expire.
- Route poisoning- RIP will tell other routers that a failed route is junk by advertising it with an infinite metric, effectively poisoning it.
- Poison reverse – Upon receipt of a poisoned route, the router will readvertise the route as poison right back out the interface where the poisoned route was received to begin with.
- Update timer – how often RIP will advertise his routing table, defaulting to 30 seconds. Each interface has its own update timer.
- Holddown timer – a timer for each route, default of 180 seconds, that starts counting down when a metric changes to a larger value. The router won’t change the route to the larger metric until this timer expires.
- Invalid timer – RIP tracks each route in the table. Every time RIP receives an update for a route, the invalid timer starts over. If RIP doesn’t hear an advertisement for a route by the time the invalid timer has expired (default 180 seconds), then the route is considered invalid. (Note that this, in and of itself, doesn’t remove the route from the table. You also need the flush timer for that.)
- Flush/garbage timer – RIP starts this timer over at the same time the invalid timer starts over, ergo when an advertisement for a route is received. When the flush timer runs out (default of 240 seconds), the route is removed from the routing table, and the router will accept new routes for the failed subnet.
Now – go play with a few routers running RIP among them and check out the timers, etc. I have 2 more routers to build in addition to the one I built last night to really be able to fiddle.
Other RIP convergence notes:
- Under “router rip”, you can tweak the timers with the “timers basic” command. But if you do it, you increase the chance of causing a loop.
- You can clear all the routes out of the table, resetting all of the timers too, by doing a “clear ip route *” (blowing away the whole routing table, forcing a rebuild), or “clear ip route 18.104.22.168” if all you needed to do was clear that one route.