详谈STP、RSTP、MSTP三者不同之处 mstp和stp的区别

依次升级,向下兼容,二层防环STP与RSTP的区别1、端口角色STP:RP、DP、BP(blocking)RSTP:RP、DP、BP、AP、EP2、端口状态RSTP的状态规范把原来的5依次升级,向下兼容,二层防环
STP 与 RSTP 的区别
1、 端口角色
STP:RP、DP、BP(blocking)
RSTP: RP、DP、BP、AP、EP
2、 端口状态
RSTP 的状态规范把原来的 5 种状态缩减为 3 种 。根据端口是否转发用户流量和学习
MAC 地址来划分:

详谈STP、RSTP、MSTP三者不同之处 mstp和stp的区别

文章插图
文章插图

3、BPDU 不同 ①类型不同:只存在一种 BPDU,RSTP BPDU,相当于 STP 配置 BPDU 。②配置 BPDU 格式的改变 , 充分利用了 STP 协议报文中的 Flag 字段 。
详谈STP、RSTP、MSTP三者不同之处 mstp和stp的区别

文章插图
文章插图

4、收敛机制
STP 在任何的情况端口从阻塞到转发最少需要30S 。
RSTP 在以下的场景下,端口从阻塞到转发不需要转发延迟:
①根端口快速切换机制 如果网络中一个根端口失效,那么网络中最优的 Alternate 端口将成为根端口,直接进入 Forwarding 状态,无需任何转发延迟 。
②边缘端口机制 边缘端口不参与RSTP 运算,可以由 Disable 直接转到 Forwarding 状态,且不经历时延 。
③Proposal/Agreement 机制 当一个端口被选举成为指定端口之后,在 STP中,该端口至少要等待一个 Forward Delay(Learning)时间才会迁移到 Forwarding 状态 。而在 RSTP 中,此端口会先进入 Discarding 状态,再通过 Proposal/Agreement 机制快速进 入 Forwarding 状态 。这种机制必须在点到点全双工链路上使用 。
新链路连接成功后,P/A 机制协商过程如下:
详谈STP、RSTP、MSTP三者不同之处 mstp和stp的区别

文章插图
文章插图

(1)p0 和 p1 两个端口马上都先成为指定端口,发送 RST BPDU 。
(2)S2 的 p1 口收到更优的 RST BPDU,马上意识到自己将成为根端口,而不是指定
端口,停止发送 RST BPDU 。
(3)S1 的 p0 进入 Discarding 状态,于是发送的 RST BPDU 中把 proposa 置 1 。
(4)S2 收到根桥发送来的携带 proposal 的 RST BPDU,开始将自己的所有端口进入 sync变量置位 。
(5)p2 已经阻塞,状态不变 p4 是边缘端口,不参与运算;所以只需要阻塞非边缘指定端口 p3 。
(6)p2 和 p3 都进入 Discarding 状态之后,端口的 synced 变量置位,根端口 p1 的 synced也置位,于是便向 S1 返回 Agreement 位置位的回应 RST BPDU 。该 RST BPDU 携带和刚才根桥发过来的 BPDU 一样的信息 , 除了 Agreement 位置位之外(Proposal 位清零) 。
(7)当 S1 判断出这是对刚刚发出的 Proposal 的回应,于是端口 p0 马上进入 Forwarding状态 。
以上 P/A 过程可以向下游继续传递 。
事实上对于 STP,指定端口的选择可以很快完成,主要的速度瓶颈在于:为了避免环路 , 必须等待足够长的时间 , 使全网的端口状态全部确定,也就是说必须要等待至少一个Forward Delay 所有端口才能进行转发 。而 RSTP 的主要目的就是消除这个瓶颈,通过阻塞自己的非根端口来保证不会出现环路 。而使用 P/A 机制加快了上游端口转到Forwarding 状态的速度 。
说明:P/A 机制要求两台交换设备之间链路必须是点对点的全双工模式 。一旦 P/A 协商不成功,指定端口的选择就需要等待两个 Forward Delay,协商过程与 STP 一样 。
5、对次优 BPDU 的处理方式
当一个端口收到上游的指定桥发来的 RST BPDU 报文时,该端口会将自身存储的RST BPDU 与收到的 RST BPDU 进行比较 。如果该端口存储的 RST BPDU 的优先级高于收到的 RST BPDU,那么该端口会直接丢弃收到的 RST BPDU,立即回应自身存储的 RST BPDU 。当上游设备收到下游设备回应的 RST BPDU 后,上游设备会根据收到的 RST BPDU 报文中相应的字段立即更新自己存储的 RST BPDU 。由此,RSTP 处理次等 BPDU 报文不再依赖于任何定时器通过超时解决拓扑收敛 , 从而加快了拓扑收敛 。STP要等待20S老化时间 。
6、 TC机制
详谈STP、RSTP、MSTP三者不同之处 mstp和stp的区别

文章插图
文章插图

1. T 点接口发生变更后 , 下游设备会不间断地向上游设备发送 TCN BPDU 报文 。
2. 上游设备收到下游设备发来的 TCN BPDU 报文后,只有指定端口处理 TCN BPDU 报文 。其它端口也有可能收到 TCN BPDU 报文,但不会处理 。
3. 上游设备会把配置 BPDU 报文中的 Flags 的 TC 和 TCA 位设置 1,然后发送给下游设备,告知下游设备停止发送 TCN BPDU 报文 。
4. 上游设备复制一份 TCN BPDU 报文,向根桥方向发送 。
5. 重复步骤 1、2、3、4 , 直到根桥收到 TCN BPDU 报文 。
6. 根桥把配置 BPDU 报文中的 Flags 的 TC 位置 1 后发送,通知下游设备直接删除桥
MAC 地址表项 。
说明:
? TCN BPDU 报文主要用来向上游设备乃至根桥通知拓扑变化 。
? 置位的TCA标记的配置BPDU报文主要是上游设备用来告知下游设备已经知道拓扑
变化,通知下游设备停止发送 TCN BPDU 报文 。
? 置位的 TC 标记的配置 BPDU 报文主要是上游设备用来告知下游设备拓扑发生变化,请下游设备直接删除桥 MAC 地址表项 , 从而达到快速收敛的目的 。
RSTP 拓扑变化处理
在 RSTP 中检测拓扑是否发生变化只有一个标准:一个非边缘端口迁移到 Forwarding状态 。
一旦检测到拓扑发生变化,将进行如下处理:
? 为本交换设备的所有非边缘指定端口启动一个 TC While Timer,该计时器值是 Hello Time 的两倍 。在这个时间内,清空状态从 Forwarding 到 Discarding 的端口上学习到的 MAC 地址 。同时,由这些端口向外发送 RST BPDU,其中 TC 置位 。一旦 TC While Timer 超时,则停止发送 RST BPDU 。
? 其他交换设备接收到 RST BPDU后,清空所有端口学习到 MAC 地址 , 除了收到 RST BPDU 的端口 。然后也为自己所有的非边缘指定端口和根端口启动 TC While Timer,重复上述过程 。
如此,网络中就会产生 RST BPDU 的泛洪 。
6、 增加防护机制
RSTP 提供的保护功能有:
(1) BPDU 保护
在交换设备上,通常将直接与用户终端(如 PC 机)或文件服务器等非交换设备相连的端口配置为边缘端口 。正常情况下,边缘端口不会收到 RST BPDU 。如果有人伪造 RST BPDU 恶意攻击交换设备,当边缘端口接收到 RST BPDU 时,交换设备会自动将边缘端口设置为非边缘端口,并重新进行生成树计算,从而引起网络震荡 。
交换设备上启动了 BPDU 保护功能后 , 如果边缘端口收到 RST BPDU,边缘端口将被error-down,但是边缘端口属性不变 , 同时通知网管系统 。
(2) 根保护
由于维护人员的错误配置或网络中的恶意攻击 , 网络中合法根桥有可能会收到优先级更高的 RST BPDU , 使得合法根桥失去根地位,从而引起网络拓扑结构的错误变动 。这种不合法的拓扑变化,会导致原来应该通过高速链路的流量被牵引到低速链路上 , 造成网络拥塞 。
对于启用 Root 保护功能的指定端口,其端口角色只能保持为指定端口 。一旦启用Root 保护功能的指定端口收到优先级更高的 RST BPDU 时,端口状态将进入 Discarding 状态 , 不再转发报文 。在经过一段时间(通常为两倍的 Forward Delay),如果端口一直没有再收到优先级较高的 RST BPDU,端口会自动恢复到正常的 Forwarding 状态 。
说明: Root 保护功能只能在指定端口上配置生效 。
(3) 环路保护
在运行 RSTP 协议的网络中,根端口和其他阻塞端口状态是依靠不断接收来自上游交换设备的 RST BPDU 维持 。当由于链路拥塞或者单向链路故障导致这些端口收不到来自上游交换设备的 RST BPDU 时 , 此时交换设备会重新选择根端口 。原先的根端口会转变为指定端口,而原先的阻塞端口会迁移到转发状态,从而造成交换网络中可能产生环路 。
在启动了环路保护功能后,如果根端口或 Alternate 端口长时间收不到来自上游设备的 BPDU 报文时,则向网管发出通知信息(此时根端口会进入 Discarding 状态 , 角色切换为指定端口),而 Alternate 端口则会一直保持在阻塞状态(角色也会切换为指定端口) , 不转发报文,从而不会在网络中形成环路 。直到链路不再拥塞或单向链路故障恢复 , 端口重新收到 BPDU 报文进行协商,并恢复到链路拥塞或者单向链路故障前的角色和状态 。
说明:
环路保护功能只能在根端口或 Alternate 端口上配置生效 。
(4) 防 TC-BPDU 攻击
交换设备在接收到 TC BPDU 报文后 , 会执行 MAC 地址表项和 ARP 表项的删除操作 。如果有人伪造 TC BPDU 报文恶意攻击交换设备时,交换设备短时间内会收到很多 TC BPDU 报文 , 频繁的删除操作会给设备造成很大的负担,给网络的稳定带来很大隐患 。启用防 TC-BPDU 报文攻击功能后 , 在单位时间内,交换设备处理 TC BPDU 报文的次数可配置 。如果在单位时间内,交换设备在收到 TC BPDU 报文数量大于配置的阈值 , 那么设备只会处理阈值指定的次数 。对于其他超出阈值的 TC BPDU 报文,定时器到期后设备只对其统一处理一次 。这样可以避免频繁的删除 MAC 地址表项和 ARP 表项 , 从而达到保护设备的目的 。
MSTP
STP/RSTP在交换机上有且仅有一个实例,所有vlan映射到一个实例上 , RSTP虽然可以实现网络的快速收敛,但是仍然会出现闲置链路 , 没有达到负载均衡的目的 。
MSTP可以自定义多个生成树实例,允许多个vlan映射到不同的实例 。实现负载均衡,避免闲置链路;实现冗余备份,各实例之间的单独进行RSTP计算的,互不影响 。不同的vlan流量根据不同的路径进行转发 。
MSTP 基本概念:
(1)CIST公共和内部生成树: CIST是通过STP或RSTP协议计算生成的 , 连接一个交换网络内所有交换设备的单生成树 。总根是整个网络中优先级最高的网桥,即为CIST的根桥 。所有MST域的IST加上CST就构成一棵完整的生成树 , 即CIST 。拓扑中,MST域内的红线和MST域间的蓝线共同 组成了CIST 。CIST的根桥为MST Region1中的S1 。
(2)CST公共生成树: CST(Common Spanning Tree)是连接交换网络内所有MST域的 一棵生成树 。CST就是这些节点通过STP或RSTP协议计算生成的一棵生成树 。拓扑中 , 由蓝线组成CST 。CST的根即为MST Region1 。
(3)内部生成树: IST(Internal Spanning Tree)是各MST域内的一棵生成树 。MST域内每颗生成树都对应一个实例号,IST的实例号为0 。实例 0无论有没有配置都是存在的,没有映射到其他实例的VLAN默认 都会映射到实例0,即IST上 。(只根据实例0的根为ist) IST是 CIST在MST域中的一个片段 。拓扑中,由红线组成IST 。
(4)主桥: (Master Bridge)也就是IST Master,它是域内距离总根最近的交换设备 。如果总根在MST域中,则总根为该域的主桥 。拓扑中,Master桥为黄色的网桥 , 即为S1/S4/S7 。
(5)单生成树: SST(Single Spanning Tree)有两种情况:运行STP或RSTP的 交换设备只能属于一个生成树 。MST域中只有一个交换设备,这个交换设备构成单生成树 。拓扑中没有给出实例 。
TCN BPDU 0x80
CONFIG BPDU 0X00
MAC maxage 300S
详谈STP、RSTP、MSTP三者不同之处 mstp和stp的区别

文章插图
文章插图

同一个域的条件
(1) region name
(2) region level
(3) 实例中的 vlan 映射
MSTP相对于RSTP和STP的优点
1、MSTP支持链路负载分担,而STP/RSTP不支持: RSTP所有的VLAN在一棵树上即一个实例,单个无法现实负载负担; MSTP有实例的概念,一个实例相当于一颗树,将不同实例的根设置在不同的交换机上 , 然后将不同的vlan映射到不同的实例里,实现流量负载分担,提高链路的利用率 。
2、MSTP有域的概念,而STP/RSTP没有: MSTP可以将设备分别划分到不同域中 , 每个域单独收敛,域中的一台设备发生变化,只会影响该域 , 不会应该整个网络 。
MSTP在RSTP的基础上新增了2种端口:
Master端口: 1.MST域和总根相连的所有路径中最短路径上的端口,它是交换设备上连接MST 域到总根的端口 。2.域中的报文去往总根的必经之路 。3.特殊域边缘端口 , Master端口在CIST上的角色是Root Port,在其它各实例上的角色都是Master端口 。
域边缘端口: 1.是指位于MST域的边缘并连接其它MST域的端口 。2.进行MSTP计算时,域边缘端口在MSTI上的角色和CIST实例的角色保持一致 。
MSTP 快速收敛机制
MSTP 支持普通方式和增强方式两种 P/A(Proposal/Agreement)机制:
? 普通方式
MSTP 支持普通方式的 P/A 机制实现与 RSTP 支持的 P/A 机制实现相同 。
? 增强方式
增强方式的 P/A 机制
详谈STP、RSTP、MSTP三者不同之处 mstp和stp的区别

文章插图
文章插图

如图 所示,在 MSTP 中,P/A 机制工作过程如下:
1. 上游设备发送 Proposal 报文,请求进行快速迁移 。下游设备接收到后,把与上游设备相连的端口设置为根端口,并阻塞所有非边缘端口 。
2. 上游设备继续发送 Agreement 报文 。下游设备接收到后 , 根端口转为Forwarding 状态 。
3. 下游设备回应 Agreement 报文 。上游设备接收到后,把与下游设备相连的端口设置为指定端口,指定端口进入 Forwarding 状态 。
【详谈STP、RSTP、MSTP三者不同之处 mstp和stp的区别】缺省情况下 , 华为数据通信设备使用增强的快速迁移机制 。如果华为数据通信设备和其他制造商的设备进行互通,而其他制造商的设备 P/A 机制使用普通的快速迁移机制,此时 , 可在华为数据通信设备上通过命令 stp no-agreement-check 设置 P/A 机制为普通的快速迁移机制,从而实现华为数据通信设备和其他制造商的设备进行互通 。

相关经验推荐