Sunday, May 1, 2011

Preventing routing loops with holddown timers

Preventing routing loops with holddown timers
7.1.7  This page will explain how holddown timers can be used to avoid a count to infinity problem:
  • When a router receives an update from a neighbor, which indicates that a previously accessible network is now inaccessible, the router marks the route as inaccessible and starts a holddown timer. Before the holddown timer expires, if an update is received from the same neighbor, which indicates that the network is accessible, the router marks the network as accessible and removes the holddown timer.
  • If an update arrives from a different neighbor router with a better metric for the network, the router marks the network as accessible and removes the holddown timer.
  • If an update is received from a different router with a higher metric before the holddown timer expires, the update is ignored. This update is ignored to allow more time for the knowledge of a disruptive change to propagate through the entire network.
This page concludes this lesson. The next lesson will define RIP. The first page introduces the RIP routing process.

Avoiding routing loops with triggered updates

Avoiding routing loops with triggered updates
7.1.6  This page will explain how triggered updates can be used to prevent routing loops.
New routing tables are sent to neighbor routers on a regular basis. For example, RIP updates occur every 30 seconds. However a triggered update is sent immediately in response to some change in the routing table. The router that detects a topology change immediately sends an update message to adjacent routers. These routers generate triggered updates to notify their adjacent neighbors of the change. When a route fails, an update is sent immediately. Triggered updates, used in conjunction with route poisoning, ensure that all routers know of failed routes before any holddown timers can expire.
Triggered updates do not wait for update timers to expire. They are sent when routing information has changed. A router will immediately send a routing update on its other interfaces. This forwards the information about the route that has changed and starts the holddown timers sooner on the neighbor routers. The wave of updates propagates throughout the network.
Router C issues a triggered update, which announces that network 10.4.0.0 is unreachable. Upon receipt of this information, Router B announces through interface S0/1 that network 10.4.0.0 is down. In turn, Router A sends an update out interface Fa0/0.
The next page will explain how holddown timers can be used to prevent routing loops.

Route poisoning

Route poisoning 
7.1.5 
This page will explain what route poisoning is and why it is used.
Route poisoning is used by various distance vector protocols to overcome large routing loops and offer detailed information when a subnet or network is not accessible. To accomplish this, the hop count is usually set to one more than the maximum.
One way to avoid inconsistent updates is route poisoning. When Network 5 goes down, Router E will set a distance of 16 for Network 5 to poison the route. This indicates that the network is unreachable. When the route is poisoned, Router C is not affected by incorrect updates about the route to Network 5. After Router C receives a route poisoning from Router E, it sends an update, which is called a poison reverse, back to Router E. This makes sure all routers on the segment have received the poisoned route information.
When route poisoning is used with triggered updates it will speed up convergence time because neighboring routers do not have to wait 30 seconds before they advertise the poisoned route.
Route poisoning causes a routing protocol to advertise infinite-metric routes for a failed route. Route poisoning does not break split horizon rules. Split horizon with poison reverse is route poisoning that is placed on links that split horizon would not normally allow routing information to flow across. In either case, the result is that failed routes are advertised with infinite metrics.
The next page will discuss how triggered updates can prevent routing loops.

Elimination routing loops through split-horizon

Elimination routing loops through split-horizon 
7.1.4
This page will explain how split horizon can be used to avoid routing loops.
Some routing loops occur when incorrect information that is sent back to a router contradicts the correct information that the router originally distributed. An example is as follows:
  1. Router A passes an update to Router B and Router D, which indicates that Network 1 is down. However, Router C transmits an update to Router B, which indicates that Network 1 is available at a distance of 4, by way of Router D. This does not violate split horizon rules.
  2. Router B concludes, incorrectly, that Router C still has a valid path to Network 1, although at a much less favorable metric. Router B sends an update to Router A, which informs Router A of the new route to Network 1.
  3. Router A now determines that it can send to Network 1 by way of Router B. Router B determines that it can send to Network 1 by way of Router C. Router C determines that it can send to Network 1 by way of Router D. Any packet introduced into this environment will loop between routers.
  4. Split horizon is used to avoid this situation. If a routing update about Network 1 arrives from Router A, Router B or Router D cannot send information about Network 1 back to Router A. Split horizon reduces incorrect routing information and routing overhead.
The next page will introduce the concept of route poisoning.

Defining a maximum count

Defining a maximum count 
7.1.3
This page will teach students how to define a maximum count to prevent routing loops.
The invalid updates of Network 1 will continue to loop until some other process stops the looping. This condition, which is called count to infinity, loops packets around the network in spite of the fact that the destination network, which is Network 1, is down. While the routers count to infinity, the invalid information allows a routing loop to exist.
Without countermeasures to stop the count to infinity process, the distance vector metric of hop count increases each time the packet passes through another router. These packets loop through the network because of incorrect information in the routing tables.
Distance vector routing algorithms are self-correcting, but a routing loop problem can require a count to infinity. To avoid this prolonged problem, distance vector protocols define infinity as a specific maximum number. This number refers to a routing metric, which may simply be the hop count.
With this approach, the routing protocol permits the routing loop to continue until the metric exceeds its maximum allowed value. The graphic shows the metric value as 16 hops. This exceeds the distance vector default maximum of 15 hops so the packet is discarded by the router. When the metric value exceeds the maximum value, Network 1 is considered unreachable.
The next page will discuss another solution for routing loops

Distance vector routing loop issues

Distance vector routing loop issues 
7.1.2
This page will help students understand routing loops.
Routing loops can occur when inconsistent routing tables are not updated due to slow convergence in a changing network.
An example is as follows:
  1. Just before the failure of Network 1, all routers have consistent knowledge and correct routing tables. The network is said to have converged. For Router C, the preferred path to Network 1 is by way of Router B, and the distance from Router C to Network 1 is 3.
  2. When Network 1 fails, Router E sends an update to Router A. Router A stops routing packets to Network 1, but Routers B, C, and D continue to do so because they have not yet been informed of the failure. When Router A sends out its update, Routers B and D stop routing to Network 1. However, Router C has not received an update. For Router C, Network 1 can still be reached through Router B.
  3. Now Router C sends a periodic update to Router D, which indicates a path to Network 1 by way of Router B. Router D changes its routing table to reflect this incorrect information, and sends the information to Router A. Router A sends the information to Routers B and E, and the process continues. Any packet destined for Network 1 will now loop from Router C to B to A to D and back to again to C.
The next page explains how a maximum count can be used to prevent routing loops

Distance vector routing updates

Distance Vector Routing 
Distance vector routing updates 
7.1.1 
This page will explain how distance vector routing updates occur.
Routing table updates occur periodically or when the topology in a distance vector protocol network changes. It is important for a routing protocol to update the routing tables efficiently. As with the network discovery process, topology change updates proceed systematically from router to router. Distance vector algorithms call for each router to send its entire routing table to each of its adjacent neighbors. The routing tables include information about the total path cost. The path cost is defined by the metrics and the logical address of the first router on the path to each network in the table.
The next page will explain how routing loops occur.