生成树的作用:
在以太网中, 二层网络的环路会带来广播风暴, MAC地址表震荡, 重复数据帧等问题,为解决交换网络中的环路问题,提出了STP。
1、消除环路:通过阻断冗余链路来消除网络中可能存在的环路。
2、链路备份:当活动路径发生故障时, 激活备份链路, 及时恢复网络连通性。
STP通过构造一棵树来消除交换网络中的环路。每个STP网络中, 都会存在一个根桥, 其他交换机为非根桥。 根桥或者根交换机位于整个逻辑树的根部, 是STP网络的逻辑中心, 非根桥是根桥的下游设备。 当现有根桥产生故障时, 非根桥之间会交互信息并重新选举根桥, 交互的这种信息被称BPDU。 BPDU(网桥协议数据单元)中包含交换机在参加生成树计算时的各种参数信息。
生成树的工作原理:
生成树协议的国际标准是IEEE802.1b.运行生成树算法的网桥/交换机在规定的间隔 (默认2秒)内通过网桥协议数据单元(BPDU)的组播帧与其他交换机交换配置信息 ,其工作的过程如下:
1、通过比较网桥优先级选取根网桥(给定广播域内只有一个根网桥)。
2、其余的非根网桥只有一个通向根交换机的端口称为根端口。
3、每个网段只有一个指定端口。
4、根交换机所有的连接端口均为指定端口。
注意:生成树协议在交换机上一般是默认开启的,不经人工干预即可正常工作。但这种自动生成的方案可能导致数据传输的路径并非最优化。因此,可以通过人工设置网桥优先级的方法影响生成树的生成结果。
生成树接口的状态:
运行生成树协议的交换机上的端口,总是处于下面四个状态中的一个。在正常操作期间,端口处于转发或阻塞状态。当设备识别网络拓扑结构变化时,交换机自动进行状态转换,在这期间端口暂时处于监听和学习状态。
阻塞:所有端口以阻塞状态启动以防止回路。由生成树确定哪个端口转换到转发状态,处于阻塞状态的端口不转发数据但可接受BPDU.
监听:不发送或接收数据,接收并发送BPDU,不进行地址学习 (临时状态)。
学习:不接收或转发数据,接收并发送BPDU,开始地址学习MAC地址表(临时状态)。
转发:端口能传送和接收数据
STP: 选举根桥、根端口、指定端口。
三种端口状态:
指定端口是交换机向所连网段转发配置BPDU的端口, 每个网段有且只能有一个指定端口。一般情况下,根桥的每个端口总是指定端口。
根端口是非根交换机去往根桥路径最优的端口。 在一个运行STP协议的交换机上最多只有一个根端口,但根桥上没有根端口。
阻塞(丢弃)端口:如果一个端口既不是指定端口也不是根端口, 则此端口为预备端口。预备端口将被阻塞。
(注意:不同VLAN的STP的根桥、根端口、指定端口等是分开选举的,即一个vlan一个选举)
1、选举根桥:比较优先级,再比较MAC地址(为交换机默认VLAN1的MAC地址),最小MAC地址为根桥。根桥交换机所有接口永远不会出现阻塞状态。根桥的所有端口都是指定端口,指定端口被标记为转发端口。
2、选举根端口:按如下顺序选举,满足条件即停止。A、计算非根交换机到达根桥的链路开销;B、比较非根交换机的上行交换机桥ID(由优先级与MAC地址决定);C、上行交换机的最小端口号所连接的非交换机的端口为根端口。
3、选举指定端口:非根交换机与非根交换机之间连接线的两个端口中必定有一个端口为指定端口,此时比较两个非根交换机的根端口到达根桥的最低链路开销,将最低开销的非根交换机为准,其所在的连接线(为上面非根交换机与非根交换机之间连接线)的端口为指定端口,如果链路开销一样最后比较各自的桥ID即可。指定端口被标记为转发端口。可通过比较发送的BPDU;
4、 选择根端口和指定端口的BPDU帧总是从根桥向外发;
IEEE规定的链路开销计算对应值:
例子:(拓扑以华为的为例)
全面了解及跟着实验环境操作的可以看看下面的视频专栏-《零基础使用华为eNSP模拟器实践各类网络技术》: