33 张图详解 RSTP 、MSTP、替代技术
扫描二维码
随时随地手机看文章
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
STP 的弊端
上次有写过一篇《图解 STP 》的文章,里面有提到 STP 的功能是消除环路和链路备份,同时也发现 STP 的一些问题:- 网络收敛速度慢:BPDU 的 Max Age 值是
20
秒,接口从侦听到学习状态和从学习到转发状态分别有一个15
秒的转发延迟时间,因此一个接口从阻塞到转发状态需要30 ~ 50
秒的时间,这段时间内接口无法正常使用。
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
- 接口状态不合理:STP 接口的禁用、阻塞、侦听状态类似,功能高度重合。
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
- 拓扑变化依赖计时器:根交换机发送配置 BPDU 的 Hello Time 是
2
秒,非根交换机即使没收到 BPDU ,也要在 Max Age 的20
秒后,才会重新计算 STP 。
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
什么是收敛?收敛是指网络进入稳定状态。比如在 STP 中所有接口获得接口角色,进入转发或阻塞状态。收敛时间是指网络从发生变化到进入稳定状态的时间。
RSTP
鉴于 STP 的优缺点都很明显,弃之又觉得可惜,还是抢救一下吧。于是升级版的 RSTP 出现了,对 STP 进行了大量的改进。RSTP 增加新的接口角色,其中的替代接口可在交换机的根接口失效时,立即成为新的根接口,获取新的路径到达根桥。RSTP 使用 P/A 机制,让指定接口能够快速进入转发状态,而不用像 STP 那样经过 Forward Delay 时间。RSTP 还新增边缘接口的概念,让交换机接入终端设备的接口立即进入转发状态。RSTP 接口角色
RSTP 在 STP 的基础上增加了接口角色,4 种接口角色分别是:根接口( RP )、指定接口( DP )、替代接口( Alternate Port ,AP )和备份接口( Backup Port ,BP )。根接口和指定接口与 STP 中定义相同,对于 STP 的非根非指定接口,RSTP 将其分为两种,一种是替代接口,另一种是备份接口。![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
1、替代接口( Alternate Port ,AP )
替代接口就是根接口的备份,由于收到其它交换机发送的更优 BPDU 而被阻塞的接口。如果根接口发生故障,那么替代接口会成为新的根接口。接口切换过程中,无需延时,无需 BPDU 交互,立马进入到转发状态。一台交换机如果是非根桥,那么它有且只有一个根接口,但是这台交换机可以没有替代接口,也可以有,当有替代接口时,可以有一个或多个。当交换机的根接口发生故障时,最优的替代接口将成为新的根接口。![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
2、备份接口( Backup Port ,BP )
备份接口也是指定接口的备份,备份接口是交换机收到了自己发送的 BPDU 而被阻塞的接口。如果一台交换机的多个接口在同一个物理网段内,其中一个选举为指定接口,其它接口选举为备份接口且处于丢弃状态,备份接口作为这个网段到达根桥的冗余接口。如果交换机的指定接口发生故障,最优的备份接口成为新的指定接口,为根交换机与这条链路提供另一条转发通道,实现与这个网段的数据交互。备份接口通常在这两种情况下出现,一种是交换机的多个接口连接到一台集线器( Hub )上,但是集线器和共享网络几乎绝迹。另一种情况是同一台交换机的两个接口通过一条网线连接起来,这种通常是人为的误操作。因此备份接口比较少见。![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
RSTP 接口状态
STP 有 5 种接口状态,分别是禁用、阻塞、侦听、学习和转发,而 RSTP 对接口状态进行了简化,把禁用、阻塞、侦听状态合并为丢弃状态( Discarding )。因为这三类状态的功能区别不大,接口都不学习 MAC 地址,也不转发数据,这也是丢弃状态接口的处理方式。那么 RSTP 就是 3 种状态,即丢弃状态( Discarding )、学习状态( Learning )和转发状态( Forwarding )。学习和转发状态保持不变,和 STP 中的定义相同。![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
边缘接口
如果交换机的接口连接的是终端设备,比如 PC 、服务器、打印机等,而不是其它交换机的接口,那么这些接口不太可能造成环路。我们就可以将交换机的接口配置为边缘接口( Edge Port ),边缘接口默认不参加生成树计算。当边缘接口被开启后,立即切换到转发状态并开始收发数据流量,而不用经历转发延迟时间,提升网络效率。边缘接口的开启和关闭都不会触发 RSTP 拓扑变更。![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
P/A 机制
在 STP 中,交换机的一个接口成为指定接口后,还需要经过侦听和学习状态,即经过 30 秒时间,才能进入转发状态。而 RSTP 引入 P/A 机制( Proposal/Agreement ,握手/赞同),让指定接口与对端接口进行握手,并逐级进行传递避免环路,这个过程不使用计时器。也就是说,完成握手的 RSTP 指定接口从丢弃状态直接进入到转发状态,而不需要经过其它状态,加速生成树的收敛。![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
- SW1 和 SW2 马上在各自的接口上发送 BPDU ,开始的时候双方都认为自己是根桥。
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
- 经过 BPDU 交互后,SW2 认为 SW1 才是根桥。这时 SW1 的 G0/1 接口成为指定接口,SW2 的 G0/2 接口则成为根接口,并马上停止发送 BPDU 。这两个接口都处于丢弃状态。
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
- 接下来 P/A 过程会发生在 SW1 和 SW2 之间。SW1 从 G0/1 接口发送 Proposal 消息,希望自己能够立刻进入转发状态。
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
- 而 SW2 在收到 Proposal 消息后,首先会判断接收 Proposal 消息的接口是不是根接口。在确认自己收到 Proposal 的接口是根接口后,SW2 为了避免出现环路,阻塞自己所有非边缘的指定接口,使这些接口都进入到丢弃状态,这个操作称为 P/A 同步机制。边缘接口不参与这个过程。
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
- 在 SW2 所有接口完成同步后,SW2 清楚的知道自己的接口不存在环路,马上将根接口 G0/2 切换到转发状态,并从根接口向 SW1 发送 Agreement 消息。
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
- SW1 在 G0/1 接口上收到 Agreement 消息后,立刻将 G0/1 接口切换成转发状态,这时 PC1 和 PC2 就可以通信了。
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
保护功能
交换机有多种保护功能,用于提升生成树协议的稳定性。1、BPDU 保护( BPDU Protection )
当边缘接口收到 BPDU 后,会马上变成一个普通的 RSTP 接口,可能引发网络中 RSTP 重新计算,从而对网络造成影响。通常边缘接口连接终端设备,应该不会收到 BPDU ,但是如果误接了交换机,那么这个边缘接口就有可能收到 BPDU ,会引入环路隐患。还有一种情况是恶意用户连接边缘接口后,发起 BPDU 攻击,也会对网络造成很大影响。通过在交换机上开启 BPDU 保护功能就可以解决这个问题。当交换机开启这个功能后,如果边缘接口收到 BPDU ,那么交换机马上把接口关闭,置为 Error-Down ,同时触发告警。![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
2、根保护( Root Protection )
RSTP 根据根桥计算出无环拓扑,根桥是很重要的。在已经完成收敛的 RSTP 网络中,如果根桥发生变化,那么 RSTP 就会重新计算,重新计算时网络将不可用。通常我们会选择网络中性能最好和位置最重要的设备作为根桥,将其优先级设置为最小值 0 ,但是这个措施并不能保证这个设备永远是网络中的根桥,毕竟根桥的角色是可以抢占的。如果网络中新接入的交换机优先级被配置为 0 ,恰好 MAC 地址比根桥更小,那么新交换机将抢占成为新的根桥,还会造成网络的 RSTP 重新计算,从而对网络造成影响。![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
3、环路保护( Loop Protection )
当网络中出现线路单向故障或者网络拥塞时,交换机的根接口和丢弃状态的替代接口将无法正常接收 BPDU ,就会导致交换机重新进行 RSTP 重新计算,接口的角色和状态会发生变化,可能会在网络中引入环路。![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
- 在根接口上开启环路保护功能后,如果根接口长时间没有收到 BPDU ,交换机会重新选举根接口,原来的根接口调整为指定接口,且接口状态切换成丢弃状态,从而避免出现环路。
- 在替代接口上开启环路保护功能后,如果替代接口长时间没有收到 BPDU ,交换机会把替代接口调整为指定接口,且接口状态保持在丢弃状态,从而避免出现环路。
4、拓扑变更保护( TC Protection )
一个稳定的网络是不会频繁出现拓扑变更的,一旦网络拓扑出现变更,TC BPDU( TC 置位的 BPDU )会泛洪到全网,而 TC BPDU 会让交换机执行 MAC 地址表删除的操作。如果网络环境很不稳定,导致 TC BPDU 频繁的泛洪,或者是网络中存在恶意用户,发送大量的 TC BPDU 对网络进行攻击,那么会极大消耗交换机的性能。交换机开启拓扑变更保护功能后,默认将在 2 秒内只进行一次的 TC BPDU 处理,如果在 2 秒内收到了 2 个及以上的 TC BPDU ,那么交换机只会处理一次,对于超出的部分,必须等待 2 秒后才进行处理。BPDU
RSTP 的配置 BPDU 称为 RST BPDU( Rapid Spanning Tree BPDU ),它的格式和 STP 的配置 BPDU 差不多,只有个别字段做了修改。RST BPDU 的 “ 协议版本 ID ” 字段值是 0x02 ,“ BPDU 类型 ”字段值是 0x02 。主要变化是在 “ 标志 ” 字段,这个字段一共 8 bit ,STP 只使用了最高比特位和最低比特位,而 RSTP 使用了剩余的 6 个比特位,并对这些比特位分别进行了定义。![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
Aggrement
(同意)和 Proposal
(提议)比特位用于 P/A( Proposal/Aggrement )机制。Port Role
(接口角色)比特位是 2 bit ,用于标识 RST BPDU 发送接口的接口角色,01 表示根接口,10 表示替代接口,11 表示指定接口,而 00 保留使用。最后的 Forwarding
(转发)和 Learning
(学习)比特位表示 RST BPDU 发送接口的接口状态。RSTP 与 STP 不同,在网络收敛后,无论是根桥还是非根桥,都会周期性的发送配置 BPDU,对于非根桥,不需要在根接口收到 BPDU 之后而产生自己的配置 BPDU ,而是自发的、周期性发送 BPDU 。MSTP
虽然 RSTP 对 STP 进行了改进,但是还有一个缺陷,那就是所有 VLAN 共用一棵生成树。这样就无法实现负载分担,导致线路带来利用率低、设备资源利用率低。![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
Instance
(实例)运行的。Instance 是一个或多个 VLAN 的集合。我们可以将一个或多个 VLAN 映射到一个 Instance ,然后 MSTP 基于 Instance 计算生成树。基于 Instance 的生成树称为 MSTI( Multiple Spanning Tree Instance ,多生成树实例),MSTP 为每一个 Instance 维护独立的 MSTI 。映射到同一个 Instance 的 VLAN 共享一棵生成树。可根据实际需求,在交换机上创建多个 Instance ,然后将指定的 VLAN 映射到相应的 Instance 。一个 Instance 可以包含多个 VLAN ,但是一个 VLAN 只能被映射到一个 Instance 。在创建 Instance 后,我们可以对 MSTI 进行主根桥、次根桥、接口优先级或 Cost 等配置。如果网络中有大量 VLAN ,那么我们可以将 VLAN 按照一定规律分别映射到不同的 Instance 中,从而实现负载分担,而交换机仅对这几个 Instance 进行生成树计算,设备资源消耗大大降低。![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
替代方案
学完 STP/RSTP/MSTP 后,解决网络中的二层环路问题,想到的解决方案就是生成树协议。但是生成树协议有天生的缺陷,收敛速度慢,虽然 RSTP/MSTP 对 STP 进行了改进,但是在毫秒级切换的要求下,生成树就不适用了。而且生成树的原理是将环路中的接口进行阻塞,导致被阻塞的线路无法承载流量,造成网络资源的浪费。MSTP 在这方面进行了优化,让不同 VLAN 的流量可以在不同线路进行负载分担,可是对于单个 VLAN 来说,始终会有一些线路无法承载流量。现在已经有许多其它技术或解决方案用于替代生成树协议。1、Smart Link
Smart Link 是为双上行组网定做的解决方案。![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
2、iStack/CSS
iStack 是华为盒式交换机的堆叠技术。而 CSS( Cluster Switch System ,集群交换系统)是华为框式交换机的集群技术。什么是堆叠?所谓堆叠,是指多台物理交换机通过特定的线缆连接,并通过相应的配置,组成逻辑上的一台设备的技术。
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
3、无二层环路场景
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
结尾
STP 可以在网络中形成一棵无环路的树,解决环路故障并实现冗余备份。![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)
![33 张图详解 RSTP 、MSTP、替代技术](/images/21ic_nopic.gif)