1,禁用 --- 1,接口关闭情况下;2,接口禁用生成树协议
2,阻塞 --- 生成树协议激活接口后进入的第一个状态。该状态下,接口只能侦听BPDU,不能转发BPDU和业务帧,也不能学习MAC地址一开始所有接口都进入阻塞状态,则都不发送配置BPDU,这样,所有接口都侦听不到BPDU,则20S老化时间后将进入下一个阶段。
3,侦听 --- STP角色选举阶段,这个状态下可以收发BPDU,但是不能转发业务数据,也不能MAC地址。这个状态下不允许转发业务数据,主要是因为为了防止在角色没有完全选出来时,可能出现临时环路,导致业务流量入环。侦听状态需要停留一个转发延迟时间,默认为15S,这个时间就是用来选举的时间。即使,角色选举提前结束,也需要等到时间到达再进入下一个状态。角色选举完成后,不是所有的接口都进入下一个学习状态,而是根端口和指定端口可以继续进行,非指定端口则将退回到阻塞状态。
4,学习 --- 该状态需要停留15S,只学习业务数据帧中的MAC地址,但是不进行转发。其目的在于减少在MAC地址没有记录时,未知单播泛洪操作。
5,转发 --- 可以正常的接受发送BPDU及业务数据802.1D收敛时间 --- 30S或50S
首次收敛:50S
结构突变:
1,根网桥故障:50S
2,直连链路故障:30S
3,非直连发生故障:50S
STP的配置
[sw1]stp mode ? --- 修改STP选择的协议版本 --- 华为设备默认选择的是MSTP协议
mstp Multiple Spanning Tree Protocol (MSTP) mode
rstp Rapid Spanning Tree Protocol (RSTP) mode
stp Spanning Tree Protocol (STP) mode
[sw1]stp mode stp
[sw1]stp enable --- 华为设备默认激活了STP,所以,这一步可以不用写
[sw6]display stp --- 查看STP信息
[sw3]display stp brief --- 查看STP接口的角色和状态信息
[sw5]stp priority 28672--- 修改优先级的命令,必须按照4096的倍数来修改
注意:STP根网桥的选举是抢占模式的
[sw6-GigabitEthernet0/0/1]stp port priority ? --- 修改接口优先级的命令,必须按照16的倍数来进行修改
INTEGER<0-240> Port priority, in steps of 16
[sw1]stp root primary --- 将一台交换机设置成为根网桥 ---- 实质上是将该设备的
BID中的优先级修改为0。
[sw2]stp root secondary --- 将一台交换机设置成为备份根网桥 ---- 实质上是将该设备的BID中的优先级修改为4096。
802.1D生成树协议的缺陷:
1,收敛速度慢
2,链路利用率低
PVST --- 基于VLAN的生成树协议 --- 一个VLAN一棵树 --- PVST的问题是如果交换网络中存在大量VLAN时,则需要大量树,每棵树都需要通过配置BPDU来来维护树形结构,则造成资源占用过大。
RSTP --- 快速生成树 --- 802.1W --- 一个交换网路中只有一棵树 --- RSTP可以向下兼容
802.1D,需要按照802.1D的规则来执行。
改进点1:变更了端口角色
802.1D --- 根端口,指定端口,非指定端口
802.1W --- 根端口,指定端口,替代(Alternate)端口,备份(Backup)端口
替代端口 --- 主要目的是成为根端口的备份。由于学习到其他网桥发送的配置BPDU报文而阻塞的端口,他提供的是从指定桥到根桥的另一条路径,作为根端口的备份。当一个根端口失效后,则最优的替代端口可以直接成为根端口,直接进入转发状态。
备份端口 --- 主要目的是成为指定端口的备份。由于学习到自己发送的配置BPDU报文而阻塞的端口。如果指定端口失效后,则将第一时间替代指定端口,直接进入转发状态。
改进点2:修改了端口的状态类型
802.1D --- 禁用,阻塞,侦听,学习,转发
802.1W --- DISCARDING --- 丢弃状态 --- 接口不转发业务流量也不学习MAC地址
学习 --- 接口可以学习MAC地址,但是不转发业务流量
转发 --- 接口即可以学习MAC地址,也可以转发业务流量
改进点3:对配置BPDU的报文内容进行修改
在RSTP当中,构建及维护树形结构使用BPDU被称为RST BPDU,其BPDU的类型使用0X02来表示,相当于802.1D当中的配置BPDU。
P/A机制 --- 加快收敛
RSTP通过P/A机制来保证一个指定端口得以从丢弃状态快速的进入到转发状态,从而加速了生成树的收敛。在P/A机制当中,存在一个“同步状态”,实际上就是将其他所有接口进行堵塞,防止临时环路的产生。
改进点4:对配置BPDU的处理
1,当拓扑结构稳定后,配置BPDU的发送方式发生变化802.1D --- 只有根网桥每隔2S主动发送配置BPDU,其他非根网桥只被动转发802.1W --- 所有非根网桥,也可以每隔2S主动的发送根网桥的配置BPDU。
2,更短的BPDU的超时时间
802.1D --- 最大老化时间 --- 20S
802.1W --- 一个接口在超时时间(三个周期 --- 6S)内未收到BPDU,则认为邻居协商失败
改进点5:快速收敛机制
1,根端口和指定端口的快速切换 --- 利用替代端口和备份端口
2,设置边缘接口
在802.1W当中,我们可以将交换机连接终端的接口手工配置称为边缘接口,
其作用时这些接口将不参与STP生成树角色的选举,之后,这些接口断开,
也不会触发结构拓扑变更。
[sw5-GigabitEthernet0/0/1]stp edged-port enable --- 边缘接口配置命令
[sw5-GigabitEthernet0/0/1]stp bpdu-filter enable --- 开启BPDU的过滤功能,
一般结合边缘接口一起使用。
边缘接口存在保护机制,即当这个接口接收到其他交换设备发送BPDU,则将转换成普通接口。
3,P/A机制
改进点6:拓扑变更机制的改进
802.1D:拓扑变更需要通过TCN逐级上报到根网桥,之后,由根网桥逐级下发TC置整个交换网络,将MAC地址表从300S老化时间改为15S老化。
802.1W:拓扑变更设备直接发送TC标记位配置BPDU,之后传递给所有设备,所有设备收到后将直接清空MAC地址表。
MSTP --- 多生成树协议 --- 802.1S
在MSTP当中,我们引入了instance实例的概念 ---- 可以理解为时一个或多个VLAN的集合为了区分和标定不同的instance,我们设计了instance-ID --- 12位二进制构成 ---其取值范围为0 - 4094 --- 华为设备默认会生成instance 0,并且,所有的VLAN一开始都默认属于instance 0。
在BID当当中,前2个字节为优先级,这个优先级,实际只使用了前4位。后面12位被称为扩展系统ID,这个拓展系统ID其作用就是用来携带instance ID的。用来区分不同树发送BPDU。 ---- 一个实例一棵树。
Region --- 域 --- 类似于OSPF当中的区域,当一个交换网络规模较大时,可以将其划分为多个MST 域,当然,如果一个交换网络规模较小,则只划分一个MST 域也可以。
1,具有相同的域名 --- Region name
2,必须具备相同修订等级 ---- revision level
3,相同的VLAN和instance的映射关系
MSTP的配置
交换网络中存在10个VLAN,其中VLAN1 - 5将走以SW1作为根生成树的链路,vlan 6 - 10走以SW2为根的树。并且两台设备互为备份。
1,创建VLAN
2,配置trunk干道
3,更改生成树的模式
[sw1]stp mode mstp --- 可以不用改,因为华为设备默认使用MSTP协议
4,配置MST域
[sw1]display stp region-configuration --- 查看STP域配置信息
Region name :4c1fcc3210c3 --- 交换机默认会存在在一个以自己SVI接口
对应的MAC地址命名的域中
[sw1]stp region-configuration --- 进入域视图
[sw1-mst-region]
[sw1-mst-region]region-name aa --- 定义域名
[sw1-mst-region]revision-level 1 --- 修改修订等级
[sw1-mst-region]instance 1 vlan 1 to 5 --- 配置实例和VLAN的对应关系
[sw1-mst-region]active region-configuration ---- 注意,这个配置必须要做,其
作用是激活域配置,如果不执行该命令,则所有配置将不生效。
5,干涉选举
[sw1]stp instance 1 root primary --- 将该设备设置为实例1的根网桥
[sw2]stp instance 1 root secondary --- 将该设备设置为实例1的备份根网桥