根网桥 ---- RB
根端口 --- RP
指点端口 --- DP
非指定端口 --- NDP
根网桥 ---- 在802.1D中,一个交换网络一棵树,仅选择一个根网桥
BID --- 8字节 --- 前2字节 --- 优先级
后6字节 --- MAC地址
首先,先比较BID中的优先级,优先选择优先级数值小的作为根网桥。
优先级:取值范围理论上是0-65535,实际上取值范围0 - 61440,默认值位32768
优先级只使用了前4位,后面12位称为拓展系统ID,只有在802.1S中启用 --- 所以, 优先级的修改需要按照4096的倍数来进行修改。
如果优先级相同,则比较MAC地址,选择MAC地址数值最小的作为根网桥
2,根端口 --- 所有非根网桥上有且仅有一个距离根网桥最近的端口,用来接受根网桥的
BPDU
注意:华为默认使用的标准为802.1t
1,选择在接受根网桥BPDU是RPC最小的端口作为根端口。
2,如果多个接口到达根网桥的开销值相同,则比较接口对端设备的BID,优先选择BID小 的 设备所对应的接口为根端口。
3,如果对端的BID也相同,则比较对端的PID,优先选择PID小的接口对应的接口为根端口
PID:2个字节 --- 前4位为优先级
后12位为接口标识
先比较优先级,优先选择优先级数值小的
优先级取值范围 0 - 240,默认值为128,每一位代表16,修改优先级时也只 能按照16的倍数 修改
如果优先级相同,则比较接口标识
4,如果对端的PID也相同,则比较本地接口的PID,选择PID小的作为根端口
3,指定端口 --- 每一条链路上有且仅有一个端口作为指定端口,用来发送或者转发根网桥的 BPDU。
根网桥所有的接口都是指定端口,根端口的对端一定时是指定端口
1,优先选择发出根网桥BPDU时RPC最小的端口作为指定端口。
2,如果发出时的开销值相同,则比较接口链接设备的BID,优先选择BID小的设备的接口 作为指定端口
3,如果本端的BID也相同,则比较接口的PID,优先选择PID小的作为指定端口
4,如果本端的PID也相同,则直接阻塞
4,非指定端口 --- 所有没有角色的端口都是非指定端口,需要被阻塞。
接口的状态
1,禁用 --- 1,接口关闭;2,接口没有激活生成树
2,阻塞 --- 接口激活生成树后第一个进入的状态,只能侦听BPDU,不能发送BPDU也不能处 理业务数据帧
设备20S没有侦听到BPDU,则认为根网桥不存在或者失效,则进入到下一个状态
3,侦听 --- 进行角色选举的状态。可以接受和发送BPDU,但是,不能处理业务帧。15后(转 发延迟时间)将进入到下一个状态
这里给15S时间进行选举主要目的是为了防止部分角色没有选出来而造成临时环路 一部分接 口需要被阻塞,则将退回到阻塞状态
4,学习 --- 开始接受业务数据帧,但是只记录MAC地址和接口的信息,并不去转发业务数据 帧,停留时间15S。
设置学习状态的目的是为了尽可能多的记录MAC地址信息,以减少未知单播帧的泛洪。
5,转发 --- 可以进行BPDU的处理,也可以转发业务数据帧
最终可能停留的状态:转发和阻塞
侦听和学习是两个过渡状态
首次收敛 --- 50S
结构突变
1,根网桥故障 --- 50S
2,直连链路故障 --- 30S
3,非直连链路故障 --- 50S
STP的配置
1,启动生成树协议
[sw1]stp enable ---- 启动生成树 --- 华为默认开启生成树
2,选择生成树的版本
[sw1]stp mode ?
mstp Multiple Spanning Tree Protocol (MSTP) mode
rstp Rapid Spanning Tree Protocol (RSTP) mode
stp Spanning Tree Protocol (STP) mode
[sw1]stp mode stp
注意:华为设备默认选择MSTP
[sw1]display stp --- 查看生成树信息
[sw1]display stp brief --- 查看生成树信息摘要
[sw1]stp priority 12288 --- 修改BID中优先级的方法
[sw1]stp root primary --- 将某一台设备设置成为生成树的主根 --- 相当于将一个设备BID中的优 先级修改为0
[sw2]stp root secondary --- 将某一台设备设置成为生成树的备份根 --- 相当于将一个设备BID中 的优先级修改为4096
[sw2-GigabitEthernet0/0/1]stp port priority ? --- 修改PID中优先级的方法
INTEGER Port priority, in steps of 16
[sw2-GigabitEthernet0/0/1]stp cost ? --- 修改接口的开销值
INTEGER Port path cost
802.1D的缺点:
1,收敛速度慢
2,链路利用率低
PVST --- 基于VLAN的生成树 --- 一个VLAN 一颗树 --- 虽然PVST解决了链路利用率的问题,但 是引入了新的问题,就是如果VLAN过多,则树会比较多,导致维护树形结构的流量较多,占 用资源。
802.1W --- RSTP --- 快速生成树 --- 一个交换网络一棵树
向下兼容STP
改进点一:变更了端口的角色
802.1D:根端口,指定端口,非指定端口
802.1W:根端口,指定端口,替代端口(Alternate),备份端口(Backup)
替代端口 --- 通过和其他设备的BPDU进行比较而最终被阻塞的端口为替代端口,成为根端口 的备份,如果根端口出现故障,则自身最优的替代端口将直接成为根端口并进入到转发状态。
备份端口 --- 指定端口的备份,通过和自己的BPDU进行比较而最终被阻塞的端口为备份端 口,如果指定端口发生故障,则直接成为指定端口,进入到转发状态。
改进点二:修改接口状态类型
802.1D:禁用,阻塞,侦听,学习,转发
802.1W:丢弃(DISCARDING),学习,转发
丢弃 --- 无法学习MAC地址,也无法转发业务帧
学习 --- 可以学习MAC地址,无法转发业务帧
转发 --- 可以学习MAC地址,也可以转发业务帧
改进点三:对配置BPDU的报文进行修改
RST BPDU --- 实际上就是RSTP中的配置BPDU,类型号0X02
P/A机制 --- 加快生成树收敛的核心机制 --- 保证一个接口得以从丢弃状态立马进入到转发状 态,加速生成树的收敛。所有的角色选举变成两两之间的选举,一个接口参数更优,将保持指 定端口的身份,对端接口将保持根端口的身份。指定端口发送P位置1的RST BPDU,根端口 收到后会进入到“同步状态”(将其他接口置于丢弃状态),然后自己直接变成转发状态,并 回复A位置1的RST BPDU,之后对端也将进入到转发状态,加速收敛。
00 -- 保留
01 -- 阻塞接口
10 -- 根端口
11 -- 指定端口
改进点四:对配置BPDU的处理逻辑进行了优化
802.1D:只有根会周期发送配置BPDU
802.1W:拓扑稳定后,所有非根网桥可以主动每隔2S发送配置BPDU。
更快的超时时间
802.1D:STP需要等待一个最大老化时间20S
802.1W:一个接口在超时时间内(3个周期时间,默认6S)没有收到配置BPDU,则认定 邻居协商失败
改进点五:快速收敛机制
1,根端口和指定端口的快速切换 --- 利用的就是替代端口和备份端口
2,P/A机制
3,设置了一个边缘接口
因为交换机连接终端的接口,也会参与生成树的角色选举和状态变化的过程,会造 成延迟, 可以将这些接口手动配置成为边缘接口,则该接口将直接进入到转发状 态。
[Huawei-GigabitEthernet0/0/1]stp edged-port enable
因为终端设备本身并不需要处理BPDU,所以,边缘接口往往结合BPDU的过滤一起 使用
[Huawei-GigabitEthernet0/0/1]stp bpdu-filter enable
注意:如果不小心将连接交换网络的接口设置成边缘接口,则将可能出现环路,可 以配置保护功能,则边缘接口收到别的设备发送的BPDU时,将失效。
[Huawei]stp bpdu-protection
改进点六:在拓扑结构变更时,处理逻辑发生变化