1 00:00:00,000 --> 00:00:03,395 [AUDIO LOGO] 2 00:00:03,395 --> 00:00:07,760 3 00:00:07,760 --> 00:00:12,620 So let's begin by talking about why we want MPLS traffic 4 00:00:12,620 --> 00:00:13,430 engineering. 5 00:00:13,430 --> 00:00:15,230 What does this bring to the table 6 00:00:15,230 --> 00:00:17,570 that we don't normally have? 7 00:00:17,570 --> 00:00:21,270 Well, we've discussed it a little bit in previous skills, 8 00:00:21,270 --> 00:00:25,070 but keep in mind that MPLS normally 9 00:00:25,070 --> 00:00:28,430 follows the IGP when determining where 10 00:00:28,430 --> 00:00:32,090 to forward the packets to, in other words, the next hop. 11 00:00:32,090 --> 00:00:37,010 Well, IGPs, such as OSPF and ISIS, 12 00:00:37,010 --> 00:00:39,440 although technically you could use other protocols, 13 00:00:39,440 --> 00:00:41,340 they don't support traffic engineering. 14 00:00:41,340 --> 00:00:43,290 So we won't be discussing those. 15 00:00:43,290 --> 00:00:48,350 But OSPF and ISIS, of course, have their own path selection 16 00:00:48,350 --> 00:00:49,580 criteria. 17 00:00:49,580 --> 00:00:52,290 OSPF is a little bit more complicated, 18 00:00:52,290 --> 00:00:55,190 but just in a general sense, they both sort of 19 00:00:55,190 --> 00:00:57,050 come down to lowest cost. 20 00:00:57,050 --> 00:00:59,550 Of course, it's a little more complicated than that. 21 00:00:59,550 --> 00:01:01,670 But generally speaking, that's good enough 22 00:01:01,670 --> 00:01:03,230 for this discussion. 23 00:01:03,230 --> 00:01:07,640 Whatever their criteria, they choose a best path 24 00:01:07,640 --> 00:01:09,990 to get to a destination. 25 00:01:09,990 --> 00:01:14,570 Now, if there are multiple paths that are completely equal, 26 00:01:14,570 --> 00:01:18,530 we of course support ECMP or equal 27 00:01:18,530 --> 00:01:23,330 cost multipathing, in which case, even MPLS can still 28 00:01:23,330 --> 00:01:28,280 use both of those paths and send traffic along both paths. 29 00:01:28,280 --> 00:01:31,520 That's not what traffic engineering is for. 30 00:01:31,520 --> 00:01:34,340 What traffic engineering is for is 31 00:01:34,340 --> 00:01:38,600 what happens when we don't have equal paths. 32 00:01:38,600 --> 00:01:40,110 Just as an example. 33 00:01:40,110 --> 00:01:44,900 What if I had a 10-gig circuit and a 1-gig circuit 34 00:01:44,900 --> 00:01:46,770 that I wanted to use? 35 00:01:46,770 --> 00:01:50,030 Now, obviously, OSPF and ISIS should 36 00:01:50,030 --> 00:01:54,350 choose the 10-gig circuit to be our best link, our best path. 37 00:01:54,350 --> 00:01:56,300 And it would be. 38 00:01:56,300 --> 00:02:01,160 But if that 10-gig circuit is running at 90%, 39 00:02:01,160 --> 00:02:04,250 well, it only has one gig left, anyway. 40 00:02:04,250 --> 00:02:08,060 So now, you have two equal paths again. 41 00:02:08,060 --> 00:02:13,310 But your IGP, normally is not going to keep track of that. 42 00:02:13,310 --> 00:02:16,940 Where traffic engineering comes into play is where it can say, 43 00:02:16,940 --> 00:02:20,490 yes, the IGP says this is the best path. 44 00:02:20,490 --> 00:02:23,240 However, in the right circumstances, 45 00:02:23,240 --> 00:02:27,080 maybe this other path, which is perfectly fine, perfectly 46 00:02:27,080 --> 00:02:29,810 viable, there's no loops, it's just 47 00:02:29,810 --> 00:02:33,650 not the best, that doesn't make it not usable. 48 00:02:33,650 --> 00:02:36,170 Traffic engineering actually allows 49 00:02:36,170 --> 00:02:39,330 us to use those other paths. 50 00:02:39,330 --> 00:02:42,140 So let's jump in and talk a little bit more detail 51 00:02:42,140 --> 00:02:45,140 about why we want this and how it fits into everything. 52 00:02:45,140 --> 00:02:48,030 And well, some of the things we need to do to support it. 53 00:02:48,030 --> 00:02:50,780 And then in our future videos here, we're 54 00:02:50,780 --> 00:02:53,640 going to be taking a look at how it actually functions. 55 00:02:53,640 --> 00:02:57,050 So let's get in and look at some of the things that make traffic 56 00:02:57,050 --> 00:03:00,370 engineering worth running. 57 00:03:00,370 --> 00:03:03,600 So the main reason that we want traffic engineering 58 00:03:03,600 --> 00:03:08,190 is to get better usage of what would be potentially 59 00:03:08,190 --> 00:03:10,330 underutilized resources. 60 00:03:10,330 --> 00:03:12,780 So like we said during the introduction, maybe 61 00:03:12,780 --> 00:03:16,560 that 1-gig link that's sitting there not being used at all 62 00:03:16,560 --> 00:03:20,980 because the IGP simply says it's not the best path. 63 00:03:20,980 --> 00:03:23,700 Now, to ensure that we can use these other paths 64 00:03:23,700 --> 00:03:26,280 and that they are, in fact, loop-free, 65 00:03:26,280 --> 00:03:29,040 we need a routing protocol that actually 66 00:03:29,040 --> 00:03:33,120 has a database with a view of the whole network 67 00:03:33,120 --> 00:03:34,680 or the topology. 68 00:03:34,680 --> 00:03:37,440 That, of course, is going to require a link 69 00:03:37,440 --> 00:03:39,210 state routing protocol. 70 00:03:39,210 --> 00:03:41,550 It also requires extensions. 71 00:03:41,550 --> 00:03:45,090 We call them, of course, the TE extensions. 72 00:03:45,090 --> 00:03:47,070 But these allow it to also help keep 73 00:03:47,070 --> 00:03:51,000 track of the load on that link, not just 74 00:03:51,000 --> 00:03:53,040 the available bandwidth, which is what 75 00:03:53,040 --> 00:03:55,410 these protocols normally track. 76 00:03:55,410 --> 00:03:59,200 Now, given that it has to be link state, as we mentioned, 77 00:03:59,200 --> 00:04:01,750 there are only two choices for this. 78 00:04:01,750 --> 00:04:06,120 Of course, we can either run OSPF or ISIS, 79 00:04:06,120 --> 00:04:09,060 which is why these are, of course, the two main protocols 80 00:04:09,060 --> 00:04:13,050 that we use under MPLS. 81 00:04:13,050 --> 00:04:17,070 Keep in mind, even if we're not using MPLS traffic engineering 82 00:04:17,070 --> 00:04:20,680 right now, we may at some point in the future. 83 00:04:20,680 --> 00:04:22,320 So generally speaking, if you're going 84 00:04:22,320 --> 00:04:25,440 to build an MPLS environment, it makes the most sense 85 00:04:25,440 --> 00:04:28,920 to build it on either OSPF or ISIS. 86 00:04:28,920 --> 00:04:32,340 And of course, most service providers have done just that. 87 00:04:32,340 --> 00:04:36,630 This is more of a discussion for enterprise core. 88 00:04:36,630 --> 00:04:38,430 Because again, a lot of enterprises 89 00:04:38,430 --> 00:04:41,490 also use MPLS in their core and they may not 90 00:04:41,490 --> 00:04:43,620 be using traffic engineering right now, 91 00:04:43,620 --> 00:04:45,960 but they may want to in the future. 92 00:04:45,960 --> 00:04:48,730 Again, from a service provider perspective, 93 00:04:48,730 --> 00:04:51,600 we are probably already running one of these two protocols, 94 00:04:51,600 --> 00:04:54,270 and while your environment is probably already running 95 00:04:54,270 --> 00:04:56,400 traffic engineering as well. 96 00:04:56,400 --> 00:04:59,610 To put this another way, what we're doing 97 00:04:59,610 --> 00:05:03,750 is we're actually mapping the traffic to the network. 98 00:05:03,750 --> 00:05:06,420 We're not just routing down the best path. 99 00:05:06,420 --> 00:05:09,090 Again, that's what your IGPs normally do, 100 00:05:09,090 --> 00:05:13,020 that's just standard IP-based forwarding. 101 00:05:13,020 --> 00:05:18,190 TE allows us to use other paths rather than just the best. 102 00:05:18,190 --> 00:05:21,130 And we are going to be mapping that traffic. 103 00:05:21,130 --> 00:05:24,570 So as we said, what the IGP, of course, will normally do, 104 00:05:24,570 --> 00:05:28,780 is it routes traffic based on the best path. 105 00:05:28,780 --> 00:05:32,430 Whatever that means to that particular routing protocol, 106 00:05:32,430 --> 00:05:35,010 that's, of course, going to be based entirely 107 00:05:35,010 --> 00:05:38,850 on the destination address where the traffic is going. 108 00:05:38,850 --> 00:05:40,830 And of course, the most important thing 109 00:05:40,830 --> 00:05:42,450 in this whole discussion really is 110 00:05:42,450 --> 00:05:46,890 that it does not change based on the traffic load. 111 00:05:46,890 --> 00:05:49,680 These routing protocols don't track load, 112 00:05:49,680 --> 00:05:52,320 they just look at the speed of the circuit. 113 00:05:52,320 --> 00:05:54,210 Overall, the cost. 114 00:05:54,210 --> 00:05:56,310 This, of course, is where traffic engineering 115 00:05:56,310 --> 00:05:59,550 steps in and allows that traffic to be 116 00:05:59,550 --> 00:06:03,420 mapped based on other criteria. 117 00:06:03,420 --> 00:06:07,650 Not just the criteria for the IGP, which, again, is usually 118 00:06:07,650 --> 00:06:09,690 going to be lowest cost. 119 00:06:09,690 --> 00:06:13,380 We might want to do this based on traffic type. 120 00:06:13,380 --> 00:06:15,120 Maybe I want to send voice traffic 121 00:06:15,120 --> 00:06:17,130 down a particular circuit. 122 00:06:17,130 --> 00:06:20,100 Just as another example, I did some work 123 00:06:20,100 --> 00:06:22,650 with a company that did stock trading. 124 00:06:22,650 --> 00:06:24,690 And they had two remote offices that 125 00:06:24,690 --> 00:06:26,760 were rather far apart, they needed 126 00:06:26,760 --> 00:06:30,390 to get those stock, quotes, "to the other location as quickly 127 00:06:30,390 --> 00:06:31,740 as possible." 128 00:06:31,740 --> 00:06:35,430 In doing so, they had put in this very elaborate, very 129 00:06:35,430 --> 00:06:40,470 direct line of sight, low speed but incredibly low 130 00:06:40,470 --> 00:06:43,830 latency circuit to get those stock quotes through. 131 00:06:43,830 --> 00:06:46,350 It was like 3 milliseconds faster 132 00:06:46,350 --> 00:06:47,710 than their normal circuit. 133 00:06:47,710 --> 00:06:49,150 Doesn't sound like much. 134 00:06:49,150 --> 00:06:51,780 But apparently, in the stock trading market, that's a lot. 135 00:06:51,780 --> 00:06:54,870 Because they spent a lot of money for this circuit 136 00:06:54,870 --> 00:06:57,240 that was only 3 milliseconds, less 137 00:06:57,240 --> 00:06:59,490 latency than their other circuit. 138 00:06:59,490 --> 00:07:03,990 But the point is, that circuit was also low bandwidth and very 139 00:07:03,990 --> 00:07:05,290 high cost. 140 00:07:05,290 --> 00:07:08,430 So we use traffic engineering to ensure 141 00:07:08,430 --> 00:07:12,030 that the only thing that went over that special circuit was, 142 00:07:12,030 --> 00:07:16,020 in fact, the stock trading information, all other traffic 143 00:07:16,020 --> 00:07:18,570 was sent across the normal circuit. 144 00:07:18,570 --> 00:07:21,690 Now, in truth, that particular environment, 145 00:07:21,690 --> 00:07:24,420 we were not using MPLS traffic engineering, 146 00:07:24,420 --> 00:07:26,280 we were doing it a slightly different way. 147 00:07:26,280 --> 00:07:28,230 But it's still the same concept. 148 00:07:28,230 --> 00:07:31,140 We may want to do this to send a certain type of traffic 149 00:07:31,140 --> 00:07:34,560 down a certain circuit for a particular reason, 150 00:07:34,560 --> 00:07:36,490 whatever that may be. 151 00:07:36,490 --> 00:07:38,220 Of course, another very popular reason, 152 00:07:38,220 --> 00:07:42,360 as we've mentioned numerous times now, is the traffic load. 153 00:07:42,360 --> 00:07:45,630 Again, this other alternate circuit may not be the fastest, 154 00:07:45,630 --> 00:07:49,930 it may not be the best, but it's still perfectly fine. 155 00:07:49,930 --> 00:07:52,950 I always like to use the analogy of a GPS. 156 00:07:52,950 --> 00:07:55,140 If you're trying to find your way somewhere, 157 00:07:55,140 --> 00:07:58,870 the GPS will most likely route you on to the highway. 158 00:07:58,870 --> 00:08:01,470 However, if there's a lot of traffic on the highway or maybe 159 00:08:01,470 --> 00:08:04,450 an accident, it'll find an alternate route 160 00:08:04,450 --> 00:08:08,670 and send you around the accident on what's potentially maybe 161 00:08:08,670 --> 00:08:11,100 side streets or secondary roads. 162 00:08:11,100 --> 00:08:13,583 Normally, those wouldn't be the best way to go. 163 00:08:13,583 --> 00:08:15,000 But they're certainly the best way 164 00:08:15,000 --> 00:08:20,230 to go when the best way to go is all backed up. 165 00:08:20,230 --> 00:08:23,340 So again, we're talking about using those links that 166 00:08:23,340 --> 00:08:26,440 normally would not be utilized. 167 00:08:26,440 --> 00:08:28,360 So again, maybe those side streets. 168 00:08:28,360 --> 00:08:30,360 You probably wouldn't normally take the back way 169 00:08:30,360 --> 00:08:33,000 to get somewhere, but if the highway is backed up, 170 00:08:33,000 --> 00:08:34,679 it's a great choice. 171 00:08:34,679 --> 00:08:37,120 And ultimately, what does this do? 172 00:08:37,120 --> 00:08:39,539 It certainly helps the end user experience, 173 00:08:39,539 --> 00:08:42,390 because we're getting use of all of our available bandwidth, 174 00:08:42,390 --> 00:08:45,550 maybe a particular circuit type, that sort of thing. 175 00:08:45,550 --> 00:08:49,800 And ultimately, it's going to save us money because why? 176 00:08:49,800 --> 00:08:54,870 Well, we're using circuits that we're paying for. 177 00:08:54,870 --> 00:08:58,030 If we're paying for them, we should be using that. 178 00:08:58,030 --> 00:09:01,780 Now, one thing to keep in mind is, in this environment, 179 00:09:01,780 --> 00:09:03,630 if there is a failure. 180 00:09:03,630 --> 00:09:05,130 And of course, we're really talking 181 00:09:05,130 --> 00:09:09,450 about a failure of these secondary circuits or possibly 182 00:09:09,450 --> 00:09:10,860 even the primary circuit. 183 00:09:10,860 --> 00:09:13,870 But either way, that remaining traffic 184 00:09:13,870 --> 00:09:17,140 is still going to have to traverse the remaining 185 00:09:17,140 --> 00:09:19,540 path, whatever that may be. 186 00:09:19,540 --> 00:09:22,000 And another cool thing with traffic engineering 187 00:09:22,000 --> 00:09:25,870 is we can actually put priorities on our tunnels. 188 00:09:25,870 --> 00:09:31,220 And certain tunnels can bump lesser priority tunnels. 189 00:09:31,220 --> 00:09:35,450 So we can choose, in the event of lesser bandwidth available, 190 00:09:35,450 --> 00:09:38,170 which tunnels stay up and which tunnels-- 191 00:09:38,170 --> 00:09:39,940 may be something like a tunnel we 192 00:09:39,940 --> 00:09:42,460 built for TestDev or something like that 193 00:09:42,460 --> 00:09:44,920 or non-mission critical information 194 00:09:44,920 --> 00:09:48,610 can go down rather than our mission critical. 195 00:09:48,610 --> 00:09:54,540 It's essentially QoS for traffic engineering tunnels. 196 00:09:54,540 --> 00:09:56,690 Now, just to put this out there-- and hopefully, 197 00:09:56,690 --> 00:09:58,220 it's sort of obvious. 198 00:09:58,220 --> 00:10:01,500 But this is only beneficial, of course, 199 00:10:01,500 --> 00:10:04,130 if there are resources available, which 200 00:10:04,130 --> 00:10:06,320 are, in fact, underutilized. 201 00:10:06,320 --> 00:10:08,990 If there's no resources that we're not using, 202 00:10:08,990 --> 00:10:11,630 well, this isn't really going to help us much. 203 00:10:11,630 --> 00:10:16,310 Because this is helping us use those underutilized resources. 204 00:10:16,310 --> 00:10:21,200 This is really designed to solve long-term issues, not 205 00:10:21,200 --> 00:10:24,530 short term problems like traffic bursts. 206 00:10:24,530 --> 00:10:29,750 This would be more of an issue for say, QoS or quality 207 00:10:29,750 --> 00:10:31,010 of service. 208 00:10:31,010 --> 00:10:34,910 QoS and doing things like traffic prioritization 209 00:10:34,910 --> 00:10:38,060 and having egress buffers, things like this, 210 00:10:38,060 --> 00:10:42,200 those are more to help short term traffic burst problems. 211 00:10:42,200 --> 00:10:45,080 This is a long term, always going 212 00:10:45,080 --> 00:10:48,410 to be using these back up underutilized paths. 213 00:10:48,410 --> 00:10:51,980 And truth be told, we want this to be a long term solution, 214 00:10:51,980 --> 00:10:56,700 because we always want to be using underutilized resources. 215 00:10:56,700 --> 00:10:59,350 We don't want to just use them temporarily. 216 00:10:59,350 --> 00:11:01,330 The point we're really trying to make here 217 00:11:01,330 --> 00:11:04,180 is these tunnels have to be built and set up. 218 00:11:04,180 --> 00:11:07,970 And traffic has to be steered into these tunnels and so on. 219 00:11:07,970 --> 00:11:09,520 This is not a quick thing we're going 220 00:11:09,520 --> 00:11:13,150 to do just to resolve 30 milliseconds or even 221 00:11:13,150 --> 00:11:16,210 500 milliseconds worth of traffic congestion. 222 00:11:16,210 --> 00:11:19,000 This is something we're going to set up for the long term. 223 00:11:19,000 --> 00:11:21,250 That's really the point we're trying to drive home 224 00:11:21,250 --> 00:11:23,630 with this particular point. 225 00:11:23,630 --> 00:11:25,720 Now, just for subject completeness here, 226 00:11:25,720 --> 00:11:29,650 there are, in fact, other ways that we could accomplish, 227 00:11:29,650 --> 00:11:30,380 the same thing. 228 00:11:30,380 --> 00:11:32,410 We're doing with traffic engineering. 229 00:11:32,410 --> 00:11:35,810 That company I mentioned earlier with the stock trading. 230 00:11:35,810 --> 00:11:38,020 What we had actually done there for them 231 00:11:38,020 --> 00:11:40,720 is policy-based routing. 232 00:11:40,720 --> 00:11:43,240 We did their solution with PBR. 233 00:11:43,240 --> 00:11:46,370 And that worked fine in their environment. 234 00:11:46,370 --> 00:11:49,780 It's not going to be so good in a service provider environment, 235 00:11:49,780 --> 00:11:53,560 because policy-based routing has the same problems 236 00:11:53,560 --> 00:11:57,580 as source-based routing and static routing. 237 00:11:57,580 --> 00:12:00,400 All of these have the same issue, which 238 00:12:00,400 --> 00:12:02,482 is they don't scale very well. 239 00:12:02,482 --> 00:12:04,190 And one of the biggest things, of course, 240 00:12:04,190 --> 00:12:07,090 we need to be concerned with in a service provider environment 241 00:12:07,090 --> 00:12:09,220 is scalability. 242 00:12:09,220 --> 00:12:12,770 Source-based routing, just to add insult to injury, 243 00:12:12,770 --> 00:12:15,200 not only does it not scale very well, 244 00:12:15,200 --> 00:12:19,390 it also introduces some security concerns. 245 00:12:19,390 --> 00:12:21,910 In this video, we just took a look 246 00:12:21,910 --> 00:12:24,640 at why we want traffic engineering, what 247 00:12:24,640 --> 00:12:26,590 it brings to the table that we don't get 248 00:12:26,590 --> 00:12:29,180 from normal routing solutions. 249 00:12:29,180 --> 00:12:30,940 The next thing to do is going to be 250 00:12:30,940 --> 00:12:33,910 to take a look at some of the more detailed information 251 00:12:33,910 --> 00:12:37,270 about how traffic engineering actually functions 252 00:12:37,270 --> 00:12:39,220 and some of its core components. 253 00:12:39,220 --> 00:12:42,260 And that's exactly what we get to do next. 254 00:12:42,260 --> 00:12:45,340 Until then, I hope this has been informative for you, 255 00:12:45,340 --> 00:12:48,360 and I'd like to thank you for viewing. 256 00:12:48,360 --> 00:12:52,000