Advertisement

STP和RSTP的区别

阅读量:

1、STP的不足

STP协议尽管能够有效消除环路问题 但其在网络环境下的收敛速度较慢 当实际应用场景中若网络中的拓扑结构发生变化频率较高时 会导致通信中断情况出现率显著提升

不足点1 :STP没有细致区分端口状态和端口角色。

从用户体验的角度来看 ,在这些状态下(Listening、Learning及Blocking)之间并无差别,都不会转发用户的流量数据。

从数据配置的角度出发,在本质上区分这些endPort的关键不在于它们当前的状态而是由于它们扮演的角色不同。值得注意的是,在这种情况下(即当根endPort和指定endPort中)它们可以同时处于Listening状态也可能是同时处于Forwarding状态。

不足点2:STP算法是非主动的算法;它基于定时器等待的方式进行拓扑变化检测,并且其收敛速度较慢。

不足点3 :STP机制规定,在稳定的网络拓扑中,根桥主动发送配置型BPDU报文至其他设备;这些设备接收后进行处理,并转发至整个STP网络系统。这一特性成为导致STP拓扑收敛速度较慢的重要原因之一。

2、RSTP对STP的改进:

1.端口角色的细化:

RSTP(增强型生成树算法)中的网络设备角色划分相较于传统的STP(生成树算法)多出了两种类型:主(Root)端口、专属性(Designated)端口、备用(Alternate)端口以及备份(Backup)端口;总共有四种角色类型需要考虑

Alternate端口和Backup端口的描述如下:

①从配置BPDU报文发送角度看:

Alternate端口就是因为接收到其他网桥配置了BPDU帧数据包而被阻塞的端口

Backup端口就是由于学习到自己发送的配置BPDU报文而阻塞的端口。

②从流量角度来看:

备用端口设置了通过指定桥到根的一条可切换路径,并作为根端口的备用连接。

备份接口对应指定的主备功能,并负责提供一条从核心交换机群组桥接节点至相应网络段落之间的备用连接线路

给一个RSTP域内所有端口分配角色的过程就是整个拓扑收敛的过程。

2.端口状态的重新划分

RSTP的状态规范将其原有的5种状态缩减为3种,并非增加或减少功能参数而是优化了管理流程的简洁性。主要依据包括:端口是否转发用户流量以及是否学习MAC地址

若未转发用户流量且未学习MAC地址,则端口状态会变为Discarding 状态。

如果不转发用户流量但学习MAC地址,则该端口的状态属于处于Learning状态

如果同时发送用户流量并捕获MAC地址,则该端口的状态即为Forwards 状态。

3.配置BPDU格式的改变

调整配置文件以适应BPDU规范的变化需求,在遵循STP协议报文中充分依赖于...提供的关键信息字段(如Flag字段),明确标识了各个端口的角色定位与功能划分。在遵循BPDU规范的同时,在遵循现有STP规范的基础上进一步优化和简化了配置流程,并针对RSTP进行了微调和完善。

由于Type字段中设置将BPDU类型从**0**更改为**2** ,因此运行STP设备在接收到RSTP配置的BPDU时会被丢弃。

②Flags字段,使用了原来保留的中间6位,这样改变的配置BPDU叫做RST BPDU。

4.配置BPDU的处理发生变化

①拓扑稳定后,配置BPDU报文的发送方式

当网络拓扑达到稳定状态时, 根桥节点将依照预设好的Hello Timer时间间隔生成并发送相应的配置BPDU报文. 在接收上层节点发送来的配置BPDU报文之后, 那些不是根桥的其他网络设备才会开始执行生成相应配置BPDU的操作. 这种方式导致STP协议的计算变得复杂且迟缓, 因此RSTP提出了一种改进方案: 在网络拓扑稳定的条件下, 无论下层节点是否接收到来自根桥节点的配置BPDU报文, 每个非根桥节点都将依照设定好的Hello Timer时间间隔自主地生成并发送相应的配置型态信息

②更短的BPDU超时计时

当某个端口在连续三次Hello周期内未能接收到上游设备发送的配置型’BPDU’时,则认为此端口与相邻设备之间的协商未能达成。无需如同STP那样预设最大Age时间来等待响应。

③处理次等BPDU

当一个端口接收到来自指定桥发送过来的RST BPDU报文时,在处理过程中会将其与自身存储的数据进行核对。

如果该端口存储的RST BPDU具有更高的优先级 than the received RST BPDU, the port will directly reject the received RST BPDU and immediately respond to its own stored RST BPDU. Upon receiving a response from downstream devices via the RST BPDU, upstream devices will promptly update their stored information based on the corresponding fields within the received RST BPDU.

由此可知,在RSTP中管理次等BPDU报文不再受定时器超时机制的影响而直接解决了拓扑收敛问题,并显著加快了网络拓扑的收敛速度

5.快速收敛

①Proposal/Agreement机制

当一个端口成为指定端口之后,在STP环境中…该端口至少需要经过一段时间的学习期才会切换到Forwardsing状态。而在RSTP协议下…此端口首先会进入Discarding状态,并迅速通过Propose/Agreement流程切换至Forwards状态。这种机制只能用于两点之间实现全双工通信的网络拓扑结构中。

②根端口快速切换机制

当某一个根端口在网路中出现故障时,在线路最优化配置下系统会自动选择最优Alternate(备选)端口替代失效的主根桥接站角色,并将其转入转发模式以维持网络连通性。这是因为该Alternate连通的网段上必定有一个特定接口能够连接至该桥接站。

③边缘端口的引入

在RSTP机制中,在整个网络架构的外围区域设置一个特定的端口节点,在这种情况下如果该指定端口不再通过交换设备进行网络通信而直接连接至终端设备,则将其定义为边界端口

边缘端口未接收BPDU处理配置,并未参与RSTP运算。该端口可通过Disable指令直接切换至Forwarding状态,并无时延经历。一旦边缘端口接收到BPDU配置信息,则失去了边缘端口属性并变为普通STP端口,在此过程中将重新执行生成树计算过程,导致网络出现振荡现象。

6.保护功能

保护功能 场景 原理
BPDU保护 在交换设备上,通常将直接与用户终端(如PC机)或文件服务器等非交换设备相连的端口配置为边缘端口。正常情况下,边缘端口不会收到RST BPDU。如果有人伪造RST BPDU恶意攻击交换设备,当边缘端口接收到RST BPDU时,交换设备会自动将边缘端口设置为非边缘端口,并重新进行生成树计算,从而引起网络震荡。 交换设备上启动了BPDU保护功能后,如果边缘端口收到RST BPDU,边缘端口将被error-down,但是边缘端口属性不变,同时通知网管系统。
根保护 由于维护人员的错误配置或网络中的恶意攻击,网络中合法根桥有可能会收到优先级更高的RST BPDU,使得合法根桥失去根地位,从而引起网络拓扑结构的错误变动。这种不合法的拓扑变化,会导致原来应该通过高速链路的流量被牵引到低速链路上,造成网络拥塞。 对于启用Root保护功能的指定端口,其端口角色只能保持为指定端口。一旦启用Root保护功能的指定端口收到优先级更高的RST BPDU时,端口状态将进入Discarding状态,不再转发报文。在经过一段时间(通常为两倍的Forward Delay),如果端口一直没有再收到优先级较高的RST BPDU,端口会自动恢复到正常的Forwarding状态。 说明: Root保护功能只能在指定端口上配置生效。
环路保护 在运行RSTP协议的网络中,根端口和其他阻塞端口状态是依靠不断接收来自上游交换设备的RST BPDU维持。 当由于链路拥塞或者单向链路故障导致这些端口收不到来自上游交换设备的RST BPDU时,此时交换设备会重新选择根端口。原先的根端口会转变为指定端口,而原先的阻塞端口会迁移到转发状态,从而造成交换网络中可能产生环路。 在启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游的RST BPDU时,则向网管发出通知信息(如果是根端口则进入Discarding状态)。而阻塞端口则会一直保持在阻塞状态,不转发报文,从而不会在网络中形成环路。直到根端口或Alternate端口收到RST BPDU,端口状态才恢复正常到Forwarding状态。 说明: 环路保护功能只能在根端口或Alternate端口上配置生效。
防TC-BPDU攻击 交换设备在接收到TC BPDU报文后,会执行MAC地址表项和ARP表项的删除操作。如果有人伪造TC BPDU报文恶意攻击交换设备时,交换设备短时间内会收到很多TC BPDU报文,频繁的删除操作会给设备造成很大的负担,给网络的稳定带来很大隐患。 启用防TC-BPDU报文攻击功能后,在单位时间内,交换设备处理TC BPDU报文的次数可配置。如果在单位时间内,交换设备在收到TC BPDU报文数量大于配置的阈值,那么设备只会处理阈值指定的次数。对于其他超出阈值的TC BPDU报文,定时器到期后设备只对其统一处理一次。这样可以避免频繁的删除MAC地址表项和ARP表项,从而达到保护设备的目的。

3、关于RSTP个人见解

1.端口角色:

DP:流出BPDU

RP:流入BPDU

收到BPDU帧后,在根桥上建立交替路径(次优路径)。其中,
AP为非指定交换机上的阻塞端口。
当RP作为备用时,
通常通过排除法最终确认该接口是否为AP。
如果某个接口被阻塞且不是BP,
则该接口可能是AP;
如果某个接口既不是DP也不是RP或BP,
则该接口必定是AP。

BP定义为接收Backward PDU(Backward Data Unit)帧的情况,在备用Port上出现自环现象时会被视为As DP Segment Link Backup Port (As DP-Segment Link DPB)。当某设备接收本设备发送出来的Backward PDU帧时,则表明其所在接口处于Block State(阻塞状态)。其中:

  • BP通常指的是指定Switch上的一类特殊的Block Port,在这种情况下需要考虑指定Switch与非指定Switch的区别,并涉及PK四个参数等背景知识。
  • 另一种理解方式是从特定链路的角度来看Switch设备:一定存在一个对应的指定Switch(基于PK四个参数确定),在这一特定链路上的所有PC(物理连接点)都会通过该Switch连接至Root Bridge;而在这一特定链路上的所有属于指定Switch接口范围内的EndPort如果处于Blocking State,则该EndPort即为对应的Block Port BP。

AP与BP的主要区别在于两者均为阻塞端口,并且其位置存在差异。其中BP特指指定交换机上配置的阻塞接口,而AP则为非指定交换机上配置的阻塞接口。具体设置这两种端口的目的在于使网络能够加速迅速恢复稳定状态;即当STP拓扑发生变化时能够有效提高网络自愈能力。

无论何种情况,在同一个交换机内的任何一段链路中都必然会出现 BP 与 DP 这对组合。一旦某个 DP 发生故障,默认情况下默认情况下指定交换机会切换至可用状态的是其对应的 backup BP 即 backup 站点域单元(BPD)。这种关系仅限于特定拓扑结构中的自环节点才会出现的情况所特有的现象。在这种特殊拓扑结构中存在一种称为 self-loop 的设备类型其定义是能够同时发送和接收 BPDU 并能正常接收来自自身其他端口的数据流的存在。

在BPDU网络中定义了一个重要的参数域RP(代表响应参数),它直接连接到Root域节点上;对于每一个这样的RP域而言,在其对应的另一个域(称为对端)必定存在一个DP(数据包)实例,并且该实例必须至少有一个出口口令通道用于数据传输;同样地,在此网络中定义了另一个参数域AP(代表主动参数),它也直接连接到Root域节点上;对于每一个这样的AP域而言,在其对应的另一个域必定存在一个DP实例,并且该实例至少包含一个出口口令通道以确保数据的安全传输

每段链路都仅存在一个DP端口,并且该端口会将流量导入到该段链路上。因为每段链路都可能存在多个PC设备。当然地,如果多条线路连接到同一个HUB,则被视为同一根链路。

RSTP和STP区别:

1.相同点:RSTP和STP 在选举的结论上都是一样的

2.RSTP快 STP 慢 ,尤其是当拓扑发生变化时,RSTP收敛会更快

RSTP 比STP 收敛快的改进之处 三种快收敛的措施:

① PA 机制:通过提问与达成协议的方式实现网络管理功能。该机制能够有效解决 STP 端口的切换问题,在传统 RSTP 框架下,由于每个周期需等待 30 秒才能使指定端口进入转发状态。而在 RSTP 中采用 PA 机制后,则能确保指定端口能在毫秒级别快速切换到转发模式。

② 根端口快速切换机制

两种端口不受协商机制的影响 :edge port 和 AP port

③ 边缘端口机制

后面针对RSTP的P/A机制详细聊聊!感兴趣的话可以关注一手哦!

全部评论 (0)

还没有任何评论哟~