1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:03,000 [MUSIC PLAYING] 3 00:00:03,000 --> 00:00:08,000 4 00:00:08,000 --> 00:00:11,390 So now that we have a better understanding of the MPLS 5 00:00:11,390 --> 00:00:15,020 header, how it carries the label, the EXP 6 00:00:15,020 --> 00:00:17,300 bits, the bottom of Stack Indicator, 7 00:00:17,300 --> 00:00:22,760 the TTL, and how that's a shim header writing between layers 2 8 00:00:22,760 --> 00:00:26,030 and 3, we can start to think about this 9 00:00:26,030 --> 00:00:31,190 as a way of tagging traffic, much in the same way 10 00:00:31,190 --> 00:00:33,440 that we can tag routes. 11 00:00:33,440 --> 00:00:34,970 Now, if you think about it. 12 00:00:34,970 --> 00:00:38,490 We tagged routes for various different reasons. 13 00:00:38,490 --> 00:00:42,140 The most common, of course, is to then filter on that tag. 14 00:00:42,140 --> 00:00:44,300 But we can also use it to indicate 15 00:00:44,300 --> 00:00:46,620 where that route came from. 16 00:00:46,620 --> 00:00:49,880 So much like tagging routes is useful, 17 00:00:49,880 --> 00:00:52,650 tagging traffic can be useful as well. 18 00:00:52,650 --> 00:00:55,190 And not just for IP forwarding. 19 00:00:55,190 --> 00:01:00,410 That's why these other applications also require MPLS. 20 00:01:00,410 --> 00:01:01,850 But here's the thing. 21 00:01:01,850 --> 00:01:03,770 You have one label that we're going 22 00:01:03,770 --> 00:01:05,300 to be using for actually forwarding 23 00:01:05,300 --> 00:01:07,070 the traffic through our core. 24 00:01:07,070 --> 00:01:12,050 Then we have to have additional labels to give that information 25 00:01:12,050 --> 00:01:14,460 to these other applications. 26 00:01:14,460 --> 00:01:18,440 So that's what we're going to be focusing on in this video. 27 00:01:18,440 --> 00:01:23,790 When one label is not enough, we then have a label stack. 28 00:01:23,790 --> 00:01:27,350 So let's jump in and take a look at how this works, 29 00:01:27,350 --> 00:01:32,410 and what applications actually need to use it. 30 00:01:32,410 --> 00:01:37,770 So as we mentioned, the primary purpose of running MPLS 31 00:01:37,770 --> 00:01:43,000 to begin with, is to support various different applications. 32 00:01:43,000 --> 00:01:46,080 Some of those applications we have listed here. 33 00:01:46,080 --> 00:01:51,720 One of them, of course, being IP and IPv6 unicast routing. 34 00:01:51,720 --> 00:01:54,090 This is going to require a single label. 35 00:01:54,090 --> 00:01:56,340 We usually call it the forwarding label. 36 00:01:56,340 --> 00:01:59,160 And this label is going to be exchanged 37 00:01:59,160 --> 00:02:03,480 using LDP, which we'll be taking a much deeper look 38 00:02:03,480 --> 00:02:06,090 at in a future skill. 39 00:02:06,090 --> 00:02:11,220 Also, we have IP and IPv6 multicast forwarding. 40 00:02:11,220 --> 00:02:14,380 This will also be using just a single label. 41 00:02:14,380 --> 00:02:17,580 So the regular forwarding, in and of itself, 42 00:02:17,580 --> 00:02:19,650 is a single label. 43 00:02:19,650 --> 00:02:22,680 But when we start adding on other applications, 44 00:02:22,680 --> 00:02:26,010 such as traffic engineering, this 45 00:02:26,010 --> 00:02:28,620 is going to require an additional label. 46 00:02:28,620 --> 00:02:30,960 Differentiated QoS. 47 00:02:30,960 --> 00:02:33,880 Again, we'll talk more about this in the future as well. 48 00:02:33,880 --> 00:02:36,930 But this also requires a label. 49 00:02:36,930 --> 00:02:40,500 Layer 2 and Layer 3 VPN. 50 00:02:40,500 --> 00:02:43,450 Both of these require an additional label. 51 00:02:43,450 --> 00:02:45,720 So when we add on these services, 52 00:02:45,720 --> 00:02:49,230 we're having a minimum of two labels-- 53 00:02:49,230 --> 00:02:51,990 possibly three, if we start combining 54 00:02:51,990 --> 00:02:54,370 these different services together. 55 00:02:54,370 --> 00:02:56,850 Now, the reason this is important. 56 00:02:56,850 --> 00:03:00,810 There's really no limit on the number of additional labels 57 00:03:00,810 --> 00:03:02,490 we can have. 58 00:03:02,490 --> 00:03:04,890 However, we do have to have a way 59 00:03:04,890 --> 00:03:07,980 to deal with these additional labels. 60 00:03:07,980 --> 00:03:10,320 Now, right off the bat, we simply 61 00:03:10,320 --> 00:03:13,350 call this a label stack because there's, 62 00:03:13,350 --> 00:03:15,660 of course, more than one label. 63 00:03:15,660 --> 00:03:17,880 And this is what we had just mentioned, 64 00:03:17,880 --> 00:03:24,550 that there's not really a limit on how many labels you can use. 65 00:03:24,550 --> 00:03:27,180 Now, like I said, in most of today's applications, 66 00:03:27,180 --> 00:03:30,300 we're going to be looking at two, maybe three. 67 00:03:30,300 --> 00:03:33,150 But there's technically no limit. 68 00:03:33,150 --> 00:03:36,850 We're hooking these together like a train of labels. 69 00:03:36,850 --> 00:03:39,540 So really, there's no limit. 70 00:03:39,540 --> 00:03:42,910 The real limit would be this next one, 71 00:03:42,910 --> 00:03:47,490 which is we do have to ensure that the MTU allows 72 00:03:47,490 --> 00:03:50,070 for those additional labels. 73 00:03:50,070 --> 00:03:54,150 Keep in mind that if we have a standard Ethernet interface, 74 00:03:54,150 --> 00:04:00,210 the MTU on that interface is generally 1500 bytes. 75 00:04:00,210 --> 00:04:04,470 And if a device has sent a packet at the maximum 76 00:04:04,470 --> 00:04:05,820 MTU size-- 77 00:04:05,820 --> 00:04:09,240 meaning, the frame is actually 1500 bytes-- 78 00:04:09,240 --> 00:04:12,370 and then we insert this label, which, 79 00:04:12,370 --> 00:04:18,360 again, is a shim header, that's 32 bits or 4 additional bytes, 80 00:04:18,360 --> 00:04:23,370 we have to add 4 bytes to this for every label 81 00:04:23,370 --> 00:04:25,230 that we put on the stack. 82 00:04:25,230 --> 00:04:28,980 Next thing you know, we're at 1508 just 83 00:04:28,980 --> 00:04:30,780 to support two labels. 84 00:04:30,780 --> 00:04:33,690 So we need to make sure that we increase 85 00:04:33,690 --> 00:04:40,170 the MTU for however many labels we need in our label stack. 86 00:04:40,170 --> 00:04:41,880 Just as a side note. 87 00:04:41,880 --> 00:04:44,310 On a lot of environments today, we 88 00:04:44,310 --> 00:04:48,120 turn on what's called jumbo frames on Ethernet, which 89 00:04:48,120 --> 00:04:50,670 is in excess of 9000 bytes. 90 00:04:50,670 --> 00:04:54,340 In which case, this really shouldn't be an issue. 91 00:04:54,340 --> 00:04:57,030 However, if you are still running standard Ethernet 92 00:04:57,030 --> 00:05:01,110 frames at 1500 bytes, we do have to make sure 93 00:05:01,110 --> 00:05:03,900 that we adjust this MTU. 94 00:05:03,900 --> 00:05:07,710 Now, since there's no set number of labels, 95 00:05:07,710 --> 00:05:11,010 that means we have to have some way of knowing 96 00:05:11,010 --> 00:05:15,810 where the label stack stops, and the next header begins. 97 00:05:15,810 --> 00:05:17,770 So just as an example. 98 00:05:17,770 --> 00:05:22,740 If I had my original Layer 2 header out here in the front, 99 00:05:22,740 --> 00:05:25,890 and then I start stacking labels onto this. 100 00:05:25,890 --> 00:05:28,620 How are the devices supposed to know 101 00:05:28,620 --> 00:05:34,080 where those labels stop, and the original layer header begins? 102 00:05:34,080 --> 00:05:38,370 There's nothing to indicate how many labels are actually 103 00:05:38,370 --> 00:05:39,580 in here. 104 00:05:39,580 --> 00:05:44,460 So what we do is we use this bottom-of-stack indicator 105 00:05:44,460 --> 00:05:49,260 to let everybody know where the last label is. 106 00:05:49,260 --> 00:05:53,710 Keep in mind that this is also referred to as the S-bit. 107 00:05:53,710 --> 00:05:55,890 But the way it works is simply this. 108 00:05:55,890 --> 00:06:00,210 Each of these labels would have an S-bit of 0, 109 00:06:00,210 --> 00:06:02,400 except the last one. 110 00:06:02,400 --> 00:06:05,430 This is a simple flag bit to indicate 111 00:06:05,430 --> 00:06:07,710 which one is the last label. 112 00:06:07,710 --> 00:06:14,430 And now the receiving devices know that the next bits are 113 00:06:14,430 --> 00:06:16,470 the original Layer 3 header. 114 00:06:16,470 --> 00:06:21,210 This is how we know where the label stack ends. 115 00:06:21,210 --> 00:06:23,790 So while we're getting started with MPLS, 116 00:06:23,790 --> 00:06:29,880 we will be focusing here on IPv4 and IPv6 forwarding. 117 00:06:29,880 --> 00:06:32,250 Because again, this is the baseline 118 00:06:32,250 --> 00:06:35,310 to get all of our other features up and running. 119 00:06:35,310 --> 00:06:39,840 Again, this is needed to support all those other applications. 120 00:06:39,840 --> 00:06:46,200 The way it works is, we create a label for every IP destination, 121 00:06:46,200 --> 00:06:50,040 specifically in the RIB, or the routing information 122 00:06:50,040 --> 00:06:53,130 base, commonly known as the routing table. 123 00:06:53,130 --> 00:06:55,650 But each of these represents what's 124 00:06:55,650 --> 00:07:00,630 called an F-E-C, or a FEC, which is a Forwarding Equivalency 125 00:07:00,630 --> 00:07:01,800 Class. 126 00:07:01,800 --> 00:07:05,850 As we mentioned before, we also support multicast forwarding. 127 00:07:05,850 --> 00:07:10,290 This is supported with PIM, or Protocol Independent Multicast, 128 00:07:10,290 --> 00:07:13,830 which is essentially the routing protocol for multicast. 129 00:07:13,830 --> 00:07:17,830 We have skills on this coming up in future domains. 130 00:07:17,830 --> 00:07:20,400 In this case, the FEC is going to be 131 00:07:20,400 --> 00:07:24,220 the multicast destination. 132 00:07:24,220 --> 00:07:27,340 In this video, we talked about how 133 00:07:27,340 --> 00:07:30,820 we can use multiple labels in a stack 134 00:07:30,820 --> 00:07:33,790 to support different applications running 135 00:07:33,790 --> 00:07:35,740 on top of MPLS. 136 00:07:35,740 --> 00:07:40,510 Keep in mind that IP forwarding, and IPv6 forwarding itself, 137 00:07:40,510 --> 00:07:42,920 of course, uses a label as well. 138 00:07:42,920 --> 00:07:45,700 And then the other applications have 139 00:07:45,700 --> 00:07:49,180 to have additional labels to provide the needed information 140 00:07:49,180 --> 00:07:50,890 to those applications. 141 00:07:50,890 --> 00:07:55,840 One of the applications that needs that is MPLS VPNs. 142 00:07:55,840 --> 00:07:58,780 And we're going to get an introduction to those coming up 143 00:07:58,780 --> 00:07:59,720 next. 144 00:07:59,720 --> 00:08:03,010 Until then, I hope this has been informative for you, 145 00:08:03,010 --> 00:08:06,060 and I'd like to thank you for viewing. 146 00:08:06,060 --> 00:08:09,000