All right, we still have one more situation where everything we've talked about
up till
now is not quite good enough.
And we are still going to need one more mechanism to help us out.
So we have said that if we're getting two different BPDUs into the switch, let
's call
this switch before, why not?
And we're advertising a cost of four or eight or 132 doesn't matter.
So long as these numbers are the same.
These are equal costs. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
These are equal costs.
And so we're going to compare the bridge ID.
And we're going to look at the bridge ID.
But what happens if both of the bridge IDs have a priority field of 16 K?
Well we know at that point I look at the MAC address.
Well what if the MAC address on the left is zero dot zero dot A and the MAC
address on
the right is zero dot zero dot A.
Well wait a second here.
We said that MAC addresses are always unique.
So how did this even happen?
And we've got the tiebreaker as a result in a tie. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
And we've got the tiebreaker as a result in a tie.
That's no good.
So how can this happen?
Well it's pretty simple.
It happens when the upstream device is the same on both links.
This we call switch three.
So now we have two connections between these two switches.
And we maybe connected them for redundancy.
Now not to skip ahead, spoiler alert, we'd really like to just ether channel
this and
not worry about it.
That's great.
And that is exactly what we do in a real world scenario. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
And that is exactly what we do in a real world scenario.
But spanning tree was invented in an era where ether channels maybe weren't as
prolific.
And the reality is that ether channels aren't required.
I can't point to this and say you have to configure an ether channel.
Spanning tree has to figure this out.
And the information that we've had until now, the path cost doesn't help.
It's a tie.
The bridge ID also doesn't help.
It's a tie.
We need a new mechanism.
And that new mechanism is known as the port ID. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
And that new mechanism is known as the port ID.
This is going to be another arbitrary tiebreaker.
If truly the cost is the same coming in.
And yeah, that assumes that these are both the same bandwidth.
If one was a gig link, the other is a 10 gig link, we would want to choose the
10 gig link.
But if everything else is the same, we just need to pick one of these to block.
Either block this one or block this one.
If that doesn't matter, just pick one and block.
And so we're going to need another arbitrary way of breaking that tie. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
And so we're going to need another arbitrary way of breaking that tie.
And that would be the port ID.
The port ID, just like the bridge ID is going to consist of two different
values, it's going
to have a priority value, which is concatenated with a port number.
This port number is an internal value.
And unfortunately, we don't always know what exactly the port number is going
to be.
It's internally assigned by the switch.
So usually, fortunately, I can look at like gig zero slash one and compare that WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
So usually, fortunately, I can look at like gig zero slash one and compare that
to gig
zero slash two.
And I know that gig zero slash one is less than zero slash two that just numer
ically speaking.
And so I can compare those two ports and I understand which one is lower.
But what if there's a gig zero in our face?
How do I compare that to a gig zero one?
Or how do I compare a gig one slash zero with gig zero slash two? WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
Or how do I compare a gig one slash zero with gig zero slash two?
So we see that there can be problems in here.
And if the operating system and the hardware manufacturer in our case Cisco is
using logic,
then hopefully we'll be able to figure out that maybe one zero is still higher
than zero
tube, treat these numbers as if they matter more, so on and so forth.
But the port number that gets mapped, it still can't be G zero slash one.
It has to be a numerical value.
It has to be something like 11.
And so as long as they have been internally assigned appropriately, we should WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
And so as long as they have been internally assigned appropriately, we should
have a port
number here.
The priority value is going to be just like some of the other priority values
we've talked
about where we can assign this, but it's going to have a default value.
The default value is 128, which is a little bit off compared to the other
priority values,
which all have a default value of 32,768.
Well, it's 128 because the full range for our priority value is zero to 255 WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
Well, it's 128 because the full range for our priority value is zero to 255
because it's
an eight bit ID.
So we're not using the full range of IDs like we have with our priority values
over
here.
Instead, we are looking at an eight bit value rather than the 16 bit value.
So when we have eight bits, zero to 255, however, Cisco has once again said,
you know, we require
this to go on increments over here of 40, 96 for our switch priorities, we're WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
this to go on increments over here of 40, 96 for our switch priorities, we're
going to
require increments of 16 here.
So I could assign a value of, let's say zero, I could do 16, I could do 128.
I could do 240, but 240 is going to be the highest number I can go to because I
can't
go to 256.
That's 255 itself is not a multiple of 16, but these are the priority values
that I can
map.
And just like with everything, the lower value is better. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
And just like with everything, the lower value is better.
Now here is the very important part of port IDs.
The port ID that I'm going to look at is the egress or the advertised port ID.
What this means is the upstream switch is pushing down the port ID.
In other words, the port ID here and the port ID here don't matter whatsoever. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
In other words, the port ID here and the port ID here don't matter whatsoever.
It's going to be the port ID up here and the port ID ID here that matters
because this
is where I'm pushing the BPD use from.
I'm going to advertise the port IDs.
And this is really easy for us to forget when we're doing our configurations.
If we have a lab task, spoiler alert, we probably will, where I have to control
which
one of these I want to block, well, I'm going to have to come up here to switch WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
one of these I want to block, well, I'm going to have to come up here to switch
three and
do the configuration up here.
If I want to control which of these ports get blocked between the two switches,
I can't
just get down here and change the port ID.
So on egress, the port ID gets advertised.
And as a result, it's the upstream port ID that ends up mattering.
So here's the question.
Let's kind of get into a almost a CCIE mindset.
If we had a lab task that said get on to switch four and control which port WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
If we had a lab task that said get on to switch four and control which port
gets blocked on
ingress.
Is this possible?
It's not going to be possible with port IDs.
Port IDs are an egress concept.
I can't change the port ID here or here to change which port gets blocked.
But it is possible to change the inbound cost.
So always keep that in mind.
Remember, I said this was a one gig link and a one gig link.
And so by default, it's going to have a cost of four and a cost of four. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
And so by default, it's going to have a cost of four and a cost of four.
Well, let's say switch three has some kind of cost of eight upstream.
And so it's advertising the port IDs.
It also advertises a cost of eight.
So this switch sees two options.
Its two options are to go this way and it costs 12 or I can go this way and it
also costs
12.
Why 12?
Well, because switch three has a cost of eight and I'm adding four on this side
to get 12. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
to get 12.
I'm adding four on this side to get 12.
So if I want to control this, let's say I really want to block the port on the
left.
But with the configuration on switch three, the current currently I'm blocking
the port
on the right.
How do I force this link on the left to get blocked?
Well, all I have to do is make it so this has a much higher cost.
So I can say that the cost is increased or decreased depending on what I want
to do.
I can use those manual cost adjustments. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
I can use those manual cost adjustments.
So let's say that I override this now and I say, hey, this no longer has a cost
of four.
Instead it has a cost of 400, something like that.
Well now my cost to get out this link, we would say it's advertising eight.
So I add 400 to it has 408 compared to 12.
Now the port priority doesn't matter anymore and I can take the faster
perceived path, which
is the path on the right because that still has a cost of 12. WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
is the path on the right because that still has a cost of 12.
So keep that in mind.
I have the ability to control this on egress via port ID.
I can change the priority value.
I can't change the port ID just like I can't change a port number here.
I can't change that in the same way I can't change a system MAC address.
But I do have configuration control over the priority.
That's how I would do it with egress.
If I had to configure switch forward to do this, I can configure on egress.
It won't involve port IDs.
It will involve cost.
If I could break the tie at the cost level, I don't even need to worry about WEBVTT X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:900000
If I could break the tie at the cost level, I don't even need to worry about
the tiebreaker
at the port ID level.