If you're working your way through this course, then you just saw us talk about
the concept
of static ether channels and potentially the flaws with them.
Specifically, if I have four connections between these two switches and I just
want
to statically configure these ports to operate in a port channel, then I have
to get onto
every one of these interfaces and specify that I want them to run in mode on.
We'll see this in the lab here coming up and I have to do that on the other
side as well.
This is a manual configuration at this point. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
This is a manual configuration at this point.
There's not going to be any negotiation between the switches.
They are simply going to trust my configuration as if I'm telling them to run
in trunk mode
or something like that.
If I make a mistake because I don't have these switches right in front of me or
something
like that, maybe one of them is far away in a different location.
I can see these four.
I physically got right, but I accidentally configured maybe these four
interfaces or maybe somebody
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
miscable that for me when I asked them to go do it or whatever the situation is
.
Either way, we see that assuming this port over here is just in a disabled
state, maybe
there's no connection there.
Either way, I think I put four ports into the bundle on both sides and indeed I
did, but
we see that while the top switch is configured correctly, the bottom switch
only put three
of these together.
We actually have a mismatched bundle here where the top is truly bundling all
four and the
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
bottom is only bundling three, meaning that if I get a broadcast packet in, I'm
going
to not only send it out the port channel here, but I'm also going to send it
out this link
over here.
Furthermore, if we have a situation where I get a broadcast on the other side
and that
broadcast gets load balanced and gets sent out this link, then I'm going to
take that
and turn it around and send it right back out the same port channel, which
could potentially
create a loop in this case.
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
If once the broadcast is received, the hash says to go right back out the same
interface,
we can see the problems that are going to be generated here.
So this is what happens if we configure it manually and it's not necessarily a
bad thing
to use static configuration like this, but it does leave a little bit to chance
.
There's the possibility of misconfigurations and we're going to have to be very
careful
and very clear with our configs to make sure that we avoid this situation.
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
Now, a solution was developed and once again, as we say, this is as old as time
, Cisco created
a negotiation protocol that we said is the port aggregation protocol or PAGP
and eventually
the industry and specifically, in this case, the IEEE, which is a standards
creating organization,
they created something that we call the link aggregation control protocol or L
ACP.
And so this is what the industry likes to use. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
And so this is what the industry likes to use.
And even though PAGP is supported on iOS XE, we typically are going to find
that we still
favor, in most cases, using LACP.
In fact, Cisco makes some devices that only support LACP and they don't even
support their
own aging protocol.
So this LACP is typically what we're going to see with our configurations.
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
Now once again, we do the exact same configuration where I do properly get the
LACP configuration
on all four ports up here and I only put them on the three down here.
Well, at this point, we're only going to see negotiations successful on these
three links.
And on this link here, where the misconfiguration happened on the other side,
we're going to
see that there is no LACP messaging coming inbound.
And because there's no LACP messaging, that means I'm going to disable that
port or at
least remove it from the bundle and treat it like it's an independent port.
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
This prevents all of my loops that could form because now instead of having
three on the
bottom and four on the top, we have three on the bottom and three on the top,
thanks
to LACP.
Now configuration is kind of interesting when we're looking at how to configure
LACP and
we'll go and take a look at PAGP as well.
We mentioned already this concept of mode on.
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
So if I want to configure from a static perspective, I would use mode on.
And what we'll find is as we look at these other two protocols that this mode
syntax
is still going to be there, I'm just going to change what mode it's running in.
And so LACP gives us two modes of operations.
We can run in mode active and we can run in mode passive.
PAGP has something similar.
And in fact, this will sound familiar if you're working away through this
course sequentially
because once again, we just talked about trunking and DTP. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
because once again, we just talked about trunking and DTP.
And since DTP was created by Cisco, they use the same terms for PAGP.
Specifically, instead of mode active and passive, they use that desirable
phrase and
then also auto.
Auto.
So desirable and auto.
Now just like with our trunking configuration, if I have active on one side and
passive on
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
the other, then we'll be fine because this means I'm going to initialize a
connection.
Passive means I'm going to allow it.
Same thing down here with desirable.
Desirable is init.
Auto is allow.
So what we're going to do here is say that if I have an active on passive on
two opposite
sides, because I initiate and because I allow, this creates a connection.
Passive active will create a connection as well.
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
And lastly, if I have passive on one side and passive on the other, this is
going to
place both of them in a state where they'll allow one, but they won't initiate
the connection.
So we don't create a connection here.
So check on the left, check in the middle.
No check on the right.
If we have passive on both sides, we will not add a link into a bundle.
Desirable and auto is going to be the same way.
And again, this reflects the trunk configuration desirable and auto will create
a connection.
Desirable and desirable will create a connection.
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
Meanwhile, if I have auto and auto, they will not form a connection because
they're both
waiting for the other side to initiate.
Now when we look at LACP and PAGP allows this to or enables this as well, but
we're going
to focus in on LACP moving forward.
LACP is going to allow us not just to have some amount of misconfiguration
protection,
which is huge because once again, we've seen that we can create loops with mis
configured
ether channels, but also it's going to allow for self healing. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
ether channels, but also it's going to allow for self healing.
If a link were to go down, we can replace that link if we have another one on
standby
or in a backup status.
So LACP actually allows an iOSXE to support up to 16 links total, but only
eight of them
can be active.
So we were talking about how we can only have eight in a port channel and yeah,
we can
have eight actively in a bundle, but we can technically configure eight more to
be on
standby, which is probably excessive. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
standby, which is probably excessive.
So this would be what we call an N plus N level of redundancy.
If I have eight active links, I have eight on standby.
Then we might go with something like N plus one or N plus two, where I have one
extra link
on backup or potentially two extra links on backup.
This would be a great way to protect a mission critical type of connection
between two switches,
maybe two core switches.
I create all of my active connections and then I create as many backup links as
I desire, WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
I desire,
but this will require using LACP because as a negotiation protocol, that's what
's going
to be required in order to manage the dynamic addition and removal of links in
the bundle.
And so using static or mode on here, that's not going to allow for us to
dynamically adapt
to whatever situation might be occurring.
So in this case, what we've got now is we've got a couple of switches, one, two
, three, WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
, three,
four, five, six, seven, eight, eight different connections.
And then I add a couple of additional backup connections over here.
Now when LACP comes up, there's going to be an election.
One of these nodes is going to be the master LACP node.
This is going to be based on a configured system ID, which consists just like a
spanning
tree actually, consists of a priority plus the MAC address and the lower number
wins.
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
The default priority on a Cisco device is going to be that 3278 number.
And so you can call it 32K if we want.
And this is default on all iOSX devices.
So if I wanted one of these to be in charge, then I could pick that, but this
really doesn't
have a data plane impact.
Unlike spanning tree where it absolutely has a data plane impact, depending on
which one
of our switches is the root switch.
So in our case, we usually just allow the election process to occur.
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
And then we're going to allow that device to decide which of these eight to
bundle and
then which of these to be left out.
Then if one of these links goes down, we can, or not we, LACP can then loop in
one of those
backup links to maintain eight connections, despite the failure.
Now if we want to control which of these links are the backup, well, just like
with our system
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
ID up here, we also have a port ID system where each port ID has a priority
value and
then an individual ID value.
And this combines to give us the port ID.
So this priority value is also 3278, 3278.
And so if all of them are tied, it's just going to pick whichever ports have
the lowest
priority because once again, the lowest wins.
So if I want to change this, I want to control this.
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
Maybe I've got specific line cards in these chassis switches and I want to make
sure that
I don't just put all of the active ports on one of the line cards, for example,
then I
can change the port priority in order to more favorably choose some of those
links over
others.
This is a little bit advanced configuration.
We don't see this a lot in production networks, but it is good at least to
plant that seed
that those configurations exist.
Meanwhile, the scope of the conversation is going to be a little bit more
focused up here WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
focused up here
with making sure that we can bring our LACP connections online and then just
generally
understanding operationally how LACP behaves as well as the advantages we have
by using
it over static configuration.