All right, we have a topology challenge.
That means we're starting with this topology and it's our job to figure out
what spanning
trees going to look like once everything reaches steady state operation.
And from there we'll make things a little bit more interesting as we explore
different
failure scenarios.
So first of all, we want to identify all the port roles.
So we have to make sure we remember the distinction between a role and a state.
A role is one of those three options, we have the root port, the designated WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
A role is one of those three options, we have the root port, the designated
port, and then
we'll either call it the non-designated port or the blocking port.
But either way we can tell it's the port that's going to block.
Remember our root port is the upstream port.
It's going to be our best path to the root.
Our designated ports are all downstream ports.
So that's the roles.
The states are going to be either forwarding or blocking or disabled or
listening and learning.
There's these five states that they can possibly be in.
So in our example here, when we're talking about steady state of operation, we WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
So in our example here, when we're talking about steady state of operation, we
're really
just talking about either forwarding or blocking, since everything will have
gone through listening
and learning and in theory none of these ports are in a disabled state.
So let's go ahead and go through this.
The first step in any spanning tree situation or scenario like this is to
identify the root.
And this scenario makes things a little bit easy for us because the bridge
priorities here
labeled in this blue with all the Ks there tells us that there's only one
switch that
can be the root.
And that would be switch one right in the middle and go figure it's the switch WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
And that would be switch one right in the middle and go figure it's the switch
in the
middle.
But we would want to compare the bridge priorities.
And if we have a tie, at that point we have to look at the MAC addresses.
Now we are given the MAC addresses here.
Those are these purple colors.
They all start with a zero and then they have another number after them.
And so that will allow us to compare MAC addresses when needed.
And if we had another switch that had a 4K priority, we'd have to compare MAC
addresses.
But since it's the only one, we're already good to go.
We've identified the root. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
We've identified the root.
So from here we can also identify the roles of the root bridge.
They're all going to be designated ports.
All of the ports on the root are designated because again designated means
downstream.
Whereas root port means upstream.
So they're can't, they're they can, cannot be an upstream port on the root.
They all must be downstream.
And so we already have a bunch of port roles that we can figure out here. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
And so we already have a bunch of port roles that we can figure out here.
Now it's easy to assume that on the other side of a root designated port that
these
are all going to be root ports.
But we have to be careful here because switch five has a root path cost of four
going to
the root.
And so yeah, this is going to be the root port.
Because going anywhere else is going to be a whole lot more than a cost of four
.
But that's just it.
We have to compare costs.
And so looking at switch two for example, cost of eight. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
And so looking at switch two for example, cost of eight.
Okay, what are my other options?
Thirty two, yeah, that's not going to do it.
Hey, this path is four, but then it's another 10 and another four.
And so we add that up it's 18.
So my best path to the root is the directly connected link.
And again, in a lot of situations, that's going to be the case.
But now let's look at switch three.
Switch three has a cost of 12 directly connected to switch one.
Meanwhile, we have cost of four cost of four, which means we actually have a
path here. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
path here.
That's a cost of eight.
That's the better path, even though I'm directly connected to the root.
So believe it or not, this connection is going to be my root port.
And yeah, we're going to have to start to figure things out as far as what that
means
for some of these other links.
But at least we can identify which port is best for getting to the root from
switch
three's perspective.
And that would be that link to switch five.
And by the way, if that's my best path and there's a root port here, that means WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
And by the way, if that's my best path and there's a root port here, that means
it's
going to be a designated port on the other side.
If there was any situation where this is a non-designated ports in a blocking
state,
that wouldn't work so well.
So naturally, if we have a root port, it has to be a designated port on the
other side.
Make sense.
I'm going to send BPDUs this way.
It's a downstream connection from switch five's perspective and it's an
upstream connection
from switch three's perspective.
Now anytime we're in a scenario where we're doing this type of exploration of a WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
Now anytime we're in a scenario where we're doing this type of exploration of a
spanning
tree topology, we say, okay, well, where do we go next?
What we can start to do is identify where there are loops because if there's a
loop,
then we know there must be a blocked port.
And so we can start to take a look at things from that angle.
And so when I'm looking at switches one, three, and five, I see that there's a
loop
here.
And so far I've identified a bunch of port roles and there's one port where I
haven't
explored and there's probably means that there's going to be a blocked port
right there.
Now if there's additional ports, like let's say here, there's a loop, there's a WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
Now if there's additional ports, like let's say here, there's a loop, there's a
lot of
other ports to explore at this point.
But here on this side, we can just immediately say, well, there has to be at
least one, not
well, ideally just one non designated port within a loop.
And so that means that this is going to be the case here.
Now how would we figure that out?
Well the way we figure it out is the fact that switch one, and when I say
figure it
out, I mean using actual spanning tree metrics, switch one is advertising a WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
out, I mean using actual spanning tree metrics, switch one is advertising a
cost of zero.
The cost of zero can't be beat.
And so we know that this is going to have to be an upstream port, meaning that
the BPD
use are going to flow into that interface.
Well if it's an upstream port, I already have my root port figured out and
therefore an
upstream port is going to be non designated and blocking.
So this is where we can use our spanning tree knowledge on top of a little bit
of logic
here to say that, well, there's only one port left, it must be non-blot or non WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
here to say that, well, there's only one port left, it must be non-blot or non
designated
and it must be blocking.
So either one of those paths of logic would work.
Naturally, we always want to make sure we understand the spanning tree
mechanisms that
ultimately lead to those decisions.
So next we see a loop here and we have a link that doesn't have port roles
identified
on either side.
So what are we going to do here?
The good news is we've identified the roles on this link and the roles on this
link so
we just have to figure out which side of this link is actually blocking. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
we just have to figure out which side of this link is actually blocking.
So how does this work?
Well we're going to exchange BPDUs and one of these will be inferior and one of
them
will be superior.
So we have to look at the information that's in the BPDU that would make it
superior or
inferior.
So what does make it superior and inferior?
Well this is where we need to think through the order of operations and we
always start
with cost.
So what is my cost to the root?
So switch two, well I should say any switch that has a root port identified, we WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
So switch two, well I should say any switch that has a root port identified, we
can say
what the cost to the root is.
I know that the cost for switch three to get to the root is four plus four and
that's eight.
And I also know that switch two is just going to go straight to the root and
that would
be eight as well which is kind of interesting.
So we actually are advertising a cost of eight in both directions.
So that's not going to help us because we have a tie.
And once we have a tie at the cost level this is where we need to start to look WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
And once we have a tie at the cost level this is where we need to start to look
at the other
options.
So what are the other options?
Well we are going to first of all start with the bridge, ultimately the bridge
ID.
So yes it starts with a priority comparison and then we can look at our MAC
addresses.
So for example if we look at the MAC addresses, zero C is lower than zero E.
C is hex for twelve E is hex for fourteen and therefore C is better or a better WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
C is hex for twelve E is hex for fourteen and therefore C is better or a better
shape
than E.
But if we are looking at the MAC address we're skipping the priority comparison
and we have
priorities that we're going to start by or start to compare.
Switch two's priority is better than switch three's and therefore it actually
wins the
bridge ID comparison.
So even though it has a higher MAC address the priority it takes up the more
significant
values of the bridge ID as a whole and therefore switch two wins this BPDU WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
values of the bridge ID as a whole and therefore switch two wins this BPDU
comparison.
So switch two is sending the superior BPDU which means switch three is going to
stop
sending BPDUs and place this port into a blocking state.
So this will be our non-designated port and this would be a designated port.
Okay well we are coming along we're about halfway done with the topology
exploration.
Where do we want to go next?
Well when we look at the fact that there's two links here we might just want to
go ahead
and identify what's happening on this side. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
and identify what's happening on this side.
It's certainly an option.
It will also help us to determine switch four's cost to the root potentially
because probably
switch four and switch five are going to have to compare here as well.
So what's going on here?
Well when we're looking at switch four we know that either way it's cost to the
root
is either going to be fourteen or twelve and switch two's cost to the root we
've already
said is eight which means that it's going to win any kind of comparison here WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
said is eight which means that it's going to win any kind of comparison here
just on
cost alone.
So switch two is sending a cost of eight and that means that both of these
ports are
going to be designated because it's going to win that battle with switch four.
Switch four now needs to decide which of these ports and potentially both of
them by the
way we'll get to that because it might go this way but since they're all
upstream or
both of these are upstream we're going to have to put one of them into the WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
both of these are upstream we're going to have to put one of them into the
blocking
state.
So which one do we put?
Well this is where we need to go through our conversations so first and
foremost we
always start with cost.
It's really easy to jump into port IDs and things like that but if one of these
was a
cost of eight we would always take the better cost.
Doesn't matter what the port IDs are but in this case they're both the same and
therefore
I can't use cost.
And I also can't use bridge ID by the way because switch two is sending both of WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
And I also can't use bridge ID by the way because switch two is sending both of
these
BP to use down and therefore the bridge ID is the same coming from switch two.
So that leads us to the next conversation which is the port ID.
The port ID is combining our port priority with the port number.
Now we didn't give port priorities here so they're all default to 128 and so we
can't
use the priority part but we can dig into the deeper into the port ID and look
at the
actual port number. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
actual port number.
So the question is this switch four has clearly a port two and a port three and
this is the
lower number.
Meanwhile switch two has zero and one with one or zero rather being the lower
number.
So which one of these gets placed into a blocking state?
We might look at switch four and say well two wins and therefore three gets
placed into
a blocking but always remember that port IDs are an outbound concept. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
a blocking but always remember that port IDs are an outbound concept.
So when switch two is pushing these BP to use down it's going to let it know on
the other
side switch four here that hey this is coming from a port ID of zero and this
is coming from
a port ID of really port numbers at this point but port number of one.
So switch four is going to see zero as actually winning out and therefore
because zero wins
I'm going to block the higher port from switch two's perspective port one and WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
I'm going to block the higher port from switch two's perspective port one and
at this point
now switch four has to decide is this my root port or is this my root port.
So now that we're down to just this last conversation let's take a look at this
.
So switch four and switch five.
Switch five is advertising a cost of four.
Switch four we know is saying hey I don't actually I mean I've got a cost of
twelve it
looks like wrong one there we go has a cost of twelve. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
looks like wrong one there we go has a cost of twelve.
And so that is going to lose to the cost of four.
And therefore switch four is going to place this port into blocking as a non
designated
port and switch five will maintain that side as a designated port.
But here's the thing we kind of jumped into that but technically switch four
has a choice
it can go this way I call this my root port we just know it's an upstream port
or I can
go this way. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
go this way.
But we see that this path is again a cost of twelve this path is a cost of
fourteen which
is why there we go this port here is going to become the root port.
So now we have our full spanning tree topology there are no loops in this
entire environment
and we could highlight all of the links that are actually still online just to
prove that
there are no loops and so as I whoops yeah no I highlighted the wrong one there WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
there are no loops and so as I whoops yeah no I highlighted the wrong one there
.
Okay so this one this one shouldn't highlight any of them that have a blocked
link there
we go.
So that forms a letter N look at that up down and up and all of the other links
have
a blocked port on them and so we do indeed have a loop free topology.
So that was quite an endeavor but it is absolutely worth it for us to go
through this process WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
through this process
and to make sure we understand how to identify what's happening on each link it
starts by
identifying the root we then go into identifying as many designated ports and
root ports as
we can and then we just sort of tackle every single loop one at a time and
eventually it
does become clear which of these ports are going to go into or as a going to
non designated
and start blocking and which of these ports are going to be designated ports
and so on
and so forth.
[BLANK_AUDIO]