一、STP概述
STP是一个用于局域网中消除环路的协议。
没有生成树协议会引起:1、广播风暴导致网络不可用;2、 MAC地址表震荡导致MAC地址表被破坏
生成树模型:1、单生成树实例模型;2、多生成树实例模型;3、基于VLAN生成树实例模型。
1、单实例模型:SST(Singles STP),交换机上所有vlan只能使用相同的一个拓扑,华为单实例模型只有STP和RSTP模式
2、多实例模型:MST(Multiple STP),可以自定义实例的数量,可手工指定哪些vlan使用哪些实例。华为默认生成树协议为MSTP。
3、基于vlan实例模型:VBST(vlan-based STP),每个vlan都拥有各自的生成树实例,实例与拓扑之间独立不相关。
二、STP基本概念
概念:BID、端口ID、端口成本、端口角色、端口状态
2.1、网桥ID(Bridge ID)
理论上:由16位桥优先级和48位桥MAC地址构成。
实际上:高16位桥优先级中,仅高4位用于优先级,低12位用户扩展(systemID)。
STP中,BID最小值被选为根桥。
2.2、端口ID(Port ID)
PID可能影响指定端口的选举。PID最小值被选为指定端口。
理论上:Port ID长度为2字节,1字节为端口优先级,1字节为端口号
实际上:优先级仅占高4位,低12位为端口号
默认端口优先级为128,即1000,修改优先级可影响端口PID,进而影响指定端口的选举。
华为命令 stp port priority。
2.3、端口成本
每个端口都有端口成本
端口成本计算方法命令 :stp pathcost-standard{ dot1d-1998 | dot1t | legacy } 默认为dot1t
路径开销值命令 :stp cost
路径开销是生成树协议用于选择链路的参考值,端口成本值的取值范围由路径开销计算方法决定。
路径成本:当前交换机到根交换机的路径上所有RP端口的端口成本之和,最小值端口是RP端口。
2.4、端口角色
根端口/Root port
指定端口/Designated port
替代端口/Alternate port
备份端口/Backup port
三、STP中BPDU报文字段:
PID:协议标识
PVI:协议版本标识(STP默认为0)2为RSTP
BPDU Type:BPDU类型:配置BPDU、TCN BPDU(拓扑变更通告)
配置BPDU包含了桥ID、路径开销和端口ID等参数。STP协议通过在交换机指间传递配置BPDU来选举根交换机,以及确定每个交换机端口的角色和状态。在初始化过程中,每个桥都主动发送配置BPDU 。在网络拓扑稳定以后,只有根桥主动发送配置BPDU,其他交换机在收到上游传来的配置BPDU后,才会发送自己的配置BPDU
TCN BPDU是指下游交换机感知到拓扑发生变化时向上游发送的拓扑变化通知
Flags:标识:TCA(拓扑变更确认)、TC(拓扑变更)
Root ID:根桥ID
RPC:根路径开销
BID:桥ID 由桥优先级和MAC地址组成
PID:端口ID 由端口优先级+端口标识
message age:信息生存时间,如果配置BPDU是根桥发出的,则Message Age为0 。否则,Message Age是从根桥发送到当前桥接收到BPDU的总时间,包括传输延时等。实际实现中,配置BPDU报文每经过一个交换机,Message Age增加1
max age:最大超时时间,默认20s,是指BPDU报文的老化时间,可在根桥上通过命令人为改动这个值。Max Age通过配置BPDU报文的传递,可以保证Max Age在整网中一致。非根桥设备收到配置BPDU报文后,会将报文中的 Message Age和Max Age进行比较:如果Message Age小于等于 Max Age,则该非根桥设备会继续转发配置BPDU报文。如果 Message Age大于Max Age,则该配置BPDU报文将被老化掉。该非根桥设备将直接丢弃该配置BPDU,并认为是网络直径过大,导致了根桥连接失败
hello time:默认2s发送一次BPDU,是指运行STP协议的设备发送配置BPDU的时间间隔,用于检测链路是否存在故障。交换机每隔Hello Time时间会向周围的交换机发送配置BPDU报文,以确认链路是否存在故障。当网络拓扑稳定后,该值只有在根桥上修改才有效。
fwd delay:转发延时,默认为15s