WEBVTT

1
00:00.000 --> 00:05.540
If you're working your way through this course, then you just saw us talk about

2
00:05.540 --> 00:06.120
the concept

3
00:06.120 --> 00:10.080
of static ether channels and potentially the flaws with them.

4
00:10.080 --> 00:13.780
Specifically, if I have four connections between these two switches and I just

5
00:13.780 --> 00:14.080
want

6
00:14.080 --> 00:18.220
to statically configure these ports to operate in a port channel, then I have

7
00:18.220 --> 00:18.880
to get onto

8
00:18.880 --> 00:24.120
every one of these interfaces and specify that I want them to run in mode on.

9
00:24.120 --> 00:27.280
We'll see this in the lab here coming up and I have to do that on the other

10
00:27.280 --> 00:28.560
side as well.

11
00:28.560 --> 00:31.000
This is a manual configuration at this point.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

11
00:28.560 --> 00:31.000
This is a manual configuration at this point.

12
00:31.000 --> 00:34.000
There's not going to be any negotiation between the switches.

13
00:34.000 --> 00:38.260
They are simply going to trust my configuration as if I'm telling them to run

14
00:38.260 --> 00:39.160
in trunk mode

15
00:39.160 --> 00:41.200
or something like that.

16
00:41.200 --> 00:45.000
If I make a mistake because I don't have these switches right in front of me or

17
00:45.000 --> 00:45.640
something

18
00:45.640 --> 00:49.680
like that, maybe one of them is far away in a different location.

19
00:49.680 --> 00:50.840
I can see these four.

20
00:50.840 --> 00:55.430
I physically got right, but I accidentally configured maybe these four

21
00:55.430 --> 00:57.440
interfaces or maybe somebody

22
00:57.440 --> 01:01.980
miscable that for me when I asked them to go do it or whatever the situation is
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

22
00:57.440 --> 01:01.980
miscable that for me when I asked them to go do it or whatever the situation is

23
01:01.980 --> 01:02.160
.

24
01:02.160 --> 01:05.850
Either way, we see that assuming this port over here is just in a disabled

25
01:05.850 --> 01:06.720
state, maybe

26
01:06.720 --> 01:08.200
there's no connection there.

27
01:08.200 --> 01:14.120
Either way, I think I put four ports into the bundle on both sides and indeed I

28
01:14.120 --> 01:14.760
did, but

29
01:14.760 --> 01:19.810
we see that while the top switch is configured correctly, the bottom switch

30
01:19.810 --> 01:20.840
only put three

31
01:20.840 --> 01:22.200
of these together.

32
01:22.200 --> 01:27.370
We actually have a mismatched bundle here where the top is truly bundling all

33
01:27.370 --> 01:28.000
four and the

34
01:28.000 --> 01:32.490
bottom is only bundling three, meaning that if I get a broadcast packet in, I'm
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

34
01:28.000 --> 01:32.490
bottom is only bundling three, meaning that if I get a broadcast packet in, I'm

35
01:32.490 --> 01:32.960
going

36
01:32.960 --> 01:36.700
to not only send it out the port channel here, but I'm also going to send it

37
01:36.700 --> 01:37.880
out this link

38
01:37.880 --> 01:39.160
over here.

39
01:39.160 --> 01:44.950
Furthermore, if we have a situation where I get a broadcast on the other side

40
01:44.950 --> 01:45.560
and that

41
01:45.560 --> 01:49.360
broadcast gets load balanced and gets sent out this link, then I'm going to

42
01:49.360 --> 01:49.920
take that

43
01:49.920 --> 01:53.850
and turn it around and send it right back out the same port channel, which

44
01:53.850 --> 01:54.960
could potentially

45
01:54.960 --> 01:56.960
create a loop in this case.

46
01:56.960 --> 02:01.300
If once the broadcast is received, the hash says to go right back out the same
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

46
01:56.960 --> 02:01.300
If once the broadcast is received, the hash says to go right back out the same

47
02:01.300 --> 02:02.360
interface,

48
02:02.360 --> 02:05.560
we can see the problems that are going to be generated here.

49
02:05.560 --> 02:11.760
So this is what happens if we configure it manually and it's not necessarily a

50
02:11.760 --> 02:12.360
bad thing

51
02:12.360 --> 02:17.530
to use static configuration like this, but it does leave a little bit to chance

52
02:17.530 --> 02:17.680
.

53
02:17.680 --> 02:22.200
There's the possibility of misconfigurations and we're going to have to be very

54
02:22.200 --> 02:22.800
careful

55
02:22.800 --> 02:28.680
and very clear with our configs to make sure that we avoid this situation.

56
02:28.680 --> 02:34.050
Now, a solution was developed and once again, as we say, this is as old as time
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

56
02:28.680 --> 02:34.050
Now, a solution was developed and once again, as we say, this is as old as time

57
02:34.050 --> 02:35.280
, Cisco created

58
02:35.280 --> 02:41.220
a negotiation protocol that we said is the port aggregation protocol or PAGP

59
02:41.220 --> 02:42.520
and eventually

60
02:42.520 --> 02:47.320
the industry and specifically, in this case, the IEEE, which is a standards

61
02:47.320 --> 02:49.520
creating organization,

62
02:49.520 --> 02:57.290
they created something that we call the link aggregation control protocol or L

63
02:57.290 --> 02:58.080
ACP.

64
02:58.080 --> 03:01.080
And so this is what the industry likes to use.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

64
02:58.080 --> 03:01.080
And so this is what the industry likes to use.

65
03:01.080 --> 03:06.660
And even though PAGP is supported on iOS XE, we typically are going to find

66
03:06.660 --> 03:07.960
that we still

67
03:07.960 --> 03:10.960
favor, in most cases, using LACP.

68
03:10.960 --> 03:15.240
In fact, Cisco makes some devices that only support LACP and they don't even

69
03:15.240 --> 03:16.240
support their

70
03:16.240 --> 03:18.240
own aging protocol.

71
03:18.240 --> 03:24.560
So this LACP is typically what we're going to see with our configurations.

72
03:24.560 --> 03:30.410
Now once again, we do the exact same configuration where I do properly get the
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

72
03:24.560 --> 03:30.410
Now once again, we do the exact same configuration where I do properly get the

73
03:30.410 --> 03:32.000
LACP configuration

74
03:32.000 --> 03:36.080
on all four ports up here and I only put them on the three down here.

75
03:36.080 --> 03:40.170
Well, at this point, we're only going to see negotiations successful on these

76
03:40.170 --> 03:41.120
three links.

77
03:41.120 --> 03:44.490
And on this link here, where the misconfiguration happened on the other side,

78
03:44.490 --> 03:45.200
we're going to

79
03:45.200 --> 03:50.440
see that there is no LACP messaging coming inbound.

80
03:50.440 --> 03:54.920
And because there's no LACP messaging, that means I'm going to disable that

81
03:54.920 --> 03:55.560
port or at

82
03:55.560 --> 03:59.560
least remove it from the bundle and treat it like it's an independent port.

83
03:59.560 --> 04:03.760
This prevents all of my loops that could form because now instead of having
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

83
03:59.560 --> 04:03.760
This prevents all of my loops that could form because now instead of having

84
04:03.760 --> 04:04.440
three on the

85
04:04.440 --> 04:08.730
bottom and four on the top, we have three on the bottom and three on the top,

86
04:08.730 --> 04:08.960
thanks

87
04:08.960 --> 04:11.640
to LACP.

88
04:11.640 --> 04:16.480
Now configuration is kind of interesting when we're looking at how to configure

89
04:16.480 --> 04:17.000
LACP and

90
04:17.000 --> 04:19.520
we'll go and take a look at PAGP as well.

91
04:19.520 --> 04:22.800
We mentioned already this concept of mode on.

92
04:22.800 --> 04:30.640
So if I want to configure from a static perspective, I would use mode on.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

92
04:22.800 --> 04:30.640
So if I want to configure from a static perspective, I would use mode on.

93
04:30.640 --> 04:34.360
And what we'll find is as we look at these other two protocols that this mode

94
04:34.360 --> 04:34.760
syntax

95
04:34.760 --> 04:38.760
is still going to be there, I'm just going to change what mode it's running in.

96
04:38.760 --> 04:42.600
And so LACP gives us two modes of operations.

97
04:42.600 --> 04:48.840
We can run in mode active and we can run in mode passive.

98
04:48.840 --> 04:53.720
PAGP has something similar.

99
04:53.720 --> 04:57.180
And in fact, this will sound familiar if you're working away through this

100
04:57.180 --> 04:58.160
course sequentially

101
04:58.160 --> 05:02.160
because once again, we just talked about trunking and DTP.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

101
04:58.160 --> 05:02.160
because once again, we just talked about trunking and DTP.

102
05:02.160 --> 05:07.840
And since DTP was created by Cisco, they use the same terms for PAGP.

103
05:07.840 --> 05:14.900
Specifically, instead of mode active and passive, they use that desirable

104
05:14.900 --> 05:15.240
phrase and

105
05:15.240 --> 05:17.600
then also auto.

106
05:17.600 --> 05:19.280
Auto.

107
05:19.280 --> 05:21.400
So desirable and auto.

108
05:21.400 --> 05:26.320
Now just like with our trunking configuration, if I have active on one side and

109
05:26.320 --> 05:27.120
passive on

110
05:27.120 --> 05:33.440
the other, then we'll be fine because this means I'm going to initialize a
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

110
05:27.120 --> 05:33.440
the other, then we'll be fine because this means I'm going to initialize a

111
05:33.440 --> 05:35.000
connection.

112
05:35.000 --> 05:37.760
Passive means I'm going to allow it.

113
05:37.760 --> 05:39.400
Same thing down here with desirable.

114
05:39.400 --> 05:40.840
Desirable is init.

115
05:40.840 --> 05:43.360
Auto is allow.

116
05:43.360 --> 05:47.740
So what we're going to do here is say that if I have an active on passive on

117
05:47.740 --> 05:48.520
two opposite

118
05:48.520 --> 05:53.680
sides, because I initiate and because I allow, this creates a connection.

119
05:53.680 --> 05:57.040
Passive active will create a connection as well.

120
05:57.040 --> 06:01.410
And lastly, if I have passive on one side and passive on the other, this is
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

120
05:57.040 --> 06:01.410
And lastly, if I have passive on one side and passive on the other, this is

121
06:01.410 --> 06:02.040
going to

122
06:02.040 --> 06:05.860
place both of them in a state where they'll allow one, but they won't initiate

123
06:05.860 --> 06:06.920
the connection.

124
06:06.920 --> 06:09.040
So we don't create a connection here.

125
06:09.040 --> 06:12.040
So check on the left, check in the middle.

126
06:12.040 --> 06:13.480
No check on the right.

127
06:13.480 --> 06:17.920
If we have passive on both sides, we will not add a link into a bundle.

128
06:17.920 --> 06:19.760
Desirable and auto is going to be the same way.

129
06:19.760 --> 06:24.190
And again, this reflects the trunk configuration desirable and auto will create

130
06:24.190 --> 06:25.480
a connection.

131
06:25.480 --> 06:27.680
Desirable and desirable will create a connection.

132
06:27.680 --> 06:31.680
Meanwhile, if I have auto and auto, they will not form a connection because
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

132
06:27.680 --> 06:31.680
Meanwhile, if I have auto and auto, they will not form a connection because

133
06:31.680 --> 06:32.360
they're both

134
06:32.360 --> 06:36.280
waiting for the other side to initiate.

135
06:36.280 --> 06:41.320
Now when we look at LACP and PAGP allows this to or enables this as well, but

136
06:41.320 --> 06:42.000
we're going

137
06:42.000 --> 06:45.080
to focus in on LACP moving forward.

138
06:45.080 --> 06:51.180
LACP is going to allow us not just to have some amount of misconfiguration

139
06:51.180 --> 06:52.360
protection,

140
06:52.360 --> 06:56.090
which is huge because once again, we've seen that we can create loops with mis

141
06:56.090 --> 06:56.840
configured

142
06:56.840 --> 07:03.320
ether channels, but also it's going to allow for self healing.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

142
06:56.840 --> 07:03.320
ether channels, but also it's going to allow for self healing.

143
07:03.320 --> 07:08.110
If a link were to go down, we can replace that link if we have another one on

144
07:08.110 --> 07:08.760
standby

145
07:08.760 --> 07:10.840
or in a backup status.

146
07:10.840 --> 07:18.270
So LACP actually allows an iOSXE to support up to 16 links total, but only

147
07:18.270 --> 07:19.600
eight of them

148
07:19.600 --> 07:21.800
can be active.

149
07:21.800 --> 07:25.460
So we were talking about how we can only have eight in a port channel and yeah,

150
07:25.460 --> 07:25.760
we can

151
07:25.760 --> 07:29.470
have eight actively in a bundle, but we can technically configure eight more to

152
07:29.470 --> 07:29.760
be on

153
07:29.760 --> 07:32.320
standby, which is probably excessive.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

153
07:29.760 --> 07:32.320
standby, which is probably excessive.

154
07:32.320 --> 07:36.840
So this would be what we call an N plus N level of redundancy.

155
07:36.840 --> 07:40.000
If I have eight active links, I have eight on standby.

156
07:40.000 --> 07:45.020
Then we might go with something like N plus one or N plus two, where I have one

157
07:45.020 --> 07:45.520
extra link

158
07:45.520 --> 07:48.720
on backup or potentially two extra links on backup.

159
07:48.720 --> 07:52.930
This would be a great way to protect a mission critical type of connection

160
07:52.930 --> 07:54.440
between two switches,

161
07:54.440 --> 07:55.760
maybe two core switches.

162
07:55.760 --> 07:59.980
I create all of my active connections and then I create as many backup links as

163
07:59.980 --> 08:01.240
I desire,
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

163
07:59.980 --> 08:01.240
I desire,

164
08:01.240 --> 08:07.720
but this will require using LACP because as a negotiation protocol, that's what

165
08:07.720 --> 08:08.200
's going

166
08:08.200 --> 08:14.450
to be required in order to manage the dynamic addition and removal of links in

167
08:14.450 --> 08:15.600
the bundle.

168
08:15.600 --> 08:20.640
And so using static or mode on here, that's not going to allow for us to

169
08:20.640 --> 08:22.080
dynamically adapt

170
08:22.080 --> 08:25.920
to whatever situation might be occurring.

171
08:25.920 --> 08:29.630
So in this case, what we've got now is we've got a couple of switches, one, two

172
08:29.630 --> 08:30.480
, three,
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

172
08:29.630 --> 08:30.480
, three,

173
08:30.480 --> 08:33.720
four, five, six, seven, eight, eight different connections.

174
08:33.720 --> 08:40.160
And then I add a couple of additional backup connections over here.

175
08:40.160 --> 08:42.800
Now when LACP comes up, there's going to be an election.

176
08:42.800 --> 08:46.280
One of these nodes is going to be the master LACP node.

177
08:46.280 --> 08:51.380
This is going to be based on a configured system ID, which consists just like a

178
08:51.380 --> 08:52.080
spanning

179
08:52.080 --> 08:59.180
tree actually, consists of a priority plus the MAC address and the lower number

180
08:59.180 --> 08:59.520
wins.

181
08:59.520 --> 09:05.880
The default priority on a Cisco device is going to be that 3278 number.
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

181
08:59.520 --> 09:05.880
The default priority on a Cisco device is going to be that 3278 number.

182
09:05.880 --> 09:08.400
And so you can call it 32K if we want.

183
09:08.400 --> 09:11.320
And this is default on all iOSX devices.

184
09:11.320 --> 09:14.420
So if I wanted one of these to be in charge, then I could pick that, but this

185
09:14.420 --> 09:15.120
really doesn't

186
09:15.120 --> 09:18.760
have a data plane impact.

187
09:18.760 --> 09:22.110
Unlike spanning tree where it absolutely has a data plane impact, depending on

188
09:22.110 --> 09:22.600
which one

189
09:22.600 --> 09:24.720
of our switches is the root switch.

190
09:24.720 --> 09:29.560
So in our case, we usually just allow the election process to occur.

191
09:29.560 --> 09:34.000
And then we're going to allow that device to decide which of these eight to
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

191
09:29.560 --> 09:34.000
And then we're going to allow that device to decide which of these eight to

192
09:34.000 --> 09:34.760
bundle and

193
09:34.760 --> 09:37.280
then which of these to be left out.

194
09:37.280 --> 09:42.400
Then if one of these links goes down, we can, or not we, LACP can then loop in

195
09:42.400 --> 09:42.960
one of those

196
09:42.960 --> 09:47.560
backup links to maintain eight connections, despite the failure.

197
09:47.560 --> 09:51.960
Now if we want to control which of these links are the backup, well, just like

198
09:51.960 --> 09:52.800
with our system

199
09:52.800 --> 10:03.270
ID up here, we also have a port ID system where each port ID has a priority
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

199
09:52.800 --> 10:03.270
ID up here, we also have a port ID system where each port ID has a priority

200
10:03.270 --> 10:04.720
value and

201
10:04.720 --> 10:06.320
then an individual ID value.

202
10:06.320 --> 10:09.520
And this combines to give us the port ID.

203
10:09.520 --> 10:16.920
So this priority value is also 3278, 3278.

204
10:16.920 --> 10:21.600
And so if all of them are tied, it's just going to pick whichever ports have

205
10:21.600 --> 10:22.360
the lowest

206
10:22.360 --> 10:25.560
priority because once again, the lowest wins.

207
10:25.560 --> 10:28.280
So if I want to change this, I want to control this.

208
10:28.280 --> 10:32.410
Maybe I've got specific line cards in these chassis switches and I want to make
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

208
10:28.280 --> 10:32.410
Maybe I've got specific line cards in these chassis switches and I want to make

209
10:32.410 --> 10:33.960
sure that

210
10:33.960 --> 10:38.560
I don't just put all of the active ports on one of the line cards, for example,

211
10:38.560 --> 10:38.760
then I

212
10:38.760 --> 10:44.290
can change the port priority in order to more favorably choose some of those

213
10:44.290 --> 10:45.040
links over

214
10:45.040 --> 10:46.400
others.

215
10:46.400 --> 10:48.600
This is a little bit advanced configuration.

216
10:48.600 --> 10:52.350
We don't see this a lot in production networks, but it is good at least to

217
10:52.350 --> 10:53.280
plant that seed

218
10:53.280 --> 10:55.400
that those configurations exist.

219
10:55.400 --> 10:59.000
Meanwhile, the scope of the conversation is going to be a little bit more

220
10:59.000 --> 11:00.200
focused up here
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000

220
10:59.000 --> 11:00.200
focused up here

221
11:00.200 --> 11:03.790
with making sure that we can bring our LACP connections online and then just

222
11:03.790 --> 11:04.400
generally

223
11:04.400 --> 11:09.090
understanding operationally how LACP behaves as well as the advantages we have

224
11:09.090 --> 11:09.600
by using

225
11:09.600 --> 11:11.320
it over static configuration.
