要在网络中配置2 个VLAN,不同VLAN 的STP 具有不同的根桥,实现负载平衡。
(1) 步骤1:利用VTP 在交换机上创建VLAN2,在S1 和S2 之间的链路配置Trunk
S1(config)#vtp domain VTP-TEST
Changing VTP domain name from NULL to VTP-TEST
S1(config)#vlan 2
//在S1 上配置VTP 的域名,并创建VLAN 2。由于默认时敏橡S2 和S3 的VTP 域名为空,它们将
自动学习到S1 的VTP 域名,同时S2、S3 也将自动学习到VLAN 2,请确认是否成功。
S1(config)#int f0/14
S1(config-if)#shutdown
//关闭该接口,以免影响我们的实验
S1(config)#int f0/13
S1(config-if)#switchport trunk encapsulation dot1q
S1(config-if)#switchport mode trunk
//S1 的f0/13 改为negotiate 后,由于默认时S2 的f0/13 为auto 模式,S1 和S2 将自动协
商成功Trunk。而默认时S3 的以太网接口就是desirable 模式,所以S3 和S1、S2 的链路
也自动协商成功Trunk。请确认三条链路的Trunk 是否成功。
(2) 步骤2:检查初始的STP 树
S1#show spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
//以上表明运行的STP 协议是IEEE 的802.1D
Root ID Priority 32768
Address 0009.b7a4.b181
Cost 19
Port 17 (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 0018.ba11.f500
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
//以上显示该交换机的桥ID
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/13 Altn BLK 19 128.15 P2p
Fa0/15 Root FWD 19 128.17 P2p
//以上显示该交换机各个接口的状态,f0/13 为阻断状态,f0/15 为根口
VLAN0002
Spanning tree enabled protocol ieee
Root ID Priority 32768
Address 0009.b7a4.b182
Cost 19
Port 17 (FastEthernet0/15)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32770 (priority 32768 sys-id-ext 2)
Address 0018.ba11.f500
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/13 Altn BLK 19 128.15 P2p
Fa0/15 Root FWD 19 128.17 P2p
//以上是VLAN 2 的STP 树情况,VLAN 2 的STP 树和VLAN 1 的类似。默认时,Cisco 交换机
会为每个VLAN 都生成一个单独的STP 树,称为PVST(Per VLAN Spanning Tree)。
【技术要点】需要仔细分析为什么STP 会是目前这种情况。三个交换机的默认优先级都是
32768,而S3 羡模的MAC 较低,所以成为了根桥,则S3 上的f0/1 和f0/2 是指定口,处于Forword
状态。S1 有两个接口可以到达S3,一个接口是f0/13,到达S3 的Cost 为19+19=38,另
一个接口是f0/15,到达S1 的Cost 为19,因此f0/15 是根口,处于Forword 状态。同样
S2 上,f0/15 也是根口,处于Forword 状态。在S1 和S2 之间的链路上,要选举出一个指定
口。根据选举的要素,根桥的ID 是一样的,不能决出胜负;到达根桥的Cost 值也是一样的,
都为19,不能决出胜负;但是发送者桥ID 不一样,S1 的MAC 地址高,S2 的MAC 地址低,
S2 获胜,所以S2 的f0/13 是指定口,处于Forward 状态,S1 的f0/13 就处于Block 状态了。
(3) 步骤3:控制S1 为VLAN1 的根桥,S2 为VLAN2 的根桥
S1(config)#spanning-tree vlan 1 priority 4096
S2(config)#spanning-tree vlan 2 priority 4096
//对于VLAN 1 来说,S1 的优先级为4096,而S2 和S3 保持默认值32768,这样S1 就成为
了VLAN 1 的根桥。同样我们控制S2 成为了VLAN 2 的根桥。优先级通常要是4096 的倍数。
S1#show spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 4097
Address 0018.ba11.f500
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 0018.ba11.f500
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 15
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/13 Desg FWD 19 128.15 P2p
Fa0/15 Desg FWD 19 128.17 P2p
//对于VLAN 1 来说,f0/13 和f0/15 是指定口,都处于转发状态了
VLAN0002
Spanning tree enabled protocol ieee
Root ID Priority 4098
Address 0018.ba11.eb80
Cost 19
Port 15 (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 0018.ba11.f500
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 15
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/13 Root FWD 19 128.15 P2p
Fa0/15 Altn BLK 19 128.17 P2p
//对于VLAN 2 来说,f0/13 是根口,处于转发状态,而f0/15 却是阻断状态
S3#show spanning-tree brief
VLAN1
Spanning tree enabled protocol ieee
Root ID Priority 4097
Address 0018.ba11.f500
Cost 19
Port 1 (FastEthernet0/1)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32768
Address 0009.b7a4.b181
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 0 4097 0018.ba11.f500 128.17
FastEthernet0/2 128.2 128 19 FWD 19 32768 0009.b7a4.b181 128.2
//在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
//S3 上,对于VLAN2,S3 的f0/1 和f0/2 也都处于转发状态。
(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
//对于VLAN 1 来说,S2 的优先级为8192,比S1 的4096 低,不至于成为根桥,但是比S3
的32768 低,所以在竞争指定口时会获胜。VLAN 2 的情况类似。
S3#show spanning-tree brief
VLAN1
(此处省略)
Interface Designated
Name Port ID Prio Cost Sts Cost Bridge ID Port ID
-------------------- ------- ---- ----- --- ----- -------------------- -------
FastEthernet0/1 128.1 128 19 FWD 0 4097 0018.ba11.f500 128.17
FastEthernet0/2 128.2 128 19 BLK 19 8193 0018.ba11.eb80 128.17
//S3 上,对于VLAN1,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 处于转发状态,这样起到了负
载平衡的作用。
14.3 实验2: portfast、uplinkfast、backbonefast
1. 实验目的
通过本实验,读者可以掌握如下技能:
(1) 理解portfast 的工作场合和配置
(2) 理解uplinkfast 的工作场合和配置
(3) 理解backbonefast 的工作场合和配置
2. 实验拓扑
如图14-1。
3. 实验步骤
在实验1 的基础上继续本实验,我们将只关心VLAN 1 的STP 树。
(1) 步骤1:配置portfast
图14-1 中,S1 的f0/5 是用于接入计算机。当计算机接入时,f0/5 接口立即进入
Listening 状态,随后经过Learning,最后才成为Forwarding,这期间需要30 秒的时间。
这对于有些场合是不可忍受的,可以配置portfast 特性,使得计算机一接入,接口立即进
入Forwarding。
S1(config)#int f0/5
S1(config-if)#spanning-tree portfast
%Warning: portfast should only be enabled on ports connected to a single
host. Connecting hubs, concentrators, switches, bridges, etc... to this
interface when portfast is enabled, can cause temporary bridging loops.
Use with CAUTION
%Portfast has been configured on FastEthernet0/5 but will only
have effect when the interface is in a non-trunking mode.
//交换机会警告该接口只能用于接入计算机或者路由器,不要接入其他的交换机
(2) 步骤2:配置uplinkfast
先确认实验1 的STP 树已经正确。在图14-1 中的S1 上,关闭f0/15 接口,在S3 上反
复执行“show spanning-tree vlan 1 brief”观察f0/2 接口的状态变化:
FastEthernet0/2 128.2 128 3019 LIS 19 8193 0018.ba11.eb80 128.17
大约15 秒后变为:
FastEthernet0/2 128.2 128 3019 LRN 19 8193 0018.ba11.eb80 128.17
大约15 秒后变为:
FastEthernet0/2 128.2 128 3019 FWD 19 8193 0018.ba11.eb80 128.17
合计大约15+15=30 秒,f0/2 变为转发状态。
S3(config)#spanning-tree uplinkfast
S1(config)#int f0/15
S1(config-if)#no shutdown
S1(config-if)#shutdown //等STP 重新稳定后,才执行该语句
在S3 上重复执行“show spanning-tree vlan 1 brief”,可以看到f0/2 很快就进入了
Forwarding 状态。
【技术要点】没有配置uplinkfast 时,交换机S3 如果能直接检测到f0/1 接口上的链路故
障,f0/2 会立即进入Listen 状态,这样30 秒就能进入Forward 状态。然而如果S1 和S3
之间存在一个Hub,S1 上的f0/15 接口故障了,S3 将无法直接检测到故障,S3 只能等待10
个周期没有收到S1 的BPDU(每个周期2 秒),20 秒中后,S3 的f0/2 才进入Listen 状态,
这样总共50 秒才就能进入Forward 状态。所以STP 重新收敛的时间通常需要30—50 秒。
(3) 步骤3:配置backbonefast
打开S1 上f0/15 接口,确认STP 树已经正确。在图14-1 中的S1 上,关闭f0/13 接口,
在S3 上反复执行“show spanning-tree vlan 1 brief”观察f0/2 接口的状态变化:
FastEthernet0/2 128.2 128 3019 BLK 19 8193 0018.ba11.eb80 128.17
大约20 秒后变为:
FastEthernet0/2 128.2 128 3019 LIS 19 8193 0018.ba11.eb80 128.17
大约15 秒后变为:
FastEthernet0/2 128.2 128 3019 LRN 19 8193 0018.ba11.eb80 128.17
大约15 秒后变为:
FastEthernet0/2 128.2 128 3019 FWD 19 8193 0018.ba11.eb80 128.17
合计大约20+15+15=50 秒,f0/2 变为转发状态。
S1(config)#spanning-tree backbonefast
S2(config)#spanning-tree backbonefast
S3(config)#spanning-tree backbonefast
S1(config)#int f0/13
S1(config-if)#no shutdown
S1(config-if)#shutdown //等STP 重新稳定后,才执行该语句
在S3 上重复执行“show spanning-tree vlan 1 brief”,可以看到f0/2 很快就进入了
Listening 状态,合计大约15+15=30 秒后,f0/2 就变为转发状态,比之前的50 秒少了
20 秒。
【提示】uplinkfast 命令只需要在S3 配置即可,而backbonefast 命令需要在S1、S2、S3
三台交换机上都配置。
这是个标准试验,希望对楼主有所帮助!