|
0:00:11
|
So the next convergence feature we have is uplink fast.
|
|
0:00:15
|
Now uplink fast is used in the case
|
|
0:00:18
|
where we have one primary link that is forwarding towards the root bridge
|
|
0:00:23
|
which would be our root port
|
|
0:00:25
|
and then other upstream facing interfaces
|
|
0:00:28
|
that are blocking
|
|
0:00:30
|
but they could be used as alternate ports in order to reach the root.
|
|
0:00:35
|
So if we look at our particular topology
|
|
0:00:38
|
if we have
|
|
0:00:41
|
switch four as the root bridge for
|
|
0:00:48
|
our VLAN ten.
|
|
0:00:51
|
So switch four is the root for VLAN ten.
|
|
0:00:54
|
From switch one's perspective this FastEthernet sixteen, this is the root port,
|
|
0:00:58
|
which means that thirteen is in the blocking state.
|
|
0:01:02
|
On the other end of the blocking port we have the designated port on switch two.
|
|
0:01:07
|
Switch one is then going to say that
|
|
0:01:10
|
this root port also has an alternate port that we could use to reach it.
|
|
0:01:16
|
So if the root port were to go down
|
|
0:01:20
|
the idea is that we could immediately transition the alternate blocking port to forwarding
|
|
0:01:27
|
without having to go through listening and learning
|
|
0:01:30
|
because we've already precalculated that this is a loop free path.
|
|
0:01:35
|
Now the way that the switch does this is by implementing two additional features behind the scenes.
|
|
0:01:41
|
Okay, one is that the switch automatically increases the cost on all of its links
|
|
0:01:46
|
to try to make sure that it would not be used as transit for someone else to reach the root.
|
|
0:01:53
|
So if I have a very high cost on all of my links
|
|
0:01:56
|
Ideally I would be excluded from someone else's path selection.
|
|
0:02:01
|
In addition to that, once the root port goes down
|
|
0:02:04
|
and the alternate port goes into forwarding
|
|
0:02:07
|
we need to update the CAM table of the rest of the network.
|
|
0:02:11
|
So what switch one does is it takes the entire CAM table
|
|
0:02:15
|
and basically spoofs the source hosts, sends these MAC addresses to switch two,
|
|
0:02:23
|
so switch two now knows to update the CAM table
|
|
0:02:26
|
to delete the MAC addresses from interface nineteen
|
|
0:02:29
|
and change them to interface thirteen.
|
|
0:02:34
|
So the idea behind this is that we can get sub-second or around there convergence
|
|
0:02:40
|
when our directly connected root port goes down.
|
|
0:02:46
|
So the key point being that uplink fast is only for your directly connected port failure.
|
|
0:02:50
|
If your own report goes down then you could forward over towards the alternate port as quickly as possible.
|
|
0:02:59
|
Configuration wise it's simply going to be the spanning tree uplink fast command.
|
|
0:03:06
|
Okay, we can see now that we are changing
|
|
0:03:11
|
setting bridge ID priority, so we're setting our priority to be a higher numerical value
|
|
0:03:18
|
which is going to make sure that...make sure of two things - we're not the root bridge
|
|
0:03:24
|
and we are also not preferred in someone else's transit path to reach the root.
|
|
0:03:31
|
Because remember, if there's a tie in the cost then we look at the bridge ID, whoever has the lower value.
|
|
0:03:36
|
Since switch one is increasing its priority to 49212,
|
|
0:03:42
|
it's less likely that it would be used as transit to reach the root.
|
|
0:03:48
|
Okay, so on router one, let me remove the previous bridging configuration we had.
|
|
0:03:57
|
I want to look at just basic connectivity between router one and two.
|
|
0:04:05
|
So we see those two hosts in VLAN ten, thy can reach each other.
|
|
0:04:08
|
If we look at switch one and say show MAC address table dynamic for VLAN ten
|
|
0:04:15
|
we should see that router one's MAC address
|
|
0:04:18
|
is directly connected to the port FastEthernet zero slash one
|
|
0:04:23
|
and router two's MAC address is located on our root port
|
|
0:04:27
|
which should be the link that is connecting to switch three.
|
|
0:04:33
|
And let's try this again. That may have aged out.
|
|
0:04:44
|
Okay, so we see both router one and router two's MAC addresses.
|
|
0:04:48
|
Router one's located on the directly connected access port.
|
|
0:04:52
|
Router two's is located on the trunk port.
|
|
0:04:56
|
If we go to switch two where router two is located
|
|
0:05:02
|
we should see
|
|
0:05:07
|
router two's MAC address and router one's MAC address.
|
|
0:05:13
|
And we don't see one. Looks like this is aging out of the table quickly. Okay, so there's router one.
|
|
0:05:21
|
Okay, what uplink fast should do for us
|
|
0:05:24
|
is that when the directly connect link on switch one goes down
|
|
0:05:30
|
which is this port FastEthernet sixteen
|
|
0:05:33
|
switch one should transition the other interface
|
|
0:05:36
|
which if we show spanning tree VLAN ten
|
|
0:05:40
|
it should transition thirteen from blocking immediately to forwarding
|
|
0:05:45
|
and then flood the CAM table out that link.
|
|
0:05:49
|
We can see this if we look at the debug spanning tree uplink fast.
|
|
0:05:55
|
And let's look at this on both switch one and switch two.
|
|
0:06:04
|
So on router three, or switch three,
|
|
0:06:07
|
I'm going to take the link that is connecting to switch one
|
|
0:06:12
|
which is this one here
|
|
0:06:14
|
and I'm going to shut that down.
|
|
0:06:17
|
So from switch one's perspective this is simulating a directly connected failure of it's own root port.
|
|
0:06:29
|
So on switch three this is FastEthernet thirteen. We'll shut that down.
|
|
0:06:34
|
We should see that switch one immediately transitions FastEthernet thirteen into forwarding state
|
|
0:06:44
|
and we can see it's kind of a noisy debug here because it does it for every single VLAN.
|
|
0:06:50
|
But it says for VLAN ten we removed the previous root port
|
|
0:06:55
|
and we're going to transition FastEthernet thirteen to root.
|
|
0:07:00
|
But if we look at the log message it says that...
|
|
0:07:05
|
Let's see. Where did we detect that the link was down?
|
|
0:07:18
|
We actually don't see the log here for...
|
|
0:07:23
|
Where is link up down? It must be further down here.
|
|
0:07:26
|
You'd actually kind of have to
|
|
0:07:29
|
log on this on the per millisecond basis to see the order that it happens.
|
|
0:07:32
|
So here's the link to up down message and let me turn time stamps on for the logs also.
|
|
0:07:38
|
Service time stamp log uptime.
|
|
0:07:42
|
So the link up down message came after thirty-nine seconds
|
|
0:07:47
|
but if we look at the state transition
|
|
0:07:51
|
the state transition happened at thirty-seven seconds after.
|
|
0:07:55
|
So it's almost immediately as soon as the device realizes that there's a Layer 1 status change
|
|
0:08:02
|
that it switches over to the new forwarding port.
|
|
0:08:06
|
Okay, if we look at switch two,
|
|
0:08:09
|
actually switch two doesn't see the uplink fast debug because it doesn't have this on
|
|
0:08:12
|
but if we were to look at the...
|
|
0:08:16
|
and I'm not sure how you would debug that. We would have to look at like a
|
|
0:08:21
|
really a packet capture between switch one and switch two
|
|
0:08:25
|
and then you would see switch one basically spoofing the CAM table
|
|
0:08:30
|
sending out all the entries from the sources that it knows about.
|
|
0:08:37
|
So from router one and router two's perspective, they don't care. They're not going to lose any reachability when this happens.
|
|
0:08:44
|
Okay, we'll see that if
|
|
0:08:47
|
I bring that link back up
|
|
0:08:49
|
and let me turn all the debugs off. We don't need to look at the debug output any more.
|
|
0:09:01
|
Okay, also notice on switch two
|
|
0:09:03
|
the MAC address on router one changed over to FastEthernet thirteen.
|
|
0:09:09
|
So I'm going to temporarily shut that link down
|
|
0:09:20
|
which is going to force switch one to use its previous forwarding path.
|
|
0:09:24
|
So on switch one if we look at the show spanning tree for VLAN ten
|
|
0:09:30
|
we are using FastEthernet sixteen as the root port.
|
|
0:09:33
|
Okay? That's what we were doing originally.
|
|
0:09:35
|
Now we have the alternate trunk link on switch one.
|
|
0:09:42
|
FastEthernet zero slash thirteen.
|
|
0:09:44
|
If we look at the show spanning tree, VLAN ten,
|
|
0:09:48
|
we should see that this link is going to stay in the blocking state. This is alternate.
|
|
0:09:54
|
Between router one and router two
|
|
0:09:57
|
we don't lose any connectivity and if I were to ping here with a high repeat count
|
|
0:10:04
|
Then once I send these pings I'm going to go to switch three and shut that link down.
|
|
0:10:12
|
So we see on router one we lost one packet.
|
|
0:10:17
|
So it's somewhere around two seconds to converge.
|
|
0:10:25
|
The key for this feature though, it has to be somewhere in the access layer or the distribution layer.
|
|
0:10:30
|
You couldn't do this in the core of the network
|
|
0:10:32
|
because the switch is upping both it's cost values
|
|
0:10:38
|
and it's priority value.
|
|
0:10:41
|
So the bridge priority and the interface cost.
|
|
0:10:44
|
We don't actually see that on the interface level
|
|
0:10:51
|
so there's no command there that says spanning tree cost 3019
|
|
0:10:55
|
but the uplink fast
|
|
0:10:57
|
process is doing that internally.
|
|
0:11:00
|
And we can see here that the cost values did change.
|