一、什么是生成树协议
生成树协议(Spanning Tree Protocol,简称STP)是一种工作在OSI模型的数据链路层的通信协议,主要用于防止交换机冗余链路产生的环路,确保以太网中无环路的逻辑拓扑结构,从而避免广播风暴和大量占用交换机资源的问题。生成树协议通过阻塞冗余链路,将网络修剪成树状结构,以达到消除环路的目的。同时,当活动路径发生故障时,生成树协议能够通过激活冗余链路来恢复通信,从而实现网络的高可用性和健壮性。这种协议在交换网络中尤其重要,因为冗余链路很容易形成环路,导致MAC地址表不稳定和广播风暴,严重影响网络性能。
二、工作原理
生成树协议通过传递一种特殊的协议报文——BPDU(Bridge Protocol Data Unit),来确定网络的拓扑结构。每个交换机都会发送和接收BPDU,以选出根桥(Root Bridge)、根端口(Root Port)和指定端口(Designated Port)。根桥是整个网络中桥ID(Bridge ID)最小的交换机,成为整个网络逻辑结构的核心。而根端口和指定端口则是根据路径开销、桥ID和端口优先级等参数选举出来的,这些端口会被置于转发状态,而非指定端口则被置于阻塞状态,以防止环路的形成。
三、生成树的分类
1.基本生成树协议(Basic Spanning Tree Protocol,简称STP):这是最早提出的生成树协议,也是最基础的版本。它通过选举一个根桥,然后基于路径开销、桥ID和端口优先级等参数选举出根端口和指定端口,从而构建出一个无环的逻辑拓扑结构。STP在网络中广泛使用,但存在收敛速度较慢的问题。
2.快速生成树协议(Rapid Spanning Tree Protocol,简称RSTP):为了解决STP收敛速度慢的问题,IEEE制定了RSTP标准。RSTP引入了多种机制来加快拓扑的收敛速度,如边缘端口(Edge Ports)、点对点链路(Point-to-Point Links)和BPDU过滤等。这些改进使得RSTP能够在较短的时间内达到稳定状态,适用于对网络稳定性要求较高的场景。
3.多生成树协议(Multiple Spanning Tree Protocol,简称MSTP):MSTP是在RSTP的基础上发展而来的一种协议,它可以支持多个生成树实例,每个实例对应一个VLAN或一组VLAN。通过划分不同的生成树实例,可以实现负载均衡和网络资源的优化利用。MSTP通常用于大型网络环境中,需要处理大量VLAN流量的场景。
4.增强型多生成树协议(Per-VLAN Spanning Tree Plus,简称PVST+):PVST+是Cisco公司开发的一种扩展版本的STP,它在单个交换机上支持多个VLAN,并允许每个VLAN拥有独立的生成树实例。这使得不同VLAN的流量可以按照不同的路径进行转发,提高了网络资源的利用率。PVST+常用于企业网络中,需要处理多个VLAN的场景。
5.多生成树实例(Multiple Spanning Tree Instances,简称MSTI):MSTI是另一种扩展版本的STP,它允许在一个物理设备上创建多个逻辑设备,每个逻辑设备都有自己的生成树实例。这种技术主要用于数据中心环境,以实现更灵活的网络管理和资源分配。
四、基本配置
启用生成树命令
#在vlan 1上启用生成树
Switch(config)#spanning-tree vlan 1
指定根网桥
#设置网桥的优先级,必须是 4096 的倍数
Switch(config)#spanning-tree vlan 1 priority 4096
#直接指定为根网桥
Switch(config)#spanning-tree vlan 1 root primary
修改端口成本
Switch(config-if)#spanning-tree vlan 1 cost 19
修改端口优先级
Switch(config-if)#spanning-tree vlan 1 port-priority 64
查看生成树的配置
Switch#show spanning-tree
查看某个VLAN的生成树信息
Switch#show spanning-tree vlan 1 detail