HCIP_RSTP_

上期说到STP,这期说到RSTP,不得不说一下,STP虽然解决了环路问题,但是由于网络拓扑收敛速度慢,影响通信体验,
STP缺点如下:

  • STP没有细致区分端口状态和端口角色,不利于学习和部署
  • STP算法是被动算法,依赖定时器等待的方式判断拓扑变化,收敛速度慢。
  • STP算法要求在稳定网络中由根桥发送配置BPDU报文,而其他设备进行处理,传遍整个STP网络。
    根据STP不足,RSTP删除了3种端口状态,新增加了两种端口角色;此外RSTP还增加了一些增强特性和保护措施,实现网络的稳定和快速收敛。
    1.端口角色
    RSTP(802.1w)的端口角色有四种:根端口、指定端口、Alternate端口和Backup端口。根端口和指定端口的作用同STP,Alternate端口和Backup端口如下:
    (1)从配置BPDU报文发送角度看:
    Alternate端口就是由于学习到其他网桥发送配置BPDU报文而阻塞的端口。
    Backup就是由于学习到自己发送的配置BPDU报文而阻塞的端口。
    (2)从用户流量来看:
    Alternate端口提供了从指定桥到跟的另一条可切换路径,是根端口的备份端口。
    Backup端口作为指定端口的备份,提供了另一条从根桥到相应网段的备份链路。
    2.端口状态
    RSTP的状态,从STP的5种状态规划到现在的3种。根据端口是否转发用户流量和学习MAC地址来划分。
端口状态 说明
Forwarding 这种状态既处理用户流量又处理BPDU报文
Learning 这是一种过渡状态。在Learning状态,交换机会根据用户流量,构建MAC地址表,但不转发流量,所以叫学习状态,Learning只处理BPDU报文。
Discarding DIS状态只接受BPDU报文

3.报文类型和格式
在RSTP中仅有一种BPDU类型既RST BPDU,也就是RSTP中配置BPDU。
在这里插入图片描述
RST 配置BPDU基本和STP一致,但有一些小改变,type字段,配置BPDU类型不再是0而是2,所以运行STP的设备收到RST BPDU会丢弃,Flags字段,使用了原来保留的中间6位。
4.配置BPDU的处理。
STP:拓扑稳定后,根桥按照Hello Timer规定的时间间隔发送配置BPDU。其他非根设备在收到上游发来的配置BPDU后,才会触发发出配置BPDU这样就复杂并且缓慢。
RSTP:拓扑稳定后,无论是否接收到根桥设备发来的配置BPDU,非根桥设备仍然会按照Hello Timer规定的世间发送配置BPDU,该行为完全由每台设备自主进行。
更短的BPDU计时器,如果一个端口连续3个Hello Time时间没收到上游发送来的配置BPDU,那么该设备认为与邻居协商失败,而不是STP等待一个MAX Age
处理次等BPDU。当一个端口收到上游指定桥发来的RST BPDU报文时,该端口会进行一个与自己储存的RST BPDU比较。如果储存的BPDU优先级高,那么会直接丢弃,立即回应自身储存的RST BPDU。
当上游设备收到下游设备回应的RST BPDU后,上游设备会根据报文中相应字段更新自己储存的RST BPDU。
P/A机制
STP指定端口可以很快完成选择,但是他要等到全拓扑端口角色全部确定,也就是说要等待至少一个Forward Delay所有端口才能进行转发。而RSTP目的就在于消除这个瓶颈,通过阻塞自己的非根端口来保证不会出现环路。而使用P/A机制加快了上游端口转到Forwarding状态的速度。
P/A机制要求两台交换设备之间链路必须是点到点全双工模式。一旦协商不成功,指定端口的选择就需要等待两倍的Forward Delay 协商过程与STP一样。
在这里插入图片描述
新链路连接成功后P/A机制协商如下:
1.P0,P1互为指定端口,相互发送RST BPDU,假设当S2的P1端口接收到更优的BPDU,意识到自己不再是指定端口而是根端口后,立即停止发送RST BPDU。
2.S1的P0端口马上进入discarding状态,立马发送P置位1的RST BPDU
3.当S2收到根桥发送来的P置位1的BPDU,立马将自己P3指定端口阻塞掉,(p2已经阻塞)P4边缘端口不参与计算。
4.P2和P3都进入discarding后S2向S1发送一个A置位的BPDU报文,当S1判断出这是S2发来的A置位的BPDU,S1的P0端口立马进入Forwarding状态,
下游交换机持续此操作。
(2)边缘端口(EP):用于连接终端等设备,可以在端口up后直接进入Forwarding状态,不需要等待转发延时。在华为的STP优化后,也可以配置边缘端口,但是标准的STP没有此特性。
边缘端口的作用:1.可以直接进入转发状态,
2.当网络发生变化时,边缘端口可以保持转发状态,
(3)根端口快速切换
当自身的根端口失效后,AP端口可以直接转换为RP端口并进入转发状态,无需等待转发延时
6.拓扑变更机制
在RSTP中检测拓扑是否发生变化只有一个标准:一个非边缘端口迁移到Forwarding状态。一旦检测到变化,将进行如下处理。

  • 为本交换机所有非边缘指定端口启动一个TC while Timer,该计时器是hello time的两倍时间,在这个时间内,清空所有端口上学习到的MAC地址,同时由非边缘端口向外发送RST BPDU,TC置位。一旦TCwhile Timer超时,则停止发送RST BPDU。
  • 其他交换机接收到RST BPDU后,清空所有端口学习到的MAC地址,除了收到RST BPDU的端口,然后也为自己所有的非边缘指定端口,根端口启动TC while Timer 重复上述过程。
  • 如此网络中就会产生RST BPDU的泛洪。
    7.保护机制
BPDU保护 交换机设备启动了BPDU保护功能后,如果边缘端口收到了RST BPDU,边缘端口将被erro-down,但是边缘端口属性不变,同时通知网管系统。
根保护 如果一个指定端口启用了root保护功能,其端口角色只能保持为指定端口,一旦启用了root保护功能的指定端口收到了优先级更高的RST BPDU,端口状态将变为discarding状态,不在转发报文,经过一段时间后(通常为两倍的转发延时。)如果端口再没收到优先级更高的RST BPDU那么端口状态自动恢复到Forwarding状态
环路保护 环路保护只能在根端口或者Alternate端口配置上生效,在启动了环路保护功能后,如果根端口或Alternate端口长时间收不到上游的RST BPDU时则会向网关发通知信息(如果是根端口则进入discarding状态)而阻塞端口会一直是阻塞状态,不转发报文从而不会再网络中形成环路,直到根端口或Alternate端口收到RST BPDU,端口正常恢复到Forwarding状态。
防TC-BPDU攻击 启用此功能后,在单位时间内交换机设备处理TC BPDU报文的次数可以配置,如果单位时间内,交换设备收到TC BPDU大于配置的数量,那么设备只会处理配置的数量,超出的TC报文,定时器到期后设备只对其同一处理一次,这样可以避免设备频繁的删除MAC表项和ARP表项。从而达到保护设备的目的。

注明:在华为优化STP中也可以使用这些保护机制但是标准STP不具备。
BPDU保护使用场景:当有人伪造RST BPDU报文,交换机会将边缘端口变为非边缘端口。重新引起生成树计算
根保护使用场景:由于网络中恶意攻击或者错误配置,网络中合法根桥会收到优先级更高的BPDU,从而引起网络拓扑变更,网络震荡。
环路保护使用场景:在运行 RSTP 协议的网络中,根 端口和其他阻塞端口状态是依 靠不断接收来自上游交换设备 的 RST BPDU 维持。
当由于链路拥塞或者单向链路 故障导致这些端口收不到来自 上游交换设备的 RST BPDU 时, 此时交换设备会重新选择根端 口。原先的根端口会转变为指 定端口,而原先的阻塞端口会 迁移到转发状态,从而造成交 换网络中可能产生环路。
防TC-BPDU攻击使用场景:交换机收到TC-BPDU后 会进行删除MAC地址表项和ARP表项,从而引起网络震荡,。如果有人 伪造 TC BPDU 报文恶意攻击交 换设备时,交换设备短时间内 会收到很多 TC BPDU 报文,频 繁的删除操作会给设备造成很 大的负担,给网络的稳定带来 很大隐患。
1.12

发布了10 篇原创文章 · 获赞 16 · 访问量 829

猜你喜欢

转载自blog.csdn.net/qq_45519920/article/details/103948203