STP协议详解

STP协议

STP的弊端:

1,通过计时器超时机制来收敛,收敛慢,直接故障30s,间接故障50s

2,故障反馈机制较慢,通过逐跳转发TCN到根桥,在由根桥去通知全网交换机进行MAC地址表刷新

3,端口状态定义和端口角色之间模糊不清

交换环路的危害,广播风暴,MAC地址表震荡,重复数据帧的接收

MAC地址表震荡:

当收到报文的源MAC在其他接口已经有了MAC地址表项,会刷新上一条表项。表项彼此被删除

STP运作原则:

1,选择唯一根桥

2,每台交换机自身选择前往根桥开销最小的根端口

3,所有相连端口选择一个指定端口

4,阻塞在之前的选举中都落选的接口

根桥选举:比较根网桥ID,数值越小越优先,

桥ID由优先级和MAC地址组成,桥优先级默认为32768,如果一台交换机接收到一个比自己的桥ID大的BPDU,

则自己更优,会继续以2s为周期向外发送BPDU

根端口选举:比较去往根桥的开销——比较我接口上接收到的桥ID——比较端口上连交换机的端口ID——自己的端口ID

指定端口选举:链路开销——非根网桥ID(自身的BID)——端口ID(自身的PID)

运行STP的交换机都有一个端口ID,端口ID由端口优先级 和端口号组成,端口优先级的取值范围为0到240,取值必须为16的整数倍,默认为128

STP协议一共两种BPDU

1,配置BPDU

2,TCN BPDU

flages:

TCA bit 拓扑改变确认

TC bit 拓扑改变

message age : BPDU存活时间,根桥发送是为0,每经过一台交换机+1

max age : 默认是20s,BPDU最大存活时间,当message age 等于 max age,则认为该BPDU失效

hello timer : 默认是2s,BPDU发送间隔

forward delay : 默认15s,端口在监听状态和学习状态分别需要等待的时间

非根桥的计时器与根桥同步,配置计时器只需配置根桥

STP的端口角色:

RP根端口

DP指定端口

block的端口,华为STP定义为AP端口

标准的STP协议端口角色只有两种,STP协议将Block状态的端口引用RSTP协议的AP代替角色端口来定义

STP端口开销由三种定义

学习状态和监听状态都接收和转发BPDU

当根桥故障后,非根桥交换机在等待一个根桥的BPDU存活最大时间20s后重新开始选举根桥。如何在经历一个状态迁移时间,30s,需要50s完成收敛

直连链路故障后

1,存在AP的端口的交换机出现RP的直连故障后,AP成为新的RP,在经历两倍的转发延时后恢复转发状态,等待30s

2,不存在AP端口的交换机出现RP的直连故障后,该交换机会以自己为根发送BPDU,下游的交换机等待20s老化,

才处理该BPDU,当下游端口确定为DP时,经历两倍的转发延时进入转发状态,总计50s恢复故障

RP恢复到frowdring状态后,并有一个指定端口在转发状态,此RP也会发TCNBPDU

STP协议最早认为任何端口进入到forwading状态或者进入到disable状态时,认为STP拓扑发送变化,后来STP拓扑发生变化的定义做出了优化:

1,当DP端口进入到forwading状态认为拓扑发生了变化,连接终端设备的DP端口设置为边缘端口进行优化。

2,RP失效或者RP进入到forwarding状态

3,非根桥DP端口失效不认为拓扑发生变化

4,根桥的DP失效直接发送TC BPDU

@ STP协议当接口 down 或者 up 并过渡到forwarding状态,会发生TCN BPDU,由根端口向上游转发

并逐跳传给根桥,上游向下游发送TCA=1,TC=1 的配置BPDU,TCA,用于确认TCN,并将TCN逐跳传给根桥

@ 根桥在接收到TCN的端口回送一个TCA=1,TC=1的配置BPDU,TCA BPDU, 用于确认TCN,并通知网络拓扑发生变化,向所有端口发送TC BPDU

一直发送35s

STP的BPDU类型4种:

配置BPDU : TCA=0,TC=0

拓扑改变确认BPDU: TCA=1,TC=0

拓扑改变配置BPDU : TCA=1,TC=1 或者是 TCA=0,TC=1

拓扑改变通知: TCN BPDU

stp pathcost-standard //配置STP路径开销

STP协议为什么收敛慢?

端口角色计算其实非常快,比如当AP被计算为RP或者DP时,这个选举过程是非常快的,但为什么要等待30s?

监听状态15s,为了防止临时环路,让BPDU有足够的时间传递到全网,防止STP收敛过程中新的AP端口还没有被计算出来,

而其他端口都处于转发状态而导致的临时环路

学习状态15s,在STP收敛过程中存在MAC地址提前老化,为了避免大量未知MAC地址单播帧被泛洪转发,设计一段MAC学习时间,避免泛洪过多

所以STP协议为了避免环路和泛洪,被动等待计时器超时机制收敛,收敛慢

RSTP(快速生成树协议)

通过端口角色的增补,简化了生成树协议的理解与部署

RSTP端口角色,新增了Backup端口和边缘端口

P/A协商机制: 交换机的一个端口为DP时,并处于Discarding状态时,向外发送P置位的BPDU

1,初始状态时,每台交换机都认为自己是根桥,端口角色默认为DP,端口状态为Disabled。向外发送P置位的BPDU

SWB接收到该P置位的BPDU后,通过对比BPDU中的参数信息,知道SWB的优先级比对方低成为非根桥,

端口角色为RP则触发同步变量机制(将除边缘端口外的所有端口阻塞等待30s,防止暂时环路)

SWB向对端发送一个A置位的BPDU,进行确认。SWA收到确认后将该端口立即变为forwarding状态,该过程1s即可完成

2,如果接收到P/A协商的端口为AP,则AP端口无视该协商,发起协商的端口需等待两倍的转发延时30s后进入forwarding状态

状态标志位组合:

0 0 discarding

1 1 forwarding

0 1 learning

端口角色标志位组合:

0 0 保留组合,没有意义

1 1 DP

0 1 BP/AP

1 0 RP

RSTP的改变:

当根端口失效,交换机会立即认为自己是根桥,重置所有端口状态到DR和disable状态,触发P/A协商

1,网络拓扑发生变化时,变更点交换机直接向全网发送TC置位的BPDU,而不是先通知根桥然后由根桥向全网发送BPDU,节省了收敛时间

2,判断拓扑变化唯一标准:一个非边缘端口迁移到转发状态

3,边缘端口:当设置了边缘端口的接口会快速进入到转发状态,边缘端口也会发送BPDU,当边缘端口接收到BPDU会立即变成一个正常端口

边缘端口发生了变化,STP不会发送TCNBPDU,RSTP/MSTP不会发送TCBPDU,保证全网交换机MAC地址的稳定性

SWB的E1为RP,SWC的E2为AP

当SWB的E1链路down掉后:

SWB以自己为根,发送 P ,A 置位的BPDU,以自己为根桥,同时将E2端口变为DP端口,状态为Discarding

SWC的E2是阻塞端口,接收到次优BPDU后,将更好的BPDU转发给SWB,该端口角色变为 DP端口,状态为Discarding,发送P,A 置位的BPDU

SWB接收到SWC的更优BPDU后,回复一个以SWA为根,P置0,A置1 的BPDU,端口角色变为RP,状态为Forwardng

收敛机制:

由于拓扑发生了变化,拓扑发生变化的SWB的E1端口的MAC地址表清空,SWB除边缘端口外的所有端口发送TC置位的BPDU,

一旦TC-wait-time(4s)发生超时,则立即停止发送TCBPDU

其他收到TCBPDU报文的接口 清空除接收到TCBPCU报文和边缘端口外的所有接口清空MAC地址,同时向外发送 RST BPDU,TC置位

SWC接收到 RST BPDU 后,会清空除了收到报文外的其他所有非边缘端口学习到的MAC地址,SWA重复该过程

边缘端口为什么发送BPDU:

1,依然是指定端口

2,如果边缘端口下行网络产生环路,发送BPDU可以预防环路风险

端口保护:设置了端口保护的端口在接收到了bpdu后将端口shutdown,默认不会自动恢复

【SW int-g0/0/0】stp edged-port default //将端口设置为边缘端口

【SW】stp bodu-protection //在系统视图下,针对边缘端口,开启端口保护

【SW】error-down auto-recovery cause bpdu-protection interval 50 //端口因端口保护而shutdown,在50s内自动恢复

根保护:启用了Root保护功能的指定端口接收到优先级更高的RSTP BPDU时,端口进入到Discarding状态,不在转发报文

在经过一段时间后两倍的转发延时没有接收到优先级更高的BPDU,端口将自动恢复到转发状态,只能在指定端口上生效

【SW】stp root-protection

TC-BPDU泛洪保护:

启用了防TC-BPDU报文攻击功能后,在单位时间内,RSTP进程在接收处理到TC类型的BPDU次数可配置,默认单位时间2s,处理次数3次

RSTP只会处理阈值内的TC-BPCU,定时器超时后处理超出的TC-BPCU,统一处理一次。 避免频繁删除MAC地址,保护交换机

【SW G0/0/1】 stp tc-restriction enable //开启TC-BPDU保护

多生成树协议

将多个VLAN映射到一个实例instance上

IST : 内部生成树,MST域内实例0的生成树,是特殊的MSTI,只代表vlan1组成的实例0的树

CST : 公共生成树,连接所有MST域的一棵生成树

CIST : 公共和内部生成树,连接所有设备的一棵生成树,由IST和CST共同组成

MSTI : 多生成树实例,每个域内可以存在多棵生成树,每棵生成树与相应的VLAN对应,一个域内可以生成多颗生成树,由管理员创建每棵生成树都称为一个MSTI

SST:运行生成树协议的交换设备只能属于一个生成树,MST域中只有一个交换设备,但构成一个域,只它当初CST内来计算

总根 : CIST实例中桥ID最优的桥

域根 : MST域内的IST和每个MSTI的根桥都是一个域根,IST域根必须是距离总根最近的交换机,IST域根即实例0的根,MSTI域根即管理员配置的实例的根桥

主桥:

是IST Master,是域内距离总根最近的设备,如果总根在MST域中则总根为该域的主桥

新增的端口:

Master端口,非根域上哪些端口可以到总根,是MST域和总根相连所有路径中最短路径上的端口cost,

如果cost比不出来的则比较上联区域的IST域的BID即实例0的

把一个域当成一台交换机,他的BID就是实例0的BID

域边缘端口,域边缘端口是指位于MST域的边缘并连接其他MST域或SST的的端口

ERPC,在CST树的域间开销。IRPC,域内的开销

-------[CIST Global Info][Mode MSTP]-------

CIST Bridge         :32768.4c1f-cce3-067c

Config Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20

Active Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20

CIST Root/ERPC      :32768.4c1f-cc1f-6ab1 / 40000 //CIST总根的BID,是域内实例0的BID,域间开销是40000

CIST RegRoot/IRPC   :32768.4c1f-cce3-067c / 0 //域根ID,IST的BID充当

CIST RootPortId     :128.1 ,

MSTP配置:配置标识MST Configuration Identifer

标识自己所在的区域

被封装在交换机相互发送的BPDU中

1 Byet 协议规定 0x00

32 Byets 区域名称

2 Byets 修订级别

16 Byets MST配置表摘要

如果不配置域名,则会用交换机的MAC地址作域名,在一个域内域名和修订级别必须要一致

STP和RSTP,MSTP三种工作模式原则就是向下兼容

如果MSTP交换机的端口上曾经连接有STP/RSTP交换机,则该端口被迁移到STP/RSTP兼容工作模式

如果STP/RSTP交换机被关机或移走,则该端口无法自动迁移到MSTP模式下工作,此时如果在端口上执行 stp mcheck 操作,

则端口会重新迁移到MSTP模式下工作

MSTP拓扑计算:
CIST和MSTI都是根据优先级向量来计算的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路明非z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值