Chabot College ELEC 99.08 Routing Loops
Routing Loops Topics Convergence Distance Vector Routing Loops RIP v2 Discontiguous Networks
Convergence Convergence means that routers agree about the network’s available routes - the routing tables are consistent. Inconsistent routing tables is the main cause of routing loops.
Routing Loops - the Problem Problem: Using distance-vector routing, routers can learn “bad” routes and then propagate these to other routers. Result: inconsistent routing tables Result: looping packets - counting to infinity.
Routing Loops Example Example: 192.168.3.0 is directly connected to Oak’s E0. Oak’s routing table shows 192.168.3.0 is 0 hops away. 192.168.3.0 E0 S1 S1 fre S0 hay oak S0 E0 192.168.3.0
Routing Loops Example RIP, running on Oak, tells Hay that 192.168.3.0 is reachable through Oak with a distance of 0. Hay adds 1 hop to the distance and enters the route to 192.168.3.0 into its routing table. 192.168.3.0 1 S1 192.168.3.0 E0 S1 RIP S1 fre S0 hay oak S0 E0 192.168.3.0
Routing Loops Example RIP, running on Hay, tells Fre that 192.168.3.0 is 1 hop away. Fre adds 1 hop to the distance and enters the route to 192.168.3.0 into its routing table. 192.168.3.0 2 S1 192.168.3.0 1 S1 192.168.3.0 E0 RIP S1 S1 fre S0 hay oak S0 E0 192.168.3.0
Routing Loops Example The network is now “converged”. All routers have a consistent picture of the network. 192.168.3.0 2 S1 192.168.3.0 1 S1 192.168.3.0 E0 S1 S1 fre S0 hay oak S0 E0 192.168.3.0
Routing Loops Example Now network 192.168.3.0 fails... Oak stops routing packets to it and marks it as “unreachable" with a distance of 16 hops. 192.168.3.0 2 S1 192.168.3.0 1 S1 192.168.3.0 16 E0 S1 S1 fre S0 hay oak S0 E0 192.168.3.0
Routing Loops Example So far, Hay and Fre don’t know of the failure. Before Oak can tell Hay, Hay sends out its regular 30-second update to Fre and Oak. That update tells Oak that there is a route to 192.168.3.0 through Hay with a distance of 1. 192.168.3.0 2 S1 192.168.3.0 1 S1 192.168.3.0 16 E0 RIP S1 RIP S1 fre S0 hay oak S0 E0 192.168.3.0
Routing Loops Example Oak accepts the update, adds 1 to the distance and changes the vector (interface) to the dest. Now Oak wrongly believes that there is a route to 192.168.3.0 through Hay with a distance of 2. 192.168.3.0 2 S1 192.168.3.0 1 S1 192.168.3.0 2 S0 S1 RIP S1 fre S0 hay oak S0 E0 192.168.3.0
Routing Loops Example Next Oak sends its regular update to Hay, which adds 1 to the distance to 192.168.3.0. 192.168.3.0 2 S1 192.168.3.0 3 S1 192.168.3.0 2 S0 S1 RIP S1 fre S0 hay oak S0 E0 192.168.3.0
Routing Loops Example Hay again sends regular updates to Fre and Oak, and each router adds 1 to the distance to 192.168.3.0. See the problem? 192.168.3.0 4 S1 192.168.3.0 3 S1 192.168.3.0 4 S0 RIP S1 RIP S1 fre S0 hay oak S0 E0 192.168.3.0
Routing Loops Example The routing tables are not converged. If Hay receives a packet bound for 192.168.3.0, where will it send it? What will happen next? 192.168.3.0 4 S1 192.168.3.0 3 S1 192.168.3.0 4 S0 S1 S1 fre S0 hay oak S0 E0 192.168.3.0
Routing Loop Management Hop count limit stops looping packets after limit default is 15 hops for RIP (16 is considered “unreachable” or down) can be set: Commands default-metric NN hay(config)#router rip hay(config-router)#default-metric 10 hay(config-router)#^Z
Routing Loop Management Split horizon prevents sending information about a route back to the source from which an update originated. reduces the spread of bad routes & speeds convergence. is enabled by default on each interface
Routing Loops Management Split horizon on S0 prevents Oak from accepting incorrect update from Hay about 192.168.3.0. 192.168.3.0 1 S1 192.168.3.0 16 E0 split-horizon S1 RIP S1 fre S0 hay oak S0 E0 192.168.3.0
Routing Loop Management Holdowns when changes occur, holdowns force routers to “hold” the changes for a certain period of time. The router will not accept an updated route with a poorer metric until the holdown timer expires. this prevents regular updates from wrongly reinstating a route that has gone bad. Commands timers basic update invalid hold flush hay(config)#router rip hay(config-router)#timers basic 30 60 150 30 hay(config-router)#^Z See: http://www.cisco.com/en/US/products/sw/iosswrel/ps1831/products_command_summary_chapter09186a0080087eab.html#xtocid17
RIP Timers
Rapid Convergence - Sample Config 10 hops max oak#conf t oak(config)#router rip oak(config-router)#default-metric 10 oak(config-router)#timers basic 30 60 150 30 oak(config-router)#exit oak(config-if)#^Z Fast timers
Routing Loop Management Triggered Updates When changes occur, updates are sent immediately. Speeds convergence. Supported only by RIP version 2 Works together with holdowns. Consider how triggered updates & holdowns could prevent the example problem.
RIP Version 2 Key New Features: understands subnet masks, including Variable Length Subnet Masks performs “triggered updates” - sending new routing information to neighbor routers immediately after a change in the network provides an authentication mechanism (passwords) supports IP multicasting supports EGP route tags For our Lab, the key advantage is the support for subnet masks...
RIP Version 2 - Commands Configuring RIP version 2 - same as RIP but adds version 2 statement version should be the same for all routers Enables RIP routing Sets RIP version 2 oak(config)#router rip oak(config-router)#version 2 oak(config-router)#network 10.0.0.0 oak(config-router)#network 192.168.4.0 oak(config-router)#^Z
Discontiguous Networks - Problem RIP and IGRP do not support routing between subnets that are separated by other networks. RIP won’t tell router B how to reach the 172.16.1.0 /24 subnet: 10.1.0.0/16 net A B 172.16.1.0 / 24 Net 172.16.2.0 / 24 Net See http://www.cisco.com/warp/public/105/55.html
Discontiguous Networks - Solution RIP version 2 understands subnets and can be configured not to summarize subnets will not have a problem with the discontiguous subnets shown below with this config: rtrB(config)#router rip rtrB(config-router)#version 2 rtrB(config-router)#no auto-summary rtrB(config-router)#network 10.1.0.0 rtrB(config-router)#network 172.16.2.0 10.1.0.0/16 net A B 172.16.1.0 / 24 subnet 172.16.2.0 / 24 subnet
Command Summary default-metric 10 timers basic 30 180 180 240 version 2 no auto-summary