- 1.实验目的
- 通过本实验,读者可以掌握如下技能:
- ①理解STP 的工作原理;
- ②掌握STP 树的控制;
- ③利用PVST 进行负载平衡。
- 拓扑图如下

在图14-1 中,S1 和S2 模拟核心层的交换机,而S3 为接入的交换机。S1 和S2 实际上是3 层交换机,我们这里并不利
用其3 层功能,所以它们也采用2 层交换机的图标。
3.实验步骤
我们要在网络中配置2 个VLAN,不同VLAN 的STP 具有不同的根桥,实现负载平衡。
(1)步骤1:利用VTP 在交换机上创建VLAN2,在S1 和S2 之间的链路配置Trunk

//在S1 上配置VTP 的域名,并创建VLAN 2.由于默认时S2 和S3 的VTP 域名为空,它们将自动学习到S1 的VTP 域名,
同时S2、S3 也将自动学习到VLAN 2,请确认是否成功

//关闭该接口,以免影响实验

//S1 的f0/13 改为negotiate 后,由于默认时S2 的f0/13 为auto 模式,S1 和S2 将自动协商成功Trunk,而默认时S3
的以太网接口就是desirable 模式,所以S3 与S1 和S2 的链路也自动协商成功Trunk,请确认3 条链路的Trunk 是否成功
步骤2:检查初始的STP 树
S1#show spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
//以上表明运行的STP 协议是IEEE 的802.1D
Root ID Priority 32769
Address 0002.4A5E.C6E8
Cost 19
Port 15(FastEthernet0/15)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

//以上显示VLAN 1 的STP 树的根桥信息,通过根桥的MAC 地址可以确定S3 是根桥。这是因为S3 是较早的交换机,具有较低的MAC 地址。由于S3 是一台低端的交换机,成为根桥显然是不合理的
Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 000A.4100.2DEB
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20
//以上显示该交换机的桥ID
Interface Role Sts Cost Prio.Nbr Type
—————- —- — ——— ——– ——————————–
Fa0/5 Desg FWD 19 128.5 P2p
Fa0/15 Root FWD 19 128.15 P2p
Fa0/13 Desg FWD 19 128.13 P2p
//以上显示该交换机各个接口的状态,f0/13 为阻断状态,f0/15 为根口
VLAN0002
Spanning tree enabled protocol ieee
Root ID Priority 32770
Address 000A.4100.2DEB
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32770 (priority 32768 sys-id-ext 2)
Address 000A.4100.2DEB
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20
Interface Role Sts Cost Prio.Nbr Type
—————- —- — ——— ——– ——————————–
Fa0/13 Desg FWD 19 128.13 P2p
//以上是VLAN2 的STP 树情况,VLAN2 的STP 树和VLAN1 的类似。默认时,Cisco 交换机会为每个VLAN 都生成一个单独的STP 树,称为PVST(Per VLAN Spanning Tree)
【技术要点】
需要仔细分析为什么STP 会是目前这种情况。3 个交换机的默认优先级都是32 768,而S3 的MAC 较低,所以成为了根
桥,则S3 上的f0/1 和f0/2 是指定口,处于Forward 状态。S1 有两个接口可以到达S3,一个接口是f0/13,到达S3
的Cost 为19+19=38,另一个接口是f0/15,到达S1 的Cost 为19,因此f0/15 是根口,处于Forward 状态。同样,
在S2 上,f0/15 也是根口,处于Forward 状态。在S1 和S2 之间的链路上,要选举出一个指定口。根据选举的要素,
根桥的ID 是一样的,不能决出胜负;到达根桥的Cost 值也是一样的,都为19,不能决出胜负;但是发送者桥ID 不一
样,S1 的MAC 地址高,S2 的MAC 地址低,S2 获胜,所以S2 的f0/13 是指定口,处于Forward 状态,S1 的f0/13 就处
于Block 状态。
步骤3:控制S1 为VLAN 1 的根桥,S2 为VLAN 2 的根桥
S1(config)#spanning-tree vlan 1 priority 4096
S2(config)#spanning-tree vlan 2 priority 4096
//对于VLAN1 来说,S1 的优先级为4 096,而S2 和S3 保持默认值32 768,这样S1 就成为了VLAN1 的根桥。同样我们
控制S2 成为了VLAN 2 的根桥。优先级通常要4 096 的倍数
S1#show spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 4097
Address 000A.4100.2DEB
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
//S1 成为了VLAN 1 的根桥了

Bridge ID Priority 4097 (priority 4096 sys-id-ext 1)
Address 000A.4100.2DEB
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20
Interface Role Sts Cost Prio.Nbr Type
—————- —- — ——— ——– ——————————–
Fa0/5 Desg FWD 19 128.5 P2p
Fa0/15 Desg FWD 19 128.15 P2p
Fa0/13 Desg FWD 19 128.13 P2p
对于VLAN 1 来说,f0/13 和f0/15 是指定口,都处于转发状态了
VLAN0002
Spanning tree enabled protocol ieee
Root ID Priority 4098
Address 000B.BE99.6463
Cost 19
Port 13(FastEthernet0/13)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
//S2 成为了VLAN 2 的根桥了

Bridge ID Priority 32770 (priority 32768 sys-id-ext 2)
Address 000A.4100.2DEB
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20
Interface Role Sts Cost Prio.Nbr Type
—————- —- — ——— ——– ——————————–
Fa0/13 Root FWD 19 128.13 P2p
Fa0/15 Altn BLK 19 128.17 P2P
对于VLAN 2 来说,f0/13 是根口,处于转发状态,而f0/15 却是阻断状态
S3#show spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 4097
Address 000A.4100.2DEB
Cost 19
Port 1(FastEthernet0/1)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 0002.4A5E.C6E8
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20
Interface Role Sts Cost Prio.Nbr Type
—————- —- — ——— ——– ——————————–
Fa0/2 Desg FWD 19 128.2 P2p
Fa0/1 Root FWD 19 128.1 P2p
//S3 上,对于VLAN1, S3 的f0/1 和f0/2 都处于转发状态。
VLAN2
Spanning tree enabled protocol ieee
Root ID Priority 4098
Address 0018.ba11.eb80
Cost 19
Port 2(FastEthernet0/2)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32768
Address 0009.b7a4.b182
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
Interface Designated
Name Port ID Prio Cost Sts Cost Bridge ID Port ID
FastEthernet0/1 128.1 128 19 FWD 19 32768 0009.b7a4.b182 128.1
FastEthernet0/2 128.2 128 19 FWD 0 4098 0018.ba11.eb80 128.17
(4)步骤4:控制指定口
在步骤3 中可以看到,对于VLAN 1 ,S1 成为了根桥,S1 的f0/13 和f0/15 处于转发状态;S2 的f0/13 是根口,也处
于转发状态;S3 的f0/1 是根口,也处于转发状态;然而在S2 和S3 之间的链路上,却是低端交换机S3 的f0/2 在转发
数据,原因在于S2 和S3 在竞争指定口时,由于S3 的MAC 较低而获胜,这是不合理的。VLAN 2 的情况类似。
要控制指定口,这可以通过改变优先级实现如下:
S2(config)#spanning-tree vlan 1 priority 8192
S1(config)#spanning-tree vlan 2 priority 8192
//对于VLAN1 来说,S2 的优先级为8 192,比S1 的4 096 低,不至于成为根桥,但是比S3 的32 768 低,所以在竞争
指定时会获胜。VLAN 2 情况类似

//S3 上,对于VLAN 1,S3 的f0/1 处于转发状态,而f0/2 处于阻断状态
VLAN2
(此处省略)
Interface Designated
Name Port ID Prio Cost Sts Cost Bridge ID Port ID
FastEthernet0/1 128.1 128 19 BLK 19 8194 0018.ba11.f500 128.17
FastEthernet0/2 128.2 128 19 FWD 0 4098 0018.ba11.eb80 128.17
//S3 上,对于VLAN 2,S3 的f0/1 处于阻断状态,而f0/2 处于转发状态,这样起到了负载平衡的作用