1 00:00:00,000 --> 00:00:07,330 2 00:00:07,330 --> 00:00:10,810 So let's begin by jumping in and looking 3 00:00:10,810 --> 00:00:15,620 at the concept behind the BGP path selection process. 4 00:00:15,620 --> 00:00:19,090 We'll start by looking at what it is, why we need it, 5 00:00:19,090 --> 00:00:20,440 what it's for. 6 00:00:20,440 --> 00:00:22,750 But then we'll also take a little bit of a look 7 00:00:22,750 --> 00:00:25,520 at how it works, the logic behind it, 8 00:00:25,520 --> 00:00:29,030 and how it actually chooses that best path. 9 00:00:29,030 --> 00:00:31,420 So let's go ahead and jump in and take a look 10 00:00:31,420 --> 00:00:32,665 at some of those details. 11 00:00:32,665 --> 00:00:35,390 12 00:00:35,390 --> 00:00:38,710 So at first, we have what might seem to be an obvious statement 13 00:00:38,710 --> 00:00:43,990 here, that BGP will quite often learn, well, 14 00:00:43,990 --> 00:00:48,850 quite a few different paths to get to any given destination. 15 00:00:48,850 --> 00:00:51,550 But we have to have a premise as far as 16 00:00:51,550 --> 00:00:53,950 why we need to choose the best path. 17 00:00:53,950 --> 00:00:56,950 If there is only one path, that path 18 00:00:56,950 --> 00:00:59,120 will, of course, be the best. 19 00:00:59,120 --> 00:01:02,620 But if not, the path selection criteria 20 00:01:02,620 --> 00:01:05,620 is used to choose the best path. 21 00:01:05,620 --> 00:01:08,170 In the case of BGP, this is going 22 00:01:08,170 --> 00:01:12,070 to come down to one best path. 23 00:01:12,070 --> 00:01:15,270 So how do we choose that best path, then? 24 00:01:15,270 --> 00:01:18,930 Well, we're going to be using the BGP attributes 25 00:01:18,930 --> 00:01:21,750 as our primary factor. 26 00:01:21,750 --> 00:01:25,410 So of course, our goal here is to look at these attributes, 27 00:01:25,410 --> 00:01:27,990 discuss what order they're considered in. 28 00:01:27,990 --> 00:01:32,130 And then we'll be using that to design our own path selection 29 00:01:32,130 --> 00:01:33,660 criteria. 30 00:01:33,660 --> 00:01:37,140 When we change attributes to influence the best 31 00:01:37,140 --> 00:01:42,690 path, what we're doing is, we're implementing a routing policy. 32 00:01:42,690 --> 00:01:48,540 One of BGP's biggest strengths is our ability to control this. 33 00:01:48,540 --> 00:01:53,100 Please note, I'm very carefully calling this routing policy, 34 00:01:53,100 --> 00:01:56,730 not policy routing or policy based routing. 35 00:01:56,730 --> 00:02:00,420 Because PBR is actually something different. 36 00:02:00,420 --> 00:02:04,860 Now I have heard people refer to BGP as policy routing. 37 00:02:04,860 --> 00:02:07,360 There's not necessarily anything wrong with that. 38 00:02:07,360 --> 00:02:09,789 I just didn't want to have any confusion here. 39 00:02:09,789 --> 00:02:11,520 So we're going to be very careful 40 00:02:11,520 --> 00:02:14,850 and say that we're implementing a routing policy. 41 00:02:14,850 --> 00:02:17,730 Now interestingly enough, unlike a lot 42 00:02:17,730 --> 00:02:22,710 of other routing protocols, one of the criteria or attributes 43 00:02:22,710 --> 00:02:25,590 is actually not bandwidth. 44 00:02:25,590 --> 00:02:30,450 BGP does not look at bandwidth as part of its criteria. 45 00:02:30,450 --> 00:02:33,690 We could, of course, base our policy on bandwidth 46 00:02:33,690 --> 00:02:35,100 if we choose to. 47 00:02:35,100 --> 00:02:39,390 However, these attributes that we spoke about, well, 48 00:02:39,390 --> 00:02:41,410 one of them is not bandwidth. 49 00:02:41,410 --> 00:02:45,330 So that's why we say it's more based on policy. 50 00:02:45,330 --> 00:02:49,750 Now the way this works is, all of the paths-- 51 00:02:49,750 --> 00:02:51,690 so we're talking about all of these 52 00:02:51,690 --> 00:02:53,430 that we mentioned up here at the top, 53 00:02:53,430 --> 00:02:55,290 that we're going to learn multiple paths 54 00:02:55,290 --> 00:02:56,880 to a destination. 55 00:02:56,880 --> 00:03:01,770 Each of these are considered against the selection criteria 56 00:03:01,770 --> 00:03:05,070 until, again, like we mentioned before, one 57 00:03:05,070 --> 00:03:07,270 is considered the best. 58 00:03:07,270 --> 00:03:11,850 So essentially, we can Enter the top of the BGP route selection 59 00:03:11,850 --> 00:03:17,370 criteria with, let's say 10 paths to a destination. 60 00:03:17,370 --> 00:03:21,150 And maybe at rule one, this eliminates two. 61 00:03:21,150 --> 00:03:22,890 So we're down to eight paths. 62 00:03:22,890 --> 00:03:24,990 Maybe the next rule doesn't eliminate anything. 63 00:03:24,990 --> 00:03:27,730 64 00:03:27,730 --> 00:03:31,300 And as we go down, we keep eliminating paths, 65 00:03:31,300 --> 00:03:34,930 until eventually, we end up at one. 66 00:03:34,930 --> 00:03:36,740 Once we get to that point, of course, 67 00:03:36,740 --> 00:03:38,920 we'll stop going down the list. 68 00:03:38,920 --> 00:03:41,740 But our path selection criteria is 69 00:03:41,740 --> 00:03:46,660 acting almost as a filter here to get us down to one route. 70 00:03:46,660 --> 00:03:49,390 And one last statement here before we jump into the path 71 00:03:49,390 --> 00:03:51,650 selection criteria itself-- 72 00:03:51,650 --> 00:03:54,430 there's sort of a prerequisite. 73 00:03:54,430 --> 00:03:57,820 Before it can even be considered, 74 00:03:57,820 --> 00:04:01,330 it has to be a valid path. 75 00:04:01,330 --> 00:04:04,360 That means that the next hop has to be reachable. 76 00:04:04,360 --> 00:04:06,910 There can be no AS loop. 77 00:04:06,910 --> 00:04:10,420 And the route must be synchronized. 78 00:04:10,420 --> 00:04:12,670 As long as we meet those criteria, 79 00:04:12,670 --> 00:04:16,209 we'll then Enter the path selection process 80 00:04:16,209 --> 00:04:21,089 and start eliminating down to one path. 81 00:04:21,089 --> 00:04:24,900 In this video, we just jumped in and took a look 82 00:04:24,900 --> 00:04:28,590 at the overall concept behind the BGP path selection 83 00:04:28,590 --> 00:04:33,000 process, how it goes down the list of all of the paths 84 00:04:33,000 --> 00:04:35,640 that it's learned to a particular destination, 85 00:04:35,640 --> 00:04:40,410 and how it chooses the best path out of that list, 86 00:04:40,410 --> 00:04:43,380 based on BGP attributes. 87 00:04:43,380 --> 00:04:45,570 I hope this has been informative for you, 88 00:04:45,570 --> 00:04:48,710 and I'd like to thank you for viewing. 89 00:04:48,710 --> 00:04:52,000