STP总结

STP总结

一、生成树协议


​ 为了保证交换网络高可用性,在交换机之间会使用冗余链路,由于网络中的泛洪机制可能 造成二层的桥接环路,会导致
​ 1)广播风暴
​ 2)MAC地址表的不稳定
​ 3)同一数据帧的重复拷贝
​ 生成树协议:在一个二层交换网络,逻辑的阻塞部分接口;当最佳路径故障时,自动疏通部分接口来实现链路备份;
​ 生成树:在一个二层交换网络中,生成一棵树型结构,逻辑的阻塞部分接口,使得从根到所有的节点仅存在唯一的路径;当最佳路径故障时,自动打开部分阻塞端口,来实现线路备份的作用;
生成树在生成过程中,应该尽量的生成一棵星型结构,且最短路径树;

二、生成树类型


​ 802.1D(标准生成树)
​ PVST/PVST+(CISCO)
​ RSTP(CISCO、快速生成树) /802.1W(公有)
​ MSTP=802.1S(多生成树协议)

三、802.1D(标准生成树)


​ 一个交换网络内仅存在一棵生成树实例

1)BPDU(网桥协议数据单元)

​ 交换机间使用BPDU交换机间沟通互动收发的数据,分为配置BPDU(用于生成树的选举以及重收敛),拓扑变更BPDU(通知交换网络出现了拓扑变更)
​ BPDU 的数据结构:

STP总结

Protocol ID:协议ID
Version:STP版本
Message type:代表着BPDU的类型(0X00 配置 0X80 拓扑TC)
Flags:标记位,在802.1D 中,标识BPDU 是拓扑变更还是拓扑变更确认BPDU
Root ID:根标识符,用于标记一颗树的树根。与根网桥的BID一致
Cost of path:路径开销。在华为设备中,称作root path cost (RPC)根路径开销
Bridge ID:网桥标识符, BID , 用于标识本设备在本生成树的唯一性
Port ID:端口标识符, PID ,用于标识设备上某接口的唯一性
Message age:在思科中默认为300s,就是对应的MAC地址条目的老化时间,(但实际上 该时间为此BPDU 经过的跳数);华为中,代表着该BPDU传递的跳数(默认值为0,没经 过一台交换机值+1)
Max age:最大时间,可以理解为hello包的超时时间。默认时间为20s
hellotime:默认为2s ,BPDU 发送的间隔
Forward delay:转发延时,状态切换时间,默认为15s

BID:使用8字节构成,组成方式: BID优先级字段(4个bit)+扩展系统ID(12个 bit)+Mac地址(6个字节)
BID优先级: 4位,默认值为32768 ,范围0-65535(实际范围0-61440),越小越优。BID 优先级单位4096.调整BID优先级时 值必须为4096的倍数。
扩展系统ID: 8位,在802.1D和802.1W 无意义,在802.1S中有用的
Mac地址: 为交换机背板地址池中所有MAC地址中最小的,MAC地址越小越优。

PID:端口标识符 2个字节构成,组成部分:PID优先级(4个bit构成)+端口标识符(12个 bit构成)

PID优先级:默认值为126,范围0-255(时间范围0-240),单位16
Port number :标识唯一性

Cost of path:根路径开销
不同带宽的链路使用不同的cost cost值:不同带宽 存在不同cost
802.1d标准 802.1T标准
10M = 100 1000M= 20000
100M=19 100M=200000
1000M=4
10000M=2
100000M=1

2)选举

【1】根网桥:在每一棵生成树实例中,有且仅有一台交换机作为根桥;负责发送BPDU,计算和指挥整个树的收敛;作为树形结构的根部,交换网络部分的中心节点;
对比BPDU中的桥ID; 桥ID= 网桥优先级 + MAC地址(本地背板池)
交换机作为网桥设备时,关注终端设备发送的数据帧中的MAC地址;但交换机本地无MAC;
需要运行STP协议的交换机,必须在出厂时由厂家进行MAC的写入-存储于交换机的背板地址池中
若交换的背板地址池中MAC地址为多个,将选择数值最小的地址来进行选举
先比较网桥优先级(0-65535,默认32768),小优;若优先级一致,比较MAC地址,数值小优;

【2】根端口(RP):在每一台非根网桥上有且仅有一个接口;本地离根网桥最近的接口,用于接收来自根网桥的BPDU,同时转发终端的数据帧;
1)比较从根网桥发出,之后通过该接口进入时最小的cost值;
2)若入向的cost相同,比较接口对端的设备的BID,小优
3)若对端设备的BID相同,那么比较对端接口的PID;小优
4)若对端设备的PID相同,那么比较本地的PID,小优
PID=端口ID = 接口优先级(0-240,默认128 小优)+ 接口编号 先比较优先级,小优;若优先级相同比较接口编号,数值小优

【3】指定端口(DP):在每一段运行了STP的物理链路上有且仅有一个接口;转发来自根网桥的BPDU,同时转发终端的数据帧;根网桥上所有接口均为指定端口;根端口的对端一定为指定端口;
1)比较转发来自根网桥的BPDU是,出项的最小cost值
2)若出向cost值相同,比较本地的BID,小优
3)若本地的BID相同,比较本地的PID,小优
4)若本地PID相同,将直接阻塞该端口

【4】非指定端口(NDP):以上所有角色选举完成后,剩余各个接口的角色;该接口处于阻塞状态;被逻辑上关闭的接口

3)端口状态

1.disable -关闭状态 1.关闭生成树协议 2.接口物理关闭
2.listening -监听状态,可以发送并接收BPDU,不能发送和接收数据;(进行生成树选举的,根端口、指定端口15s后进入学习状态;非指定端口进入阻塞状态)
3.learning -学习状态,可以发送并接收BPDU,不能发送和接收数据;(学习MAC地址表,15s后进入转发状态)
4.forwarding-转发状态,可以发送并接收 BPDU和数据
5.blocking-阻塞状态 ,不能发送BPDU ,可以接收BPDU ,不能发送和接收数据

4)802.1D的收敛时间

1、初次收敛 30s 15s侦听+15s学习
2、结构变化
1)存在直连检测 –本地仅存在一个阻塞端口可以接收到来自根网桥的BPDU;需要30s收敛
2)无直连检测 — 20s hold time等待+30s收敛=50s

5)802.1D算法的缺点

1、收敛速度慢
2、链路利用率低 – 备份链路正常不转发数据

四、PVST


基于VLAN的生成树协议 依然沿用了802.1D的运算规则;
区别在于,一个VLAN中存在一棵树;
PVST cisco私有 基于vlan的生成树协议
在每个vlan内,存在一棵树,每棵树的工作原理同802.1d一致;不同vlan的BPDU区别在于网桥优先级;
优先级=4096倍数+vlan id 人为仅可修改4096倍数,且只能修改为4096的整倍
仅支持 trunk干道封装为ISL(cisco私有封装)

五、PVST +


在PVST的基础,兼容802.1q的trunk封装;且设计了部分的加速;
端口加速(接入层连接用户的接口)
上行链路加速-针对直连检测(接入层设备方可配置)
骨干加速—针对次优BPDU 剩去20s的hold time 所有交换机均可配置
缺点:1、收敛慢(加速不彻底) 2、树多(仅cisco存在单独的芯片,友商无法负荷)

六、RSTP(快速生成树)


cisco的RSTP — 基于vlan的快速生成树 一个vlan一棵树 pvst+的升级
公有RSTP(802.1w) — 整个交换网络一棵树 802.1d的升级
快速的原理:
1、取消了计时器,而是在一个状态工作完成后,直接进入下一状态;
2、分段式同步,两台设备间逐级收敛;使用请求和同意标记;依赖标记位的第1和第6位
3、BPDU的保活为6s;hello time 2s;
4、将端口加速(边缘接口)、上行链路加速、骨干加速集成了
5、兼容802.1d和PVST,但802.1d和PVST没有使用标记位中的第1-6位,故不能快速收敛;因此如果网络中有一台设备不支持快速收敛,那么其他开启快速收敛的设备也不能快速;
当tcn消息出现时,不需要等待根网桥的BPDU,就可以刷新本地的cam表;

七、MSTP/802.1S (多生成树)


华为设备默认使用该协议
继承了快速生成树的基础; 将多个vlan放置于一个组内,基于每个组一棵生成树;
不同组间的BPDU中优先级= 4096倍数+组号
息出现时,不需要等待根网桥的BPDU,就可以刷新本地的cam表;