WEBVTT

1
00:00.000 --> 00:06.200
So, now that we know how exactly Spanning Tree operates, we start to see that

2
00:06.200 --> 00:06.720
there's

3
00:06.720 --> 00:10.280
a problem with how Spanning Tree works.

4
00:10.280 --> 00:12.720
And to be clear, it does its job really well.

5
00:12.720 --> 00:14.920
It blocks traffic to prevent loops.

6
00:14.920 --> 00:18.040
It makes it so that we don't take our networks down by forming one.

7
00:18.040 --> 00:21.400
It allows us to create redundant connections like what I have drawn here,

8
00:21.400 --> 00:21.920
whereas otherwise

9
00:21.920 --> 00:26.000
we'd have to do something like this just to physically prevent a loop.

10
00:26.000 --> 00:29.480
But we can fully loop it, take advantage of redundancy.

11
00:29.480 --> 00:31.320
However, here's the problem.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

11
00:29.480 --> 00:31.320
However, here's the problem.

12
00:31.320 --> 00:35.990
The original Spanning Tree was not designed with a high level of efficiency and

13
00:35.990 --> 00:36.320
a high

14
00:36.320 --> 00:37.960
level of speed in mind.

15
00:37.960 --> 00:39.880
So, we've got a few issues here.

16
00:39.880 --> 00:42.890
For example, the fact that we said that we've got to wait 30 seconds to bring

17
00:42.890 --> 00:43.400
something

18
00:43.400 --> 00:47.840
online, fine for a new network switch, that doesn't happen very often.

19
00:47.840 --> 00:51.260
Not so good for people plugging their laptops in because they're going to

20
00:51.260 --> 00:51.960
assume that the

21
00:51.960 --> 00:56.830
network is down and unplugged before those 30 seconds are up, especially with

22
00:56.830 --> 00:57.240
modern

23
00:57.240 --> 00:58.240
expectations.

24
00:58.240 --> 01:01.800
But here's the other big problem is with efficiency.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

24
00:58.240 --> 01:01.800
But here's the other big problem is with efficiency.

25
01:01.800 --> 01:02.800
Take a look at this.

26
01:02.800 --> 01:06.880
So, let's say that we've got our switches and we've got the root switch here.

27
01:06.880 --> 01:11.160
And we've decided that in between these two other switches that this switch

28
01:11.160 --> 01:12.040
here is going

29
01:12.040 --> 01:15.680
to place that port into a blocking state.

30
01:15.680 --> 01:19.000
So we know that we've got our designated ports here.

31
01:19.000 --> 01:21.880
We've got our root ports here.

32
01:21.880 --> 01:26.110
And then we've got another designated port over here as well as a non-design

33
01:26.110 --> 01:26.760
ated port

34
01:26.760 --> 01:28.480
there that is blocking.

35
01:28.480 --> 01:30.080
So those are our roles.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

35
01:28.480 --> 01:30.080
So those are our roles.

36
01:30.080 --> 01:31.200
Those are our states as well.

37
01:31.200 --> 01:32.160
We've got one in blocking.

38
01:32.160 --> 01:33.520
The rest are in forwarding.

39
01:33.520 --> 01:34.640
Life is good.

40
01:34.640 --> 01:39.840
And as we've sketched out a few times, we do see that we have built out our

41
01:39.840 --> 01:40.780
logical loop

42
01:40.780 --> 01:42.480
free topology.

43
01:42.480 --> 01:46.440
So where is traffic not flowing right here?

44
01:46.440 --> 01:48.000
That's a good thing.

45
01:48.000 --> 01:49.840
We have prevented a loop.

46
01:49.840 --> 01:52.680
There are no loops in this topology.

47
01:52.680 --> 01:54.480
It's also a bad thing.

48
01:54.480 --> 01:58.360
We have created an idle link.

49
01:58.360 --> 02:02.720
And link bandwidth is a limited resource on networks.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

49
01:58.360 --> 02:02.720
And link bandwidth is a limited resource on networks.

50
02:02.720 --> 02:07.080
And so let's say this is a situation where all of these links are 10 gigabit

51
02:07.080 --> 02:07.800
per second

52
02:07.800 --> 02:12.760
links and we're even maybe using single mode fiber between the switches.

53
02:12.760 --> 02:21.930
Well, at that point, 10 gig fiber optics and cables, these are expensive to

54
02:21.930 --> 02:23.240
deploy.

55
02:23.240 --> 02:27.870
And yet we've just said that with spanning tree, these are we are creating an

56
02:27.870 --> 02:28.840
idle link,

57
02:28.840 --> 02:33.770
meaning that we paid a bunch of money and it's just sitting there not being
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

57
02:28.840 --> 02:33.770
meaning that we paid a bunch of money and it's just sitting there not being

58
02:33.770 --> 02:34.440
used.

59
02:34.440 --> 02:39.160
Now the reality is that back when 802.1d spanning tree came out, we weren't

60
02:39.160 --> 02:39.880
really dealing

61
02:39.880 --> 02:45.230
with 10 gigabit per second links, but we were dealing with an era where 100 meg

62
02:45.230 --> 02:45.720
abits per

63
02:45.720 --> 02:48.160
second was actually pretty expensive.

64
02:48.160 --> 02:53.260
And so we had these 100 meg connections and maybe even gig fiber and at that

65
02:53.260 --> 02:53.920
point, we

66
02:53.920 --> 02:55.760
saw the same issue.

67
02:55.760 --> 02:59.920
They were spending a bunch of money on whether the time were very high

68
02:59.920 --> 03:01.280
bandwidth links and
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

68
02:59.920 --> 03:01.280
bandwidth links and

69
03:01.280 --> 03:05.160
nobody was happy with the fact that they were sitting there idle.

70
03:05.160 --> 03:10.350
And so just like with some of the other protocols we've talked about, Cisco

71
03:10.350 --> 03:11.440
decided that they

72
03:11.440 --> 03:14.550
didn't want to wait for an industry solution, which is good because it took the

73
03:14.550 --> 03:15.040
industry

74
03:15.040 --> 03:18.880
a very long time to come up with a solution.

75
03:18.880 --> 03:21.240
Cisco came up with their own solution.

76
03:21.240 --> 03:28.080
And this is where we introduced the concept of Cisco's per VLAN spanning tree.

77
03:28.080 --> 03:38.480
So per VLAN spanning tree often gets abbreviated as PVST.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

77
03:28.080 --> 03:38.480
So per VLAN spanning tree often gets abbreviated as PVST.

78
03:38.480 --> 03:44.710
Now eventually they came out with PVST plus and this is the version that we use

79
03:44.710 --> 03:45.520
today.

80
03:45.520 --> 03:52.160
In fact, eventually eventually Cisco developed rapid PVST plus.

81
03:52.160 --> 03:58.360
And so this is the evolution it went from PVST to PVST plus to rapid PVST plus.

82
03:58.360 --> 04:05.190
And what we're going to focus on here is traditional PVST plus and rapid PVST
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

82
03:58.360 --> 04:05.190
And what we're going to focus on here is traditional PVST plus and rapid PVST

83
04:05.190 --> 04:05.400
plus.

84
04:05.400 --> 04:09.040
Because these are the versions that are supported on modern Cisco hardware.

85
04:09.040 --> 04:13.600
And yes, iOSXE does indeed support both of these.

86
04:13.600 --> 04:19.250
In fact, somehow still to this day, PVST plus not the rapid version is the

87
04:19.250 --> 04:20.240
version that

88
04:20.240 --> 04:22.000
is the default.

89
04:22.000 --> 04:25.640
So what exactly is per VLAN spanning tree protocol?

90
04:25.640 --> 04:29.080
Well, it's right there in the name per VLAN.

91
04:29.080 --> 04:36.030
The idea here is to equate a spanning tree topology within each individual VLAN
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

91
04:29.080 --> 04:36.030
The idea here is to equate a spanning tree topology within each individual VLAN

92
04:36.030 --> 04:36.440
.

93
04:36.440 --> 04:38.000
Now keep in mind what a VLAN is.

94
04:38.000 --> 04:42.160
As we defined before, it is a broadcast domain.

95
04:42.160 --> 04:44.320
And what's a key facet of broadcast domains?

96
04:44.320 --> 04:47.040
Well, the fact that broadcasts are contained within them.

97
04:47.040 --> 04:48.320
So that's interesting.

98
04:48.320 --> 04:52.720
That means that every single VLAN is its own broadcast domain.

99
04:52.720 --> 04:59.150
And therefore, each one could have its own topology without impacting the other

100
04:59.150 --> 05:00.000
VLANs.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

100
04:59.150 --> 05:00.000
VLANs.

101
05:00.000 --> 05:01.320
Now what's a topology?

102
05:01.320 --> 05:02.880
Well, this is a topology.

103
05:02.880 --> 05:05.720
And we see that we have exactly one topology here.

104
05:05.720 --> 05:09.260
We have a bunch of designated ports and root ports and non-designated port

105
05:09.260 --> 05:09.760
right there

106
05:09.760 --> 05:11.720
in the middle is what we're blocking.

107
05:11.720 --> 05:17.000
But that is a single topology that is established by spanning tree protocol.

108
05:17.000 --> 05:21.270
And before Cisco came up with per VLAN spanning tree, this topology is what

109
05:21.270 --> 05:23.120
resulted in creating

110
05:23.120 --> 05:25.240
the idle link.

111
05:25.240 --> 05:29.130
Well Cisco said, you know what we want to do is we want to actually create

112
05:29.130 --> 05:31.200
multiple topologies.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

112
05:29.130 --> 05:31.200
multiple topologies.

113
05:31.200 --> 05:35.040
So we're going to create, let's say a topology here.

114
05:35.040 --> 05:42.260
And let's just say that we have VLAN 10 and VLAN 20 configured in this

115
05:42.260 --> 05:43.960
environment.

116
05:43.960 --> 05:47.960
So VLAN 10 represented by pink is going to get its own topology.

117
05:47.960 --> 05:50.240
It's going to get its own root.

118
05:50.240 --> 05:54.880
It's going to set its own designated ports and blocking ports.

119
05:54.880 --> 05:58.890
Let's say this port over here is blocking, which means it's going to have its

120
05:58.890 --> 05:59.400
own set

121
05:59.400 --> 06:01.240
of active connections.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

121
05:59.400 --> 06:01.240
of active connections.

122
06:01.240 --> 06:04.080
Meanwhile VLAN 20 is going to do the same thing.

123
06:04.080 --> 06:07.160
It's going to establish this switch as the root.

124
06:07.160 --> 06:11.110
It's going to ignore the fact that it's blocking on VLAN 10 because VLAN 10

125
06:11.110 --> 06:11.640
doesn't

126
06:11.640 --> 06:13.560
impact VLAN 20.

127
06:13.560 --> 06:17.880
VLAN 20 will block one of these connections down here.

128
06:17.880 --> 06:24.440
And therefore we now see that VLAN 20 sort of has this topology and VLAN 10 has

129
06:24.440 --> 06:25.320
a topology

130
06:25.320 --> 06:27.080
that looks like this.

131
06:27.080 --> 06:32.130
So we see that we have two different overlapping topologies within the same
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

131
06:27.080 --> 06:32.130
So we see that we have two different overlapping topologies within the same

132
06:32.130 --> 06:33.560
physical domain.

133
06:33.560 --> 06:38.200
So it's not just one topology, it is many.

134
06:38.200 --> 06:43.440
In fact, it's a one-to-one relationship with VLANs.

135
06:43.440 --> 06:47.160
So if I have 50 VLANs, I have 50 spanning tree topologies.

136
06:47.160 --> 06:52.170
Now some switch hardware will support fewer spanning tree topologies than VLANs

137
06:52.170 --> 06:52.400
and that

138
06:52.400 --> 06:55.340
can get dangerous because we don't want to create a VLAN without a spanning

139
06:55.340 --> 06:56.200
tree topology.

140
06:56.200 --> 07:00.880
But for the most part, it's just going to be this one-to-one relationship.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

140
06:56.200 --> 07:00.880
But for the most part, it's just going to be this one-to-one relationship.

141
07:00.880 --> 07:08.270
Now Cisco liked PVST so much that they created it as the only option on a Cisco

142
07:08.270 --> 07:09.480
switch.

143
07:09.480 --> 07:15.440
And so if you have a Cisco switch, you can only run PVST plus or like we said,

144
07:15.440 --> 07:16.040
rapid

145
07:16.040 --> 07:22.100
PVST plus or a industry standard that came later known as MST, which we'll talk

146
07:22.100 --> 07:22.680
about

147
07:22.680 --> 07:23.920
later.

148
07:23.920 --> 07:31.530
But this version of spanning tree up here became known as common spanning tree
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

148
07:23.920 --> 07:31.530
But this version of spanning tree up here became known as common spanning tree

149
07:31.530 --> 07:32.720
or sometimes

150
07:32.720 --> 07:37.000
abbreviated down to, whoops, CST.

151
07:37.000 --> 07:41.080
So you had common spanning tree and per VLAN spanning tree.

152
07:41.080 --> 07:44.850
Now there is compatibility between these, but generally speaking, we do try to

153
07:44.850 --> 07:45.200
avoid

154
07:45.200 --> 07:48.230
connecting them together because it can result in a lot of issues, at least in

155
07:48.230 --> 07:49.760
the real world.

156
07:49.760 --> 07:53.040
But again, Cisco does not support CST.

157
07:53.040 --> 07:55.960
It's not an option on a Cisco switch.

158
07:55.960 --> 07:59.500
And it's worth noting that some switches like Nexus switches don't even support

159
07:59.500 --> 08:00.160
traditional
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

159
07:59.500 --> 08:00.160
traditional

160
08:00.160 --> 08:06.010
PAVST plus anymore, they require a rapid version, which is between rapid PVST

161
08:06.010 --> 08:06.880
plus and the

162
08:06.880 --> 08:10.360
industry MST, which runs rapid under the hood.

163
08:10.360 --> 08:13.480
Now as a brief aside, why the plus?

164
08:13.480 --> 08:15.600
Where did the plus come from?

165
08:15.600 --> 08:21.720
Well the original PVST, this was actually only for Cisco devices, meaning that

166
08:21.720 --> 08:22.240
there

167
08:22.240 --> 08:28.480
was no compatibility whatsoever with CST.

168
08:28.480 --> 08:34.660
So if I wanted to connect a Cisco PVST switch to a common spanning tree switch,
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

168
08:28.480 --> 08:34.660
So if I wanted to connect a Cisco PVST switch to a common spanning tree switch,

169
08:34.660 --> 08:35.600
this would

170
08:35.600 --> 08:36.600
completely break.

171
08:36.600 --> 08:41.390
It was not doable, whereas PVST plus, like we said, does allow for some amount

172
08:41.390 --> 08:42.600
of compatibility

173
08:42.600 --> 08:45.400
between them, even though we generally don't like to do it.

174
08:45.400 --> 08:48.880
The other thing with PVST was it was ISL only.

175
08:48.880 --> 08:54.590
So we were called during the trunking conversation that the industry landed on

176
08:54.590 --> 08:56.320
802.1q.

177
08:56.320 --> 09:00.840
And so there is no .1q support with the original PVST.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

177
08:56.320 --> 09:00.840
And so there is no .1q support with the original PVST.

178
09:00.840 --> 09:06.130
So PVST plus fixed both of these, it introduced compatibility and it introduced

179
09:06.130 --> 09:07.720
802.1q, just

180
09:07.720 --> 09:12.120
in case you were wondering whatever happened to the original PVST.

181
09:12.120 --> 09:18.470
So now as we wrap up this conversation, we come back to the concept of our

182
09:18.470 --> 09:19.640
designs.

183
09:19.640 --> 09:22.480
Because in the real world, we're going to absolutely take advantage of this.

184
09:22.480 --> 09:27.920
And we're going to see that by creating topologies like this, there is no idle

185
09:27.920 --> 09:29.720
link in the network.

186
09:29.720 --> 09:33.360
Now there's an imbalance for sure, because this link in the middle is going to
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

186
09:29.720 --> 09:33.360
Now there's an imbalance for sure, because this link in the middle is going to

187
09:33.360 --> 09:33.800
have the

188
09:33.800 --> 09:37.680
most traffic, it supports traffic from both VLANs, whereas these links down

189
09:37.680 --> 09:38.240
here each

190
09:38.240 --> 09:40.480
only support a single VLAN.

191
09:40.480 --> 09:44.070
And so there's maybe an imbalance, but at least there aren't any idle links,

192
09:44.070 --> 09:44.760
which helps

193
09:44.760 --> 09:49.300
us cost justify redundancy, especially if it's going to involve expensive links

194
09:49.300 --> 09:49.640
like

195
09:49.640 --> 09:53.400
10 gig or 40 gig, something along those lines.

196
09:53.400 --> 09:57.910
And so we can achieve better efficiency, which is exactly why we wanted to take

197
09:57.910 --> 09:58.640
advantage

198
09:58.640 --> 10:01.320
of multiple topologies in a spanning tree environment.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

198
09:58.640 --> 10:01.320
of multiple topologies in a spanning tree environment.
