WEBVTT

1
00:00.000 --> 00:10.420
Now it's time to configure Catalyst 8000V redundancy for AWS on our devices,

2
00:10.420 --> 00:11.480
AWS Router

3
00:11.480 --> 00:14.600
1 and AWS Router 2.

4
00:14.600 --> 00:17.560
Now we did just see why we need this.

5
00:17.560 --> 00:22.880
We don't have an option to use the traditional first-hop redundancy protocols.

6
00:22.880 --> 00:31.240
HSRP and VRRP will not function in AWS, so instead we have this other solution.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

6
00:22.880 --> 00:31.240
HSRP and VRRP will not function in AWS, so instead we have this other solution.

7
00:31.240 --> 00:38.280
Remember, the way the devices in AWS are finding their default gateway is

8
00:38.280 --> 00:39.540
through the route

9
00:39.540 --> 00:44.160
tables in AWS for each VLAN.

10
00:44.160 --> 00:48.240
So what we're going to do is we're going to configure our routers to monitor

11
00:48.240 --> 00:48.920
each other

12
00:48.920 --> 00:54.900
in a redundancy group, and then when one of the devices fails, it's going to

13
00:54.900 --> 00:55.560
notify

14
00:55.560 --> 01:03.600
through the API the AWS route table for that subnet, update the next hop,
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

14
00:55.560 --> 01:03.600
through the API the AWS route table for that subnet, update the next hop,

15
01:03.600 --> 01:05.160
therefore updating

16
01:05.160 --> 01:10.120
the clients to go to the standby or secondary router.

17
01:10.120 --> 01:14.280
So it's very much like a first-hop redundancy protocol.

18
01:14.280 --> 01:19.000
It's just that our routers are working in conjunction with AWS.

19
01:19.000 --> 01:22.350
Now there are of course quite a few moving parts that we need to set up and

20
01:22.350 --> 01:22.960
configure

21
01:22.960 --> 01:28.120
here, so let's jump in and get started.

22
01:28.120 --> 01:32.540
So the first thing we have to do in order to enable the high availability is we
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

22
01:28.120 --> 01:32.540
So the first thing we have to do in order to enable the high availability is we

23
01:32.540 --> 01:32.920
have

24
01:32.920 --> 01:38.240
to create a way to run Python scripts here on the router.

25
01:38.240 --> 01:43.470
And the way we do that is through something called the guest shell, which is

26
01:43.470 --> 01:44.200
part of the

27
01:44.200 --> 01:46.400
app hosting environment.

28
01:46.400 --> 01:52.530
So we can start by saying show app hosting list and notice that as of right now

29
01:52.530 --> 01:53.120
, the

30
01:53.120 --> 01:58.320
guest shell is deployed, but it's not enabled.

31
01:58.320 --> 02:01.960
Enabling it is as simple as saying guest shell enable.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

31
01:58.320 --> 02:01.960
Enabling it is as simple as saying guest shell enable.

32
02:01.960 --> 02:03.800
We see that it was successful.

33
02:03.800 --> 02:09.240
And if we look at our list again, we see that the state is now running.

34
02:09.240 --> 02:13.040
We of course need to do the same thing on router two.

35
02:13.040 --> 02:15.840
So we'll be configuring both of these routers side by side.

36
02:15.840 --> 02:19.840
We'll go ahead and just go right to the guest shell enable.

37
02:19.840 --> 02:23.640
So we see that this is now successfully deployed here as well.

38
02:23.640 --> 02:29.350
The next piece we're going to need is BFD or bi-directional forwarding

39
02:29.350 --> 02:31.000
detection enabled
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

39
02:29.350 --> 02:31.000
detection enabled

40
02:31.000 --> 02:35.470
between our devices, because this is the mechanism that high availability is

41
02:35.470 --> 02:36.840
going to use to

42
02:36.840 --> 02:39.440
detect the failure of the neighbor.

43
02:39.440 --> 02:43.910
So the first thing we have to do is going to configuration mode into our

44
02:43.910 --> 02:45.080
interface gigabit

45
02:45.080 --> 02:46.640
two.

46
02:46.640 --> 02:51.120
And just as a quick note here, we can get away with this because these routers

47
02:51.120 --> 02:51.840
are directly

48
02:51.840 --> 02:54.600
connected through gigabit two.

49
02:54.600 --> 02:58.800
If they weren't, you can actually run this through a tunnel.

50
02:58.800 --> 03:03.670
So we could actually create a tunnel of some sort between router one and router
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

50
02:58.800 --> 03:03.670
So we could actually create a tunnel of some sort between router one and router

51
03:03.670 --> 03:04.000
two and

52
03:04.000 --> 03:06.400
then run BFD over that tunnel.

53
03:06.400 --> 03:09.700
But since these are directly connected, we can just do it right here on our gig

54
03:09.700 --> 03:10.000
abit

55
03:10.000 --> 03:11.520
two interface.

56
03:11.520 --> 03:16.080
We just need a way for the routers to detect each other's failure.

57
03:16.080 --> 03:20.120
So the way we configure BFD is we simply say BFD interval.

58
03:20.120 --> 03:24.400
Now if we're going to run this, you can of course adjust the timers.

59
03:24.400 --> 03:28.980
I'm just going to put in the minimum timers so we can detect the failure as

60
03:28.980 --> 03:30.320
soon as possible.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

60
03:28.980 --> 03:30.320
soon as possible.

61
03:30.320 --> 03:32.440
We'll set our minimum receive interval.

62
03:32.440 --> 03:35.280
It can also be as low as 50.

63
03:35.280 --> 03:40.730
And then we have to configure the multiplier and the multiplier can be as low

64
03:40.730 --> 03:41.480
as three.

65
03:41.480 --> 03:45.470
What this setting essentially means is we're going to detect the failure of the

66
03:45.470 --> 03:46.040
neighbor

67
03:46.040 --> 03:48.760
in 150 milliseconds.

68
03:48.760 --> 03:50.760
So we'll go ahead and configure that.

69
03:50.760 --> 03:55.760
And then of course, we have to enable this under our routing protocol.

70
03:55.760 --> 04:02.520
So all we have to do is go into OSPF and configure it for BFD all interfaces.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

70
03:55.760 --> 04:02.520
So all we have to do is go into OSPF and configure it for BFD all interfaces.

71
04:02.520 --> 04:09.200
Now what that means is all interfaces that are running OSPF and have a BFD

72
04:09.200 --> 04:10.680
interval configured

73
04:10.680 --> 04:11.720
under them.

74
04:11.720 --> 04:16.320
So in this case, that all interfaces really just means gigabit two.

75
04:16.320 --> 04:20.400
Now we're going to need this exact same configuration on router one.

76
04:20.400 --> 04:22.520
Now we'll just paste it in.

77
04:22.520 --> 04:24.760
We'll do some quick verification.

78
04:24.760 --> 04:29.800
We see here that BFD is enabled on our gigabit two interface.

79
04:29.800 --> 04:34.140
We can do a show BFD neighbors and we see that we are in fact neighbors with
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

79
04:29.800 --> 04:34.140
We can do a show BFD neighbors and we see that we are in fact neighbors with

80
04:34.140 --> 04:34.720
router

81
04:34.720 --> 04:38.000
two over the gigabit two interface.

82
04:38.000 --> 04:44.770
The next part of this is to actually tell our redundancy to use this BFD

83
04:44.770 --> 04:46.000
process.

84
04:46.000 --> 04:52.320
So we'll go back into configuration mode into the redundancy sub configuration.

85
04:52.320 --> 04:58.150
And for cloud hang, we're going to configure the BFD peer to be the other

86
04:58.150 --> 04:59.200
router.

87
04:59.200 --> 05:04.840
This way it knows which router it's supposed to be watching over BFD.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

87
04:59.200 --> 05:04.840
This way it knows which router it's supposed to be watching over BFD.

88
05:04.840 --> 05:07.440
So we'll point this to router two.

89
05:07.440 --> 05:12.200
And of course on router two, we'll point it to router one.

90
05:12.200 --> 05:15.520
So that should take care of our BFD configuration.

91
05:15.520 --> 05:20.500
The next thing we have to do is actually install the HA package for the cloud

92
05:20.500 --> 05:21.280
environment we're

93
05:21.280 --> 05:22.280
using.

94
05:22.280 --> 05:25.200
So of course in this case, AWS.

95
05:25.200 --> 05:27.960
To do this, we go into guest shell.

96
05:27.960 --> 05:33.290
This by the way is simply a Linux container running on top of our Linux kernel
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

96
05:27.960 --> 05:33.290
This by the way is simply a Linux container running on top of our Linux kernel

97
05:33.290 --> 05:33.960
here in

98
05:33.960 --> 05:35.800
iOS XE.

99
05:35.800 --> 05:39.080
And it does have Python installed.

100
05:39.080 --> 05:41.880
So we can install a Python package.

101
05:41.880 --> 05:45.600
We need to use pip three because it is Python version three.

102
05:45.600 --> 05:49.960
So we're going to say pip three install.

103
05:49.960 --> 05:55.600
And the package we need is CSR underscore AWS.

104
05:55.600 --> 06:00.040
Because of course, that's the platform we're on HA.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

104
05:55.600 --> 06:00.040
Because of course, that's the platform we're on HA.

105
06:00.040 --> 06:03.200
And we're going to install it into the user space.

106
06:03.200 --> 06:06.720
So now that package is installed on router two, let's install it on router one

107
06:06.720 --> 06:07.160
quickly.

108
06:08.160 --> 06:17.160
So we're almost done with our prerequisites.

109
06:17.160 --> 06:18.880
We have our packages installed.

110
06:18.880 --> 06:20.760
We have our guest shell enabled.

111
06:20.760 --> 06:23.880
We have BFD running between our devices.

112
06:23.880 --> 06:28.180
But we do need a couple more things over on the AWS side.

113
06:28.180 --> 06:31.080
So let's jump into AWS.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

113
06:28.180 --> 06:31.080
So let's jump into AWS.

114
06:31.080 --> 06:38.180
So we're going to start off here under EC2 and under our network interfaces.

115
06:38.180 --> 06:43.950
What we need to know specifically is the E and I number for router ones gigabit

116
06:43.950 --> 06:45.800
to interface

117
06:45.800 --> 06:49.480
and router twos gigabit to interface.

118
06:49.480 --> 06:55.020
These are the two interfaces that are supposed to be the next hop for that sub

119
06:55.020 --> 06:55.360
net.

120
06:55.360 --> 07:00.180
So we want to record these interface numbers, put them in notepad, keep them
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

120
06:55.360 --> 07:00.180
So we want to record these interface numbers, put them in notepad, keep them

121
07:00.180 --> 07:02.480
somewhere handy.

122
07:02.480 --> 07:05.680
The next thing we're going to need is the routing table number.

123
07:05.680 --> 07:10.960
So let's go over to VPC and then into route tables.

124
07:10.960 --> 07:16.920
Here what we need is the route table ID specifically for network 10.

125
07:16.920 --> 07:19.400
So also make a note of this.

126
07:19.400 --> 07:24.440
Once again, I would copy it, put it into something like notepad.

127
07:24.440 --> 07:28.480
Also note if we look at the routes for this right now, the default route is

128
07:28.480 --> 07:29.160
pointing to

129
07:29.160 --> 07:33.880
the E and I for router ones gigabit to interface.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

129
07:29.160 --> 07:33.880
the E and I for router ones gigabit to interface.

130
07:33.880 --> 07:38.840
This is what's going to be modified through the API.

131
07:38.840 --> 07:46.180
So we're almost ready to create that, but we do need one more piece here in AWS

132
07:46.180 --> 07:46.240
.

133
07:46.240 --> 07:52.620
We need to give the router permission to modify these route tables because that

134
07:52.620 --> 07:53.200
's what the

135
07:53.200 --> 07:55.120
routers are going to do.

136
07:55.120 --> 08:00.520
So in order to do this, we need to go to services, security, identity and
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

136
07:55.120 --> 08:00.520
So in order to do this, we need to go to services, security, identity and

137
08:00.520 --> 08:01.840
compliance, and then

138
08:01.840 --> 08:05.360
we need to go into IAM.

139
08:05.360 --> 08:09.520
In here, the first thing we need to do is create a policy.

140
08:09.520 --> 08:11.720
So we'll go to policies.

141
08:11.720 --> 08:15.440
We can see here, of course, there's a ton of policies built in.

142
08:15.440 --> 08:18.120
We're going to create a policy.

143
08:18.120 --> 08:21.720
For the policy editor, we're going to choose JSON.

144
08:21.720 --> 08:25.970
And we're going to take the code that Cisco publishes and we're simply going to

145
08:25.970 --> 08:26.520
replace

146
08:26.520 --> 08:31.480
everything in this window with the Cisco provided code.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

146
08:26.520 --> 08:31.480
everything in this window with the Cisco provided code.

147
08:31.480 --> 08:33.400
We'll then scroll down.

148
08:33.400 --> 08:34.960
We'll hit next.

149
08:34.960 --> 08:42.880
For the policy name, I'm just going to call it Cisco underscore cat 8000V.

150
08:42.880 --> 08:45.880
You can call it, of course, whatever you want to call it.

151
08:45.880 --> 08:48.120
You can put it in the description if you want.

152
08:48.120 --> 08:52.290
If we scroll down here, we can review the permissions that's going to give us

153
08:52.290 --> 08:52.720
that are

154
08:52.720 --> 08:56.160
coming from that script we just pasted in from Cisco.

155
08:56.160 --> 08:59.640
But overall, we're just going to hit create policy.

156
08:59.640 --> 09:04.400
The next thing we need is a role that's going to call to this policy.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

156
08:59.640 --> 09:04.400
The next thing we need is a role that's going to call to this policy.

157
09:04.400 --> 09:06.640
So now we'll go to roles.

158
09:06.640 --> 09:09.360
Under roles, we will create a role.

159
09:09.360 --> 09:13.040
The role is going to be for AWS service.

160
09:13.040 --> 09:19.320
If we click on the use case, it's going to be for EC2, we'll hit next.

161
09:19.320 --> 09:24.160
And then for the permissions policy, we'll do a search for Cisco.

162
09:24.160 --> 09:28.680
We'll choose the one that we just created and we'll hit next.

163
09:28.680 --> 09:30.320
It's going to want to roll name.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

163
09:28.680 --> 09:30.320
It's going to want to roll name.

164
09:30.320 --> 09:32.600
We'll just call it the same thing.

165
09:32.600 --> 09:37.160
You can have the same name because it's a different type of object.

166
09:37.160 --> 09:40.320
So we'll just call it the Cisco cat 8000V.

167
09:40.320 --> 09:43.600
You can modify the description here if you want.

168
09:43.600 --> 09:48.640
You can of course also modify these selected trusted entities.

169
09:48.640 --> 09:51.080
But we're just going to hit create role.

170
09:51.080 --> 09:56.200
Now that the role is created, we can go back over to EC2.

171
09:56.200 --> 09:58.320
We'll go to instances.

172
09:58.320 --> 10:06.900
We'll select AWS R1, go to actions, security, and we're going to choose to
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

172
09:58.320 --> 10:06.900
We'll select AWS R1, go to actions, security, and we're going to choose to

173
10:06.900 --> 10:08.520
modify the IAM

174
10:08.520 --> 10:09.560
role.

175
10:09.560 --> 10:12.560
We have to give it the role that we just created.

176
10:12.560 --> 10:18.080
So we'll click on the drop down and we'll click on our Cisco cat 8000V.

177
10:18.080 --> 10:20.280
We'll update the IAM role.

178
10:20.280 --> 10:23.880
This way the router has the permissions that we gave to that role.

179
10:23.880 --> 10:27.640
Of course, we have to do the same thing for router two.

180
10:27.640 --> 10:32.490
If we look at actions, by the way, in security, notice the modify IAM role is
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

180
10:27.640 --> 10:32.490
If we look at actions, by the way, in security, notice the modify IAM role is

181
10:32.490 --> 10:33.440
grayed out.

182
10:33.440 --> 10:36.200
This is because we have two devices selected.

183
10:36.200 --> 10:39.880
Again, you can't do this to more than one device at a time.

184
10:39.880 --> 10:45.250
So we'll just unselect everything, select just R2, and once again, under

185
10:45.250 --> 10:46.600
actions, security

186
10:46.600 --> 10:50.520
will modify the role and just change our role.

187
10:50.520 --> 10:54.860
So now our routers should have the permissions they need to do these

188
10:54.860 --> 10:56.240
modifications.

189
10:56.240 --> 10:58.840
Let's go back over to our routers.

190
10:58.840 --> 11:02.480
So now what we want to do is CD into cloud.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

190
10:58.840 --> 11:02.480
So now what we want to do is CD into cloud.

191
11:02.480 --> 11:07.760
And then we're going to use the create node Python script.

192
11:07.760 --> 11:11.680
The parameters this needs first is a minus I.

193
11:11.680 --> 11:14.400
This is the instance number.

194
11:14.400 --> 11:18.650
Now unfortunately, we don't get any sort of context sensitive help here, since

195
11:18.650 --> 11:19.040
we're

196
11:19.040 --> 11:21.840
in essentially Linux at this point.

197
11:21.840 --> 11:28.800
So we just need to be aware that this can be any number from one to 1023.

198
11:28.800 --> 11:34.450
We will need a separate instance number for each routing table that we want to
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

198
11:28.800 --> 11:34.450
We will need a separate instance number for each routing table that we want to

199
11:34.450 --> 11:35.360
update.

200
11:35.360 --> 11:38.440
So in other words, for each subnet.

201
11:38.440 --> 11:44.830
So since this is going to be for subnet 10, and this is router one on subnet 10

202
11:44.830 --> 11:45.480
, I'm going

203
11:45.480 --> 11:50.520
to make it an 11, 10 for the subnet, one for the router.

204
11:50.520 --> 11:55.120
The next thing we have to do is tell it the route table.

205
11:55.120 --> 11:58.520
Now for this again, you're going to want to copy and paste this.

206
11:58.520 --> 12:00.480
So we'll paste that in.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

206
11:58.520 --> 12:00.480
So we'll paste that in.

207
12:00.480 --> 12:03.360
Then we need an RG for the region.

208
12:03.360 --> 12:07.200
So you need to know where all of your devices are.

209
12:07.200 --> 12:10.880
Mine happened to be in us East one.

210
12:10.880 --> 12:14.720
Then you need to know what you're going to be setting the next hop to.

211
12:14.720 --> 12:18.680
Now since we're configuring router one here, you would be setting this to

212
12:18.680 --> 12:20.960
router ones interface.

213
12:20.960 --> 12:24.600
So that's the E and I for router ones interface.

214
12:24.600 --> 12:29.280
And then the last thing you probably want to put on here is to set the mode.

215
12:29.280 --> 12:32.400
We want router one to be the primary.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

215
12:29.280 --> 12:32.400
We want router one to be the primary.

216
12:32.400 --> 12:36.640
Once we have this command properly formatted, let's hit enter.

217
12:36.640 --> 12:39.840
So two things to note here, it liked our input.

218
12:39.840 --> 12:41.600
The command was okay.

219
12:41.600 --> 12:46.340
It succeeded and tied to the fact that it succeeded also means that our

220
12:46.340 --> 12:47.640
permissions worked

221
12:47.640 --> 12:51.800
properly as well, or we would have gotten errors here.

222
12:51.800 --> 12:56.720
So now let's do the same thing on router two.

223
12:56.720 --> 12:57.800
So the difference is here.

224
12:57.800 --> 13:03.280
I'm making this node 12 because it's router two on subnet 10.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

224
12:57.800 --> 13:03.280
I'm making this node 12 because it's router two on subnet 10.

225
13:03.280 --> 13:06.040
It's pointing to the same route table.

226
13:06.040 --> 13:08.120
Of course, the same region.

227
13:08.120 --> 13:14.440
However, the E and I is now router two's E and I interface and the mode is

228
13:14.440 --> 13:15.320
being set

229
13:15.320 --> 13:16.800
to secondary.

230
13:16.800 --> 13:23.580
Finally, there's a command we can use to verify this node event dot py, then we

231
13:23.580 --> 13:24.120
call

232
13:24.120 --> 13:27.520
to the instance number and we do a verify.

233
13:27.520 --> 13:30.520
What this is going to do is write out a log file.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

233
13:27.520 --> 13:30.520
What this is going to do is write out a log file.

234
13:30.520 --> 13:37.200
So we're already under cloud, so we can see the into H a events.

235
13:37.200 --> 13:41.280
And if we look at the contents of this file, we have this node with the date

236
13:41.280 --> 13:41.960
and time and

237
13:41.960 --> 13:42.960
so on.

238
13:42.960 --> 13:46.600
And what we can do is we can just do a more on this.

239
13:46.600 --> 13:51.080
We see all the information that's currently configured on the redundancy node.

240
13:51.080 --> 13:55.520
It gives us a lot of information as far as the route table, the routes, the

241
13:55.520 --> 13:56.440
cider assigned

242
13:56.440 --> 14:00.120
to that route table, what the gateway is and so on.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

242
13:56.440 --> 14:00.120
to that route table, what the gateway is and so on.

243
14:00.120 --> 14:04.800
And we see what it's going to update in that routing table.

244
14:04.800 --> 14:09.380
So as you can see, this is now up working and functional.

245
14:09.380 --> 14:11.600
Quite a few moving parts here.

246
14:11.600 --> 14:14.800
That's not forget that we had to enable the guest shell.

247
14:14.800 --> 14:17.080
Then we had to install the package.

248
14:17.080 --> 14:22.410
We of course had to collect information from AWS, set up the permissions, and

249
14:22.410 --> 14:23.240
then finally

250
14:23.240 --> 14:28.440
we could configure our redundancy nodes with our Python scripts.

251
14:28.440 --> 14:33.160
Now this of course doesn't do us much good at all if it doesn't actually
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

251
14:28.440 --> 14:33.160
Now this of course doesn't do us much good at all if it doesn't actually

252
14:33.160 --> 14:34.160
function.

253
14:34.160 --> 14:39.260
So next, let's jump in and actually verify that this is working the way we want

254
14:39.260 --> 14:39.720
it to.
