4.2.1 实验目的
(1)理解基于VLAN生成树协议的工作过程
(2)理解Trunk口在生成树协议中的作用
(3)掌握PVSTP的配置
4.2.2 实验原理
1.PVST
随着VLAN在技术在二层网络的盛行,给生成树协议带来了挑战,STP的缺陷表现在三个方面:
(1)整个网络只有一个生成树,在网络规模比较大的时候收敛时间较长,拓扑变化影响面大。
(2)当链路被阻塞后将不承载任何流量,造成了带宽的极大浪费。
为了说明STP在VLAN网络环境下的缺点,举例如下。图4-8的网络中存在VLAN10,VLAN20, VLAN30等3个VLAN。S1为根桥,S3的fa3端口为阻塞端口,这样S2和S3之间的链路无法转发数据帧,该链路完全被阻塞而无法使用,造成网络性能低下。
但是,在VLAN的网络中,完全可以通过在Trunk链路上阻塞单个VLAN的数据帧而达到构成生成树。如下图所示。
在图中可以看到S1和S2的链路上阻塞了VLAN30的数据帧,VLAN 30构成STP,但是该链路仍然可以转发VLAN20,VLAN10的数据。这样,不需要完全阻塞整个链路而构成生成树,提高了链路的利用效率。这种技术成为PVST(per-Vlan Spanning Tree)。
PVST是基于VLAN的生成树协议,是Cisco对802.1D STP协议进行扩展提出的,每个VLAN都会拥有一个生成树实例。PVST的缺点有:
(1)由于PVST是Cisco私有协议而且只支持Cisco专有的ISL中继协议,不支持802.1q 中继协议
(2)PVST无法兼容于其他厂商的设备。
2.PVST+
PVST+对PVST协议进行改进,提高了PVST的兼容性,可以和STP、RSTP兼容,同时支持Trunk链路的ISL标准和802.1q中继标准,而且添加了BPDU防护和根防护增强功能。但是PVST和PVST+仍然存在以下缺陷:
(1)由于每个VLAN都需要生成一棵树,PVST BPDU的通信量将成倍增加,与VLAN数目成正比。
(2)在VLAN个数比较多的时候,交换机需要维护更多的生成树的实例,而计算量和资源占用量将急剧增长。
(3)由于协议的私有性,PVST/PVST+不能像STP/RSTP一样得到广泛的支持。
3.PVST+网桥ID
PVST+对8个字节的网桥ID——BID进行了修改,将原来网桥优先级字段(16位)拆分为新的网桥优先级(4位)和VLAN ID(12位)。因此,交换机在传递BPDU时可以判断该BPDU是属于哪个VLAN。
因此,在PVST+中,网桥的默认优先级=默认优先级 + VLAN ID。例如在VLAN10中的BID为32768(默认优先级) + 10 = 32778。
4.配置PVST+
PVST+和STP的配置相似,需要为每个VLAN指定根网桥(Primary Root Bridge)和次根网桥(Secondary Root Bridge)。
(1)spanning-tree vlan vlan-ID root primary //设置交换机为指定VLAN的根网桥
(2)spanning-tree vlan vlan-ID root primary //设置交换机为指定VLAN的次根网桥
5. Portfast的配置
在交换机的端口中,与终端相连的接口实际上无须参加STP的收敛,因为该类型端口可以一直处于转发状态。通常我们把与终端连接的接口设置为Portfast接口,Portfast接口无须经过生成树收敛的几个状态,直接无时延从Blocking状态转变为Forward状态。将端口配置Portfast接口的命令如下:
S1(config-if)#spanning-tree portfast
注意:只能将和终端连接的接口配置为Portfast,交换机和交换机连接的接口不能配置Portfast,否则会出现环路。
6.PVST+配置实例
配置说明:要求配置S1为VLAN 10的根桥,VLAN20的次根桥;S2为VLAN10的次根桥,VLAN20的根桥。
步骤1:S1的配置
S1(config)#vlan 10 // 创建VLAN 10
S1(config)#vlan 20 // 创建VLAN 20
S1(config)#vlan 30 // 创建VLAN 30
S1(config)#int range fa0/1-2
S1(config-if-range)#switchport mode trunk
S1(config)#spanning-tree vlan 10 root primary // 设置为VLAN 10的根网桥
S1(config)#spanning-tree vlan 20 root secondary // 设置为VLAN 20的次根网桥
步骤2:S2的配置
S2(config)#vlan 10 // 创建VLAN 10
S2(config)#vlan 20 // 创建VLAN 20
S2(config)#vlan 30 // 创建VLAN 30
S2(config)#int range fa0/1-2
S2(config-if-range)#switchport mode trunk
S2(config)#spanning-tree vlan 10 root secondary // 设置为VLAN 10的次根网桥
S2(config)#spanning-tree vlan 20 root primary // 设置为VLAN 20的根网桥
步骤3:S3的配置
S3(config)#vlan 10 // 创建VLAN 10
S3(config)#vlan 20 // 创建VLAN 20
S3(config)#vlan 30 // 创建VLAN 30
S3(config)#int range fa0/1-2
S3(config-if-range)#switchport mode trunk
步骤4:结果与测试。
①查看S1上VLAN10生成树情况。
S1#sh spanning-tree vlan 10
VLAN0010
Spanning tree enabled protocol ieee
Root ID Priority 24586 // S1优先级已经被修改
Address 0001.4240.48C4
This bridge is the root // S1成为VLAN10的生成树
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 24586 (priority 24576 sys-id-ext 10)
Address 0001.4240.48C4
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Desg FWD 19 128.1 P2p
Fa0/2 Desg FWD 19 128.2 P2p
// Fa0/1和Fa0/2端口均转发VLAN10的数据帧
②查看S1上VLAN20生成树情况。
S1#sh spanning-tree vlan 20
VLAN0020
Spanning tree enabled protocol ieee
Root ID Priority 24596
Address 0001.43E9.8859
Cost 19
Port 1(FastEthernet0/1)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
// S1在VLAN10的优先级已经被改变,但是仍然被根桥优先级小,成为次根桥
Bridge ID Priority 28692 (priority 28672 sys-id-ext 20)
Address 0001.4240.48C4
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Root FWD 19 128.1 P2p
Fa0/2 Desg FWD 19 128.2 P2p
// Fa0/1和Fa0/2端口均转发VLAN10的数据帧
③查看S1上VLAN20生成树情况。
//VLAN30没有做任何配置,因此根据交换机BID自动进行选举
S1#sh spanning-tree vlan 30
VLAN0030
Spanning tree enabled protocol ieee
Root ID Priority 32798 // 32798 = 32768(默认优先级) + 30 (VLAN 30)
Address 0001.4240.48C4
This bridge is the root // 本交换机为根桥
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32798 (priority 32768 sys-id-ext 30)
Address 0001.4240.48C4
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Desg FWD 19 128.1 P2p
Fa0/2 Desg FWD 19 128.2 P2p
// Fa0/1和Fa0/2端口均转发VLAN10的数据帧