1 00:00:00,000 --> 00:00:02,946 [MUSIC PLAYING] 2 00:00:02,946 --> 00:00:07,860 3 00:00:07,860 --> 00:00:11,310 So in the previous video, we saw how 4 00:00:11,310 --> 00:00:16,770 to filter using prefix lists on a neighbor statement in BGP. 5 00:00:16,770 --> 00:00:19,590 Now, the only downside to that is 6 00:00:19,590 --> 00:00:21,660 that our neighbor's, of course, still sending 7 00:00:21,660 --> 00:00:25,740 us all of their updates, and then we're filtering them. 8 00:00:25,740 --> 00:00:28,140 This is bad for both sides. 9 00:00:28,140 --> 00:00:31,230 For the sender, they're creating and building 10 00:00:31,230 --> 00:00:34,560 updates that, ultimately, we're just going to throw away. 11 00:00:34,560 --> 00:00:38,400 And of course, on our side, we have to bring the routes in, 12 00:00:38,400 --> 00:00:40,800 we have to look at them, compare them to our filter, 13 00:00:40,800 --> 00:00:43,860 and then block them off and discard them. 14 00:00:43,860 --> 00:00:47,730 This would be a lot better if the neighboring router just 15 00:00:47,730 --> 00:00:50,310 never sent the updates to begin with. 16 00:00:50,310 --> 00:00:53,200 And the cool thing is, we have a feature for that. 17 00:00:53,200 --> 00:00:57,390 It's called Outbound Route Filtering, or ORF. 18 00:00:57,390 --> 00:01:02,580 Now, the way this works is we will send our inbound prefix 19 00:01:02,580 --> 00:01:05,700 list to the neighboring router, who 20 00:01:05,700 --> 00:01:08,340 will then apply it outbound. 21 00:01:08,340 --> 00:01:11,500 Hence the name, Outbound Route Filtering. 22 00:01:11,500 --> 00:01:14,290 Now, needless to say, for this to work, 23 00:01:14,290 --> 00:01:18,070 it has to be properly configured on both sides. 24 00:01:18,070 --> 00:01:22,020 One side has to be configured to send the prefix list. 25 00:01:22,020 --> 00:01:24,120 And of course, the other side has 26 00:01:24,120 --> 00:01:26,220 to be configured to receive it. 27 00:01:26,220 --> 00:01:30,090 This is normally done between a customer and a service 28 00:01:30,090 --> 00:01:31,060 provider. 29 00:01:31,060 --> 00:01:35,040 However, keep in mind that, as a BGP feature, 30 00:01:35,040 --> 00:01:38,170 it, of course, can be used anywhere we want to. 31 00:01:38,170 --> 00:01:41,040 So let's take a look, first, at the requirements 32 00:01:41,040 --> 00:01:42,555 to get all this set up and running. 33 00:01:42,555 --> 00:01:44,430 Then, of course, we'll just take a quick look 34 00:01:44,430 --> 00:01:45,840 at our topology to know where we're 35 00:01:45,840 --> 00:01:47,007 going to be implementing it. 36 00:01:47,007 --> 00:01:50,580 And then we'll jump into the command line, and get ORF up 37 00:01:50,580 --> 00:01:52,440 and running. 38 00:01:52,440 --> 00:01:56,360 So now that we have Router 9 that's actually 39 00:01:56,360 --> 00:02:00,650 filtering those routes from our previous video, now 40 00:02:00,650 --> 00:02:05,570 we're going to prevent Router 1 from sending those over 41 00:02:05,570 --> 00:02:07,280 to Router 9. 42 00:02:07,280 --> 00:02:09,830 So just try to keep this perspective in mind 43 00:02:09,830 --> 00:02:11,720 as we go through. 44 00:02:11,720 --> 00:02:15,080 Whatever routes are being filtered inbound 45 00:02:15,080 --> 00:02:16,340 on one router-- 46 00:02:16,340 --> 00:02:20,180 in this case, of course, we're referring to Router 9-- 47 00:02:20,180 --> 00:02:25,370 would be equivalent to filtering outbound on another router. 48 00:02:25,370 --> 00:02:29,540 And again, in this example, we're talking about Router 1, 49 00:02:29,540 --> 00:02:31,220 how we're going to be configuring it. 50 00:02:31,220 --> 00:02:35,240 This is the principle behind Outbound Route Filtering. 51 00:02:35,240 --> 00:02:37,680 As I mentioned during the introduction, 52 00:02:37,680 --> 00:02:41,030 this is commonly done for the customer. 53 00:02:41,030 --> 00:02:44,090 And it allows them to control the routes being 54 00:02:44,090 --> 00:02:47,370 sent to them by the provider. 55 00:02:47,370 --> 00:02:50,810 Now, of course, this would be an optional feature or a benefit 56 00:02:50,810 --> 00:02:52,970 that we could offer for our customers, 57 00:02:52,970 --> 00:02:56,280 but a lot of service providers do offer this feature. 58 00:02:56,280 --> 00:02:59,240 So it's probably a good idea to do so, 59 00:02:59,240 --> 00:03:02,060 unless we have a really good reason not to. 60 00:03:02,060 --> 00:03:04,430 Now, a couple of things to keep in mind here. 61 00:03:04,430 --> 00:03:09,270 On current code, we only support prefix lists. 62 00:03:09,270 --> 00:03:12,590 If you look at the RFCs for route filtering, 63 00:03:12,590 --> 00:03:14,750 they actually talk about including 64 00:03:14,750 --> 00:03:16,550 other types of filtering. 65 00:03:16,550 --> 00:03:19,890 However, on Cisco's IOS at the moment, 66 00:03:19,890 --> 00:03:22,250 we only support prefix lists. 67 00:03:22,250 --> 00:03:24,180 It has been that way for a while. 68 00:03:24,180 --> 00:03:26,150 So it's likely to stay that way. 69 00:03:26,150 --> 00:03:29,160 And there are three overall requirements. 70 00:03:29,160 --> 00:03:30,990 The first requirement, of course, 71 00:03:30,990 --> 00:03:33,980 is that the service provider, which would be us, 72 00:03:33,980 --> 00:03:37,890 need to allow or enable this feature. 73 00:03:37,890 --> 00:03:39,780 Otherwise, the customers can send it. 74 00:03:39,780 --> 00:03:42,680 But of course, we wouldn't do anything with it. 75 00:03:42,680 --> 00:03:44,360 That's not enough though, either. 76 00:03:44,360 --> 00:03:47,930 The customer also needs to configure this 77 00:03:47,930 --> 00:03:50,690 so that their router actually sends the prefix 78 00:03:50,690 --> 00:03:53,450 list to the service provider. 79 00:03:53,450 --> 00:03:57,330 And finally, none of this will work unless, of course, 80 00:03:57,330 --> 00:04:01,310 the customer has configured an inbound prefix list. 81 00:04:01,310 --> 00:04:03,530 If there's no inbound prefix list, 82 00:04:03,530 --> 00:04:06,840 then there's nothing to send to the other side. 83 00:04:06,840 --> 00:04:10,670 So all of this said, now that we know all of the requirements, 84 00:04:10,670 --> 00:04:14,250 let's jump into the command line and see how this works. 85 00:04:14,250 --> 00:04:17,029 First, we'll take a look at our topology. 86 00:04:17,029 --> 00:04:20,760 And just picking up right where we were in the previous video, 87 00:04:20,760 --> 00:04:24,530 this is going to be configured on the neighborship between R1 88 00:04:24,530 --> 00:04:25,810 and R9. 89 00:04:25,810 --> 00:04:29,480 R9, of course, is going to be the one sending the prefix 90 00:04:29,480 --> 00:04:30,260 list. 91 00:04:30,260 --> 00:04:34,820 And then Router 1 would be the one filtering the updates 92 00:04:34,820 --> 00:04:36,720 that we no longer want. 93 00:04:36,720 --> 00:04:39,530 So we'll have to configure both of these routers, of course. 94 00:04:39,530 --> 00:04:43,710 Let's jump into the command line and get started. 95 00:04:43,710 --> 00:04:46,700 So let's just start off with a quick review of the problem 96 00:04:46,700 --> 00:04:48,170 that we're trying to fix here. 97 00:04:48,170 --> 00:04:51,440 We'll do a debug IP BGP update. 98 00:04:51,440 --> 00:04:55,325 And then we'll clear the BGP session to Router 1. 99 00:04:55,325 --> 00:04:59,620 100 00:04:59,620 --> 00:05:01,550 We'll turn off debugging for now. 101 00:05:01,550 --> 00:05:04,750 And what we're looking for is this right here, 102 00:05:04,750 --> 00:05:07,870 where we have these three prefixes that are being 103 00:05:07,870 --> 00:05:11,540 denied due to a prefix list. 104 00:05:11,540 --> 00:05:14,630 Keep in mind, the primary thing we're trying to fix here 105 00:05:14,630 --> 00:05:19,130 is that these prefixes don't get sent at all, not 106 00:05:19,130 --> 00:05:22,770 that they get sent, and then discarded by our prefix list. 107 00:05:22,770 --> 00:05:25,730 So for this, of course, we're going to be configuring ORF. 108 00:05:25,730 --> 00:05:28,520 So let's jump over to Router 1, and let's 109 00:05:28,520 --> 00:05:31,460 configure what's essentially acting like the service 110 00:05:31,460 --> 00:05:33,080 provider side first-- 111 00:05:33,080 --> 00:05:37,205 the ability to receive ORF prefix lists. 112 00:05:37,205 --> 00:05:39,870 113 00:05:39,870 --> 00:05:44,673 So we'll go into configuration mode, into router BGP 100. 114 00:05:44,673 --> 00:05:47,090 And then we're going to go into our neighbor configuration 115 00:05:47,090 --> 00:05:50,870 for 50.1.19.9, which is Router 9. 116 00:05:50,870 --> 00:05:54,680 We'll go into the address family, IPv4 unicast. 117 00:05:54,680 --> 00:05:56,660 And then we'll say capability. 118 00:05:56,660 --> 00:06:00,710 And we'll see that there is a capability here called ORF. 119 00:06:00,710 --> 00:06:02,270 If we look at the options after this, 120 00:06:02,270 --> 00:06:06,380 notice the only choice we have is prefix. 121 00:06:06,380 --> 00:06:10,010 As we mentioned before, doing prefix lists 122 00:06:10,010 --> 00:06:15,500 is currently the only option in both IOS XR and IOS XE. 123 00:06:15,500 --> 00:06:18,330 So, of course, that's what we're going to be configuring. 124 00:06:18,330 --> 00:06:20,300 So we'll say prefix. 125 00:06:20,300 --> 00:06:22,370 And then we have some choices. 126 00:06:22,370 --> 00:06:25,130 Of course, none would turn this feature off, which 127 00:06:25,130 --> 00:06:27,440 is essentially the default. Or we 128 00:06:27,440 --> 00:06:30,870 can do send, receive, or both. 129 00:06:30,870 --> 00:06:32,840 Both, of course, is just a shortcut 130 00:06:32,840 --> 00:06:34,700 to saying send and receive. 131 00:06:34,700 --> 00:06:39,170 Now, normally speaking, again, a service provider customer 132 00:06:39,170 --> 00:06:41,870 relationship, we would probably just 133 00:06:41,870 --> 00:06:45,740 be receiving these on this service provider side. 134 00:06:45,740 --> 00:06:47,810 We're generally not going to be sending a prefix 135 00:06:47,810 --> 00:06:49,160 list to the customers. 136 00:06:49,160 --> 00:06:52,970 Although, of course, any of this can be used however 137 00:06:52,970 --> 00:06:55,290 you need to in your environment. 138 00:06:55,290 --> 00:06:56,810 Now we'll simply commit that change. 139 00:06:56,810 --> 00:06:58,910 That's all we need to do to enable the feature. 140 00:06:58,910 --> 00:07:01,490 And we'll exit configuration mode. 141 00:07:01,490 --> 00:07:06,470 Something else very important to notice on this output. 142 00:07:06,470 --> 00:07:10,910 Notice that, right here, we see the neighborship with Router 9 143 00:07:10,910 --> 00:07:12,150 going down. 144 00:07:12,150 --> 00:07:15,390 Now, of course, just below, it comes right back up. 145 00:07:15,390 --> 00:07:18,620 But it bounces the BGP neighborship. 146 00:07:18,620 --> 00:07:21,260 It does this, of course, because this 147 00:07:21,260 --> 00:07:25,430 is a new capability that's been enabled on this neighborship. 148 00:07:25,430 --> 00:07:27,350 The main reason I'm pointing it out 149 00:07:27,350 --> 00:07:28,880 is we want to make sure that this 150 00:07:28,880 --> 00:07:32,090 is happening during a scheduled maintenance 151 00:07:32,090 --> 00:07:34,400 window with the customer. 152 00:07:34,400 --> 00:07:37,970 Or, of course, if we set it up before the customer is even 153 00:07:37,970 --> 00:07:41,120 a customer-- so in other words, during initial configuration, 154 00:07:41,120 --> 00:07:42,840 of course, it's no issue. 155 00:07:42,840 --> 00:07:45,020 However, if this is an existing customer that we're 156 00:07:45,020 --> 00:07:47,600 adding a feature to, we do want to make sure 157 00:07:47,600 --> 00:07:49,400 that it's scheduled so that we don't 158 00:07:49,400 --> 00:07:51,440 cause an unexpected outage. 159 00:07:51,440 --> 00:07:54,230 Because as you see, as soon as I committed that change, 160 00:07:54,230 --> 00:07:56,480 it took that neighborship down. 161 00:07:56,480 --> 00:07:57,510 Came back up. 162 00:07:57,510 --> 00:08:00,230 But it still bounced the neighborship. 163 00:08:00,230 --> 00:08:03,350 So now let's jump back over to Router 9. 164 00:08:03,350 --> 00:08:05,330 So we're going to configure Router 9. 165 00:08:05,330 --> 00:08:08,940 But before we do, I want to do two other things. 166 00:08:08,940 --> 00:08:11,330 First, we're going to start packet capture 167 00:08:11,330 --> 00:08:14,330 on the connection to Router 1, so we can actually 168 00:08:14,330 --> 00:08:16,100 look at this in Wireshark. 169 00:08:16,100 --> 00:08:19,070 And we're going to turn our debugs back on here 170 00:08:19,070 --> 00:08:23,120 on Router 9, so we can see if those prefixes are coming in 171 00:08:23,120 --> 00:08:23,940 or not. 172 00:08:23,940 --> 00:08:26,540 So let's go ahead and take care of those two things first. 173 00:08:26,540 --> 00:08:29,670 I'll set up the packet capture off camera. 174 00:08:29,670 --> 00:08:32,159 And then we'll look at it after this is done. 175 00:08:32,159 --> 00:08:34,669 So I have the packet capture running. 176 00:08:34,669 --> 00:08:37,010 Let's turn our debug back on. 177 00:08:37,010 --> 00:08:41,210 We'll go into configuration mode, into our BGP process. 178 00:08:41,210 --> 00:08:44,150 And all we have to do is configure our neighborship. 179 00:08:44,150 --> 00:08:46,410 And we're going to turn on capability. 180 00:08:46,410 --> 00:08:48,980 Once again, we have ORF. 181 00:08:48,980 --> 00:08:52,670 Once again, the only choice is prefix, or prefix list. 182 00:08:52,670 --> 00:08:55,820 And again, we can send, receive, or both. 183 00:08:55,820 --> 00:09:00,458 This, acting as the customer router, we would just send. 184 00:09:00,458 --> 00:09:02,250 Now remember, we don't have to commit here. 185 00:09:02,250 --> 00:09:04,760 So this is going to happen pretty much right away. 186 00:09:04,760 --> 00:09:06,560 We see that even while I'm talking, 187 00:09:06,560 --> 00:09:09,050 it already sent the BGP notification. 188 00:09:09,050 --> 00:09:11,850 The BGP adjacency has gone down. 189 00:09:11,850 --> 00:09:14,610 And in just a couple of seconds, it will come up. 190 00:09:14,610 --> 00:09:16,630 We can see that it did. 191 00:09:16,630 --> 00:09:19,010 We'll exit out of configuration. 192 00:09:19,010 --> 00:09:21,500 Turn off our debugs. 193 00:09:21,500 --> 00:09:25,190 Now, a lot of stuff went by on the screen there on the debug. 194 00:09:25,190 --> 00:09:27,530 However, if you look at this lower part here, 195 00:09:27,530 --> 00:09:30,680 where the prefixes are actually being exchanged, 196 00:09:30,680 --> 00:09:33,740 you'll notice that the prefixes that we're trying to filter 197 00:09:33,740 --> 00:09:39,950 out, specifically the /16, the 20 subnet, and the 40 subnet, 198 00:09:39,950 --> 00:09:42,500 are not here on this list. 199 00:09:42,500 --> 00:09:45,150 Normally, of course, I highlight this sort of thing. 200 00:09:45,150 --> 00:09:47,520 But I can't highlight something that's not there. 201 00:09:47,520 --> 00:09:49,820 So just take a second to look over this list, 202 00:09:49,820 --> 00:09:54,080 and see that those prefixes are not being sent any longer 203 00:09:54,080 --> 00:09:56,360 here to Router 9. 204 00:09:56,360 --> 00:09:58,850 Now let's go take a look at Wireshark. 205 00:09:58,850 --> 00:10:00,920 So here in Wireshark, notice that this 206 00:10:00,920 --> 00:10:05,090 has been filtered to only show us our BGP packets, 207 00:10:05,090 --> 00:10:09,190 and to eliminate KEEPALIVES. 208 00:10:09,190 --> 00:10:12,220 The next thing to notice is that the first thing we're 209 00:10:12,220 --> 00:10:16,030 seeing here, as soon as we applied that change 210 00:10:16,030 --> 00:10:20,590 to set up ORF, we sent a notification 211 00:10:20,590 --> 00:10:23,950 message from Router 9 to Router 1, 212 00:10:23,950 --> 00:10:26,260 tearing down that neighborship. 213 00:10:26,260 --> 00:10:30,160 Shortly after that, we send an open message. 214 00:10:30,160 --> 00:10:33,050 That open message is what we want to look at. 215 00:10:33,050 --> 00:10:35,320 So let's open that packet. 216 00:10:35,320 --> 00:10:38,530 In this example, it's packet 110. 217 00:10:38,530 --> 00:10:42,920 And if we open the BGP section of that packet, 218 00:10:42,920 --> 00:10:47,060 we see something here called optional parameters. 219 00:10:47,060 --> 00:10:49,540 So if we start opening these, we'll 220 00:10:49,540 --> 00:10:51,080 see various different things here. 221 00:10:51,080 --> 00:10:54,160 We have multi-protocol extensions, route refresh 222 00:10:54,160 --> 00:10:55,630 capability. 223 00:10:55,630 --> 00:10:58,780 And then we see this one, called cooperative route 224 00:10:58,780 --> 00:11:00,640 filtering capability. 225 00:11:00,640 --> 00:11:03,010 This is actually ORF. 226 00:11:03,010 --> 00:11:07,040 So if we open this one, a couple of things to note. 227 00:11:07,040 --> 00:11:09,040 First, of course, we see that this 228 00:11:09,040 --> 00:11:12,070 is type cooperative route filtering capability, 229 00:11:12,070 --> 00:11:14,080 specifically for Cisco. 230 00:11:14,080 --> 00:11:16,910 But most importantly, if we look down here further, 231 00:11:16,910 --> 00:11:22,840 we see that the specific type is the Cisco prefix list ORF type. 232 00:11:22,840 --> 00:11:25,980 233 00:11:25,980 --> 00:11:29,210 So this, of course, is us negotiating the capability 234 00:11:29,210 --> 00:11:31,220 to do ORF. 235 00:11:31,220 --> 00:11:34,370 Now, we still have to send the prefix list. 236 00:11:34,370 --> 00:11:39,510 And for that, it actually uses a route refresh message. 237 00:11:39,510 --> 00:11:43,620 Notice that our packet 125 is actually 238 00:11:43,620 --> 00:11:48,810 a route refresh message going from Router 9 to Router 1. 239 00:11:48,810 --> 00:11:50,850 Let's take a look at that packet. 240 00:11:50,850 --> 00:11:53,220 We'll open up the BGP section. 241 00:11:53,220 --> 00:11:55,800 And notice that it even says right in here, 242 00:11:55,800 --> 00:11:58,510 that it's ORF information. 243 00:11:58,510 --> 00:12:00,900 So of course, let's open that. 244 00:12:00,900 --> 00:12:03,390 What do we see under the ORF information? 245 00:12:03,390 --> 00:12:08,070 Well, we see that it's a Cisco prefix list ORF type 128. 246 00:12:08,070 --> 00:12:12,600 Then we see the different ORF entries for the prefix list. 247 00:12:12,600 --> 00:12:15,060 And if we open each one of these, 248 00:12:15,060 --> 00:12:16,650 what we see on this first entry is 249 00:12:16,650 --> 00:12:19,110 it's the first entry in our prefix list. 250 00:12:19,110 --> 00:12:21,840 We see that it's flagged as a deny, 251 00:12:21,840 --> 00:12:27,690 and that it's for the prefix 100.10.0.0/16. 252 00:12:27,690 --> 00:12:34,140 The next entry is the deny for the 100.10.20.0/24. 253 00:12:34,140 --> 00:12:38,220 Of course, the third entry is our third deny statement. 254 00:12:38,220 --> 00:12:40,420 And the last entry here is, of course, 255 00:12:40,420 --> 00:12:42,690 going to be our permit any. 256 00:12:42,690 --> 00:12:46,320 And we can see that this is a permit because the deny permit 257 00:12:46,320 --> 00:12:48,720 flag is set to zero. 258 00:12:48,720 --> 00:12:54,510 And then, of course, we have the entry being 0.0.0.0/0 with 259 00:12:54,510 --> 00:12:56,540 an upper bound of 32. 260 00:12:56,540 --> 00:12:59,070 261 00:12:59,070 --> 00:13:03,060 So we see here, that this is literally our prefix list being 262 00:13:03,060 --> 00:13:07,800 sent line by line to the-- well, in our example, service 263 00:13:07,800 --> 00:13:09,030 provider router. 264 00:13:09,030 --> 00:13:11,910 And it's then going to apply that outbound. 265 00:13:11,910 --> 00:13:14,190 But we can see that on the service provider router 266 00:13:14,190 --> 00:13:14,980 as well. 267 00:13:14,980 --> 00:13:19,730 So let's hop over to Router 1 and take a look at that. 268 00:13:19,730 --> 00:13:23,360 Now, this command does get a little bit long here. 269 00:13:23,360 --> 00:13:30,890 Show BGP IPv4 unicast for the neighbor 50.1.19.9. 270 00:13:30,890 --> 00:13:36,080 And then what we want to see is the received prefix filter. 271 00:13:36,080 --> 00:13:39,520 And here, we, of course, can see that received prefix list. 272 00:13:39,520 --> 00:13:41,860 And then this, of course, is being applied 273 00:13:41,860 --> 00:13:44,440 outbound towards Router 9. 274 00:13:44,440 --> 00:13:49,760 And we can see that this is working exactly as we designed. 275 00:13:49,760 --> 00:13:56,180 In this video, we saw how to use ORF to have our neighbor not 276 00:13:56,180 --> 00:14:00,800 send us the prefixes that we're just filtering out anyway, 277 00:14:00,800 --> 00:14:04,370 by sending them our inbound prefix list, 278 00:14:04,370 --> 00:14:08,010 and them applying it outbound. 279 00:14:08,010 --> 00:14:11,030 This, of course, requires some configuration on both sides 280 00:14:11,030 --> 00:14:12,230 to permit this. 281 00:14:12,230 --> 00:14:15,530 Because we are sort of letting one router control another. 282 00:14:15,530 --> 00:14:17,450 And of course, there could be a little bit 283 00:14:17,450 --> 00:14:21,090 of a security concern there in the wrong situation. 284 00:14:21,090 --> 00:14:23,810 So this does, of course, have to be configured properly for it 285 00:14:23,810 --> 00:14:24,660 to work. 286 00:14:24,660 --> 00:14:26,510 But once it's enabled, we can see 287 00:14:26,510 --> 00:14:30,290 that this is a very efficient way of causing prefixes 288 00:14:30,290 --> 00:14:32,660 not to be advertised, that are just 289 00:14:32,660 --> 00:14:36,090 going to be discarded by the neighbor anyway. 290 00:14:36,090 --> 00:14:41,000 Now, filtering by prefixes isn't always the best way to go. 291 00:14:41,000 --> 00:14:43,730 Sometimes we might have to filter 292 00:14:43,730 --> 00:14:46,280 based on what's in the AS path. 293 00:14:46,280 --> 00:14:47,990 And that's exactly what we're going 294 00:14:47,990 --> 00:14:50,370 to be doing in the next video. 295 00:14:50,370 --> 00:14:53,660 Until then, I hope this has been informative for you, 296 00:14:53,660 --> 00:14:56,770 and I'd like to thank you for viewing. 297 00:14:56,770 --> 00:15:00,000