1 00:00:00,000 --> 00:00:03,416 [AUDIO LOGO] 2 00:00:03,416 --> 00:00:07,820 3 00:00:07,820 --> 00:00:10,400 So let's jump in and start talking 4 00:00:10,400 --> 00:00:12,620 about multicast operation. 5 00:00:12,620 --> 00:00:15,110 What we're really going to be focusing on here 6 00:00:15,110 --> 00:00:18,620 is how packets are forwarded through the network 7 00:00:18,620 --> 00:00:23,960 incoming interfaces, outgoing interfaces, S comma G entries 8 00:00:23,960 --> 00:00:26,150 in our multicast routing table. 9 00:00:26,150 --> 00:00:28,040 What is an S comma G entry? 10 00:00:28,040 --> 00:00:29,760 And how do we get them? 11 00:00:29,760 --> 00:00:32,270 Now, we're not going to be focusing here 12 00:00:32,270 --> 00:00:36,740 on say PIM sparse mode versus PIM dense mode. 13 00:00:36,740 --> 00:00:38,660 We do have other videos coming up, 14 00:00:38,660 --> 00:00:40,530 in this skill, that will cover that. 15 00:00:40,530 --> 00:00:45,440 But for now, we're just going to discuss generic IP forwarding 16 00:00:45,440 --> 00:00:47,820 for multicast operations. 17 00:00:47,820 --> 00:00:50,010 So let's go ahead and jump in. 18 00:00:50,010 --> 00:00:52,110 We'll take a look at a diagram, here, 19 00:00:52,110 --> 00:00:54,560 so we can discuss what happens as we're 20 00:00:54,560 --> 00:00:57,140 learning information and passing packets 21 00:00:57,140 --> 00:01:01,100 through our multicast environment. 22 00:01:01,100 --> 00:01:04,000 So the first step in our multicast routing 23 00:01:04,000 --> 00:01:08,590 is going to be to enable PIM, on the necessary interfaces, 24 00:01:08,590 --> 00:01:10,730 on the necessary devices. 25 00:01:10,730 --> 00:01:14,980 So let's start with the obvious interfaces. 26 00:01:14,980 --> 00:01:17,950 All of the interfaces on the routers that 27 00:01:17,950 --> 00:01:21,790 are facing other routers are going to have to run PIM. 28 00:01:21,790 --> 00:01:24,890 So that takes care of all of those interfaces. 29 00:01:24,890 --> 00:01:28,780 However, what might not be so clear is also 30 00:01:28,780 --> 00:01:33,880 the interface facing the source, it also has to be PIM-enabled. 31 00:01:33,880 --> 00:01:39,100 And the interfaces facing any clients also 32 00:01:39,100 --> 00:01:41,410 needs to be PIM-enabled. 33 00:01:41,410 --> 00:01:43,450 The simple fact is here. 34 00:01:43,450 --> 00:01:48,100 Cisco routers will not forward routed multicast 35 00:01:48,100 --> 00:01:50,810 unless an interface is PIM-enabled. 36 00:01:50,810 --> 00:01:53,170 So essentially, we need to enable it 37 00:01:53,170 --> 00:01:55,990 on all the interfaces, on all the routers 38 00:01:55,990 --> 00:01:59,470 unless we have some reason that a particular interface 39 00:01:59,470 --> 00:02:02,480 or circuit should not carry multicast. 40 00:02:02,480 --> 00:02:05,960 Generally speaking, we're going to want it enabled everywhere. 41 00:02:05,960 --> 00:02:08,690 The next step is our multicast source 42 00:02:08,690 --> 00:02:12,900 needs to start sending multicast packets onto the network. 43 00:02:12,900 --> 00:02:15,410 Now remember, there is no protocol 44 00:02:15,410 --> 00:02:17,900 or anything running between the source 45 00:02:17,900 --> 00:02:21,890 and what's called the first hop router, which in this case 46 00:02:21,890 --> 00:02:23,570 would be router 1. 47 00:02:23,570 --> 00:02:26,070 This is our first hop router. 48 00:02:26,070 --> 00:02:29,610 The multicast packets simply need to show up 49 00:02:29,610 --> 00:02:32,430 on this PIM-enabled interface. 50 00:02:32,430 --> 00:02:35,970 As soon as that happens, router 1 51 00:02:35,970 --> 00:02:42,930 is going to make what's called an S comma G entry or a source 52 00:02:42,930 --> 00:02:44,680 comma group. 53 00:02:44,680 --> 00:02:47,280 Let's take a look at what that would be. 54 00:02:47,280 --> 00:02:49,620 Let's say, for example, that this source 55 00:02:49,620 --> 00:02:53,370 has an address of 10.1.1.1. 56 00:02:53,370 --> 00:02:58,470 And it is sending to the multicast destination of-- 57 00:02:58,470 --> 00:02:59,760 we'll make it real easy. 58 00:02:59,760 --> 00:03:02,385 We'll just make it 224.1.1.1. 59 00:03:02,385 --> 00:03:04,890 And it doesn't have to be fancy. 60 00:03:04,890 --> 00:03:08,010 What the S comma G entry on router 1 61 00:03:08,010 --> 00:03:11,940 is now going to look like in the multicast routing table 62 00:03:11,940 --> 00:03:16,950 is it's going to have 10.1.1.1. 63 00:03:16,950 --> 00:03:25,260 That's the source, comma, the group 224.1.1.1. 64 00:03:25,260 --> 00:03:27,970 This is what we call an S comma G entry 65 00:03:27,970 --> 00:03:30,220 in the multicast routing table. 66 00:03:30,220 --> 00:03:34,270 It's how we know what sources are available from which 67 00:03:34,270 --> 00:03:35,240 groups. 68 00:03:35,240 --> 00:03:39,130 So this is the fundamental of multicast routing. 69 00:03:39,130 --> 00:03:42,130 All of these routers are going to ultimately 70 00:03:42,130 --> 00:03:46,850 need an S comma G entry in order to forward the traffic. 71 00:03:46,850 --> 00:03:50,840 Now they're also going to need an oil, which is, of course, 72 00:03:50,840 --> 00:03:52,660 the outbound interface list. 73 00:03:52,660 --> 00:03:55,540 And we'll keep track of that just on router 1 74 00:03:55,540 --> 00:03:57,160 here, just as an example. 75 00:03:57,160 --> 00:03:59,350 But we'll keep track of our oil. 76 00:03:59,350 --> 00:04:01,300 Now in order to do this, we are going 77 00:04:01,300 --> 00:04:03,640 to have to label our interfaces here. 78 00:04:03,640 --> 00:04:06,280 I don't care so much about the incoming interface. 79 00:04:06,280 --> 00:04:10,120 But we'll just say that, perhaps, this is gigabit 1. 80 00:04:10,120 --> 00:04:13,990 We'll say that this interface up here is gigabit 2. 81 00:04:13,990 --> 00:04:18,260 And this one is gigabit 3 just to make it simple. 82 00:04:18,260 --> 00:04:23,440 So now we have this multicast traffic showing up on router 1. 83 00:04:23,440 --> 00:04:26,200 Since router 1 has seen the traffic, 84 00:04:26,200 --> 00:04:30,970 it now knows the S comma G. An important thing to note here, 85 00:04:30,970 --> 00:04:35,230 the S comma G entry is traffic-driven. 86 00:04:35,230 --> 00:04:39,400 And we'll see this as we move through PIM, both sparse mode 87 00:04:39,400 --> 00:04:40,750 and dense mode. 88 00:04:40,750 --> 00:04:44,380 There's no magic signaling or anything that happens here. 89 00:04:44,380 --> 00:04:47,680 The way the routers learn the S comma G entries 90 00:04:47,680 --> 00:04:50,200 is simply by seeing the traffic. 91 00:04:50,200 --> 00:04:53,740 In the IP headers of the multicast traffic 92 00:04:53,740 --> 00:04:57,160 is the source and the destination information. 93 00:04:57,160 --> 00:05:00,100 We simply read that information out of the packet 94 00:05:00,100 --> 00:05:02,860 headers and make an S comma G entry. 95 00:05:02,860 --> 00:05:05,320 So one of the fundamental principles 96 00:05:05,320 --> 00:05:09,850 for multicast routing is to get the multicast traffic 97 00:05:09,850 --> 00:05:11,930 to the appropriate routers. 98 00:05:11,930 --> 00:05:15,250 So that they can make an S comma G entry. 99 00:05:15,250 --> 00:05:20,050 Now how that's done, that's a big difference 100 00:05:20,050 --> 00:05:22,990 between sparse mode and dense mode. 101 00:05:22,990 --> 00:05:26,380 How do the routers get the S comma G entry? 102 00:05:26,380 --> 00:05:29,710 That is our fundamental focus and what we need to examine. 103 00:05:29,710 --> 00:05:33,100 Now like I said, in this video, that's not our focus. 104 00:05:33,100 --> 00:05:35,062 Although I will point out that as we 105 00:05:35,062 --> 00:05:36,520 go through this discussion, this is 106 00:05:36,520 --> 00:05:39,260 going to be closer to how dense mode works. 107 00:05:39,260 --> 00:05:41,620 But let's just go ahead, and move forward, and talk 108 00:05:41,620 --> 00:05:43,540 about the moving parts here. 109 00:05:43,540 --> 00:05:47,180 Now before router 1 can begin forwarding traffic, 110 00:05:47,180 --> 00:05:50,290 we have to know what interfaces are on the oil. 111 00:05:50,290 --> 00:05:52,430 And as we've mentioned, this is, of course, 112 00:05:52,430 --> 00:05:55,250 going to be different between sparse and dense mode. 113 00:05:55,250 --> 00:05:56,470 This is a hybrid. 114 00:05:56,470 --> 00:05:59,450 Again, we're just having a general discussion here. 115 00:05:59,450 --> 00:06:01,480 But the first thing that needs to happen 116 00:06:01,480 --> 00:06:05,710 is our clients over here need to tell us that they 117 00:06:05,710 --> 00:06:08,000 want this particular group. 118 00:06:08,000 --> 00:06:10,030 So let's talk about that. 119 00:06:10,030 --> 00:06:12,730 What's going to happen is the client 120 00:06:12,730 --> 00:06:17,590 will signal what's called the last hop router. 121 00:06:17,590 --> 00:06:19,780 In this case, the last hop routers 122 00:06:19,780 --> 00:06:25,300 are router 2, router 5, and router 7. 123 00:06:25,300 --> 00:06:29,710 But the clients signaled their interest to the last hop router 124 00:06:29,710 --> 00:06:34,870 with something called IGMP or Internet Group Management 125 00:06:34,870 --> 00:06:36,070 Protocol. 126 00:06:36,070 --> 00:06:39,620 Now IPv6 6 does this a little bit differently. 127 00:06:39,620 --> 00:06:45,400 It uses something called MLD or Multicast Listener Discovery. 128 00:06:45,400 --> 00:06:49,060 But we're focusing right now on IPv4. 129 00:06:49,060 --> 00:06:52,000 So we'll be talking about IGMP. 130 00:06:52,000 --> 00:06:54,640 IGMP comes in three versions. 131 00:06:54,640 --> 00:06:56,860 Version 1 is a bit old. 132 00:06:56,860 --> 00:06:59,950 It's missing something called a leave mechanism. 133 00:06:59,950 --> 00:07:03,560 We'll talk more about IGMP in some more detail later. 134 00:07:03,560 --> 00:07:07,580 But version 1 is pretty much not used anymore. 135 00:07:07,580 --> 00:07:11,050 Our routers these days will default to version 2. 136 00:07:11,050 --> 00:07:14,510 Version 2 is the most common version that we use. 137 00:07:14,510 --> 00:07:16,660 However, just to throw this out there, 138 00:07:16,660 --> 00:07:20,890 we have mentioned SSM or Source-Specific Multicast 139 00:07:20,890 --> 00:07:24,460 a few times so far in our multicast discussions. 140 00:07:24,460 --> 00:07:28,180 That requires IGMP version 3. 141 00:07:28,180 --> 00:07:32,010 This adds SSM into the equation. 142 00:07:32,010 --> 00:07:35,300 So generally speaking, we're going to run IGMP version 143 00:07:35,300 --> 00:07:38,270 2 unless you're using SSM. 144 00:07:38,270 --> 00:07:41,240 And then you're going to want to use version 3. 145 00:07:41,240 --> 00:07:44,240 Now just as a note here, I have been 146 00:07:44,240 --> 00:07:49,550 in companies that are running IGMP version 3 on everything. 147 00:07:49,550 --> 00:07:52,640 And I'm like, well, are you guys using SSM? 148 00:07:52,640 --> 00:07:54,050 They're like, well, no. 149 00:07:54,050 --> 00:07:58,370 I'm like, well, why are you running IGMP version 3 then? 150 00:07:58,370 --> 00:08:00,740 And their answer was, well, that's the newest version. 151 00:08:00,740 --> 00:08:02,930 I mean, isn't that what we should be running? 152 00:08:02,930 --> 00:08:06,680 I'm like, well, I mean, it is the newest version. 153 00:08:06,680 --> 00:08:07,190 Sure. 154 00:08:07,190 --> 00:08:09,570 You aren't really using a feature from it. 155 00:08:09,570 --> 00:08:12,300 But there's no harm in running it either. 156 00:08:12,300 --> 00:08:16,850 So IGMP version 3 will do everything version 2 will do. 157 00:08:16,850 --> 00:08:19,460 It just adds that feature of SSM. 158 00:08:19,460 --> 00:08:22,880 So do we really need it if we're not doing SSM? 159 00:08:22,880 --> 00:08:25,160 Not really but again, the flip side of that 160 00:08:25,160 --> 00:08:27,120 is it's not going to hurt anything either. 161 00:08:27,120 --> 00:08:29,450 So again, in our environments, we 162 00:08:29,450 --> 00:08:33,335 should be running either IGMP version 2 or version 3. 163 00:08:33,335 --> 00:08:37,880 But version 3 is going to be required if we need that SSM. 164 00:08:37,880 --> 00:08:40,010 So now we have all of our clients 165 00:08:40,010 --> 00:08:42,450 indicate that they want this group. 166 00:08:42,450 --> 00:08:48,350 So now the last hop routers have these interfaces on their oil. 167 00:08:48,350 --> 00:08:52,070 It's now up to the last hop routers to figure out 168 00:08:52,070 --> 00:08:53,390 how to get this traffic. 169 00:08:53,390 --> 00:08:56,570 And again, this is where sparse mode and dense mode 170 00:08:56,570 --> 00:09:00,140 are going to differ greatly, how they learn this. 171 00:09:00,140 --> 00:09:03,600 But again, let's just go generic here. 172 00:09:03,600 --> 00:09:08,040 Router 2 would send a PIM join message 173 00:09:08,040 --> 00:09:11,550 to get this traffic flowing to router 2. 174 00:09:11,550 --> 00:09:15,870 Router 1 will respond by adding gigabit 175 00:09:15,870 --> 00:09:20,700 2 to its outbound interface list and then forwarding 176 00:09:20,700 --> 00:09:24,600 this multicast traffic up to router 2. 177 00:09:24,600 --> 00:09:27,910 Router 2 of course, knows the client wants it. 178 00:09:27,910 --> 00:09:31,300 It has that interface on its oil. 179 00:09:31,300 --> 00:09:35,140 So it goes ahead and forwards the traffic to the client. 180 00:09:35,140 --> 00:09:39,360 And so far, we have one client receiving our multicast. 181 00:09:39,360 --> 00:09:44,790 And since router 2 has now seen the traffic coming 182 00:09:44,790 --> 00:09:48,240 from our green line here indicating our traffic flow, 183 00:09:48,240 --> 00:09:52,950 router 2 now knows the S comma G entry 184 00:09:52,950 --> 00:09:55,080 for this particular traffic. 185 00:09:55,080 --> 00:09:59,040 Remember, the S comma G entry is this entry over here. 186 00:09:59,040 --> 00:10:01,890 We're just not going to write it out every time. 187 00:10:01,890 --> 00:10:03,770 It'll get rather large. 188 00:10:03,770 --> 00:10:05,980 But that's the entry we're talking about, 189 00:10:05,980 --> 00:10:11,680 the 10.1.1.1 having the group 224.1.1.1. 190 00:10:11,680 --> 00:10:15,340 Router 5 is also going to send an IGMP join message 191 00:10:15,340 --> 00:10:16,870 towards router 4. 192 00:10:16,870 --> 00:10:20,130 Router 4 would send a join to router 3. 193 00:10:20,130 --> 00:10:23,680 Router 3 send a join up to router 1. 194 00:10:23,680 --> 00:10:26,320 And once all these joins are done, 195 00:10:26,320 --> 00:10:29,260 well, you can see what's going to happen now. 196 00:10:29,260 --> 00:10:33,040 We now add gigabit 3 to our oil. 197 00:10:33,040 --> 00:10:36,700 Router 1 sends the traffic to router 3. 198 00:10:36,700 --> 00:10:41,680 Router 3 now knows the S comma G entry. 199 00:10:41,680 --> 00:10:45,250 Router 3 forwards it to router 4. 200 00:10:45,250 --> 00:10:49,660 Router 4 now knows the S comma G entry. 201 00:10:49,660 --> 00:10:52,270 Router 4 forwards this to router 5. 202 00:10:52,270 --> 00:10:56,830 And, of course, router 5 forwards it to the client while 203 00:10:56,830 --> 00:11:02,260 at the same time, of course, learning the S comma G entry. 204 00:11:02,260 --> 00:11:06,610 When router 7 sends its join message to router 4, 205 00:11:06,610 --> 00:11:10,360 router 4 is simply going to graph the tree, 206 00:11:10,360 --> 00:11:13,180 and add this interface to its oil, 207 00:11:13,180 --> 00:11:15,760 and start sending this to router 7. 208 00:11:15,760 --> 00:11:19,370 We know, of course, that router 7 forwards this to the client 209 00:11:19,370 --> 00:11:23,410 as well as learning the S comma G entry. 210 00:11:23,410 --> 00:11:26,440 So overall, this is the process that we 211 00:11:26,440 --> 00:11:28,990 go through for all of the routers 212 00:11:28,990 --> 00:11:31,300 to learn the S comma G entry. 213 00:11:31,300 --> 00:11:34,960 Now, again, how this actually occurs 214 00:11:34,960 --> 00:11:37,970 does vary between sparse mode and dense mode. 215 00:11:37,970 --> 00:11:40,660 So again, this is a generic conversation. 216 00:11:40,660 --> 00:11:42,340 I just want to make that clear. 217 00:11:42,340 --> 00:11:46,090 This was a dense mode conversation here. 218 00:11:46,090 --> 00:11:49,130 But sparse mode works in a similar fashion. 219 00:11:49,130 --> 00:11:51,370 It just involves a rendezvous point. 220 00:11:51,370 --> 00:11:54,430 What we drew here is more of a push model. 221 00:11:54,430 --> 00:11:58,120 But we'll get into more detail on those two differences 222 00:11:58,120 --> 00:11:59,390 in a little bit. 223 00:11:59,390 --> 00:12:01,360 Our main focus here is the creation 224 00:12:01,360 --> 00:12:05,320 of the S comma G entry, how the oil gets populated. 225 00:12:05,320 --> 00:12:09,250 And one more thing to discuss, what if one of these clients-- 226 00:12:09,250 --> 00:12:11,290 we'll take the client up here-- 227 00:12:11,290 --> 00:12:15,130 decides they don't want to watch this multicast stream anymore, 228 00:12:15,130 --> 00:12:16,850 whatever it may be? 229 00:12:16,850 --> 00:12:19,900 So they are going to leave the group. 230 00:12:19,900 --> 00:12:23,170 That means that router 5 is going to remove 231 00:12:23,170 --> 00:12:25,510 this interface from its oil. 232 00:12:25,510 --> 00:12:28,750 It will no longer forward out that interface. 233 00:12:28,750 --> 00:12:32,290 Since router 5 has no other clients, 234 00:12:32,290 --> 00:12:37,330 it would then send what's called a PIM prune message back 235 00:12:37,330 --> 00:12:41,320 to router 4 saying, hey, I don't need this multicast anymore. 236 00:12:41,320 --> 00:12:42,880 I don't have any clients. 237 00:12:42,880 --> 00:12:44,350 Stop sending it. 238 00:12:44,350 --> 00:12:47,080 Router 4 would then remove that interface 239 00:12:47,080 --> 00:12:51,640 from its oil and our environment would end up looking like this. 240 00:12:51,640 --> 00:12:56,590 Now keep in mind router 5 will still have this S comma G 241 00:12:56,590 --> 00:12:59,410 entry until it times out. 242 00:12:59,410 --> 00:13:03,290 But again, we'll get into those details in a future video. 243 00:13:03,290 --> 00:13:07,660 But this is the idea behind basic multicast operation, 244 00:13:07,660 --> 00:13:10,510 so we understand the moving parts. 245 00:13:10,510 --> 00:13:13,290 So in this video, we jumped in. 246 00:13:13,290 --> 00:13:17,460 And we took a look at the basics of multicast routing. 247 00:13:17,460 --> 00:13:20,190 We took a look at how the routers need 248 00:13:20,190 --> 00:13:24,420 to form an S comma G or a source comma group entry 249 00:13:24,420 --> 00:13:27,660 in their multicast routing table so that they know 250 00:13:27,660 --> 00:13:32,700 what sources have which groups and what interfaces 251 00:13:32,700 --> 00:13:33,870 are on the oil. 252 00:13:33,870 --> 00:13:37,560 So it knows which interfaces to forward this multicast traffic 253 00:13:37,560 --> 00:13:38,430 out. 254 00:13:38,430 --> 00:13:42,090 This is, of course, all maintained through prunes 255 00:13:42,090 --> 00:13:43,290 and joins. 256 00:13:43,290 --> 00:13:46,770 However, an interesting question that came up here 257 00:13:46,770 --> 00:13:51,750 is how did these routers know which way to send the join? 258 00:13:51,750 --> 00:13:55,110 How did everybody to send a join towards router 1 259 00:13:55,110 --> 00:13:56,290 in our example? 260 00:13:56,290 --> 00:13:58,530 Now, we didn't make that real clear. 261 00:13:58,530 --> 00:14:01,440 Part of that is knowing the S comma G entry. 262 00:14:01,440 --> 00:14:03,090 It gets a little complicated. 263 00:14:03,090 --> 00:14:06,150 But part of the answer is the same thing 264 00:14:06,150 --> 00:14:08,790 we use a for loop prevention here, which 265 00:14:08,790 --> 00:14:11,170 is reverse path forwarding. 266 00:14:11,170 --> 00:14:14,410 And that's something we have to look at in more detail. 267 00:14:14,410 --> 00:14:16,970 That's exactly what we're going to do next. 268 00:14:16,970 --> 00:14:20,230 Until then, I hope this has been informative for you. 269 00:14:20,230 --> 00:14:23,340 And I'd like to thank you for viewing. 270 00:14:23,340 --> 00:14:27,000