WEBVTT

1
00:00.000 --> 00:04.400
Before we jump into the lab and configure UDLD, it's important to know that

2
00:04.400 --> 00:09.000
there are two different modes of deploying this technology.

3
00:09.000 --> 00:14.830
The first of which is known as normal mode, and the second is known as

4
00:14.830 --> 00:17.000
aggressive mode.

5
00:17.000 --> 00:22.060
And generally speaking in production networks, we are going to use aggressive

6
00:22.060 --> 00:24.000
mode more often than not.

7
00:24.000 --> 00:26.000
So what's the difference?

8
00:26.000 --> 00:31.990
Well, when we configure UDLD on a link, we place the configuration on the
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

8
00:26.000 --> 00:31.990
Well, when we configure UDLD on a link, we place the configuration on the

9
00:31.990 --> 00:35.000
interface from one switch's perspective.

10
00:35.000 --> 00:38.600
And in order for UDLD to work, we're going to have to configure it on both

11
00:38.600 --> 00:40.000
sides as we might imagine.

12
00:40.000 --> 00:42.000
Because remember, we're using the echo concept.

13
00:42.000 --> 00:47.070
So if I send a keep alive to the other switch, if it doesn't know to loop it

14
00:47.070 --> 00:50.000
back around, then it's not going to be very useful to me.

15
00:50.000 --> 00:54.000
That doesn't just happen on its own. We need the UDLD running on both sides.

16
00:54.000 --> 00:58.850
But what's going to happen is that the UDLD keep alive is going to get sent out

17
00:58.850 --> 01:01.000
once every 15 seconds.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

17
00:58.850 --> 01:01.000
once every 15 seconds.

18
01:01.000 --> 01:04.000
And we're just making sure that that link stays up.

19
01:04.000 --> 01:09.710
Now, if for any reason we don't get anything back, the question is which mode

20
01:09.710 --> 01:13.000
are we running here as far as what our response is going to be.

21
01:13.000 --> 01:18.700
Normal mode is just going to basically send an informational log message to say

22
01:18.700 --> 01:21.000
, "Hey, something seems up on this link."

23
01:21.000 --> 01:25.000
It's going to place the port into what's known as an undetermined state.

24
01:25.000 --> 01:30.180
And effectively all we're really getting is a log message that says that again,
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

24
01:25.000 --> 01:30.180
And effectively all we're really getting is a log message that says that again,

25
01:30.180 --> 01:32.000
something appears to be wrong.

26
01:32.000 --> 01:36.560
That's why usually in production networks, we're going to want to run

27
01:36.560 --> 01:38.000
aggressive mode.

28
01:38.000 --> 01:44.980
Aggressive mode is going to wait for there to be a miss on some of these keep

29
01:44.980 --> 01:46.000
alive.

30
01:46.000 --> 01:50.190
And so once it is determined that the link has gone down, it's going to

31
01:50.190 --> 01:56.000
actually go into a second, let's call it another mini mode of operation here,

32
01:56.000 --> 02:00.000
where it's going to aggressively try to reform that connection.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

32
01:56.000 --> 02:00.000
where it's going to aggressively try to reform that connection.

33
02:00.000 --> 02:03.000
How exactly does it try to reform the connection?

34
02:03.000 --> 02:09.000
By sending eight keep alive in rapid succession, every second at this point.

35
02:09.000 --> 02:15.000
So we've missed some keep alive, we're saying, "Hey, maybe this link is down."

36
02:15.000 --> 02:19.300
We want to make sure that it is indeed down or it is indeed up one way or the

37
02:19.300 --> 02:20.000
other.

38
02:20.000 --> 02:23.610
Again, every 15 seconds doesn't tell us much. Let's go ahead and send a burst

39
02:23.610 --> 02:24.000
of messages.

40
02:24.000 --> 02:27.000
So we send eight of them every second.

41
02:27.000 --> 02:31.310
And if we don't get anything back at the end of that, we're going to then place
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

41
02:27.000 --> 02:31.310
And if we don't get anything back at the end of that, we're going to then place

42
02:31.310 --> 02:34.000
the port into air disable.

43
02:34.000 --> 02:38.490
As we mentioned, the goal of UDLD is to land an air disable to protect the

44
02:38.490 --> 02:40.000
network from loops.

45
02:40.000 --> 02:44.000
However, it's only aggressive mode that actually lands us in air disable.

46
02:44.000 --> 02:49.000
And so that's why typically we want to configure it for air disable.

47
02:49.000 --> 02:52.000
Now, there's a couple of things to consider with UDLD.

48
02:52.000 --> 02:56.000
First of all is the copper versus fiber conversation.

49
02:56.000 --> 03:00.000
As we might imagine, we're talking about unidirectional communications.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

49
02:56.000 --> 03:00.000
As we might imagine, we're talking about unidirectional communications.

50
03:00.000 --> 03:05.790
And the example we gave in the previous video of maybe fiber strands cracking

51
03:05.790 --> 03:08.000
or one of these types of situations,

52
03:08.000 --> 03:14.620
we probably would expect that fiber is going to have the most benefit from UDLD

53
03:14.620 --> 03:15.000
.

54
03:15.000 --> 03:19.600
After all, copper actually uses link pulses to determine whether or not all of

55
03:19.600 --> 03:21.000
the pairs are connected.

56
03:21.000 --> 03:25.000
However, we can deploy UDLD to both.

57
03:25.000 --> 03:30.000
Just as sort of a fail safe to our fail safes, if we really want to run it
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

57
03:25.000 --> 03:30.000
Just as sort of a fail safe to our fail safes, if we really want to run it

58
03:30.000 --> 03:32.000
across a copper connection,

59
03:32.000 --> 03:34.000
this goal will allow us to do so.

60
03:34.000 --> 03:38.000
Now, what's interesting about UDLD is how it's actually deployed.

61
03:38.000 --> 03:42.000
I mentioned that we want to deploy it to these individual interfaces.

62
03:42.000 --> 03:46.030
And so I can deploy it to an interface and I can deploy it to copper and fiber

63
03:46.030 --> 03:47.000
interfaces.

64
03:47.000 --> 03:51.000
But I can also configure it at a global level.

65
03:51.000 --> 03:56.590
And if I configure it at a global level, it's going to apply to all fiber ports

66
03:56.590 --> 03:57.000
.

67
03:57.000 --> 04:01.000
Yeah, it's not going to apply to copper ports if I enable it globally.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

67
03:57.000 --> 04:01.000
Yeah, it's not going to apply to copper ports if I enable it globally.

68
04:01.000 --> 04:05.400
So that's an important takeaway for us here, is for us to recognize if I wanted

69
04:05.400 --> 04:06.000
on copper ports,

70
04:06.000 --> 04:09.000
I have to manually deploy it to the interface.

71
04:09.000 --> 04:11.650
But if I just wanted on fiber, which is pretty typical, even in production

72
04:11.650 --> 04:12.000
networks,

73
04:12.000 --> 04:16.590
to say I'm going to focus on fiber, then I would deploy it globally to make

74
04:16.590 --> 04:20.000
sure that not only the fiber ports that are there today,

75
04:20.000 --> 04:25.000
but also fiber ports in the future will automatically run UDLD.

76
04:25.000 --> 04:30.210
Alright, let's go ahead and jump into the lab and in our lab, we've got a
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

76
04:25.000 --> 04:30.210
Alright, let's go ahead and jump into the lab and in our lab, we've got a

77
04:30.210 --> 04:32.000
similar topology to what we've used in the past,

78
04:32.000 --> 04:36.000
where we have a triangle of switches, we have switch three,

79
04:36.000 --> 04:39.220
and switch three happens to be the root. That's not going to come into play in

80
04:39.220 --> 04:41.000
this conversation,

81
04:41.000 --> 04:44.000
but it will when we look at loop guard.

82
04:44.000 --> 04:47.730
So one thing we may have noticed by the way in all of this is that UDLD is

83
04:47.730 --> 04:50.000
completely unrelated to spanning tree.

84
04:50.000 --> 04:56.000
Yes, it does block loops from forming by putting a port into air disable,

85
04:56.000 --> 04:59.000
but it doesn't actually tie into the STP process.

86
04:59.000 --> 05:02.320
It doesn't care where the root is, for example. It doesn't care about the flow
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

86
04:59.000 --> 05:02.320
It doesn't care where the root is, for example. It doesn't care about the flow

87
05:02.320 --> 05:03.000
of BP to use.

88
05:03.000 --> 05:07.490
Its job is simply to monitor a link and to shut it down if it goes into a unid

89
05:07.490 --> 05:09.000
irectional mode of operation.

90
05:09.000 --> 05:12.890
And so that's why it doesn't really matter as part of this video where the root

91
05:12.890 --> 05:13.000
is,

92
05:13.000 --> 05:16.000
but at the same time it might be helpful to know.

93
05:16.000 --> 05:21.310
And so we're going to apply UDLD here to switches three and five, that link

94
05:21.310 --> 05:22.000
between the two.

95
05:22.000 --> 05:27.670
And so that's going to be gig two slash one and gig two slash one on both

96
05:27.670 --> 05:29.000
switches.

97
05:29.000 --> 05:33.000
So let's go ahead and configure this on switch three.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

97
05:29.000 --> 05:33.000
So let's go ahead and configure this on switch three.

98
05:33.000 --> 05:37.750
I'm going to do a config T and from here I'll get on to interface gig two slash

99
05:37.750 --> 05:38.000
one.

100
05:38.000 --> 05:42.000
And then UDLD question mark, this is how we configure UDLD.

101
05:42.000 --> 05:45.630
I'm going to require the port command, but when I run question mark one more

102
05:45.630 --> 05:46.000
time,

103
05:46.000 --> 05:50.000
I'm going to find that I can either hit enter to enable normal mode,

104
05:50.000 --> 05:55.670
or I can type out aggressive here, and that's going to enable UDLD aggressive

105
05:55.670 --> 05:56.000
mode,

106
05:56.000 --> 05:58.000
which is again what we typically see.

107
05:58.000 --> 06:04.000
So when I go back out to my configuration prompt here, global exec,
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

107
05:58.000 --> 06:04.000
So when I go back out to my configuration prompt here, global exec,

108
06:04.000 --> 06:09.000
I can just do a show UDLD on an interface like gig two slash one.

109
06:09.000 --> 06:13.000
I can see a lot of information about how often messages are going out

110
06:13.000 --> 06:17.000
and whether we're in aggressive mode, for example, right there.

111
06:17.000 --> 06:19.000
So that's good information.

112
06:19.000 --> 06:25.000
And then also show UDLD neighbors will tell me who's out the other side.

113
06:25.000 --> 06:28.770
Now notice we haven't actually configured this on switch five yet, so we don't

114
06:28.770 --> 06:29.000
see anybody.

115
06:29.000 --> 06:33.980
And it's also important to know that at this point we've sent a bunch of
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

115
06:29.000 --> 06:33.980
And it's also important to know that at this point we've sent a bunch of

116
06:33.980 --> 06:34.000
messages

117
06:34.000 --> 06:37.000
and we haven't gotten anything echoed back.

118
06:37.000 --> 06:42.000
And if I do a show interface on gig two slash one, it's still in an up and up

119
06:42.000 --> 06:42.000
status.

120
06:42.000 --> 06:46.000
So why hasn't UDLD shut anything down yet?

121
06:46.000 --> 06:50.580
Well, fortunately Cisco recognized that if we want to deploy UDLD under a

122
06:50.580 --> 06:51.000
critical link,

123
06:51.000 --> 06:57.000
we didn't want to have to go so fast so as to make sure that UDLD doesn't shut

124
06:57.000 --> 06:57.000
a link

125
06:57.000 --> 07:00.020
down just because we configured it on one end, or maybe a misconfiguration
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

125
06:57.000 --> 07:00.020
down just because we configured it on one end, or maybe a misconfiguration

126
07:00.020 --> 07:02.000
would do that as well.

127
07:02.000 --> 07:07.530
Instead, switch three's UDLD process is going to wait to receive any other

128
07:07.530 --> 07:08.000
message

129
07:08.000 --> 07:11.000
from the other side before it will consider shutting it down.

130
07:11.000 --> 07:14.730
So yeah, it's sending keep-alives right now, and yes, it's not getting anything

131
07:14.730 --> 07:15.000
back,

132
07:15.000 --> 07:20.410
but until we configure UDLD on the other side, switch three is not going to

133
07:20.410 --> 07:21.000
think that

134
07:21.000 --> 07:24.570
there's a need to shut the port down because it hasn't received a keep-alive of

135
07:24.570 --> 07:25.000
its own.

136
07:25.000 --> 07:28.000
So now I'll go to switch five.

137
07:28.000 --> 07:34.000
Let's say config T, interface gig two slash one, and then I can do UDLD port
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

137
07:28.000 --> 07:34.000
Let's say config T, interface gig two slash one, and then I can do UDLD port

138
07:34.000 --> 07:37.000
aggressive.

139
07:37.000 --> 07:41.000
And at this point, let's just go back to switch three and run some of those

140
07:41.000 --> 07:41.000
same commands.

141
07:41.000 --> 07:46.320
So we did a show UDLD on this interface gig two slash one, and now we look at

142
07:46.320 --> 07:47.000
this.

143
07:47.000 --> 07:51.000
We actually see an entry listed here for the neighbor.

144
07:51.000 --> 07:54.000
We're in a current bidirectional state, which is good.

145
07:54.000 --> 07:57.000
We're sending messages every 15 seconds, also good.

146
07:57.000 --> 08:03.360
And then when I do a show UDLD neighbor, we also see the device on the other
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

146
07:57.000 --> 08:03.360
And then when I do a show UDLD neighbor, we also see the device on the other

147
08:03.360 --> 08:04.000
side.

148
08:04.000 --> 08:08.130
So these are very useful commands to validate that UDLD is working like we

149
08:08.130 --> 08:09.000
think it is.

150
08:09.000 --> 08:14.000
And again, we have to just configure this on an interface rather than globally.

151
08:14.000 --> 08:17.000
So in our lab environment, this is all virtual.

152
08:17.000 --> 08:18.000
There's no virtual fiber links.

153
08:18.000 --> 08:20.000
It's all virtual copper links.

154
08:20.000 --> 08:22.000
So we had to do it on the interface.

155
08:22.000 --> 08:26.060
And I wanted to configure it globally in a production real physical type of

156
08:26.060 --> 08:27.000
environment.

157
08:27.000 --> 08:31.000
I can do a config T and then UDLD question mark shows me my options.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

157
08:27.000 --> 08:31.000
I can do a config T and then UDLD question mark shows me my options.

158
08:31.000 --> 08:35.000
I can change the well, first of all, I can set aggressive mode.

159
08:35.000 --> 08:38.000
Interestingly, I'd say, oh, this should be UDLD port.

160
08:38.000 --> 08:43.000
Now it's UDLD enabled in order to configure it in normal mode.

161
08:43.000 --> 08:47.150
And then also I can change message time, like the amount of time that I send my

162
08:47.150 --> 08:48.000
messages.

163
08:48.000 --> 08:53.000
So I could just say UDLD aggressive here.

164
08:53.000 --> 08:56.000
And then it will automatically enable that on fiber ports.

165
08:56.000 --> 08:59.610
And actually it says that enable UDLD protocol in aggressive mode on fiber

166
08:59.610 --> 09:02.000
ports except where locally configured.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

166
08:59.610 --> 09:02.000
ports except where locally configured.

167
09:02.000 --> 09:06.640
So local configuration will always override global configuration, but do notice

168
09:06.640 --> 09:10.000
that this will only go to fiber ports when we configure it globally.
