【STP,RSTP学习】



提示:以下是本篇文章正文内容,下面案例可供参考

一、帧格式

什么是stp?生成树协议,将环形网络裁剪为为树形结构
为什么要有stp?消除环形网络封闭环路。继续问,为什么要有网络封闭环路?出于网络链路冗余备份的原因或者实际网络拓扑结构决定。
没有stp会有什么问题?会导致广播风暴和mac表震荡,消耗资源以及导致mac表异常

报文格式:
STP BPDU采用组播发送,组播地址为01-80-C2-00-00-00
![在这里插入图片描述]在这里插入图片描述在这里插入图片描述

二、基础概念

1.stp基础

1.根桥(RB):整个网络的逻辑中心,网络中具有最小BID的桥,网络中除了根桥,其他都是非根桥。(根桥可以理解为一类交换设备)

2.BID:桥ID,一共64位,高16位为桥优先级,低48位为mac地址

3.PID:高4位为端口优先级,低12位为端口号

4.路径开销(PC):路径开销是一个端口参数,由具体的链路速率及质量决定。同一设备不同端口之间的路径开销为0。

5.根路径开销(RPC):网络中设备端口到根桥累计的路径开销,就是各端口路径开销之和

6.根端口(RP):非根桥负责向根桥方向转发数据的端口,当前桥各端口中根路径开销最小的端口,如果多个端口根路径开销一致,会比较指定桥id,一样则比较PID,最小的即为根端口非根桥设备上只有一个根端口。

7.指定端口(DP),指定桥(DB):指定桥,与本机直接相连并且负责向本机转发配置消息的设备。指定端口,指定桥中负责向本机转发配置信息的端口,可以理解为stp裁剪成树形拓扑后本设备的父设备和父设备的端口。
根桥,根端口,指定端口选举成功,树建立成功,其他非根,非指定端口都将被阻塞。

8.如何生成树?:各个端口发送BPDU中携带4个信息:根桥ID,RPC,发送者BID,发送端口PID.
选举过程:根据接收到的发送者BID选择最小的确认根桥ID,根据最小根路径开销确认根端口以及指定桥,当根路径开销相同时比较BID,小的为指定桥,确认指定桥即确定根端口,如果两个端口接到指定桥且根路径开销一致,则比较Pid确认根端口。

9.五种端口状态:
forwarding:转发状态,只有根端口和制定端口可以进入转发状态
learning:学习状态,只学习mac不转发
listening:监听状态,正在生在树
blocking:阻塞状态,仅接受处理BPDU,不转发用户流量
disabled:禁用状态,不处理bpdu也不转发,端口直接down掉
所有端口从禁用状态开始,所有状态如果链路失效或禁用都可以变为禁用状态(硬件异常)。

不考虑禁用状态异常情况,倒叙状态机为:转发状态<-学习状态<-监听状态<-阻塞状态,可以理解协议默认为阻塞状态,当端口角色发生变化都会掉为阻塞状态。可以看到端口到转发状态必须经过监听及学习状态,会导致收敛时间较长,因为要等两个转发延时。

10.3个定时器:
hello time:发送配置BPDU时间间隔,TCNBPDU不受限制,
Forward delay:转发延时,端口在listening和learning状态的持续时间。
max sge:BPDU报文老化时间,每经过一个桥加一,大于max age后丢弃

11.BPDU报文
配置BPDU:用来进行生成树计算和维护生成树拓扑。初始化过程中,每个桥都会发bpdu报文,当网络拓扑稳定后,只有根桥主动发送bpdu报文,其他桥在收到上游的bpdu报文再触发自己发送,具体配置bpdu报文格式看上文。
TCN BPDU:当拓扑结构发生变化时,下游设备用来通知上游设备网络拓扑发生变化的报文,它相对配置bpdu比较简单,只有4个字节,且BDPU type固定为0x80
在这里插入图片描述

2.STP生成过程

具体过程不画图了,主要分为3个阶段
1.根桥的选举:先比较桥优先级,再比较mac地址。
首先确认自己的配置BPDU,在整个网络中交换配置bpdu,并比较BID刷新自己的发送配置BPDU,直到网络中所有桥发送的BPDU中的根桥一致,则根桥选举成功。
2.根端口的选举:比较根路径开销,其次桥id,其次pid
3.指定端口选举:优先比较根路径开销,其次桥id,其次pid
选举完成后除了指定端口和根端口,其他端口都会进入阻塞状态

3.拓扑变化

当拓扑发生变化时,下游设备向上游设备发送TCN BPDU告知,上游设备下发TCA为1的配置BPDU给下游设备,告知不需要再往上发TCN BPDU。下游设备只接收指定端口的tcn bpdu,然后通过根端口向上游设备传送到根桥,根桥收到后下发TC位为1的配置BPDU报文告知下游设备拓扑发生变化,清除mac表项

三、RSTP改进

1.端口角色

总共有5种端口类型,根端口,指定端口,替代端口,备份端口,和边缘端口
替代端口(AP):根端口失效时无延时切换到替代端口,学习到其他端口发送的配置BPDU而阻塞的端口,是根端口的备份
备份端口(BP):指定端口失效时无延时切换到备份端口
边缘端口:管理员设置,保证其下游不会出现环路

2.端口状态:

discarding(丢弃):既不转发用户流量,也不学习mac地址
learning(学习):学习mac地址但不转发用户流量
forwarding(转发):既转发用户流量,也学习mac地址

3.BPDU变化:

只有配置BPDU,没有TCN BPDU,还有就是FLAG字段的变化
rstp不同于stp当稳定后只有根桥可以发送配置bpdu,非根桥也可以按照hello time发送bpdu。同时拥有更短的bpdu超时计数,等待3倍hellotime即可。

4.次等BPDU处理

对于收到端口的bpdu 如果不是最优的,会立即将最优bpdu下发给指定端口,加快收敛速度快速由丢弃状态转为转发状态。(对于根端口故障的情况,可以加快收敛,也遵循使用PA机制)

5.PA机制

收敛机制,一开始都认为自己是根桥,所有端口都是指定端口,向外发送bpdu,两个相连设备之间收到对方的bpdu后可以进行比较,在两个设备之间就可以根据对方和自己的bpdu确认自己是否为根桥和非根桥,有用更优bpdu的设备向次优bpdu的设备发送P位置1的bpdu,次优设备收到后同步所有非边缘端口进入discard状态,并发送a位置1的bpdu给更优bpdu的设备,同时更新自己的bpdu,更优bpdu收到A位置1的bpdu后,立即将端口变为forwarding状态

6.边缘端口引入

边缘端口不参与rstp计算,由管理员确认不会产生环路配置即可,当端口位边缘端口时,立即进入转发状态,但当边缘端口收到bpdu会变为普通stp端口,丧失边缘端口属性

7.拓扑变更机制优化

RSTP检测到拓扑发生变化的标准为 一个非边缘端口变为转发状态,检测到拓扑改变后,清空mac表,并为所有剩下非边缘端口启动tc while定时器,时间为hello定时器两倍,期间泛洪tc位置1的RST BPDU,定时器到期后停止发送,对于收到rst bpdu的设备,清空mac表同样启动tc while定时器,端口泛洪传播RST BPDU,通过这种方式可以快速清除端口mac

8.bpdu保护

边缘端口收到BPDU报文时会被立即关闭,防止黑客恶意发送RST BPDU
根保护:端口收到更优 RST BPDU后端口进入discarding状态,不转发数据报文及bpdu,等待一段时间后未收到更优bpdu进入转发状态
tc-bpdu保护:设置TCBPDU阈值保护


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值