前言:这次打算复习在二层另一个重要的技术,那就是STP,它现在有三个版本,这次计划分为三次来复习,每次都会有相关的实验和报文解析
背景
在网络中有一个环形组网的情况,这就会造成一个结果,那就是网络环路,而环路的结果就是数据的丢失,通信通不了,于是STP诞生了,它的作用是防止二层环路
如果没有STP,会造成Mac地址表动荡、Mac地址表漂移
就是使用display Mac-address,会发现Mac地址和端口的映射表,在一直变化
相关名词
- BID:桥ID,由16位的桥优先级和48位的MAC地址组成,默认为32768,可以修改,但是需要为4096的倍数;用于选举根桥
- STP:生成树协议,是二层防止环路的协议
- 根桥:根桥产生并且发送配置BPDU,其他设备只有处理的能力,选举规则是,比较桥优先级,越小越优;相同则比较桥MAC地址,越小越优先
- cost:开销,就是每个端口的开销值,会影响选举端口
- RPC:根路径开销,就是设备到根桥的最短路径的所有设备的端口开销之和,根桥的开销是0
- PID:接口ID,接口优先级,默认为128,取值范围为0-240,可以修改,但是要是16倍数,是选举端口的条件之一
- BPDU:网桥协议数据单元,有两种,一种是配置BPDU,里面携带重要参数;另一种是TCN BPDU,后面这种只有拓扑发生变化,才会由下游设备发送给上游设备
- 根端口:是每一个非根端口都要选举出一个,是交换机和根端口的最优路径
- 指定端口:是每一个网段选举一个
- 阻塞端口:这是stp实现需求的原因,就是把多余的接口给它阻塞掉
原理
端口选举
根端口选举
- 首先是比较RPC,越小越优先
- 如果RPC相同,比较上行设备的BID,越小越优先
- 如果BID相同,那么比较上行设备的PID,越小越优先
- 如果PID相同,那么比较本地设备的PID,越小越优先
指定端口选举
- 首先是比较RPC,越小越优先
- 如果RPC相同,那么比较链路两端的BID,越小越优先
- 如果BID相同,那么比较链路两端的PID,越小越优先
阻塞端口
剩下选举失败的端口,那么就成为阻塞端口
状态迁移
disable:禁用状态,不能收发BPDU,不能收发业务数据帧,接口down
blocking:阻塞状态,不能发送BPDU,不能转发业务数据帧,不会进行MAC地址学习,可以侦听BPDU
listening:侦听状态,可以收发BPDU,不能收发业务数据帧,不会进行MAC地址学习,根端口和指定端口会进入这个状态
learning:学习状态,会侦听业务数据帧,会进行MAC地址学习
forwarding:转发状态,可以转发业务数据帧,也能处理BPDU,指定端口或者根端口会处于这个状态
稳定的状态只有两个,就是blocking和forwarding
迁移过程
- 转发状态可以迁移到阻塞或者禁用,这个可能是根桥出现故障
- 学习状态可以迁移到阻塞、禁用、转发,出现在重新选举根桥的场景
- 侦听可以迁移到阻塞、禁用、学习,线缆故障,
- 阻塞可以迁移到禁用、侦听,,线缆故障,正常进程
- 禁用可以迁移到阻塞,这就是接口起来,但是在选举中落败
- 迁移过程都是拓扑发生大变化的过程
收敛
这里涉及一些时间
message age:从根桥发出的配置BPDU,到该设备所用的时间,如果大于max age,那么该BPDU会丢弃
max age:最大生存时间,20秒,是STP报文中的老化时间
forwarding Dealy:15秒,就是转发的时延
hello time:2秒,就是检测STP是否正常的
故障场景时间收敛
- 根桥故障:需要50秒,max age+2个forwarding delay
- 直连链路故障:需要30秒,2个forwarding Dealy
- 非直连链路故障:需要50秒,max age+2个forwarding delay
实验
因为STP时延没有什么好做的,只是来看一下报文,以及验证一下收敛
按照下面的文本来手动影响端口角色的确定
RP:根端口/AP:阻塞端口/DP:指定端口,R3是根桥
实验拓扑图
抓包实例
从上面可以看出hello time时间为2秒,每隔2秒就会收到一个数据帧
桥优先级为32768,RPC为20000,以及一些定时器
配置命令
因为华为设备默认是MSTP,所以需要修改STP工作模式
[LSW1]stp mode stp //修改为STP模式
[LSW3]stp priority 4096//修改优先级为4096
[LSW3]display stp brief //查看STP接口状态-------------------------------------------------------------------------------------------------------------------------
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/4 DESI FORWARDING NONE
0 GigabitEthernet0/0/5 DESI FORWARDING NONE
-------------------------------------------------------------------------------------------------------------------------[LSW2-GigabitEthernet0/0/2]stp cost 10//修改接口开销,如果你查看LSW2不是想要的接口选举,那么就可以操作一下
[LSW2-GigabitEthernet0/0/2]stp port priority 32//修改接口优先级,也可以影响