1. Distance Vector Routing Protocols

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello and welcome to this tutorial we're going to talk about distance vector routing protocols now you might remember rip from icnd1 well rip is a distance vector routing protocol and we covered some of the concepts on how RIP works and also how to configure it and also we haven't covered it but you may have come across a GRP well that's another distance vector routing protocol in this tutorial we're going to talk about the class as a whole in other words the common characteristics and features to all distance vector routing protocols and this will kind of round out our knowledge and understanding of this particular class now the other class of routing protocol is known as link state and we're going to discuss them in a dedicated tutorial let's begin by taking a look at what distance vector actually means we could rename it distance direction that might help us understand it a little bit better for distance we're really talking about a metric all routing protocols use a metric in order to provide some some measurement to the routes that they're advertising and sharing if you remember with rip the metric was the hop count vector is just another way of saying a particular direction in other words where do I go in order to get to this route and that's usually the next hop router that's listed in the routing information so if we take an example and let's use a rip router a learns about a route from router B in terms of the distance the metric used in RIP is the hop count and then in terms of the vector the direction that routing information is going to list a next hop router in order to get to that particular subnet so here the next hop would be router B ok so that's all we really mean by distance vector next let's take a look at how a distance vector actually works on a router so when a router starts up and it's running a distance vector the very first thing it will do is populate its own route table with what it already knows in other words all of the directly connected subnets that are up and functioning will be added to the route table so router a for instance if the link to the 192 168 subnet that's last 28 if it's up and working that gets added to the route table likewise the links between a and B and a and B if they have IP addresses let's assume they do and they're up and functioning let's also assume that they are then those directly connected subnets will be added as well okay so each router is going to do this let's populate a rat table with what we already know then once we have some information to share we need to find people to share it with we need to find our neighbors and when we share information with them then we also get to learn information from them that's the whole exchange process a router running a distance vector will often find neighbors by issuing a broadcast message just to contact all possible neighbors and then once neighbors found they begin exchanging around information but there's a there's a note we need to keep in mind with distance vectors specifically a router running a distance vector will only talk to its directly connected neighbors so for instance router C and router B will share route information and likewise router B and router a will share route information however routers a and C since they're not directly connected they will not share information between each other directly likewise routers B and C they're not going to be able to talk directly with router D so this is a limitation with distance vectors okay keep that in mind now these advertisements are going to be periodically broadcast to all of the directly connected neighbors so each routing protocol that is a distance vector like rip and IG RP they'll have different timers specific to themselves which dictate how frequent these updates are sent but regardless of which one we're talking about this happens on a regular basis with distance vectors and the entire routing table is sent to each neighbor so router a for instance is going to send its entire route table two routers B and d let's say every 30 seconds if we're talking about rip and this happens over and over and over now because of this because a router exchanges the entire route table and it's only done with the directly connected neighbors there are two implications we need to keep in mind with distance vectors the first one is each router is going to receive the entire route table from its neighbor then the receiving router has to be the one in order to figure out if any information has changed since the last update or any any information has been added okay so the receiving router is the one that's responsible for parsing that routing update so when router a sends out its update let's say the router B router B is going to be the one to have to figure out if anything's new it's going to do this every 30 seconds this is not terribly efficient okay because the entire table sent each time and you have to find all the little details that have changed that's the first implication of just how a distance vector works the second implication is that because routers only talk to the directly connected neighbors then they have to rely on those neighbors in order to send that routing information to other routers on the network and likewise they have to believe the information that they receive from their directly connected neighbors about the rest of the network that they can't see right so let's say router B learns an update from router a well that router a is going to have information it learned from router D as well router B has to trust router a and all the information it's getting because routers B and router D cannot talk to each other directly okay so you have to you have to believe each other yet there's some trust here this is often referred to as routing by rumor you're going to come across that when you talk about distance vectors and this is what we're talking about you have to trust your neighbor updates because you cannot see beyond you're directly connected neighbors okay so those are some of the general things to keep in mind about the basic functionality distance-vector okay now let's talk about how a distance vector will prevent a loop from happening on the network so the first mechanism used is called the invalidation timer and basically all this is is it's a timer and it's used to remove entries from the route table if updates stopped coming so let's say router C dies it has a hardware failure and it completely shuts down well router B is eventually going to stop hearing updates from router C and it will flag the routes that it learned from routers C as bad and then it's going to go ahead and share that information with router a eventually in one of its updates so this is known as the invalidation timer if I if I don't hear from you in a certain amount of time I'm going to mark your routes as bad now when I share that new information with my other neighbors so when router B talks to router a this is known as route poisoning and this is what they they call the process when router B has to tell router a that the routes about from routers see that they're bad ok so the bad route is advertised in the in the periodic update between router B and router a but it has a metric that is set to value which indicates it's bad that way router a can figure out that this is a bad route this metric is often a very high value sometimes it's called the infinite value so if you remember and rip you can have a maximum hop count of 15 and if any hop count becomes 16 that's known as the infinite value that means it's a bad route so when a router sees that it immediately knows that this is a bad route okay so that process you're going to hear the term route poisoning that's what they're talking about updating routers about bad routes unfortunately even though the routers are going to share this bad route information with each other the actual process of sending routing updates is inherently flawed with distance vectors and what I mean is the actual process itself can introduce instability on the network so let's look at an example and we'll use one of the most popular ones it's called the counting to infinity example you probably have heard about this basically a router is going to lose a connected route so let's say router a loses the connection to the 192 168 slash 28 and so in its next regular routing update it's going to send that information let's say to router B however at about the same time router B is going to send its regularly scheduled route update to router a and because it sends its entire route table it's going to include that same slash 28 but it's going to mark it as okay so router a is telling router B this is bad router B is telling router a this is good and router B doesn't care that it initially learned that information from router a remember with distance vectors they share their entire route table so they just say okay this is my entire route table I share it with my directly connected neighbors they don't put any more thought into it beyond that so what will happen is router B will learn that okay this is now a bad route but router a is going to learn hey this is a good route and I can get there from router B in fact router a has forgotten at this point that this subnet used to be directly connected to it so this is the problem and this problem is going to last for a little while because the next round of routing updates they're both going to exchange the information this time but then it's going to be reversed router a will learn that as bad but then router B is going to learn that the route is good and I need to go to router a to get there this goes back and forth back and forth each time that routing update the hop count is going to increase by one so eventually it'll get to its infinity mark that value that means it's a bad route and then both routers will remove it from the route table in rip for instance that that value the hop count would be 16 but until that happens there's instability on the network the routing information is constantly changing every 30 seconds ok so that's the problem with counting to infinity and this is inherent to the actual routing process if that were the end of the story then we really wouldn't have any use for a distance vector however there is a mechanism in place in order to combat the counting to infinity example and this feature is known as split horizon and here's how it works we've seen that the distance vet distance vectors are they're pretty simple if I learn some information from you it makes no sense for me to turn around in 30 seconds and then tell you about the same information you just told me you would look at me with a strange look but that's exactly what happened in that last example with split horizon enabled there's a very simple rule that all the routers are going to follow and it is don't advertise routes back to the router you learn them from right it's a common-sense measure so with split horizon on a router when router B sends an update to router a it's not going to send the entire route table this time rather it's going to strip out all of the routes you learn from router a so this way the counting to infinity example can't happen because when router a loses the 192 168 slash 28 it sends that update with the bad route over the router B but router B when it sends its update back to router a it's not going to include that subnet information this time okay so a very simple measure split horizon will combat the counting to infinity now this particular type of split pryzen is known as just the simple split horizon there's a much more advanced type of split horizon and that's called split horizon with Poisson reverse now split horizon with Poisson reverse works like this first when a route fails router a let's say it loses that slash 28 again it's not going to wait for the periodic update rather it's going to send the poison route information out immediately this is known as a triggered partial update it's triggered based on the failure of that network and it's just a partial update meaning it's only going to send out information about the poison route about the slash 28 it's not going to send out his entire route table so that's the first thing that happens and when router be for instance receives that poison route it's going to go ahead and send that information over to its neighbors as well now the second thing that happens with split horizon is the actual poison reverse portion of it and here's how that works when router B receives the poison route it's going to do something a bit unexpected it's going to actually actually suspend that split horizon rule which states if you learn information from somebody don't send it back to them well it's going to suspend it but only for the poison route so here when router a sends the poison route to router B router B is going to send back that same exact poison route information to router hey it's doing this so that router a gets confirmation that router B did in fact receive that route update and the rest of the network eventually will get that information as well okay so it's just really ensuring that all routers are getting updated confirmation is a good thing the actual sending back of that information from router B to router a this is the this is the part that's referred to as the reverse route poisoning okay now router B when it does that keep in mind it's not going to send any other information back to router a so it's not a full routing table update is just the poison route and it's not going to include any other routes it learn from router a only the poisoned route so this works pretty good unfortunately split horizon has trouble when we look at networks where we have redundant connections and once we add a redundant connection split horizon doesn't work so well so then we need to introduce yet another mechanism in order to keep this protocol stable when we add some redundancy to our network here with a link between router a and C then split horizon isn't as effective because even though router a send the poison route to B and C the whole counting to infinity example could still happen between routers B and C so the new mechanism introduced to address this problem is known as the hold-down timer and these work basically by suppressing any routing updates after a poison route is received so if R / 28 fails again router a sends out the poison route to B and C now B and C may still have some older route information that gets sent out at about the same time and they share it with each other however with a hold down timer they're not going to listen to any other updates about the poison route so what we're doing here is we're giving the network some time to converge we're giving it time to get that poison route information to everybody and let the old information expire now router B and C they would listen to new updates about the slash 28 but they have to come from the originator of the poison route which is router a anyone else who sends them information about that during the whole downtime they're going to ignore it okay so that's how hold down timers work in order to better stabilize this protocol and prevent the chance of loops from forming okay okay congratulations you've made it to the summary we have covered a lot of information about distance vectors and it's all good to know commit this to memory because not only can you use it in a troubleshooting scenario but you can also use it if you're in a design process process and you need to evaluate a particular routing protocol okay so we now know that distance vector really is just a metric and a direction that's all we're talking about here with distance vectors we only talked to our directly connected neighbors and we exchanged our full route table regularly now we covered some of the tools in place in order to explain how this protocol updates neighbors and hopefully prevents loose Europe loops from happening the first one is the invalidation timer when a source dies then we talked about split horizon the simple example as well as the split horizon with the reverse route poisoning make sure you understand those okay and then finally hold down timers where the last mechanism we introduced in order to complete the distance vector okay so that's it that is the distance vector routing protocols thanks for watching
Info
Channel: System Engineer
Views: 11,822
Rating: 4.8938055 out of 5
Keywords:
Id: 40b1bM_y0Ng
Channel Id: undefined
Length: 18min 7sec (1087 seconds)
Published: Tue Apr 25 2017
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.