一、STP是什么
STP协议概述生成树协议(spanning tree protocol),是一种工作在OSI网络模型中第二层(数据链路层)的通信协议,是一种由交换机运行的,基本应用是防止交换机冗余链路产生的环路,用于确保以太网中无环路的逻辑拓扑结构,从而避免了广播风暴,大量占用交换机的资源,
二、为什么要用STP
为了提高网络可靠性,交换网络中通常会使用冗余链路。然而,冗余链路会给交换网络带来环路风险,并导致广播风暴
以及MAC地址表不稳定等问题,进而会影响到用户的通信质量。生成树协议STP(Spanning Tree Protocol)可以在提高可靠性的同时又能避免环路带来的各种问题。
三、STP的作用
1.Stp通过阻塞端口来消除环路,并能够实现链路备份目的
2.消除了广播风暴
3.物理链路冗余,网络变成了层次化结构的网络
四、STP做了什么
1.选举一个根桥
2.每个非根交换机选举一个根端口
3.每个链路选举一个指定端口
4.阻塞非根,非指定端口
五、STP名词解释:
根桥:生成树里面的‘老大’,桥id最小
备份根桥:生成树里面的“二把手”,老大挂了的时候,我当老大,桥ID第二小。
非根交换机:干活的小弟,都有一个根端口
根端口:离根桥最近的端口
指定端口:根桥所有参与生成树选举的端口,都一定是指定端口
非根非指定端口:被阻塞的端口---备用链路的端口
路径开销:是端口Cost值,可以用来选择最优的路径,值越小越优。根路径开销是端口到达根桥的过程中累计的路径开销。
BID:桥ID:是由桥优先级和桥MAC地址构成,桥优先级为高16位,MAC地址是低48位。
PID:端口ID:是由端口优先级和端口号构成,端口优先级为高4位,端口号
六、选举
根桥交换机,备份根桥交换机,非根交换机根端口,指定端口,非根非指定端口(阻塞端口/预备端口)
七、STP工作流程
在交换网络中选举一个根桥
BPDU中的 桥ID来决定shi'shiyi
桥ID= 网桥优先级(0-65535公有) 默认32768 + MAC地址(只有存在svi接口的交换机才拥有mac地址,若存在多个mac选数值最小)
根网桥的选举 先比较优先级,小优; 若优先级相同,比较mac,数值小优;
需要注意的是,根桥的地位是具有可抢占性的。
在上图网络拓扑中,在STP完成收敛后,若网络中接入了一台新的交换机,而且这台新增的交换机的优先级为4096,比现有根桥SW1的优先级更高,那么该新增的交换机将成为网络中的新根桥,与此同时,STP将重新收敛、重新计算网络拓扑,在这个过程中有可能引发网络震荡,从而对业务流量的正常转发造成影响,所以根桥角色的稳定性是十分重要的。
在每个非根桥上选举一个根接口
1、比较从根网桥发出后,通过该接口进入时最小的cost值;
2、入向cost值相同,比较该接口对端设备的BID,小优BID=为桥ID
3、对端BID也相同,比较该接口对端设备的接口的PID;先优先级小,若优先级一致,编号小
4、连对端PID也相同,比较本地PID,小优;
选举指定端口
在每一段存在STP的物理链路上,有且仅有一个;转发来自根网桥的BPDU,同时可以转发用户流量(不阻塞);默认根网桥上所有接口为指定端口;
1、比较从根网桥发出后,通过该接口进入这段链路时的cost值最小(出向)
2、若出向cost值相同,必须本地的BID,小优;
3、本地BID相同,比较本地的PID;
4、本地PID,相同,直接阻塞该端口;
非指定端口(阻塞端口)
当以上所有角色全部选举完成后,剩余没有任何角色的接口为非指定;
该接口逻辑阻塞,实际可以接收到信息,但不转发;
八、端口状态
disable(端口未启用状态或初始状态,端口不处理任何数据端口状态为down)
blocking(阻塞状态,维持20秒)
listening(监听状态,参与生成树计算,接受并发送BPDU报文维持15秒)
learning(学习状态,端口不转发用户流量,学习MAC表,参与生成树计算,接受并发送BPDU报文,防止环路维持15秒)
forwarding(转发状态)
九、定时器
Hello Time:指允许STP的设备发送BPDU的时间间隔。当网络拓扑稳定之后,若要修改该定时器,只有在根桥修改才能生效。
Forward Delay: 指接口进行状态更换的延迟时间。也就是在处于Listening和Learning的持续时间,缺省值为15秒。
Max Age: 指接口的BPDU老化时间。BPDU从根桥被发出的时候,Message Age值为0,每经过一个桥设备,其值加1。当非根桥设备收到BPDU后,会比较Message Age和Max Age的大小。如果前者小于等于后者,该非根桥设备继续转发该BPDU;如果前者大于后者,该BPDU将被丢弃,此时可以认为网络直径过大,根桥连接失败。
在同一个拓扑中,Max Age是相同的,可在根桥上修改该值。
十、故障恢复时间
1. 根桥故障恢复时间是max age+2*forwading Delay=20+15*2=50s(发送TCPBDU)
2.直连链路故障回复时间是2*forwading Delay=15*2=30s
3.间接链路故障恢复时间是max age+2*forwading Delay=20+15*2=50s
十一、BPDU组成
BPDU 有两种类型:配置 BPDU 和 TCN BPDU 。
配置BPDU 包含了桥 ID 、路径开销和端口 ID 等参数。 STP 协议通过在交换机之间传递配置 BPDU 来选举根交换机,以及确定每个交换机端口的角色和状态。在初始化过程中,每个桥都主动发送配置 BPDU 。在网络拓扑稳定以后,只有根桥主动发送配置 BPDU ,其他交换机在收到上游传来的配置 BPDU 后,才会发送自己的配置 BPDU 。
TCN BPDU是指下游交换机感知到拓扑发生变化时向上游发送的拓扑变化通知。
十二、STP生成树协议的版本
1.802.1D最基本的生成树协议
缺点:收敛慢、链路利用率低
2.PVST cisco私有 基于vlan的生成树协议
在每个vlan内,存在一棵树,每个树的工作原理同802.1d一致;不同vlan的BPDU区别在于优先级;
优先级=4096倍数+vlan id 人为仅可修改4096倍数备份,且只能修改为4096的整倍
仅支持 trunk干道封装为ISL(cisco私有封装)
缺点:收敛慢 、树多(仅cisco存在单独的芯片,友商无法负荷)
3、PVST +
在PVST的基础,兼容802.1q的trunk封装;且设计了部分的加速;
端口加速(进入层连接用户的接口) 上行链路加速-针对直连检测 骨干加速—针对次优BPDU
上行链路加速仅在接入层设备上配置,因为配置后,该交换机将自动加大本地的网桥优先级;
在直连检测条件下阻塞接口将跳过30s,直接进入转发状态--上行链路加速
骨干加速所有交换机均可配置,针对接收到次优BPDU的阻塞端口可以跳过20s的hold time;
缺点:收敛慢(加速不彻底) 、树多(仅cisco存在单独的芯片,友商无法负荷)
4、快速生成树
cisco的RSTP --- 基于vlan的快速生成树 - 一个vlan一棵树 pvst+的升级
公有RSTP(802.1w) --- 整个交换网络一棵树 802.1d的升级
快速的原理:
- 取消了计时器,而是在一个状态工作完成后,直接进入下一状态;
- 分段式同步,两台设备间逐级收敛;使用请求和同意标记;依赖标记位的第1和第6位
- BPDU的保活为6s;hello time 2s;
- 将端口加速(边缘接口)、上行链路加速、骨干加速集成了
- 兼容802.1d和PVST,但802.1d和PVST没有使用标记位中的第1-6位,故不能快速收敛;因此如果网络中有一台设备不支持快速收敛,那么其他开启快速收敛的设备也不能快速;
当tcn消息出现时,不需要等待根网桥的BPDU,就可以刷新本地的cam表;
缺点:树多
5、MSTP/MST/802.1S
继承了快速生成树的基础; 将多个vlan放置于一个组内,基于每个组一棵生成树;