STP(Spanning TreeProtocol)802.1D是一种二层管理协议,该协议可应用于在网络中建立树形拓扑,消除网络中的环路,并且可能以一定的方法实现路径冗余,适用于所有厂商的网络设备。

各版本生成树协议兼容性:

名称 全称 兼容性 IEEE 状态 特征
STP 生成树协议 Spanning TreeProtocol IEEE 802.1D 公有 基于端口
RSTP 快速生成树协议 Rapid Spanning Tree Protocol STP IEEE 802.1W 公有 基于端口
PVST VLAN生成树 Per VLAN Spanning Tree Cisco私有LSP中继协议 Cisco私有 基于vlan
PVST+ VLAN生成树+ Per VLAN Spanning Tree+ 兼容RSTP、不兼容MSTP 基于IEEE 802.1W Cisco私有 基于vlan
MSTP 多生成树协议 Multiple Spanning Tree Protocol STP、RSTP、不兼容PVST、PVST+ IEEE 802.1S 公有 基于实例
  • Bridge ID(BID)

网桥ID,用于选举根网桥。BID=StpBridgePriority优先级(默认32768,取值范围0-65535)+48bit的网桥MAC地址。

  • Port ID(PID)

端口ID,用于各种端口的选举。PID=StpPortPriority优先级(默认128,取值范围0-255)+Cost(路径开销)。

  • Root ID(RID)

根桥的桥ID就叫RID。

  • Edged Port

边缘端口,RSTP之后新增端口类型,允许从阻塞状态(20s)直接进入转发状态,边缘端口的UP/DOWN不会触发拓扑改变,且不会被PA协商阻塞。

端口类型

端口角色 英文名称 所在位置 解释
禁用端口 Disable Port 非根网桥、根网桥 生成树中不起作用的端口。
根端口 Root Port(RP) 非根网桥 非根交换机上距离根交换机最近的端口,根端口会将数据传送给根桥用于传输,是交换机端口去往跟桥的最佳路径,每个非根设备上有且只能有一个根端口。
替代端口 Alternative Port 非根网桥 备份根端口,优先级仅次于根端口的被选举为替代端口,工作在稳定拓扑中为Drop状态。(除STP外都有)
指定端口 Design Port(DP) 非根网桥、根网桥 根网桥下所有端口均为指定端口;非根网桥来说每一网段均有一个指定端口,用于和根网桥收发该网段数据使用,每个端口同时只可能属于一种状态下。
备份端口 Backup Port 非根网桥 备份指定端口,优先级仅次于根端口的被选举为备份端口,工作在稳定拓扑中为Drop状态。(除STP外都有)
阻塞端口 Block Port(BP) 非根网桥 不转发数据,被阻塞了的端口,只侦听BPDU报文。

端口状态

端口角色 英文名称 所在位置 解释
禁用 Disabled 非根网桥、根网桥 不收发任何报文。(端口未被启用)
阻塞 Blocking 非根网桥、根网桥 不接收或者转发数据,接收但不发送BPDU,不进行地址学习。(端口启用后会立即进入阻塞状态,如果老化时间内未收到BPDU,则进入侦听状态,默认老化时间20s,调节范围:6-40s)
侦听 Listening 非根网桥、根网桥 不接收或者转发数据,接收并发送BPDU,不进行地址学习。(用于确定根,根端口和指定端口默认时间15s,调节范围4-30s)
学习 Learning 非根网桥、根网桥 不接收或者转发数据,接收并发送BPDU,开始进行地址学习。(用于学习MAC地址,为转发状态做准备,并防止因侦听状态下突然发生的拓扑变更造成的环路、断路问题默认时间15s)
转发 Forwarding 非根网桥、根网桥 接收或者转发数据,接收并发送BPDU,进行地址学习。(正常工作状态)

端口状态流机

2550553665

  1. 端口初始化或使能,进入阻塞状态。
  2. 老化时间到进入监听状态(20s)。
  3. 端口的临时状态停留时间到,进入下一状态(学习状态或转发状态),端口被选举为根端口或指定端口(15s)。
  4. 端口不再是根端口、指定端口或指定状态,进入阻塞状态。
  5. 端口被禁用或链路失效。

1、链路启动Disabled->2、阻塞Blocking(最大老化时间20s)->3、侦听Listening(转发延迟15s)->4、学习Learning(15s)->5、转发Forwarding

生成树算法SPA(Spanning TreeAlgorithm):(依此步骤依次进行)

一、选举根网桥

1、priority值小的交换机优先。
2、mac地址小的交换机优先。

每台网络中的交换机启动后都会认为自己是根桥,会在BPDU中写入自己的BID,然后向外泛洪。
当交换机收到其他比自己优先级高的BID后,他会把正在发送的BPDU中的Root BID替换为优先级较高的Root BID,再向外发送。
当所有交换机都比较完BID后,优先级最高的会被选举为根桥。如果有新交换机接入进来,也会在网络中进行通告,并可能引发拓扑变更,造成网络中断。

二、选举根端口

1、cost值小的端口优先。
2、BID的priority值小的交换机优先。
3、BID的mac值小的交换机优先。
4、发送者BID相同,比较发送者PID。
5、发送者PID相同,比较接受者的PID。

三、选举指定端口

1、cost值小的优先。
2、BID值小的优先。
3、PID值小的优先。

四、阻塞端口

端口选举完成后会阻塞除根端口和指定端口外的其他所有端口

1、每个网络中只有一个根网桥。
2、每个非根网桥只有一个根端口。
3、每个网段只能有一个指定端口。
4、根网桥无根端口。
5、根网桥端口全为指定端口。

STP拓扑变更流程

  1. 发生拓扑变更的交换机先由根端口向根桥发送TCN BPDU(BPDU报文中TYPE字段=0x80)。
  2. 中间交换机在收到了变更交换机发送上来的TCN BPDU后,会继续向自己的上一级交换机发送TCN BPDU,并且回送一个TCA
    BPDU(FLAG字段中TCA位为1的配置BPDU)的确认信息给变更交换机。
  3. 根桥接收到TCN后意识到了拓扑变化,会向所有网桥发送TC BPDU(BPDU FLAG字段中TC位为1持续时间为Forward
    Delay Time + Max Age,默认35s)。
  4. 交换机们收到根桥发出来的TC
    BPDU后,会将自己的MAC地址表的老化时间由缺省的300s减少为15s(用于加快MAC地址学习速度),直到一段时间内不再收到根桥的TC
    BPDU为止。

STP链路开销(Path Cost)值:

链路速度 新版 旧版
10Gbps 2 1
1Gbps 4 1
100Mbps 19 10
10Mbps 100 100
文章作者: Administrator
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 曹少卿的Blog
Routing&Switch Routing&Switch
喜欢就支持一下吧
打赏
微信 微信
支付宝 支付宝