We hope you found this Cisco certification article helpful. We pride ourselves on not only providing top notch Cisco CCNA exam information, but also providing you with the real world Cisco CCNA skills to advance in your networking career.


Distance Vector Routing
In preparation of our CCNA exam, we want to make sure we cover the various concepts that we could see on our Cisco CCNA exam. So to assist you, below we will discuss Distance Vector Routing.
Any topology change in a network running a distance vector protocol triggers an update in the routing tables. The topology updates follow the same step-by-step process as the initial network discovery.
 
The process of updating routing tables is as follows: A router compares the information contained in the update to its current table. If the update contains information about a better route to some destination (a smaller total metric), the router updates its own routing table. As always, the distance metric is incremented 1 greater than the neighbor it received the update from. During updates, the router sends its entire routing table to each of its adjacent neighbors. The table includes the total path cost (defined by its metric) and the logical address of the first router on the path to each destination network. In the figure, Router B is one unit of cost from Router A. Therefore, it adds 1 to all costs reported by Router A.
 
 
How Routing Loops Occur in Distance Vector
 
During updates, routing loops can occur if the network has inconsistent routing entries. Slow convergence on a new configuration is one cause of this phenomenon. The network is converged when all routers have consistent routing tables. The figure illustrates how a routing loop occurs.
 
 
Before a network failure, all routers have correct tables. The figure uses hop count as a cost metric, so the cost of each link is 1. Router C is directly connected to network 10.4.0.0 with a distance of 0. Router A’s path to network 10.4.0.0 is through Router B, with a hop count of 2.
 
If network 10.4.0.0 fails, Router C detects the failure and stops routing packets to that network. At this point, Routers A and B do not know of the failure. Router A’s table still shows a valid path to 10.4.0.0 through Router B.
 
 
If Router B sends out its normal update to A and C, Router C sees a valid path to 10.4.0.0 through Router B and updates its routing table to reflect a path to network 10.4.0.0 with a hop count of 2. (Remember, it must add 1 to the hop count.) Now router C sends an update to Router B, which then updates Router A. Router A detects the modified distance vector to network 10.4.0.0 and recalculates its own distance vector to 10.4.0.0 as 4. With each update, the incorrect information continues to bounce between the routers. Without some mechanism to prevent this, the updates continue. This condition, called count to infinity, continuously loops packets around the network. Some distance vector routing algorithms have a Time-To-Live (TTL) value, but the routing loop problem can occur with this limit. You can avoid this by defining infinity as some maximum number. When you set this value, the routing loop continues until the metric exceeds the maximum allowed value. After the metric value exceeds the maximum, the network is unreachable.
 
Eliminating Routing Loops Through Split Horizon
 
Split horizon is one way to eliminate routing loops and speed up convergence. The idea behind split horizon is that it is never useful to send information about a route back in the direction from which the update came. If the router has no valid alternative path to the network, it is considered inaccessible. Split horizon also eliminates unnecessary routing updates, thus speeding convergence.
 
 
Route Poisoning
 
Route poisoning, which is part of split horizon, also eliminates routing loops caused by inconsistent updates. Route poisoning basically locks the table (using hold-down timers) until the network has converged.
 
Example of Route Poisoning
 
The figure provides the following example: When network 10.4.0.0 goes down, Router C “poisons” its link to network 10.4.0.0 with an infinite cost (marked as unreachable). Router C is no longer susceptible to incorrect updates about network 10.4.0.0 coming from neighboring routers that might claim to have a valid alternative path. After the hold-down timer expires (which is just longer than the time to convergence), Router C begins accepting updates again.
 
 
Poison Reverse
 
When Router B sees the metric to 10.4.0.0 jump to infinity, it sends a return message (overriding split horizon) called a poison reverse back to Router C, stating that network 10.4.0.0 is inaccessible. This message ensures that all routers on that segment have received information about the poisoned route.
 
 
Avoiding Routing Loops with Triggered Updates
 
A triggered update is sent immediately in response to a change in the network. The router detecting the change immediately sends an update message to adjacent routers, which then generate their own triggered updates. This continues until the network converges.
There are two problems with triggered updates:
  •  
  • The update message can be dropped or corrupted.
  •  
  • The updates do not happen instantly. It is possible that a router issued a regular update before receiving the triggered update. If this happens, the bad route can be reinserted into a router that received the triggered update. The solution is as follows: Hold-down timers dictate that when a route is invalid, no new route with a same or worse metric will be accepted for the same destination for a certain period of time. This allows the triggered update to propagate throughout the network.
     
    Characteristics of Hold-Down Timers
  •  
  • They are used to prevent regular update messages from inappropriately reinstating a route that might have gone bad.
  •  
  • Hold-down timers force routers to hold any changes for a period of time.
  •  
  • The hold-down period should be calculated to be just greater than the amount of time it takes for updates to converge.
     
    Hold-Down Implementation Process
    1 When a router receives an update that a network is down, the router marks the route as inaccessible and starts a hold-down timer.
    2 If an update is received from a neighboring router with a better metric, the router removes the timer and uses the new metric.
    3 If an update with a poorer metric is received before the hold-down timer expires, the update is ignored.
    3 During the hold-down period, routes appear in the routing table as “possibly down.”
     
     
    Distance Vector Routing Summary
  •  
  • Distance vector routing protocols maintain routing information by updating routing tables with neighboring routing tables.
  •  
  • Defining a max count prevents infinite loops.
  •  
  • Split horizon solves routing loops by preventing routing updates from being sent back in the same direction from which they came.
  •  
  • Route poisoning sets downed routes to infinity to make that route unreachable.
  •  
  • A triggered update is sent immediately in response to a change. Each router receiving a triggered update sends its own until the network converges.
  •  
  • Hold-down timers prevent regular update messages from reinstating failed routes.
  •  
  • More than one loop-preventing solution can be implemented on networks that have multiple routes.