Well, if you studied spanning tree before, you're probably aware that there are
some
famous or maybe infamous tiebreakers that are out there.
Because it's great when we say, "Hey, I've got a fast path to the root and I've
got
a maybe a less fast path to the root," then I would just take the faster of the
two.
But as we can imagine, especially in a network with lots of equal cost links,
there's going
to be a lot of equal cost opportunities, meaning that I'm going to have to
decide between
this path being a total cost of, let's say, 8. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
this path being a total cost of, let's say, 8.
And this cost also being a total cost of 8.
So if it's 8 this way and 8 this way, what am I going to do?
And yes, that is going to lead us into a conversation around tiebreakers.
So let's take a look at one specific type of example, and then we're going to
look at
a different type of example that uses the same principles.
So in this network, let's say that these are 1 gig links.
1 gig links have a path cost of 4 by default, so that would be our short path
cost. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
cost.
Let's say we're using that here, and we've got a root up here at the top, and
then we've
got another 1 gig link down here.
So what ends up happening is we send our BPDU down to these two switches,
advertising our
root ID, which might be necessary if this network just came online.
And I need to prove that I am the root, maybe I've got a priority value of 4000
here, 4096.
And so I advertise the root ID, and then I advertise my cost of zero. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
And so I advertise the root ID, and then I advertise my cost of zero.
So both of these switches are going to receive this cost of zero, and they're
going to add
the four and say, hey, I've got a cost of four.
Both of them are thinking the same thing here.
And so they determine that this is going to be the root port here for at least
right
now, unless I hear of a better path.
And either way, then I am very quick to advertise out that I have a path cost
of four.
So I say, hey, I've got a cost of four, and this switch also says, hey, I've WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
So I say, hey, I've got a cost of four, and this switch also says, hey, I've
got a cost
of four, and now we have a little bit of a problem.
Which of these switches is going to block their link?
Is it going to be a block on the right here?
Is it going to be a block on the left?
We're not going to both block because, again, think about spanning tree back in
the day.
There could be a hub in here.
We could have hosts.
Those hosts would have no way off the network if they both block.
So somebody has to block this even in modern networks where we just have a
point to point
link.
So the question here is going to come down to a question we ask a lot with WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
So the question here is going to come down to a question we ask a lot with
spanning tree
protocol, which is which one of these is the superior BPDU.
We know what a superior BPDU looks like when we're talking about root IDs.
We recall that we're going to compare this is a concatenated set of values,
which is
a fancy way of saying we smash two values together.
And so we've got a priority value and we've got a MAC address and we know that
the lower
of these values wins.
Spanning tree protocols all about the lower value winning. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
Spanning tree protocols all about the lower value winning.
And so this tells me that I've got the superior BPDU compared to you two
switches because
my priority MAC combo is better than yours.
And so remember BPDU is flow one way.
And so I stopped trying to send BPDU upstream because I know that your BPDU is
superior
to mine.
But down here, which of these is going to be the superior and which one's going
to be
the inferior.
So this is where we need to consider a tiebreaker because we have a tie. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
So this is where we need to consider a tiebreaker because we have a tie.
And frankly, at this point, the only thing we care about the speed by which we
can get
to the root, that's equal.
And so this tiebreaker can be completely arbitrary.
We are really just trying to break the tie so that somebody blocks the port.
That's what we care about at this point.
I just need one of you to block it because the user experience is going to be
the exact
same if I go this way as if I go this way.
Doesn't matter to users who might be here in the middle on a hub. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
Doesn't matter to users who might be here in the middle on a hub.
And that is the primary thing we care about user experience.
We're going to take the shortest path.
If the paths are the same, now it can be arbitrary.
So what are we going to base it on?
Well, we're going to base it on the bridge ID.
Now we just said that the root is sending out its bridge ID and that bridge ID
actually
becomes the root ID for the whole network because I take my priority value and WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
becomes the root ID for the whole network because I take my priority value and
I add
my MAC address to it and I have become the root because my bridge ID is the
best in the
network.
Well, now we're going to use the bridge ID in a slightly different way here.
So remember, when we send a BPDU, both of these switches sending a BPDU to one
another,
they're going to include things like the root ID and the path cost to the root.
But I'm also going to include my own bridge ID. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
But I'm also going to include my own bridge ID.
Now I'm not trying to become the root at this point.
I'm just telling you this is who it's coming from.
My bridge ID, just like the root ID, is my local priority value concatenated
with my
system MAC address.
So I might find that I set this switch to B4K, this switch to B8K, 8192, and
this switch
to B16K.
So in this case, when I exchange the two, even though the path cost is the same
, the
root ID is the same, the path cost is the same, now I'm going to have to get WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
root ID is the same, the path cost is the same, now I'm going to have to get
down and
compare the bridge ID.
So who has the better bridge ID?
Well, it's the person with the lower priority.
So this is going to be considered the superior BPDU and this would be
considered the inferior
BPDU.
Because I received a superior BPDU on my interface, I'm going to stop sending
my inferior BPDU
and I'm going to block that port.
So that is how we resolve this issue.
It's how we decide which port on the link is going to block in the case that by WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
It's how we decide which port on the link is going to block in the case that by
the
both of these switches have the exact same path cost to the root.
Now keep in mind that this conversation isn't quite done because what happens
if we both
have the same priority value.
Maybe I just left this as the default, 32K here and 32K here.
At that point, who's going to win the battle of superior BPDUs?
Well, when I look at the bridge ID, if the priority is the same, I have to WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
Well, when I look at the bridge ID, if the priority is the same, I have to
compare the
MAC.
And the system MAC is always going to be unique per the rules of Ethernet.
And so one of these will have the lower MAC address.
And so the bridge ID is first and foremost going to take a look at the priority
.
But if the priority is the same, then it's going to look at the system MAC
address.
So in our case, let's say that we have system MAC address, we'll just keep this
easy.
We'll say this is 0.0.5 and over here on the right, this system MAC is 0.0.B. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
We'll say this is 0.0.5 and over here on the right, this system MAC is 0.0.B.
So remember their hexadecimal values, B stands for 11, A would be 10, B would
be 11, C would
be 12.
And so 12 is a higher number than 5.
Therefore this switch still wins and we still block the same port.
But if this side had been 0.0.4, well then it would have won and the other side
would
have been blocked.
Again, this is all very arbitrary because it doesn't matter which side blocks. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
Again, this is all very arbitrary because it doesn't matter which side blocks.
Again, we just need somebody to block.
Now this triangle example is a good way of seeing how we might have two
switches that
are sending BP to use to one another.
And we're kind of fighting over which one actually has the superior BP to use.
But we might have another situation where we've got four switches here.
And all of these are one gig links.
So path cost of four, path cost of four, four and four. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
So path cost of four, path cost of four, four and four.
And so I advertise down to this switch that hey I've got a cost of four to the
root.
And this switch on the right says the same thing.
I've got a path cost of four to the root.
So now we have to decide hey, now this isn't a matter of me saying I have a
superior BP
to you.
I don't even have a good way to the root at this point.
I'm trying to decide my path to the root.
So I see that you're telling me it's a four.
I add my four.
And so I know this is eight to go this way. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
And so I know this is eight to go this way.
Well, I do the same thing over here.
And I see that I've got a path cost of eight going this way.
So how do I decide which way to go?
Well, it's going to be the exact same concept except now I'm not comparing the
bridge ID
to my bridge ID.
I'm comparing this bridge ID to this bridge ID.
So the BP to you that's coming in from both sides that includes the path cost
to the root
out and I will have two different bridge IDs.
So now let's say I have zero dot zero dot D here and I've got zero dot zero dot WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
So now let's say I have zero dot zero dot D here and I've got zero dot zero dot
five.
Well D which would be thirteen here from a decimal perspective is going to be
greater
than five.
So I'm going to view this BP to you as superior because it has a lower bridge
ID.
Now label this one as inferior meaning that I'm going to block this port.
Now when I say it's inferior I don't mean to my own BP to you because what's WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
Now when I say it's inferior I don't mean to my own BP to you because what's
going
to happen here is I'm going to assign this as my root port and technically I'm
going to
try I being the switch we'll call the switch four.
Switch four is going to try to claim that it has a path to the root because it
does.
It has a path cost of eight.
So now if we zoom in on these two switches let's make it a little more clear
down here.
So now I have a root path root port here root port here and those both go to
the root so
we understand that. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
we understand that.
So now we have to decide between this link here and that's exactly the same
scenario
we just had.
The difference is that I'm advertising that I have a path cost of four and I'm
advertising
down here our switch four here is advertising a cost of eight because I know
that my path
cost as we said is going to be eight going that direction.
Well I don't even have to compare bridge IDs because the better path is going
to win.
Again imagine there's a hub here imagine there's hosts and imagine which way WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
Again imagine there's a hub here imagine there's hosts and imagine which way
they'd want to
go with everything being equal we know that this would be more hops and
therefore we'd
really rather just go this way.
But it's not about how account it's about the path cost.
And so I look at the fact that you're telling me it's a cost of four I know I
have a cost
of eight so my BPD is inferior and so I am going to block here otherwise the
other side
would have to block but in my case I know I'm going to have to block this side. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
would have to block but in my case I know I'm going to have to block this side.
So these are the two different sort of topologies where we can start to see
this shake out.
One is when we have two switches directly competing on the same link another
one is
when we have a switch comparing multiple uplinks it might be two it might be
three or four
but either way if the path costs being advertised are the same I'm going to
look at the bridge
ID to break the tie.