1 00:00:02,781 --> 00:00:05,364 (upbeat music) 2 00:00:08,936 --> 00:00:10,601 - So the title of this video I recognize 3 00:00:10,601 --> 00:00:14,768 looks a little strange, ARP and the IPv6 Solution (chuckles) 4 00:00:16,069 --> 00:00:18,307 but in order for me to really talk about the 5 00:00:18,307 --> 00:00:21,512 Solicited Node Multicast address, 6 00:00:21,512 --> 00:00:23,407 we first have to understand something that happens 7 00:00:23,407 --> 00:00:27,467 in the world of IP version four which is called ARP 8 00:00:27,467 --> 00:00:29,842 or the Address Resolution Protocol. 9 00:00:29,842 --> 00:00:32,897 Haven't really discussed it up until now, but we need 10 00:00:32,897 --> 00:00:36,405 to understand this so that the Solicited Node Multicast 11 00:00:36,405 --> 00:00:39,791 address will make some more sense. 12 00:00:39,791 --> 00:00:43,958 So let's go back to our whiteboard here for a moment. 13 00:00:46,524 --> 00:00:49,691 Let's assume that this is your laptop. 14 00:00:50,872 --> 00:00:52,234 This is you. 15 00:00:52,234 --> 00:00:54,546 This is you on a network. 16 00:00:54,546 --> 00:00:58,129 And here is a laptop connected to a router. 17 00:01:02,900 --> 00:01:05,456 And somewhere on here was DHCP Server. 18 00:01:05,456 --> 00:01:08,039 Usually the DHCP Server is not actually on your wire, 19 00:01:08,039 --> 00:01:11,174 but just to make the drawing a little bit easier 20 00:01:11,174 --> 00:01:12,507 I'm gonna do it. 21 00:01:14,269 --> 00:01:18,269 Okay so the router has a network interface card, 22 00:01:19,387 --> 00:01:23,725 an Ethernet NIC, just like you have an Ethernet NIC. 23 00:01:23,725 --> 00:01:27,392 And his Ethernet NIC has a MAC address on it 24 00:01:28,718 --> 00:01:31,195 that was created by the manufacturer. 25 00:01:31,195 --> 00:01:34,862 Let's say the MAC address is 0011:2222:3333. 26 00:01:38,673 --> 00:01:41,585 And because he's a router, we have statically configured 27 00:01:41,585 --> 00:01:45,252 an IP address on him, 2.2.2.2/24. 28 00:01:48,408 --> 00:01:52,575 Okay, now your NIC card also has a MAC address on it. 29 00:01:55,716 --> 00:01:57,383 Every NIC card does. 30 00:01:58,605 --> 00:02:00,012 Let's say that's yours. 31 00:02:00,012 --> 00:02:03,398 And let's say after doing DHCP process 32 00:02:03,398 --> 00:02:07,278 and obtaining an IP address, you learned this information. 33 00:02:07,278 --> 00:02:10,861 You learned that your IP address is 2.2.2.1 34 00:02:13,383 --> 00:02:18,374 and your learned that your default gateway was 2.2.2.2. 35 00:02:18,374 --> 00:02:21,124 So you learned all this via DHCP. 36 00:02:22,381 --> 00:02:24,548 Okay, statistics show that 37 00:02:29,579 --> 00:02:32,018 when a laptop creates traffic 38 00:02:32,018 --> 00:02:35,454 or a tablet or a smartphone, people have done studies 39 00:02:35,454 --> 00:02:39,082 trying to answer the question what percentage of traffic 40 00:02:39,082 --> 00:02:43,249 that a laptop creates is destined for its own local subnet, 41 00:02:44,898 --> 00:02:48,571 and what percentage of traffic is destined for other subnets 42 00:02:48,571 --> 00:02:50,059 or the rest of the world. 43 00:02:50,059 --> 00:02:53,562 And most of the time it's 20, 80. 44 00:02:53,562 --> 00:02:58,130 In other words, roughly 20% of the traffic that you generate 45 00:02:58,130 --> 00:03:02,423 is for your own local network, and 80% of the traffic 46 00:03:02,423 --> 00:03:05,020 is going out to the rest of the world. 47 00:03:05,020 --> 00:03:08,406 So we know that this PC right here at some point 48 00:03:08,406 --> 00:03:11,057 he's gonna want to bring up a webpage or he's gonna want 49 00:03:11,057 --> 00:03:12,712 to open up his email program. 50 00:03:12,712 --> 00:03:15,719 He's gonna open up something where he's gonna want 51 00:03:15,719 --> 00:03:18,812 to send a packet to the outside world. 52 00:03:18,812 --> 00:03:22,984 So let's say the PC does something like this. 53 00:03:22,984 --> 00:03:26,399 So here's a little thought bubble from the PC 54 00:03:26,399 --> 00:03:29,816 and he says, "I want to go to the website 55 00:03:32,140 --> 00:03:33,807 "that is at 7.7.7.7. 56 00:03:36,693 --> 00:03:40,169 "That is NOT on my own subnet!!" 57 00:03:40,169 --> 00:03:42,070 Because remember he always says a comparison 58 00:03:42,070 --> 00:03:44,384 of his source address and the destination 59 00:03:44,384 --> 00:03:46,134 of where he wants to go. 60 00:03:46,134 --> 00:03:48,742 In this case he's saying, "Okay, that's not me. 61 00:03:48,742 --> 00:03:50,207 "That's not here." 62 00:03:50,207 --> 00:03:54,374 He says, "Okay, well, I'm gonna create my packet anyway." 63 00:03:56,292 --> 00:04:00,292 He says, "Okay, here we go, here's my IP packet, 64 00:04:01,296 --> 00:04:04,540 "and the source of the IP packet 65 00:04:04,540 --> 00:04:06,707 "is gonna be me, 2.2.2.1." 66 00:04:08,369 --> 00:04:11,369 The destination is gonna be 7.7.7.7. 67 00:04:13,261 --> 00:04:14,854 And then he says, "When I send that down 68 00:04:14,854 --> 00:04:17,909 "to the Ethernet NIC card, the NIC card is gonna have 69 00:04:17,909 --> 00:04:21,779 "to put that into an Ethernet frame." 70 00:04:21,779 --> 00:04:25,162 And an Ethernet frame has a source and destination MAC. 71 00:04:25,162 --> 00:04:26,396 He says, "All right, well the source MAC, 72 00:04:26,396 --> 00:04:29,229 "that's pretty easy, that's mine." 73 00:04:30,636 --> 00:04:32,553 And the destination is, 74 00:04:33,483 --> 00:04:35,066 huh, well, he says, 75 00:04:36,375 --> 00:04:38,856 "I know that when I create an Ethernet frame, 76 00:04:38,856 --> 00:04:40,766 "the destination of the frame has to be somebody 77 00:04:40,766 --> 00:04:41,849 "on my wire." 78 00:04:44,581 --> 00:04:47,879 And he says, "But ultimately the person I'm trying to reach 79 00:04:47,879 --> 00:04:49,597 "is not on my wire. 80 00:04:49,597 --> 00:04:51,596 "They're not in my subnet." 81 00:04:51,596 --> 00:04:55,263 And so the PC says, "Well, is there anybody on my wire 82 00:04:55,263 --> 00:04:57,702 "that might know how to get here? 83 00:04:57,702 --> 00:05:00,786 "Oh, yeah, the router, that's why I have him 84 00:05:00,786 --> 00:05:03,186 "in the first place, the default-gateway." 85 00:05:03,186 --> 00:05:06,370 So he says, "What I should do is at layer two, 86 00:05:06,370 --> 00:05:08,670 "I should destine my Ethernet MAC address 87 00:05:08,670 --> 00:05:11,074 "to the MAC address of the router." 88 00:05:11,074 --> 00:05:14,053 That way the router will pick up this Ethernet frame 89 00:05:14,053 --> 00:05:16,540 and when he sends it up the stack to the networking layer 90 00:05:16,540 --> 00:05:19,717 then he'll realize that it's a packet that's not for him 91 00:05:19,717 --> 00:05:21,419 that needs to be routed. 92 00:05:21,419 --> 00:05:23,944 He says, "But, huh, interesting. 93 00:05:23,944 --> 00:05:27,521 "I know the router's IP address, but I don't know 94 00:05:27,521 --> 00:05:29,312 "his layer two address. 95 00:05:29,312 --> 00:05:32,653 "How am I gonna resolve that address?" 96 00:05:32,653 --> 00:05:35,141 That's where he kicks in and uses something called 97 00:05:35,141 --> 00:05:38,224 the Address Resolution Protocol, ARP, 98 00:05:39,498 --> 00:05:41,657 and this is what ARP was designed to do. 99 00:05:41,657 --> 00:05:44,021 When you know the layer three address of someone 100 00:05:44,021 --> 00:05:46,227 in your subnet, and that's the key. 101 00:05:46,227 --> 00:05:48,219 ARP is only used when you're trying to resolve someone 102 00:05:48,219 --> 00:05:49,469 in your subnet. 103 00:05:50,585 --> 00:05:53,147 For example, he would never ARP for 7.7.7.7 104 00:05:53,147 --> 00:05:56,656 because that device is clearly not on this wire. 105 00:05:56,656 --> 00:05:58,528 So when you're trying to reach someone in your subnet 106 00:05:58,528 --> 00:05:59,995 and you know their layer three address, 107 00:05:59,995 --> 00:06:03,912 but you don't know their layer two MAC address, 108 00:06:04,842 --> 00:06:06,925 this is where we use ARP. 109 00:06:07,857 --> 00:06:11,039 So with ARP, it would look like this. 110 00:06:11,039 --> 00:06:13,113 This packet would be put on hold. 111 00:06:13,113 --> 00:06:16,414 You'd have to put it in memory and store it in memory. 112 00:06:16,414 --> 00:06:21,062 And he would create what's called an ARP Request. 113 00:06:21,062 --> 00:06:23,729 And the source would be himself, 114 00:06:24,810 --> 00:06:27,827 and the destination would be the router 115 00:06:27,827 --> 00:06:29,744 he's trying to talk to. 116 00:06:32,720 --> 00:06:35,573 And an ARP request actually has a few more fields than that 117 00:06:35,573 --> 00:06:37,913 but we'll just keep it simple. 118 00:06:37,913 --> 00:06:41,746 And then he would create his layer two header. 119 00:06:42,998 --> 00:06:46,377 And the source of his layer two header would be himself, 120 00:06:46,377 --> 00:06:47,627 0011:3333:4444, 121 00:06:51,843 --> 00:06:55,260 and the destination would be a broadcast. 122 00:06:57,138 --> 00:07:00,795 And a broadcast MAC address is all ones, 123 00:07:00,795 --> 00:07:02,712 or ffff in hexadecimal. 124 00:07:05,368 --> 00:07:06,874 So that is a special MAC address. 125 00:07:06,874 --> 00:07:08,706 That is the broadcast MAC address. 126 00:07:08,706 --> 00:07:11,927 It's for everybody on the wire. 127 00:07:11,927 --> 00:07:16,094 And that's what the layer two frame would look like. 128 00:07:17,171 --> 00:07:19,291 Everybody on the wire would see it. 129 00:07:19,291 --> 00:07:21,689 Everybody would say, "Oh this is for me." 130 00:07:21,689 --> 00:07:24,074 But when everybody is stripped off this layer two header 131 00:07:24,074 --> 00:07:26,150 revealing what was behind it, they would recognize, 132 00:07:26,150 --> 00:07:29,837 "Oh, this isn't for me, except the router." 133 00:07:29,837 --> 00:07:32,531 The router would say, "Oh, somebody's sending 134 00:07:32,531 --> 00:07:35,462 "an ARP request to me, alright." 135 00:07:35,462 --> 00:07:38,271 Guess what he's gonna send back? 136 00:07:38,271 --> 00:07:39,856 He's gonna send, I'm not gonna draw it here, 137 00:07:39,856 --> 00:07:41,564 I'm just gonna write the name of it. 138 00:07:41,564 --> 00:07:44,481 He would send back an ARP Response. 139 00:07:47,474 --> 00:07:51,710 And in that response he would say, "I am 2.2.2.2. 140 00:07:51,710 --> 00:07:52,543 "My MAC is 141 00:07:54,702 --> 00:07:56,119 "0011:2222:3333." 142 00:08:01,078 --> 00:08:02,803 When we know someone's layer three address 143 00:08:02,803 --> 00:08:06,088 who is in our subnet but we don't know their layer two 144 00:08:06,088 --> 00:08:09,828 address and we need to talk to them, this is the process. 145 00:08:09,828 --> 00:08:13,533 We send out a broadcast to everybody called an ARP Request. 146 00:08:13,533 --> 00:08:15,078 But inside the body of that packet we say, 147 00:08:15,078 --> 00:08:17,749 "Hey, this is the guy I'm actually looking for." 148 00:08:17,749 --> 00:08:19,842 And if that guy actually exists, 149 00:08:19,842 --> 00:08:23,518 he sends back an ARP Response directly to us 150 00:08:23,518 --> 00:08:25,944 giving us his MAC address. 151 00:08:25,944 --> 00:08:28,223 And now that the MAC address is known, this packet, 152 00:08:28,223 --> 00:08:30,610 which has been waiting forever up here to go 153 00:08:30,610 --> 00:08:33,653 to the web server, we can now actually address it 154 00:08:33,653 --> 00:08:35,903 at layer two to the router, 155 00:08:38,635 --> 00:08:40,400 and away it goes. 156 00:08:40,400 --> 00:08:43,273 Now the laptop can put this on the wire. 157 00:08:43,273 --> 00:08:45,240 The router at layer two will think it's for him, 158 00:08:45,240 --> 00:08:47,788 so he will pick it up, and everybody else on this wire 159 00:08:47,788 --> 00:08:49,557 will ignore it. 160 00:08:49,557 --> 00:08:52,308 And then when the router strips off the layer two header, 161 00:08:52,308 --> 00:08:56,858 he'll see this and recognize that it's not for him. 162 00:08:56,858 --> 00:09:00,515 Now what in the world does this have to do with IPv6 163 00:09:00,515 --> 00:09:04,369 and why is this grouped in with the IPv6 videos? 164 00:09:04,369 --> 00:09:07,244 The reason I want to bring this up is because this is 165 00:09:07,244 --> 00:09:10,165 a classic case in the world of IP version four 166 00:09:10,165 --> 00:09:12,882 of usage of a broadcast. 167 00:09:12,882 --> 00:09:15,169 In IP version four there's a lot of things that go out 168 00:09:15,169 --> 00:09:16,606 as broadcasts. 169 00:09:16,606 --> 00:09:18,618 ARP Requests are one of them. 170 00:09:18,618 --> 00:09:22,360 You see ARP Requests all the time all day long on networks. 171 00:09:22,360 --> 00:09:23,801 ARP Requests go out as broadcasts, 172 00:09:23,801 --> 00:09:25,104 and there's a lot of other stuff that goes out 173 00:09:25,104 --> 00:09:27,569 as broadcasts as well. 174 00:09:27,569 --> 00:09:31,736 Well in the case of IPv6, in this exact same process 175 00:09:32,705 --> 00:09:35,375 where the laptop would say, "I know the IPv6 address 176 00:09:35,375 --> 00:09:36,812 "of my router. 177 00:09:36,812 --> 00:09:39,401 "What I don't know is his MAC address." 178 00:09:39,401 --> 00:09:41,781 You might be tempted to think, "Oh, well there must be 179 00:09:41,781 --> 00:09:46,424 "an ARP v6", and there's where your mistake would be. 180 00:09:46,424 --> 00:09:50,591 There is no such thing as ARP in the world of IPv6. 181 00:09:51,444 --> 00:09:54,074 As a matter of fact, when I was showing you all those 182 00:09:54,074 --> 00:09:58,434 different types of IPv6 messages, Link-Local, global, 183 00:09:58,434 --> 00:10:01,144 site local, did I ever show you an IPv6 address 184 00:10:01,144 --> 00:10:04,056 that was a broadcast address? 185 00:10:04,056 --> 00:10:07,875 No, I didn't, because they don't exist. 186 00:10:07,875 --> 00:10:09,962 There's no such thing as a broadcast address 187 00:10:09,962 --> 00:10:11,712 in the world of IPv6. 188 00:10:12,598 --> 00:10:15,931 So think about that for a second. 189 00:10:15,931 --> 00:10:18,221 In this case we needed to figure out 190 00:10:18,221 --> 00:10:20,321 what his MAC address was. 191 00:10:20,321 --> 00:10:24,185 And since we didn't know it, and we had to create 192 00:10:24,185 --> 00:10:27,224 an Ethernet frame, and an Ethernet frame requires 193 00:10:27,224 --> 00:10:29,155 a destination MAC address, but we didn't know 194 00:10:29,155 --> 00:10:30,470 the destination MAC address. 195 00:10:30,470 --> 00:10:31,303 So what did we do? 196 00:10:31,303 --> 00:10:32,853 We just broadcast it. 197 00:10:32,853 --> 00:10:36,513 So how is IPv6 gonna do this if there's no such thing 198 00:10:36,513 --> 00:10:37,763 as a broadcast? 199 00:10:38,848 --> 00:10:42,619 This is where that Solicited Node Multicast address 200 00:10:42,619 --> 00:10:44,670 comes into play. 201 00:10:44,670 --> 00:10:48,253 What I'm gonna do is I'm going to save this 202 00:10:49,503 --> 00:10:51,675 so I can refer back to it, 203 00:10:51,675 --> 00:10:55,092 but then I'm going to change it, IPv6 ND, 204 00:10:57,173 --> 00:11:00,256 and we're gonna replace it with IPv6. 205 00:11:09,613 --> 00:11:11,007 Okay, so here we are. 206 00:11:11,007 --> 00:11:14,462 Now let's go ahead and replace some of this stuff. 207 00:11:14,462 --> 00:11:17,295 Okay, so let's say that the router 208 00:11:21,316 --> 00:11:25,044 now has, I'm gonna give him a really small IPv6 address. 209 00:11:25,044 --> 00:11:29,211 It's mostly zeros so I can condense it down, 2001::1. 210 00:11:32,923 --> 00:11:37,090 So most of the bits in this 128-bit address are zeros. 211 00:11:39,150 --> 00:11:42,396 And we also know he's got to have a Link-Local address. 212 00:11:42,396 --> 00:11:45,396 Let's just make that simple as well. 213 00:11:47,118 --> 00:11:51,766 And we know he's listening to the all routers address 214 00:11:51,766 --> 00:11:52,995 which is that. 215 00:11:52,995 --> 00:11:57,352 And we know he's listening to the all hosts address, 216 00:11:57,352 --> 00:11:58,519 which is that. 217 00:11:59,663 --> 00:12:03,830 Now there's another address that he's listening to. 218 00:12:06,105 --> 00:12:10,631 Let me change his Link-Local just a little bit, 219 00:12:10,631 --> 00:12:11,464 fe80:: 220 00:12:14,722 --> 00:12:15,555 0011:11ff: 221 00:12:19,205 --> 00:12:20,038 fe33:4444. 222 00:12:23,742 --> 00:12:26,149 All right, so let's say that this is a Link-Local address 223 00:12:26,149 --> 00:12:30,373 and this is derived from his MAC address. 224 00:12:30,373 --> 00:12:33,206 For every interface ID that he has 225 00:12:35,089 --> 00:12:36,714 that's unique to him, so right now he actually 226 00:12:36,714 --> 00:12:39,253 has two interface IDs, doesn't he? 227 00:12:39,253 --> 00:12:41,735 Actually if I derive it from his MAC, 228 00:12:41,735 --> 00:12:43,888 I actually probably should have looked at his MAC 229 00:12:43,888 --> 00:12:45,243 and actually used that, 230 00:12:45,243 --> 00:12:46,326 so fe80::0211 231 00:12:50,852 --> 00:12:52,185 :22ff:fe22:3333. 232 00:12:56,887 --> 00:12:58,138 There we go. 233 00:12:58,138 --> 00:13:00,420 Okay, because this is actually derived off of his real 234 00:13:00,420 --> 00:13:02,062 MAC address right there. 235 00:13:02,062 --> 00:13:06,320 I just used EU 1/64 to come up with that. 236 00:13:06,320 --> 00:13:10,487 And just to make things simple, let's just say that 237 00:13:11,472 --> 00:13:15,462 his global prefix is just like that too, 238 00:13:15,462 --> 00:13:16,545 0211:22ff:fe. 239 00:13:21,177 --> 00:13:23,177 I gotta do it over here. 240 00:13:27,586 --> 00:13:31,116 Okay, this makes it easy because now we've used 241 00:13:31,116 --> 00:13:33,913 his MAC address in the interface ID of both his global 242 00:13:33,913 --> 00:13:37,437 prefix as well as his Link-Local prefix. 243 00:13:37,437 --> 00:13:40,185 Okay, so every device does this. 244 00:13:40,185 --> 00:13:42,162 I'm just gonna focus on the router for a moment, 245 00:13:42,162 --> 00:13:44,877 but then we'll see how the laptop does this as well. 246 00:13:44,877 --> 00:13:49,148 So the router, once he comes up with an interface ID, 247 00:13:49,148 --> 00:13:52,981 he also comes up with a special address called 248 00:13:53,949 --> 00:13:57,403 a Solicited Node Multicast Address. 249 00:13:57,403 --> 00:14:00,150 And you can see here this one is a nightmare to remember. 250 00:14:00,150 --> 00:14:02,638 Look how long and that pattern, good luck with that. 251 00:14:02,638 --> 00:14:04,360 You're going to have to memorize that pattern. 252 00:14:04,360 --> 00:14:08,342 But it's 104-bit pattern that never changes, 253 00:14:08,342 --> 00:14:11,514 and the last 24-bits, 'cause it has to be 128-bits, 254 00:14:11,514 --> 00:14:14,289 so the last 24-bits are actually taken 255 00:14:14,289 --> 00:14:17,247 from the interface ID itself. 256 00:14:17,247 --> 00:14:21,164 So based on this, here's how he's gonna come up 257 00:14:22,584 --> 00:14:25,917 with a Solicited Node Multicast Address. 258 00:14:27,284 --> 00:14:29,016 I'm gonna get rid of the DHCP Server so I have a little 259 00:14:29,016 --> 00:14:31,516 bit of room here at the right. 260 00:14:32,505 --> 00:14:34,043 And I'll put this in green to make it 261 00:14:34,043 --> 00:14:36,301 a little bit different. 262 00:14:36,301 --> 00:14:38,384 So it's gonna be ff02::1: 263 00:14:45,138 --> 00:14:46,805 so the last 24-bits. 264 00:14:48,306 --> 00:14:49,795 So let's see here, I'm gonna put a red line 265 00:14:49,795 --> 00:14:52,976 under these last 24-bits of the interface-ID. 266 00:14:52,976 --> 00:14:54,559 So there's 16-bits. 267 00:14:55,486 --> 00:14:56,403 There's 20. 268 00:14:57,297 --> 00:14:59,473 There's 24 right there. 269 00:14:59,473 --> 00:15:00,907 So those are the last 24-bits. 270 00:15:00,907 --> 00:15:02,758 'Cause remember it said right here, 271 00:15:02,758 --> 00:15:05,967 after this pattern right here, the remaining 24-bits 272 00:15:05,967 --> 00:15:08,253 are taken from the interface-ID. 273 00:15:08,253 --> 00:15:10,014 So I've already started that pattern. 274 00:15:10,014 --> 00:15:11,090 I shortened my zeros. 275 00:15:11,090 --> 00:15:14,923 I used colon, colon for the zeros right there. 276 00:15:15,937 --> 00:15:18,437 And I've got to put in the ff, 277 00:15:21,540 --> 00:15:25,207 and then the rest of it I'll put it in blue. 278 00:15:27,566 --> 00:15:31,733 Okay so that is the Solicited Node Multicast address. 279 00:15:38,411 --> 00:15:41,880 Now let's go over to this laptop here. 280 00:15:41,880 --> 00:15:45,130 He creates his IPv6 Link-Local address. 281 00:15:48,079 --> 00:15:50,261 So that's gonna be 282 00:15:50,261 --> 00:15:51,094 fe80::0211 283 00:15:55,453 --> 00:15:56,286 :33ff: 284 00:16:02,724 --> 00:16:03,557 fe33:4444. 285 00:16:06,714 --> 00:16:10,249 Okay, and I've already explained how that's derived. 286 00:16:10,249 --> 00:16:14,332 Now he says, "Okay, duplicate address detection." 287 00:16:15,440 --> 00:16:16,940 You know send out a neighbor solicitation 288 00:16:16,940 --> 00:16:19,030 making sure that nobody else has that. 289 00:16:19,030 --> 00:16:21,370 Great, nobody's got it. 290 00:16:21,370 --> 00:16:25,765 Then he says, "Okay, now I need to send out 291 00:16:25,765 --> 00:16:27,765 "a router solicitation." 292 00:16:30,439 --> 00:16:32,939 So ICMPv6 Router Solicitation. 293 00:16:37,002 --> 00:16:39,670 Solicitation, yeah I got that right there. 294 00:16:39,670 --> 00:16:42,591 So the source is gonna be his 295 00:16:42,591 --> 00:16:43,508 fe80::0211: 296 00:16:48,881 --> 00:16:50,131 33ff:fe33:4444, 297 00:16:52,938 --> 00:16:54,820 I'm sort of running out of room here. 298 00:16:54,820 --> 00:16:58,637 And the destination will be the all multicast router's 299 00:16:58,637 --> 00:17:00,054 address, ff02::2. 300 00:17:04,553 --> 00:17:07,422 So that is my router solicitation. 301 00:17:07,422 --> 00:17:10,628 The router gets that, the router responds back. 302 00:17:10,628 --> 00:17:14,669 Now he uses his Link-Local address as the source, fe80, 303 00:17:14,669 --> 00:17:16,455 responds back to this guy's Link-Local and he says, 304 00:17:16,455 --> 00:17:19,788 "Hey, buddy, I'm using the 2001 prefix." 305 00:17:20,809 --> 00:17:23,873 So the laptop says, "Oh, okay, great, then let me go ahead 306 00:17:23,873 --> 00:17:28,040 "and configure myself with 2001, and then I'll use 307 00:17:29,515 --> 00:17:33,682 "the exact same interface ID that I did before, /64." 308 00:17:38,503 --> 00:17:42,253 He does duplicate address detection for that. 309 00:17:43,242 --> 00:17:45,568 Now he says, let's put that little thought 310 00:17:45,568 --> 00:17:47,401 bubble in there again. 311 00:17:50,334 --> 00:17:52,417 He says, "I want to go to 312 00:17:54,113 --> 00:17:55,946 "the website at 2001", 313 00:17:58,752 --> 00:18:00,669 let's say 2004:4444::1. 314 00:18:05,481 --> 00:18:07,731 "That's NOT on my subnet!!" 315 00:18:10,647 --> 00:18:12,286 He says okay. 316 00:18:12,286 --> 00:18:14,456 The same thing as before. 317 00:18:14,456 --> 00:18:17,289 Right here he said, "Okay when it's not on my subnet 318 00:18:17,289 --> 00:18:20,001 "I need to go to my router, but hmm, didn't know 319 00:18:20,001 --> 00:18:21,359 "the MAC address of my router." 320 00:18:21,359 --> 00:18:22,339 So what did I do? 321 00:18:22,339 --> 00:18:24,677 In IP version four, I sent out a broadcast 322 00:18:24,677 --> 00:18:26,646 called an ARP Request. 323 00:18:26,646 --> 00:18:29,589 The router got it, sent an ARP Response back 324 00:18:29,589 --> 00:18:31,112 and that's how I learned about the MAC address 325 00:18:31,112 --> 00:18:32,426 of the router. 326 00:18:32,426 --> 00:18:34,176 In IPv6, we send out, 327 00:18:37,747 --> 00:18:38,580 and I don't know if I'm gonna have 328 00:18:38,580 --> 00:18:40,801 enough room here for this, 329 00:18:40,801 --> 00:18:43,468 an ICMPv6 Neighbor Solicitation. 330 00:18:47,250 --> 00:18:48,689 And so here we go. 331 00:18:48,689 --> 00:18:51,522 Source is gonna be his Link-Local, 332 00:18:55,268 --> 00:18:58,552 and the destination is gonna be 333 00:18:58,552 --> 00:19:02,719 the Solicited Mode Multicast address of the router. 334 00:19:06,382 --> 00:19:10,903 Now you might be wondering well, wait a second. 335 00:19:10,903 --> 00:19:15,070 Let me put this in a box here, if I can squeeze it all in. 336 00:19:17,953 --> 00:19:20,402 You might be wondering okay, I understand how when 337 00:19:20,402 --> 00:19:24,014 the PC sent the Neighbor Solicitation, 338 00:19:24,014 --> 00:19:26,679 I understand how he knew about this part 339 00:19:26,679 --> 00:19:28,649 because that's standard. 340 00:19:28,649 --> 00:19:30,914 Everybody knows about that. 341 00:19:30,914 --> 00:19:34,658 But how did he come up with the last 24-bits? 342 00:19:34,658 --> 00:19:38,087 Well, remember when he sent out a router solicitation 343 00:19:38,087 --> 00:19:40,428 to the all routers address 344 00:19:40,428 --> 00:19:43,678 and he got a router advertisement back? 345 00:19:44,783 --> 00:19:45,739 What was the source? 346 00:19:45,739 --> 00:19:47,328 So let me just write that up here just to refresh 347 00:19:47,328 --> 00:19:48,328 your memory. 348 00:19:49,819 --> 00:19:53,402 Initially he sent out a router solicitation 349 00:19:56,430 --> 00:19:59,180 to the all IPv6 router's address, 350 00:20:00,341 --> 00:20:04,008 and then he got back a router advertisement. 351 00:20:06,750 --> 00:20:08,798 Now what did I say was the source 352 00:20:08,798 --> 00:20:11,710 of that router advertisement? 353 00:20:11,710 --> 00:20:14,951 I said it was the Link-Local address of the router, 354 00:20:14,951 --> 00:20:15,868 fe80::0211, 355 00:20:19,192 --> 00:20:20,585 I'm kinda running out of room here, 356 00:20:20,585 --> 00:20:21,918 but it was this. 357 00:20:24,358 --> 00:20:28,434 Well remember how we said the interface ID here 358 00:20:28,434 --> 00:20:32,500 was used to create the Solicited Node Multicast address? 359 00:20:32,500 --> 00:20:36,358 So just like the router was able to create that for himself 360 00:20:36,358 --> 00:20:40,905 the host, the PC said, "Hmm, okay, I now know what 361 00:20:40,905 --> 00:20:44,246 "the router's Link-Local address is because he responded 362 00:20:44,246 --> 00:20:48,300 "to me with a router advertisement, so I know 363 00:20:48,300 --> 00:20:52,157 "that he is listening to a Solicited Node Multicast address 364 00:20:52,157 --> 00:20:55,486 "that was derived from this, and that's how he was able 365 00:20:55,486 --> 00:20:57,210 "to come up with that himself." 366 00:20:57,210 --> 00:21:00,081 As a matter of fact, the laptop also had to create 367 00:21:00,081 --> 00:21:02,589 a Solicited Node Multicast address. 368 00:21:02,589 --> 00:21:04,848 I'll see if I can room up here to do that. 369 00:21:04,848 --> 00:21:09,542 So the laptop, he said, "Alright, my Solicited Node, 370 00:21:09,542 --> 00:21:12,929 "just in case anybody ever needs to resolve me 371 00:21:12,929 --> 00:21:16,179 "and figure out what my MAC address is, 372 00:21:18,143 --> 00:21:19,226 "is 33:4444." 373 00:21:24,216 --> 00:21:28,383 Remember it was the last 24-bits after that static pattern, 374 00:21:30,503 --> 00:21:34,364 it was the last 24-bits of the interface ID 375 00:21:34,364 --> 00:21:36,114 that was put in here. 376 00:21:37,731 --> 00:21:41,390 So every device comes up with a Link-Local address 377 00:21:41,390 --> 00:21:45,473 for itself and a Solicited Node Multicast address 378 00:21:46,650 --> 00:21:48,255 for itself. 379 00:21:48,255 --> 00:21:50,675 And if anybody every needs to ARP for it, 380 00:21:50,675 --> 00:21:53,045 well, there is no ARP in the world of IPv6, 381 00:21:53,045 --> 00:21:55,962 but there is Neighbor Solicitation, 382 00:21:56,863 --> 00:21:59,248 and they will send a Neighbor Solicitation 383 00:21:59,248 --> 00:22:02,581 to your Solicited Node Multicast address 384 00:22:03,603 --> 00:22:05,571 which is what you're listening for. 385 00:22:05,571 --> 00:22:07,997 And then the router in turn will respond back, 386 00:22:07,997 --> 00:22:10,330 and this is the final piece, 387 00:22:11,524 --> 00:22:16,082 he'll respond back with a neighbor advertisement, 388 00:22:16,082 --> 00:22:18,582 ICMPv6 Neighbor Advertisement, 389 00:22:25,407 --> 00:22:28,237 and that is how this PC will learn of the MAC address 390 00:22:28,237 --> 00:22:29,925 of the router. 391 00:22:29,925 --> 00:22:32,924 So to recap in the world of IP version four 392 00:22:32,924 --> 00:22:35,788 to learn someone's MAC address who is on your same wire, 393 00:22:35,788 --> 00:22:38,541 you sent out an ARP Request and you got back 394 00:22:38,541 --> 00:22:40,306 and ARP Response. 395 00:22:40,306 --> 00:22:44,866 In the world of IPv6, you send out a Neighbor Solicitation 396 00:22:44,866 --> 00:22:48,279 and you get a Neighbor Advertisement back. 397 00:22:48,279 --> 00:22:51,810 In the world of IP version four, a lot of protocols 398 00:22:51,810 --> 00:22:53,060 use broadcasts. 399 00:22:54,024 --> 00:22:58,498 In the world of IP version six, there is no broadcast. 400 00:22:58,498 --> 00:23:03,225 If you absolutely must talk to everybody who is on your wire 401 00:23:03,225 --> 00:23:06,837 you send a packet to this address, 402 00:23:06,837 --> 00:23:09,212 the all IPv6 nodes address. 403 00:23:09,212 --> 00:23:12,326 That's basically the equivalent of a broadcast. 404 00:23:12,326 --> 00:23:15,779 Even though it's a multicast, everybody's listening to it, 405 00:23:15,779 --> 00:23:19,041 but usually we don't send stuff to that. 406 00:23:19,041 --> 00:23:21,666 We send stuff either to the all routers address 407 00:23:21,666 --> 00:23:24,821 or we send it to their Solicited Node Multicast address 408 00:23:24,821 --> 00:23:27,118 or to their Link-Local address. 409 00:23:27,118 --> 00:23:30,729 So I know there's a lot of addresses here in IPv6, 410 00:23:30,729 --> 00:23:32,155 and that's just something you're gonna have to go over 411 00:23:32,155 --> 00:23:35,238 and over and over again to memorize.