1 00:00:00,000 --> 00:00:00,946 2 00:00:00,946 --> 00:00:04,257 [AUDIO LOGO] 3 00:00:04,257 --> 00:00:08,250 4 00:00:08,250 --> 00:00:12,370 So let's begin our discussion on tunneling by talking about some 5 00:00:12,370 --> 00:00:14,710 of our manual tunneling choices. 6 00:00:14,710 --> 00:00:20,590 That would be specifically GRE tunnels and 6in4 tunnels. 7 00:00:20,590 --> 00:00:22,970 Now, these are very similar. 8 00:00:22,970 --> 00:00:24,520 The main difference, as we'll see 9 00:00:24,520 --> 00:00:27,220 as we go through this video, is what 10 00:00:27,220 --> 00:00:29,860 the headers are on the packets. 11 00:00:29,860 --> 00:00:33,410 Essentially, how it's encapsulated for the tunnel. 12 00:00:33,410 --> 00:00:35,210 There's a slight difference there, 13 00:00:35,210 --> 00:00:37,630 and that's one of the things we need to discuss. 14 00:00:37,630 --> 00:00:41,140 But what do we mean by manual tunnels? 15 00:00:41,140 --> 00:00:44,440 Well, quite simply, we mean that not only do we 16 00:00:44,440 --> 00:00:47,090 have to configure all of the attributes of the tunnel, 17 00:00:47,090 --> 00:00:49,190 which, of course, would be normal, 18 00:00:49,190 --> 00:00:52,270 but when it comes to the tunnel source and destination, 19 00:00:52,270 --> 00:00:55,300 we are going to have to specify both. 20 00:00:55,300 --> 00:00:57,880 We'll see in some upcoming videos 21 00:00:57,880 --> 00:01:00,520 when it comes to automatic tunnels, 22 00:01:00,520 --> 00:01:04,030 the destination for that tunnel is 23 00:01:04,030 --> 00:01:07,280 going to be learned some automatic way. 24 00:01:07,280 --> 00:01:09,810 Now, there's different ways for that to happen, 25 00:01:09,810 --> 00:01:11,580 and we need to discuss that. 26 00:01:11,580 --> 00:01:14,060 But these are going to be manual tunnels, which 27 00:01:14,060 --> 00:01:17,570 means we, as administrators, are going to be configuring 28 00:01:17,570 --> 00:01:21,530 not only the source, but also the destination for the tunnel. 29 00:01:21,530 --> 00:01:25,370 That makes these pretty much just point-to-point tunnels. 30 00:01:25,370 --> 00:01:27,380 And of course, our main goal here 31 00:01:27,380 --> 00:01:33,110 is going to be to support IPv6 over the tunnel and IPv4 32 00:01:33,110 --> 00:01:35,610 as the underlying transport. 33 00:01:35,610 --> 00:01:38,240 So let's go ahead and jump in and take a look 34 00:01:38,240 --> 00:01:41,690 at some of these details about the manual tunnels, 35 00:01:41,690 --> 00:01:44,000 and of course, a little bit about what's 36 00:01:44,000 --> 00:01:48,720 the difference between a GRE tunnel and a 6-in-4 tunnel. 37 00:01:48,720 --> 00:01:53,240 So let's go ahead and take a look at those details. 38 00:01:53,240 --> 00:01:55,990 So as we basically mentioned, the idea 39 00:01:55,990 --> 00:01:58,750 behind tunneling itself is that we 40 00:01:58,750 --> 00:02:03,130 want to connect these islands of IPv6 41 00:02:03,130 --> 00:02:05,860 over a network or a transit network 42 00:02:05,860 --> 00:02:08,830 that only supports IPv4. 43 00:02:08,830 --> 00:02:11,020 That's the main reason we're doing this. 44 00:02:11,020 --> 00:02:14,630 If we were doing dual stack, like we discussed previously, 45 00:02:14,630 --> 00:02:16,490 we wouldn't need tunneling. 46 00:02:16,490 --> 00:02:18,640 So let's talk about the requirements 47 00:02:18,640 --> 00:02:20,530 in order to do this tunneling. 48 00:02:20,530 --> 00:02:25,120 First, let's talk about the underlay or the underlying 49 00:02:25,120 --> 00:02:27,760 network, which is IPv4. 50 00:02:27,760 --> 00:02:32,920 What we need to have is reachability, specifically 51 00:02:32,920 --> 00:02:35,110 for those tunnel endpoints. 52 00:02:35,110 --> 00:02:39,820 Remember, the IPv6 itself is going to be encapsulated. 53 00:02:39,820 --> 00:02:42,340 Therefore, the underlay network doesn't 54 00:02:42,340 --> 00:02:46,270 have to know anything about the IPv6. 55 00:02:46,270 --> 00:02:49,630 It will never see this IPv6 that's 56 00:02:49,630 --> 00:02:52,040 just going over the tunnel. 57 00:02:52,040 --> 00:02:56,840 So what we care about is simply reaching these endpoints. 58 00:02:56,840 --> 00:03:02,070 That's really all we need from the underlying IPv4 network. 59 00:03:02,070 --> 00:03:04,580 Now, as we have mentioned previously, 60 00:03:04,580 --> 00:03:09,320 those endpoints are going to have to be dual stacked. 61 00:03:09,320 --> 00:03:14,990 The IPv6 is going to be used for the connected networks 62 00:03:14,990 --> 00:03:17,360 or again, those islands that we're 63 00:03:17,360 --> 00:03:22,010 trying to connect over the IPv4 network, and of course, running 64 00:03:22,010 --> 00:03:25,790 over the tunnel itself to connect those islands 65 00:03:25,790 --> 00:03:28,040 of IPv6 networks. 66 00:03:28,040 --> 00:03:33,290 IPv4 is simply used for the underlay network 67 00:03:33,290 --> 00:03:36,790 or the transport network. 68 00:03:36,790 --> 00:03:40,350 Now, there are a few or many different tunneling 69 00:03:40,350 --> 00:03:46,230 protocols which can handle IPv6 over IPv4. 70 00:03:46,230 --> 00:03:47,467 Some of these are manual. 71 00:03:47,467 --> 00:03:49,050 And of course, that's what we're going 72 00:03:49,050 --> 00:03:51,510 to be discussing in this video. 73 00:03:51,510 --> 00:03:53,610 And some of those are automatic. 74 00:03:53,610 --> 00:03:57,760 And we'll be talking about those in upcoming videos. 75 00:03:57,760 --> 00:04:01,720 And just a quick note here, when we say there are many tunneling 76 00:04:01,720 --> 00:04:03,880 mechanisms, we're going to be talking 77 00:04:03,880 --> 00:04:07,970 about the ones primarily used in a service provider core. 78 00:04:07,970 --> 00:04:10,750 Keep in mind, there's other tunnel types 79 00:04:10,750 --> 00:04:13,180 such as ISATAP tunnels. 80 00:04:13,180 --> 00:04:15,890 We also have Teredo tunnels. 81 00:04:15,890 --> 00:04:19,750 So there are different tunnels available for IPv6 82 00:04:19,750 --> 00:04:21,880 that are a little beyond the scope of this course 83 00:04:21,880 --> 00:04:24,610 because they're not really focused on service provider. 84 00:04:24,610 --> 00:04:27,940 But there are other types of tunnels out there even 85 00:04:27,940 --> 00:04:30,630 beyond what we're going to be discussing here. 86 00:04:30,630 --> 00:04:33,530 So as we mentioned, the two tunneling types 87 00:04:33,530 --> 00:04:36,020 that we're going to be discussing in this video 88 00:04:36,020 --> 00:04:38,360 are both manual options. 89 00:04:38,360 --> 00:04:42,290 And again, what that means is that both the source 90 00:04:42,290 --> 00:04:47,120 and the destination of the tunnel must be configured. 91 00:04:47,120 --> 00:04:50,310 And again, this would be by the administrator. 92 00:04:50,310 --> 00:04:53,700 So that's what really makes these manual tunnels. 93 00:04:53,700 --> 00:04:58,320 So the first one we want to discuss is the GRE tunnel. 94 00:04:58,320 --> 00:05:02,990 Now, again, GRE stands for Generic Routing Encapsulation. 95 00:05:02,990 --> 00:05:05,360 This is a tunneling protocol that was actually 96 00:05:05,360 --> 00:05:09,150 developed by Cisco a long time ago, 97 00:05:09,150 --> 00:05:13,310 and its main job is to be able to carry multiple protocols 98 00:05:13,310 --> 00:05:15,660 over another protocol. 99 00:05:15,660 --> 00:05:19,130 Now, these are generally going to be point-to-point tunnels. 100 00:05:19,130 --> 00:05:22,040 Although, we certainly have multipoint 101 00:05:22,040 --> 00:05:27,290 GRE tunnels for other technologies such as DMVPN. 102 00:05:27,290 --> 00:05:29,300 So again, not something we're going 103 00:05:29,300 --> 00:05:31,090 to get into in this course. 104 00:05:31,090 --> 00:05:34,800 But just be aware that GRE is not necessarily always 105 00:05:34,800 --> 00:05:38,220 point-to-point, but it is for this discussion. 106 00:05:38,220 --> 00:05:41,670 Just as a quick note, DMVPN is not really 107 00:05:41,670 --> 00:05:43,690 one of our discussions in this course 108 00:05:43,690 --> 00:05:47,400 simply because it's more of a customer side technology. 109 00:05:47,400 --> 00:05:51,940 However, just as a quick note, it supports IPv6 as well. 110 00:05:51,940 --> 00:05:54,130 So that is another tunneling option. 111 00:05:54,130 --> 00:05:57,670 Now, at the end of the day, it's still using GRE headers. 112 00:05:57,670 --> 00:06:00,000 So it falls under this same umbrella. 113 00:06:00,000 --> 00:06:03,750 It's just that it's multipoint and automatic 114 00:06:03,750 --> 00:06:06,570 but still using the GRE encapsulation. 115 00:06:06,570 --> 00:06:09,720 So back to some more detail on GRE itself, 116 00:06:09,720 --> 00:06:16,290 this is transported directly on top of IP as protocol 47. 117 00:06:16,290 --> 00:06:23,520 This means that there is no TCP header or UDP header that's 118 00:06:23,520 --> 00:06:25,050 used in this environment. 119 00:06:25,050 --> 00:06:30,520 The GRE headers come directly after the IP headers. 120 00:06:30,520 --> 00:06:34,440 Now, this does add a 4-byte header, 121 00:06:34,440 --> 00:06:39,960 and this is in addition to the new outer IP header. 122 00:06:39,960 --> 00:06:43,770 Remember that the IP header is 20 bytes. 123 00:06:43,770 --> 00:06:46,600 We need this header because it's a tunnel. 124 00:06:46,600 --> 00:06:50,100 So we're going to be putting a standard IPv4 header 125 00:06:50,100 --> 00:06:55,260 in front of either the GRE header or the IPv6 header. 126 00:06:55,260 --> 00:06:59,160 This means that for GRE, we are picking up 127 00:06:59,160 --> 00:07:04,920 an additional 24 bytes of overhead over the IPv6 packet 128 00:07:04,920 --> 00:07:06,060 by itself. 129 00:07:06,060 --> 00:07:10,120 That's the cost of the tunnel or the tunneling overhead. 130 00:07:10,120 --> 00:07:15,720 Now, IPv6 can be enabled on a GRE tunnel, in addition 131 00:07:15,720 --> 00:07:22,140 to other protocols such as IPv6 4 because of this GRE header. 132 00:07:22,140 --> 00:07:27,510 The GRE header, which is that 4 bytes, has a protocol header. 133 00:07:27,510 --> 00:07:32,110 The protocol header tells it what the payload is. 134 00:07:32,110 --> 00:07:35,590 The reason that's important is, this header 135 00:07:35,590 --> 00:07:40,060 is what allows that tunnel to carry multiple protocols 136 00:07:40,060 --> 00:07:42,640 at the same time. 137 00:07:42,640 --> 00:07:47,950 It can support IPv4 and IPv6 simultaneously 138 00:07:47,950 --> 00:07:50,040 on the same tunnel. 139 00:07:50,040 --> 00:07:51,440 The reason we're bringing this up 140 00:07:51,440 --> 00:07:56,030 now is simply to contrast this to 6in4 tunnels 141 00:07:56,030 --> 00:07:59,340 that we're going to talk about in just a moment. 142 00:07:59,340 --> 00:08:01,790 So now, let's jump in and take a look 143 00:08:01,790 --> 00:08:07,160 at how we configure these tunnels on both IOS XR and IOS 144 00:08:07,160 --> 00:08:07,910 XE. 145 00:08:07,910 --> 00:08:11,840 So starting with IOS XR, all we have to do 146 00:08:11,840 --> 00:08:15,020 is create an interface, specifically 147 00:08:15,020 --> 00:08:18,080 the interface type is going to be tunnel-ip. 148 00:08:18,080 --> 00:08:20,030 We, of course, give it a number. 149 00:08:20,030 --> 00:08:24,710 Then, we specify an IPv6 address for the tunnel itself. 150 00:08:24,710 --> 00:08:30,440 We set the tunnel mode to be GRE over IPv4. 151 00:08:30,440 --> 00:08:35,539 We then set the tunnel source and the tunnel destination. 152 00:08:35,539 --> 00:08:39,110 One quick note as we're going over configurations here, 153 00:08:39,110 --> 00:08:41,960 I'm only showing configuration related 154 00:08:41,960 --> 00:08:44,810 to the exact tunnel or technology 155 00:08:44,810 --> 00:08:47,250 that we're talking about at the moment. 156 00:08:47,250 --> 00:08:50,660 Keep in mind that everything else involved in this 157 00:08:50,660 --> 00:08:52,290 would have to be configured. 158 00:08:52,290 --> 00:08:54,320 We would have to have routing protocols, 159 00:08:54,320 --> 00:08:56,790 other interfaces configured, and so on. 160 00:08:56,790 --> 00:08:59,270 This is just focusing on the tunnel configuration 161 00:08:59,270 --> 00:09:01,640 itself just so we're clear. 162 00:09:01,640 --> 00:09:05,220 That's going to apply for the whole rest of the skill. 163 00:09:05,220 --> 00:09:08,540 Now, we're going to see that IOS XE's configuration is actually 164 00:09:08,540 --> 00:09:09,810 very similar. 165 00:09:09,810 --> 00:09:12,590 We, again, create a tunnel, but this time, we 166 00:09:12,590 --> 00:09:13,940 don't have to say tunnel-ip. 167 00:09:13,940 --> 00:09:15,860 We just say interface tunnel. 168 00:09:15,860 --> 00:09:18,950 We, again, give it an IPv6 address. 169 00:09:18,950 --> 00:09:21,540 We say tunnel mode gre. 170 00:09:21,540 --> 00:09:25,010 Now, you can say tunnel mode gre ip, 171 00:09:25,010 --> 00:09:28,320 or you can leave this command out completely. 172 00:09:28,320 --> 00:09:30,170 Notice, I have a little note there that this 173 00:09:30,170 --> 00:09:32,630 is the default, which means, you don't actually 174 00:09:32,630 --> 00:09:34,400 have to put that command in at all. 175 00:09:34,400 --> 00:09:38,970 That is the default operational mode on IOS XE. 176 00:09:38,970 --> 00:09:42,810 We, again, specify the tunnel source and the tunnel 177 00:09:42,810 --> 00:09:43,860 destination. 178 00:09:43,860 --> 00:09:47,370 And just as a reminder, through our routing protocols 179 00:09:47,370 --> 00:09:50,280 and the underlay network, the tunnel source, 180 00:09:50,280 --> 00:09:52,560 whatever that is, in this case, a loopback, 181 00:09:52,560 --> 00:09:56,080 has to be able to reach whatever the destination address is. 182 00:09:56,080 --> 00:09:59,940 So what makes 6-in-4 tunnels different. 183 00:09:59,940 --> 00:10:02,850 Well, the main difference is that this carries 184 00:10:02,850 --> 00:10:06,480 the IPv6 header directly on top of, 185 00:10:06,480 --> 00:10:10,980 or you could say directly behind the IPv4 header. 186 00:10:10,980 --> 00:10:14,530 There is no GRE header. 187 00:10:14,530 --> 00:10:17,920 So the GRE header is gone in this case. 188 00:10:17,920 --> 00:10:20,250 And ultimately, what that means is, 189 00:10:20,250 --> 00:10:24,390 it means we're going to save those 4 bytes of overhead that 190 00:10:24,390 --> 00:10:26,680 were taken up by the GRE header. 191 00:10:26,680 --> 00:10:28,890 Now, that's not a lot, but if we're 192 00:10:28,890 --> 00:10:31,410 talking about millions and millions of packets, 193 00:10:31,410 --> 00:10:34,960 that can certainly add up as far as the overhead. 194 00:10:34,960 --> 00:10:37,980 Now, of course, the downside of this 195 00:10:37,980 --> 00:10:41,880 is, since we no longer have the GRE header 196 00:10:41,880 --> 00:10:47,580 to identify that protocol field, that means that this can only 197 00:10:47,580 --> 00:10:52,890 carry one protocol because there's no GRE header to say, 198 00:10:52,890 --> 00:10:54,690 is this IPv4? 199 00:10:54,690 --> 00:10:56,520 or is this IPv6? 200 00:10:56,520 --> 00:10:59,610 when a packet arrives at the receiving end. 201 00:10:59,610 --> 00:11:03,000 And that also means that both sides 202 00:11:03,000 --> 00:11:05,460 are going to have to be configured 203 00:11:05,460 --> 00:11:07,590 to be a 6-in-4 tunnel. 204 00:11:07,590 --> 00:11:11,400 Both sides have to understand that the packets coming 205 00:11:11,400 --> 00:11:16,570 through this tunnel are going to be IPv6 because again, there 206 00:11:16,570 --> 00:11:21,200 is no protocol field to tell them which protocol it is. 207 00:11:21,200 --> 00:11:23,890 So they just have to be configured appropriately. 208 00:11:23,890 --> 00:11:26,760 The way we do that configuration, 209 00:11:26,760 --> 00:11:28,850 notice that on IOS XR. 210 00:11:28,850 --> 00:11:32,810 The only thing that's different here is the tunnel mode. 211 00:11:32,810 --> 00:11:35,960 It's an IPv4 tunnel. 212 00:11:35,960 --> 00:11:43,020 On IOS XE, we simply change the mode, and it's IPv6 IP. 213 00:11:43,020 --> 00:11:46,010 So this is how we configure our GRE tunnels 214 00:11:46,010 --> 00:11:52,880 and our 6-in-4 tunnels on IOS XR and IOS XE. 215 00:11:52,880 --> 00:11:57,650 So in this video, we saw how to configure manual tunnels, 216 00:11:57,650 --> 00:12:01,880 specifically GRE and 6-in-4 tunnels 217 00:12:01,880 --> 00:12:06,890 between our different devices over an IPv4-only network. 218 00:12:06,890 --> 00:12:10,670 This, again, allows us to connect islands of IPv6 219 00:12:10,670 --> 00:12:13,850 without the transport network having to know anything 220 00:12:13,850 --> 00:12:16,140 about IPv6 at all. 221 00:12:16,140 --> 00:12:18,290 Now, again, the big thing here is 222 00:12:18,290 --> 00:12:21,860 we have to configure both the source and destination, making 223 00:12:21,860 --> 00:12:24,900 this a point-to-point manual tunnel. 224 00:12:24,900 --> 00:12:28,280 Now, the obvious problem with this from a service provider's 225 00:12:28,280 --> 00:12:31,520 perspective, this isn't going to scale very well. 226 00:12:31,520 --> 00:12:35,250 We have thousands, if not, millions of customers. 227 00:12:35,250 --> 00:12:37,760 We sure as heck can't build these tunnels 228 00:12:37,760 --> 00:12:39,690 for all those customers. 229 00:12:39,690 --> 00:12:43,310 So a lot of times, we're going to need a more automatic 230 00:12:43,310 --> 00:12:45,500 solution, and that's exactly what 231 00:12:45,500 --> 00:12:46,940 we're going to look at next. 232 00:12:46,940 --> 00:12:49,220 We're going to jump in and start looking 233 00:12:49,220 --> 00:12:52,040 at some of the various automatic options. 234 00:12:52,040 --> 00:12:53,440 Until then. 235 00:12:53,440 --> 00:12:55,560 I hope this has been informative for you, 236 00:12:55,560 --> 00:12:58,640 and I'd like to thank you for viewing. 237 00:12:58,640 --> 00:13:02,000