WEBVTT

1
00:00.000 --> 00:04.760
So at some point we might ask, "Hey, all of these timers are great, but where

2
00:04.760 --> 00:04.960
did they

3
00:04.960 --> 00:06.800
come from?"

4
00:06.800 --> 00:11.810
We've got the "Hello Timer" set at 2 seconds, "Ford Delay" set at 15 seconds, "

5
00:11.810 --> 00:12.320
Max Age"

6
00:12.320 --> 00:14.200
set at 20 seconds.

7
00:14.200 --> 00:17.930
And the reason I need to ask this question is because if I'm going to tune any

8
00:17.930 --> 00:18.360
of these

9
00:18.360 --> 00:24.320
parameters, I need to make sure that we're not causing loops in the network.

10
00:24.320 --> 00:29.750
One of the reality is that these two timers specifically were developed or were

11
00:29.750 --> 00:30.320
decided
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

11
00:29.750 --> 00:30.320
decided

12
00:30.320 --> 00:34.200
upon mathematically based on two parameters.

13
00:34.200 --> 00:39.020
First of all, based on the "Hello Timer" set, and second of all, something that

14
00:39.020 --> 00:39.880
we call

15
00:39.880 --> 00:44.600
the "NetworkDiameter".

16
00:44.600 --> 00:46.240
What is the network diameter?

17
00:46.240 --> 00:49.870
Well, we should probably answer that before we get too much further into this

18
00:49.870 --> 00:50.800
conversation.

19
00:50.800 --> 00:57.380
The network diameter is going to lay out for us how many switches in a row we

20
00:57.380 --> 00:58.120
can have

21
00:58.120 --> 01:02.880
in our network space, including the switch that we start with.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

21
00:58.120 --> 01:02.880
in our network space, including the switch that we start with.

22
01:02.880 --> 01:07.100
So if I'm going to go hop-by-hop through this network, I'm going to find that

23
01:07.100 --> 01:07.760
my network

24
01:07.760 --> 01:10.000
diameter is 4.

25
01:10.000 --> 01:11.880
Again, we include that first one.

26
01:11.880 --> 01:15.320
So 1, 2, 3, and 4.

27
01:15.320 --> 01:23.720
Meanwhile, if I have a square topology like this, then we might say, "Oh, well,

28
01:23.720 --> 01:24.000
my

29
01:24.000 --> 01:28.440
topology or my network diameter is maybe less than that except if I start at

30
01:28.440 --> 01:29.000
any one of

31
01:29.000 --> 01:36.880
these switches, 1, 2, well, starting with this one, 1, 2, 3, and then 4."
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

31
01:29.000 --> 01:36.880
these switches, 1, 2, well, starting with this one, 1, 2, 3, and then 4."

32
01:36.880 --> 01:39.400
So even this topology is still 4.

33
01:39.400 --> 01:42.290
And the best way to envision this is why it happens if one of these redundant

34
01:42.290 --> 01:42.840
links goes

35
01:42.840 --> 01:47.910
down, at that point I can tell that I'm going to have to go the same span, the

36
01:47.910 --> 01:49.800
same diameter.

37
01:49.800 --> 01:56.880
Now what about a situation like this, where now I've got a link in the middle?

38
01:56.880 --> 02:02.690
Well, we could say, "Oh, well, this is good because now I can maybe have a
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

38
01:56.880 --> 02:02.690
Well, we could say, "Oh, well, this is good because now I can maybe have a

39
02:02.690 --> 02:03.840
lower diameter

40
02:03.840 --> 02:08.080
in some capacity, but the problem is that we have to assume a worst-case

41
02:08.080 --> 02:08.960
scenario.

42
02:08.960 --> 02:14.020
Worst-case scenario is we lose our redundant links and we're right back to 1, 2

43
02:14.020 --> 02:15.120
, 3, 4."

44
02:15.120 --> 02:17.960
So kind of an interesting situation here.

45
02:17.960 --> 02:21.580
We more or less have to remove all the loops that could possibly happen in the

46
02:21.580 --> 02:22.400
network,

47
02:22.400 --> 02:26.360
remove all of the redundant links, and at that point figure out what the worst-

48
02:26.360 --> 02:27.160
case scenario

49
02:27.160 --> 02:31.320
is what this true diameter ends up being.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

49
02:27.160 --> 02:31.320
is what this true diameter ends up being.

50
02:31.320 --> 02:33.600
Now notice what else I didn't say in all of this.

51
02:33.600 --> 02:36.160
I did not say that we're starting from the root.

52
02:36.160 --> 02:39.610
In fact, very rarely do we start from the root because the root's actually kind

53
02:39.610 --> 02:40.000
of right

54
02:40.000 --> 02:42.400
in the middle of everything in theory.

55
02:42.400 --> 02:48.620
And so if I've got a topology that's like this, with the root up there in the

56
02:48.620 --> 02:49.400
middle,

57
02:49.400 --> 02:53.650
we might say, "Hey, you know, I've removed the redundant links here, then maybe

58
02:53.650 --> 02:54.360
my diameter

59
02:54.360 --> 02:56.880
is only 3, 1, 2, 3."

60
02:56.880 --> 03:00.680
And it's 3 this way as well, except again, we're not measuring from the root.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

60
02:56.880 --> 03:00.680
And it's 3 this way as well, except again, we're not measuring from the root.

61
03:00.680 --> 03:04.940
We're measuring the maximum length of switches from anyone switch to any other

62
03:04.940 --> 03:05.560
switch, and

63
03:05.560 --> 03:08.160
usually that's an edge switch to another edge switch.

64
03:08.160 --> 03:11.440
In this case, the diameter would be 5.

65
03:11.440 --> 03:14.880
So that is the definition of the network diameter.

66
03:14.880 --> 03:17.320
Back to our conversation about timers.

67
03:17.320 --> 03:22.720
We said this is based on the hello timer as well as the network diameter.

68
03:22.720 --> 03:27.750
So specifically, these values, 15 and 20 seconds, are going to be based on a 2

69
03:27.750 --> 03:30.920
second hello timer
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

69
03:27.750 --> 03:30.920
second hello timer

70
03:30.920 --> 03:38.920
and based on a diameter, believe it or not, of 7 switches.

71
03:38.920 --> 03:44.960
This is a very large diameter, and that creates relatively large timers.

72
03:44.960 --> 03:46.440
So that's kind of interesting.

73
03:46.440 --> 03:49.240
If I look at my network topology down here and say, "Hey, wait a second.

74
03:49.240 --> 03:54.760
I've got a diameter of 5, then maybe I could tune my timers down a little bit."

75
03:54.760 --> 04:02.010
Furthermore, if I change the hello timer, that's also going to change my max
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

75
03:54.760 --> 04:02.010
Furthermore, if I change the hello timer, that's also going to change my max

76
04:02.010 --> 04:02.720
age and

77
04:02.720 --> 04:05.600
my forwarding delay timers as well.

78
04:05.600 --> 04:07.760
Now we might look at that and say, "Okay, that's great."

79
04:07.760 --> 04:12.370
And I'll accept there was a lot of math involved with taking these two

80
04:12.370 --> 04:13.800
parameters, or really

81
04:13.800 --> 04:17.400
these two parameters here, and working our way back.

82
04:17.400 --> 04:20.730
How am I as a network engineer supposed to run all of that math if it's not a

83
04:20.730 --> 04:21.160
simple

84
04:21.160 --> 04:22.160
formula?

85
04:22.160 --> 04:26.660
Regardless of whether it is or is not a simple formula, fortunately for us,

86
04:26.660 --> 04:27.720
Cisco has yet

87
04:27.720 --> 04:28.720
another macro.

88
04:28.720 --> 04:30.760
In fact, it's the same macro.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

88
04:28.720 --> 04:30.760
In fact, it's the same macro.

89
04:30.760 --> 04:34.720
Remember that root or primary command?

90
04:34.720 --> 04:38.160
And for that matter, secondary, either way.

91
04:38.160 --> 04:42.720
As part of this macro, I can now specify the two different parameters.

92
04:42.720 --> 04:50.160
I can specify a diameter and I can specify a hello timer.

93
04:50.160 --> 04:55.520
Now what if my diameter is 5 and I want to change my hello time to 1 second?

94
04:55.520 --> 04:59.600
Well this will drastically improve or reduce, I should say, the timer.

95
04:59.600 --> 05:01.120
It's going to lower the timer.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

95
04:59.600 --> 05:01.120
It's going to lower the timer.

96
05:01.120 --> 05:03.600
So I can enter this end using this macro.

97
05:03.600 --> 05:08.810
Again, this is a macro and the result is it will change for me the hello time,

98
05:08.810 --> 05:09.200
which

99
05:09.200 --> 05:11.440
is nice based on this parameter.

100
05:11.440 --> 05:13.120
It will also calculate.

101
05:13.120 --> 05:23.340
It will do the math for me to figure out the forward delay as well as the max

102
05:23.340 --> 05:24.480
age.

103
05:24.480 --> 05:28.170
Generally speaking, if we are changing the timers, if we want to know what we

104
05:28.170 --> 05:28.920
should change

105
05:28.920 --> 05:34.820
our timers to, we should never or very rarely just change the timers to
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

105
05:28.920 --> 05:34.820
our timers to, we should never or very rarely just change the timers to

106
05:34.820 --> 05:36.240
something that we

107
05:36.240 --> 05:37.720
think might work better.

108
05:37.720 --> 05:42.610
Instead, we should really use this macro to figure out what these values should

109
05:42.610 --> 05:43.080
be.

110
05:43.080 --> 05:48.370
Now I might be in an environment where I've got my root switch set and it's set

111
05:48.370 --> 05:48.960
at 4K

112
05:48.960 --> 05:50.520
and I don't want to run these macros.

113
05:50.520 --> 05:54.720
I don't want to change my backup root configuration whenever the situation is.

114
05:54.720 --> 05:55.840
Well that's fine.

115
05:55.840 --> 06:04.610
I could actually go to a non-root switch, run the macros and see what the
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

115
05:55.840 --> 06:04.610
I could actually go to a non-root switch, run the macros and see what the

116
06:04.610 --> 06:06.280
timers are going

117
06:06.280 --> 06:07.720
to be.

118
06:07.720 --> 06:12.000
I can then take those timers and manually configure those on the root, which

119
06:12.000 --> 06:12.680
will then

120
06:12.680 --> 06:15.840
push the timers to the rest of the network.

121
06:15.840 --> 06:18.400
So I don't have to run this macro on the root switch.

122
06:18.400 --> 06:23.700
Instead, I can run it on any switch, get the values and then use those values

123
06:23.700 --> 06:24.640
on my actual

124
06:24.640 --> 06:26.640
root.

125
06:26.640 --> 06:32.120
So let's take a look in the lab as far as what exactly this looks like.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

125
06:26.640 --> 06:32.120
So let's take a look in the lab as far as what exactly this looks like.

126
06:32.120 --> 06:33.320
So I'm logged in here.

127
06:33.320 --> 06:34.320
I'm on switch one.

128
06:34.320 --> 06:38.000
We see switch one is the root for VLAN one.

129
06:38.000 --> 06:41.960
It's running my hello time of four seconds in my max age of 20 and for delay of

130
06:41.960 --> 06:42.520
15.

131
06:42.520 --> 06:46.800
So if I'm looking at this saying I want to make this as efficient as possible,

132
06:46.800 --> 06:47.260
which

133
06:47.260 --> 06:48.640
timer should I use?

134
06:48.640 --> 06:53.490
Well, we can go to any other switch in the environment like switch two here and

135
06:53.490 --> 06:54.000
run one

136
06:54.000 --> 06:55.000
of those macros.

137
06:55.000 --> 06:59.440
So I can say spanning tree VLAN one doesn't even have to be VLAN one really.

138
06:59.440 --> 07:02.910
And then I can run a question mark and then we see that I've got that root
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

138
06:59.440 --> 07:02.910
And then I can run a question mark and then we see that I've got that root

139
07:02.910 --> 07:03.480
macro.

140
07:03.480 --> 07:04.920
So then I run question mark.

141
07:04.920 --> 07:07.250
Let's just say I'm going to run the secondary command because I don't want to

142
07:07.250 --> 07:07.920
be disruptive.

143
07:07.920 --> 07:10.280
I don't want to actually take over as the root.

144
07:10.280 --> 07:12.120
And now we see that diameter command.

145
07:12.120 --> 07:17.970
So I can say diameter and this network is let's say diameter five question mark

146
07:17.970 --> 07:18.540
again.

147
07:18.540 --> 07:21.680
We can see that could specify the hello time.

148
07:21.680 --> 07:24.400
And let's just go ahead and say it's two seconds.

149
07:24.400 --> 07:29.760
So now what I've done is I have changed my local timer values.

150
07:29.760 --> 07:34.150
So if I do show spanning tree VLAN one, we'll see that my local value is two
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

150
07:29.760 --> 07:34.150
So if I do show spanning tree VLAN one, we'll see that my local value is two

151
07:34.150 --> 07:34.920
seconds for

152
07:34.920 --> 07:39.440
hello and notice the max age has shrunk and the four delay has shrunk.

153
07:39.440 --> 07:43.800
Now the network is still using whatever the root says, but I now have my values

154
07:43.800 --> 07:44.240
that I

155
07:44.240 --> 07:47.960
can configure on the root if I want to tune this environment.

156
07:47.960 --> 07:50.560
So two, 16 and 12.

157
07:50.560 --> 07:55.640
So I come back to switch one config T spanning tree VLAN one.

158
07:55.640 --> 07:57.240
I see that I've got my options here.

159
07:57.240 --> 08:01.240
So I'm going to set a hello time of two seconds.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

159
07:57.240 --> 08:01.240
So I'm going to set a hello time of two seconds.

160
08:01.240 --> 08:05.680
I'm going to set a max age of 16 seconds.

161
08:05.680 --> 08:12.320
And then I will set my forward time to it was 12 seconds, I believe, right?

162
08:12.320 --> 08:13.320
Right.

163
08:13.320 --> 08:14.320
Okay.

164
08:14.320 --> 08:15.320
So here we go.

165
08:15.320 --> 08:18.070
I have configured and tuned my network using the macro, even though I didn't

166
08:18.070 --> 08:18.640
use the macro

167
08:18.640 --> 08:19.680
on the root switch.

168
08:19.680 --> 08:24.080
So I come back here to switch to I do a show spanning tree VLAN one.

169
08:24.080 --> 08:28.080
And now we do see that the root is propagating the very values that I

170
08:28.080 --> 08:29.360
calculated here by

171
08:29.360 --> 08:30.520
using the macro.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

171
08:29.360 --> 08:30.520
using the macro.

172
08:30.520 --> 08:33.280
So the macro is very useful for us for tuning timers.

173
08:33.280 --> 08:36.560
And if we don't want to use it for setting the root priority, it can absolutely

174
08:36.560 --> 08:36.840
give

175
08:36.840 --> 08:40.240
us what we need when it comes to figuring out the most efficient way to deploy

176
08:40.240 --> 08:40.680
spanning

177
08:40.680 --> 08:42.320
tree timers into our environment.
