WEBVTT

1
00:00.000 --> 00:05.040
We know that spanning true protocols going to start by establishing a root

2
00:05.040 --> 00:06.280
bridge.

3
00:06.280 --> 00:09.040
And we might say, okay, well, cool, these links are probably going to stay

4
00:09.040 --> 00:09.520
online.

5
00:09.520 --> 00:11.420
But what do we do with this link?

6
00:11.420 --> 00:13.800
We know we need to block a port, but is it on this side?

7
00:13.800 --> 00:15.240
Is it on this side?

8
00:15.240 --> 00:19.230
And so in order to start having that conversation, we need to understand how

9
00:19.230 --> 00:20.520
exactly the different

10
00:20.520 --> 00:22.520
ports can operate.

11
00:22.520 --> 00:26.000
And it starts with the concept of port roles.

12
00:26.000 --> 00:31.360
For now, we're going to assume, in this case, that this link on switch three is
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

12
00:26.000 --> 00:31.360
For now, we're going to assume, in this case, that this link on switch three is

13
00:31.360 --> 00:31.920
going to

14
00:31.920 --> 00:32.920
be blocked.

15
00:32.920 --> 00:35.080
It gets placed into the blocking state.

16
00:35.080 --> 00:38.680
We'll be talking about the states in more detail in the next video.

17
00:38.680 --> 00:42.510
But at this point, if it's blocking, we can understand that any traffic that's

18
00:42.510 --> 00:43.040
received

19
00:43.040 --> 00:45.080
is going to get dropped.

20
00:45.080 --> 00:48.950
And so we do prevent the loop in this case, making it so this link and this

21
00:48.950 --> 00:49.840
link are truly

22
00:49.840 --> 00:52.480
the only ones that are active in the environment.

23
00:52.480 --> 00:55.440
And we can see how that's loop free.

24
00:55.440 --> 01:01.040
And each one of these ports is operating in a particular role.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

24
00:55.440 --> 01:01.040
And each one of these ports is operating in a particular role.

25
01:01.040 --> 01:04.450
And this is what's going to lead us to determining the topology that we're kind

26
01:04.450 --> 01:05.720
of working our

27
01:05.720 --> 01:07.360
way backwards from.

28
01:07.360 --> 01:09.760
So let's go and start with the definition of port roles.

29
01:09.760 --> 01:11.840
There are three primary port roles.

30
01:11.840 --> 01:17.520
We have the root port, which can be called the RP.

31
01:17.520 --> 01:25.480
We have a designated port, which can be called a DP.

32
01:25.480 --> 01:31.600
And then we also have a non-designated port.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

32
01:25.480 --> 01:31.600
And then we also have a non-designated port.

33
01:31.600 --> 01:36.320
And sometimes these are called blocked ports.

34
01:36.320 --> 01:39.120
So we'll see it called that way by engineers.

35
01:39.120 --> 01:41.120
We'll see it this way in documentation.

36
01:41.120 --> 01:45.280
But sometimes we'll be referred to as NDPs for non-designated ports.

37
01:45.280 --> 01:49.120
And sometimes we might see it as BP or a blocked port.

38
01:49.120 --> 01:53.750
So we can look at this and probably assume that this port here is running as a

39
01:53.750 --> 01:54.320
blocked

40
01:54.320 --> 01:56.040
port.

41
01:56.040 --> 01:57.920
And that would be the case.

42
01:57.920 --> 01:59.440
But what about the other ports?

43
01:59.440 --> 02:01.840
I mean, they're all forwarding traffic.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

43
01:59.440 --> 02:01.840
I mean, they're all forwarding traffic.

44
02:01.840 --> 02:05.400
What's the difference between these other two port roles?

45
02:05.400 --> 02:07.560
Well, let's go ahead and take a look at that.

46
02:07.560 --> 02:09.560
So first of all, the root port.

47
02:09.560 --> 02:16.490
The root port is going to be my upstream port, which means that it's going

48
02:16.490 --> 02:19.800
towards the root.

49
02:19.800 --> 02:24.040
When I look at things from Switch3's perspective, we could look at Switch3 and

50
02:24.040 --> 02:24.920
say, OK, this

51
02:24.920 --> 02:27.200
is my downstream direction.

52
02:27.200 --> 02:30.770
But if I look at it from a tree perspective, I realize I've got two different
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

52
02:27.200 --> 02:30.770
But if I look at it from a tree perspective, I realize I've got two different

53
02:30.770 --> 02:31.360
upstream

54
02:31.360 --> 02:33.720
paths to get to the root.

55
02:33.720 --> 02:34.720
Because that's what I'm trying to do.

56
02:34.720 --> 02:38.640
I'm trying to figure out how do I get to the root in a loop-free way.

57
02:38.640 --> 02:42.520
So if I have two different upstreams, that's going to be the big red flag.

58
02:42.520 --> 02:47.720
I'm going to know that I'm going to identify the port that has the least cost.

59
02:47.720 --> 02:50.000
This is my best path to the root.

60
02:50.000 --> 02:52.960
And I'm going to call this my root port.

61
02:52.960 --> 02:54.440
Well, Switch3 is going to do the same thing.

62
02:54.440 --> 02:59.840
It's going to see that it has its best connection to the root this way.

63
02:59.840 --> 03:04.800
And so it identifies this port as the root port for itself.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

63
02:59.840 --> 03:04.800
And so it identifies this port as the root port for itself.

64
03:04.800 --> 03:10.000
We're only going to have a single root port on any given switch.

65
03:10.000 --> 03:12.480
It is the only upstream port we're going to use.

66
03:12.480 --> 03:16.200
We're going to block all the other upstream ports if any of them exist.

67
03:16.200 --> 03:20.370
Other upstream ports will become non-designated ports, which is exactly what

68
03:20.370 --> 03:21.400
happened here.

69
03:21.400 --> 03:26.760
My other upstream path to the root is what gets blocked.

70
03:26.760 --> 03:32.320
And this is how we form the loop-free trees.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

70
03:26.760 --> 03:32.320
And this is how we form the loop-free trees.

71
03:32.320 --> 03:33.320
So that's great.

72
03:33.320 --> 03:35.080
This is a designated port.

73
03:35.080 --> 03:39.640
Well, a designated port is a downstream port.

74
03:39.640 --> 03:45.320
So if my root port is upstream, my designated port is downstream.

75
03:45.320 --> 03:50.310
Now we see right away that the root port should have all downstream ports,

76
03:50.310 --> 03:50.720
which means it's

77
03:50.720 --> 03:53.840
going to have all designated ports kind of interesting.

78
03:53.840 --> 04:00.000
So I can immediately assign these ports to be in the designated port role.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

78
03:53.840 --> 04:00.000
So I can immediately assign these ports to be in the designated port role.

79
04:00.000 --> 04:04.450
But down here with switch 2, we know that I'm going to see this as being a

80
04:04.450 --> 04:05.320
downstream

81
04:05.320 --> 04:06.640
path.

82
04:06.640 --> 04:09.060
So because this is considered to be downstream, I'm going to place this into a

83
04:09.060 --> 04:09.560
designated

84
04:09.560 --> 04:10.920
port status.

85
04:10.920 --> 04:13.890
And then on the other side, we're going to call this either a blocked port or

86
04:13.890 --> 04:14.240
we could

87
04:14.240 --> 04:15.960
call it a non-designated port.

88
04:15.960 --> 04:18.520
Again, either of those terms works.

89
04:18.520 --> 04:22.160
Switch 3 has to block that interface.

90
04:22.160 --> 04:25.900
Now there's a few takeaways from this conversation that we're going to want to

91
04:25.900 --> 04:26.960
keep in mind because

92
04:26.960 --> 04:30.260
they'll help us when we're trying to figure out which ports would be blocked in
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

92
04:26.960 --> 04:30.260
they'll help us when we're trying to figure out which ports would be blocked in

93
04:30.260 --> 04:30.720
a spanning

94
04:30.720 --> 04:32.280
tree topology.

95
04:32.280 --> 04:38.680
First and foremost, the root bridge is going to only have designated ports.

96
04:38.680 --> 04:42.240
We already said that, but it's worth pointing out here.

97
04:42.240 --> 04:48.460
Now additionally, when I look at a root bridge here, so the root bridge is

98
04:48.460 --> 04:49.560
going to have

99
04:49.560 --> 04:58.040
a DP and the DP is going to connect to another root port.

100
04:58.040 --> 04:59.480
This is in most cases.

101
04:59.480 --> 05:03.070
There will be some really oddball scenarios where this doesn't happen, but we
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

101
04:59.480 --> 05:03.070
There will be some really oddball scenarios where this doesn't happen, but we

102
05:03.070 --> 05:03.400
already

103
05:03.400 --> 05:04.400
see that.

104
05:04.400 --> 05:08.000
We see that my designated port here connects to a root port down here.

105
05:08.000 --> 05:11.520
My designated port here connects to a root port down here.

106
05:11.520 --> 05:14.400
This could change if this is a really bad link.

107
05:14.400 --> 05:19.200
Maybe this is 10 meg and these over here are 100 meg, something like that.

108
05:19.200 --> 05:22.780
At that point, we would probably prefer to go the other way and this wouldn't

109
05:22.780 --> 05:23.080
be my

110
05:23.080 --> 05:27.720
root port at that point, but we'll get into costs and figuring that all out.

111
05:27.720 --> 05:31.580
In this topology, we're just sort of assuming all of these links are created
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

111
05:27.720 --> 05:31.580
In this topology, we're just sort of assuming all of these links are created

112
05:31.580 --> 05:31.960
equal.

113
05:31.960 --> 05:35.740
So at that point, the root bridge's designated port is going to connect to

114
05:35.740 --> 05:36.640
other bridges

115
05:36.640 --> 05:38.840
root ports.

116
05:38.840 --> 05:46.210
Now another takeaway is that a DP, a designated port, cannot communicate with

117
05:46.210 --> 05:47.680
another designated

118
05:47.680 --> 05:48.680
port.

119
05:48.680 --> 05:52.880
Remember, designated port implies downstream and that's one of the biggest take

120
05:52.880 --> 05:53.360
aways from

121
05:53.360 --> 05:54.520
this conversation.

122
05:54.520 --> 05:58.360
A root port implies upstream, designated port implies downstream.

123
05:58.360 --> 06:01.920
We can't both be sending downstream to one another.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

123
05:58.360 --> 06:01.920
We can't both be sending downstream to one another.

124
06:01.920 --> 06:05.320
One of these interfaces has to be considered to be upstream.

125
06:05.320 --> 06:12.550
So a designated port will always communicate either downstream to a root port,

126
06:12.550 --> 06:13.160
which remember,

127
06:13.160 --> 06:17.770
root port is upstream, or a designated port will communicate to a non-design

128
06:17.770 --> 06:18.560
ated port,

129
06:18.560 --> 06:23.090
which is also upstream, which makes sense because again, these are going to be

130
06:23.090 --> 06:23.880
considered

131
06:23.880 --> 06:24.880
downstream.

132
06:24.880 --> 06:29.400
Now also notice in all of this that only one side of a link gets blocked.

133
06:29.400 --> 06:31.680
We're not just blocking this whole link.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

133
06:29.400 --> 06:31.680
We're not just blocking this whole link.

134
06:31.680 --> 06:36.560
We're only blocking this port, meaning that this switch right here, this

135
06:36.560 --> 06:37.880
designated port,

136
06:37.880 --> 06:39.640
is treated as normal.

137
06:39.640 --> 06:43.770
If a broadcast packet comes in to the switch to from a host, it's going to send

138
06:43.770 --> 06:44.160
it out

139
06:44.160 --> 06:45.280
this link.

140
06:45.280 --> 06:47.600
It's also going to send it out this link.

141
06:47.600 --> 06:52.060
It doesn't care or otherwise it doesn't impact it whether or not the downstream

142
06:52.060 --> 06:52.960
port is blocking

143
06:52.960 --> 06:54.040
or not.

144
06:54.040 --> 06:57.820
This harkens back to the days where we could have had a hub in here, which has

145
06:57.820 --> 06:58.480
additional

146
06:58.480 --> 06:59.680
hosts.

147
06:59.680 --> 07:02.760
If we have a hub that has hosts hanging off of it, then we still need to get
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

147
06:59.680 --> 07:02.760
If we have a hub that has hosts hanging off of it, then we still need to get

148
07:02.760 --> 07:03.600
those broadcast

149
07:03.600 --> 07:08.820
packets to those hosts, even though switch three is going to end up blocking it

150
07:08.820 --> 07:08.880
.

151
07:08.880 --> 07:13.760
So that behavior doesn't change even in a point-to-point switch-based world.

152
07:13.760 --> 07:18.200
Now one last conversation, recall that the root bridge creates BP DU's and

153
07:18.200 --> 07:18.880
sends them

154
07:18.880 --> 07:19.880
out.

155
07:19.880 --> 07:22.880
It's going to send them out by default every two seconds.

156
07:22.880 --> 07:24.920
Well these BP DU's flow downstream.

157
07:24.920 --> 07:30.200
So the BP DU flows this way and the BP DU flows this way.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

157
07:24.920 --> 07:30.200
So the BP DU flows this way and the BP DU flows this way.

158
07:30.200 --> 07:32.480
So what happens between switch two and three?

159
07:32.480 --> 07:34.840
Well again, upstream and downstream.

160
07:34.840 --> 07:39.380
If we're flowing downstream, that means that switch two is going to send a BP

161
07:39.380 --> 07:40.000
DU to switch

162
07:40.000 --> 07:41.000
three.

163
07:41.000 --> 07:45.720
If we send that broadcast message across, it's going to send the BP DU across.

164
07:45.720 --> 07:50.900
And the regular receiving of BP DU's is what keeps this port in a blocked state

165
07:50.900 --> 07:50.960
.

166
07:50.960 --> 07:54.460
If the BP DU stops showing up, well switch three is going to say, "Alright,

167
07:54.460 --> 07:55.160
well clearly

168
07:55.160 --> 07:58.560
you're not a path to the root, so I'm going to bring you out of being in a

169
07:58.560 --> 07:59.520
blocking state,

170
07:59.520 --> 08:01.880
which can be really, really bad."
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

170
07:59.520 --> 08:01.880
which can be really, really bad."

171
08:01.880 --> 08:07.120
But the flow of BP DU's, the constant flow of BP DU's, this is what maintains

172
08:07.120 --> 08:08.440
our topology.

173
08:08.440 --> 08:11.910
Even when they're received on blocked ports, they are processed and that again

174
08:11.910 --> 08:12.280
is what

175
08:12.280 --> 08:14.600
keeps that port in a blocked role.

176
08:14.600 --> 08:18.880
But because of that and because of the fact that BP DU's always flow downstream

177
08:18.880 --> 08:19.280
, that

178
08:19.280 --> 08:27.280
means that BP DU's are only ever going to be sent on designated ports.

179
08:27.280 --> 08:30.090
They're never sent on root ports because that's upstream and they're never sent
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

179
08:27.280 --> 08:30.090
They're never sent on root ports because that's upstream and they're never sent

180
08:30.090 --> 08:30.200
on

181
08:30.200 --> 08:31.920
blocked ports because that's upstream.
