生成树 Spanning tree

交换机之间存在冗余(备份)路径,以及交换机的泛洪机制,导致交换机之间产生二层交换环路。
造成影响:

  • 1.广播风暴
  • 2.MAC地址表翻滚
  • 3.数据帧的重复拷贝

解决方案:逻辑性阻塞某个接口(down掉,可以备份)------做生成树

一、STP:spanning tree生成树(交换机之间对比比较信息BPDU,低的接口就阻塞 )
生成树协议用于实现二层的线路冗余,在网络中逻辑的阻塞部分接口,来实现从源到目标仅拥有唯一的一条路径;当最佳路径故障时,阻塞端口自动工作来实现备份的作用;所谓生成树,其实就是在二层的网络中构建一个树形结构

二、生成树类型
公有生成树

STP 802.1D 标准生成树,所有vlan共用一棵树
RSTP 802.1W 快速生成树
MST 802.1S 多生成树

私有生成树

PVST 基于VLAN的标准生成树,一个vlan一棵树
PVRST+ 基于VLAN的快速生成树

三、发送比较信息,BPDU
BPDU:网桥协议数据单元,跨层封装到二层。存在两种类型

1.配置BPDU config-BPDU,只有根网桥可以发出;在最初无根网桥时,所有交换机均发出
2.拓扑变更BPDU TCN-BPDU,扑变更消息

四、BPDU字段解释
生成树 Spanning tree

protocol iD 标示是生成树
Version 版本,标示该BPDU属于何种生成树
message type 标示BPDU类型(配置BPDU 变更BPDU)
Flags 标记位,有8个二进制,其中2个二进制位标示用的何种BPDU类型
Root-id 根IP,标示根的位置(一个生成树中只有一个Root-id)
Cost of Path 路径开销,本接口距离根的开销值(位置)
Bridge id 网桥标识符,标示本设备(交换机,网桥)在该生成树中的唯一性
Port id 端口标识符,标示交换机接口的唯一性
Message age 消息老化/等待时间,默认300s,代表MAC地址的老化时间
Max age 最大时间,死亡时间20s
Hello time 发送BPDU的时间,默认2s
Forward delay- 转发延时,状态切换延时,默认15s

Flags—标记位,有8个二进制,其中2个二进制位标示用的何种BPDU类型
生成树 Spanning tree
五、详细BPDU字段
1.BID 网桥标识符及选举规则

BID 网桥标识符 用于表示该交换机或网桥在本生成树中的唯一性
构成 BID 优先级 (作用:可以改某一个优先级,干涉生成树) + mac地址
BID优先级 默认值为32768,数值范围0-65535(BID优先级数值必须为4096的倍数, 范围也可称为0-61440),再使用BID优先级时,数值越小越优
Mac 地址 本交换机上背板地址池中最小的MAC地址,mac地址越小越优

注意:PVST、PVRSTP+的BID构成是:BID优先级+VLAN ID+mac地址
MST的BID构成是:BID优先级+ instance ID(扩展系统ID) + mac地址

2.root ID:根标识符 ,在一棵生成树中表示唯一根.使用最优质的BID表示

3.Cost Of Path,也称为CoP值,路径开销,描述了本接口到达根的路径开销值,数值越小越优

路径开销值 数值
大于10000M 1
10G 2
1G 4
100M 19
10M 100

默认根网桥上所有接口的COP值为0,经过不同的链路增加对应的cost,线的入接口增加,出接口不行

4.port ID 端口标识符及选举规则

port ID 端口标识符 用于表示本交换机上接口的唯一性标识
构成 PID优先级+port number
PID优先级 默认为128,数值范围0-255(PID优先级必须为16的倍数,所有范围 0-240),数值越小越优
Port number 端口号,表示了本交换机该接口的唯一性,一般为接口的端口号标识,数值越小越优(接口小port小)

5.生成树中的计时器

Hello 时间 默认2s,配置BPDU的发送间隔
Max age 最大等待时间 默认20s,hello数据包的超时时间以及从blocking进入 listening 状态等待时间
Message age 消息时间 也称消息的老化时间,实际上等于MAC地址老化时间, 默认300s,在启用portfast等特性时变为15s
Forward delay 转发延时 默认15s ,在生成树中状态切换间隔,Listening进入learning进入forwarding 时间隔

六、交换机网络中交换机的角色,端口切换
交换机角色

根网桥 在一颗生成树实例有且仅有一台;对整个树进行管理和部署,通过发送BPDU来进行指挥和维护
非根网桥 除根网桥外都是非根网桥

端口角色

根端口 用于接收来自根的BPDU信息,只能存在于非跟网桥之上,并且一个交换机只能存在一个
指定端口 用于发送或转发BPDU信息,存在于每条链路中,一条只能存在一个指定端口,根网桥的所有接口全为指定端口
非指定端口 逻辑上打破接口(剩下的端口就是阻塞端口,hub除外)

端口切换

Blocking阻塞状态 终端状态,不能发送BPDU,接收BPDU,不能发送和接收数据,被动等待20s进入下一状态
Listening监听状态 中间状态, 可以发送和接收BPDU,不能发送和接收数据,进行STP选举, 被动等待一个forward delay 15s进入下一状态,非指定端口不得进入回到blocking
Learning学习状态 中间状态,可以发送和接收BPDU,不能发送和接收数据,可以学习BPDU 中的源MAC地址(MAC地址学习状态),被动等待一个forward delay 15s进入下一 状态
Forwarding转发状态 终端状态, 可以发送、接收BPDU和数据,mac地址学习和生成树接口 状态切换完成

七、选举生成树
选举过程:根网桥—根端口----指定端口----非指定端口

根网桥选举 具有最优BID的交换机为根网桥
根端口选举 1.最小COP值 2.发送方最小的BID 3.发送方的PID
指定端口选举 1.接口所属交换机上根端口到达根网桥的COP值 2.本交换机BID 3.本 地的PID

八、STP控制
关于对生成树协议的干涉,至少必须关注根网桥的位置,最合适的地点为汇聚层设备
方法一
直接修改BID的优先级
生成树 Spanning tree
设置主根(P)和备份根(S)
生成树 Spanning tree
方法二
端口位置,修改链路的COP值
生成树 Spanning tree
方法三
修改发送方的PID的优先级
生成树 Spanning tree

上一篇:CodeForces 723F st-Spanning Tree


下一篇:STP——生成树协议