生成树:在一个二层交换网络中,生成一棵树型结构,逻辑的阻塞部分接口,使得从根到所有的节点仅存在唯一的路径;当最佳路径故障时,自动打开部分阻塞端口,来实现线路备份的作用;
生成树在生成过程中,应该尽量的生成一棵星型结构,且最短路径树;
众所周知,企业在设计网络拓扑的时候一般存在四种冗余(也就是备份),分别是线路冗余,设备冗余,网关冗余和电源冗余。
其中,线路冗余在三层架构中一般会存在环路问题,为了避免这个现象产生,就有了生成树这个概念。
在二层网络环境中,出现环路的问题也是比较严重的,常见的有:
广播风暴;
MAC地址表翻滚;
同一数据帧重复拷贝。
STP的作用是通过阻断冗余链路,使一个有回路的桥接网络修剪成一个无回路的树形拓扑结构。
(1)单生成树实例模型:SST(Singles STP),交换机上所有vlan只能使用相同的一个拓扑,华为单实例模型只有STP和RSTP模式
(2)多生成树实例模型:MST(Multiple STP),可以自定义实例的数量,可手工指定哪些vlan使用哪些实例。华为默认生成树协议为MSTP。
(3)基于VLAN生成树实例模型:VBST(vlan-based STP),每个vlan都拥有各自的生成树实例,实例与拓扑之间独立不相关。(此生成树只在特定交换机平台支持,不建议使用)
理论上:由16位桥优先级和48位桥MAC地址构成。
实际上:高16位桥优先级中,仅高4位用于优先级,低12位用户扩展(systemID)。
STP中,BID最小值被选为根桥。
PID可能影响指定端口的选举。PID最小值被选为指定端口。
理论上:Port ID长度为2字节,1字节为端口优先级,1字节为端口号
实际上:优先级仅占高4位,低12位为端口号
默认端口优先级为128,即1000,修改优先级可影响端口PID,进而影响指定端口的选举。
华为命令 stp port priority。
BPDU包含:{根桥ID、到根桥的成本、邻居交换机BID(收时为邻居、发时为自己)、邻居交换机PID},最小值最优
注意:刚启动时交换机认为自己时根交换机,此时BPDU的根桥ID和邻居交换机BID都为自己的ID
配置BPDU——只有根网桥可以发送,在交换网络初始状态时,所有交换机均定义本地为根网桥,进行BPDU的发送;使得网络中所有交换机均收到其他设备的BPDU,之后基于数据中的参数进行比对,选举出根网桥;之后所有非根网桥不再发送BPDU,而是仅接收和转发根网桥的BPDU;发送周期2s,hold time 20s;
TCN(拓扑变更信息)——也是BPDU,用于在拓扑结构发生变化或者本地交换机发生故障的时候,为了快速通知其他路由器以更新MAC表,向其发送TCN。邻居交换机收到TCN包后,将ACK位标记为回复,用于可靠消息的传输,再将TCN逐级转发给根网桥,并等待根网桥的通知,所有交换机MAC表的老化时间改为15s
根桥(根网桥):在一棵生成树实例中,有切仅有一个根网桥,用于BPDU的发送,指挥和管理其余交换机,它是整棵树的根,二层网络的核心部分
根网络的选举:首先比较交换机的BID优先级(0-65535,默认32768),小者优先,可修改;若优先级相同,比较其MAC地址,数值小者优先。
根端口:在每一台非根网桥上有且仅有一个接口;本地离根网桥最近的接口,用于接收来自根网桥的BPDU,同时转发终端的数据帧;
根端口选举规则:
(1)首先比较流量进入接口时的最小cost值;
(2)其次比较对端的BID,小者优先;
(3)若对端BID也相同,比较对端接口的PID,小者优先;
(4)若对端设备的PID相同,那么比较本地的PID,小者优先
PID由接口优先级(0-240,默认128)和接口编号组成,先比较接口优先级,小者优先;若优先级相同比较接口编号,小者优先。
指定端口:在每一段运行了STP的物理链路上有且只有一个接口,用于转发来自根网桥的BPDU,同时转发终端设备的数据帧,根网桥的所有端口都是根端口,根端口的对端一定是指定端口;
指定端口的选举:
(1)首先比较转发来自根网桥的BPDU时,出接口的最短cost值,小者优先;
(2)其次比较两个接口所在交换机的BID,小者优先;
(3)若本地BID相同,比较本地的PID,小者优先;
(4)若本地PID也相同,直接阻塞该端口。
非指定端口(阻塞端口):在选举完以上角色之后,剩余的端口均为非指定端口,并将其逻辑阻塞(并不是接口被关闭,该接口处于只能接收数据但不能转发数据的状态)。
Down :所有接口通电后进入下一状态
侦听:交换机收发BPDU,选出所有角色;根端口、指定端口15s后进入学习状态;非指定端口进入阻塞
学习:学习终端设备发出数据帧中的源mac地址,生成交换机的MAC表(CAM表);15s后进入转发状态
转发:根端口、指定端口可以开始转发终端的数据帧
阻塞:逻辑阻塞
(1)802.1D
世界上第一种生成树,后续的生成树都是在其基础上改进
优缺点:收敛速度很慢;链路利用率很低。
(2)PVST (CISCO私有生成树)
在802.1D的基础上升级,基于VLAN分成不同的树仅支持trunk干道封装为ISL(cisco私有封装)
优缺点:收敛速度依然很慢;生成树过多,对交换机负担较大
(3)PVST +
在PVST的基础,兼容802.1q的trunk封装;且设计了部分的加速;省去了20s的hold time
优缺点:收敛慢(加速不彻底);树多(仅cisco存在单独的芯片,友商无法负荷)
(4)快速生成树(RSTP)
公有RSTP为802.1w,是802.1d的升级,取消计时器,分段式同步,将端口加速
优缺点:收敛速度快;整个交换网络一棵树,链路利用率低
(5)MSTP/MST/802.1S
华为设备默认使用该协议,继承了快速生成树的基础; 将多个vlan放置于一个组内,基于每个组一棵生成树
优缺点:收敛速度快;链路利用率高