RSTP原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RSTP原理相关的知识,希望对你有一定的参考价值。

参考技术A 为什么要提出RSTP(rapid spanning Tree Protocol )?
首先要谈论一下STP的缺陷:

核心问题是:STP的角色太少,端口状态太多。

RSTP将端口状态缩减为三个:Discarding,Learning,Forwarding

角色从2增加到四个:
根端口、指定端口、Alternate端口、Backup端口

RST BPDU格式
与STP相比不同之处有:

7:Topo Change Acknowledgment
6:Agreement
5:Forwarding
4:Learning
3&2:00:Unknow
01:Alternative/Backup
02:Root
03:Designated
1:Proposal
0:Topo Change

第一个改良:针对STP收敛需要至少30s:
提出P/A(协商、同步)机制,基本原理如下:
1:根桥发送P置位(协商)的BPDU
2:同步变量(阻塞除变换端口外的其他端口,防止出现环路)
3:发送A置位的BPDU
4:收到A置位的BPDU报文,端口立即进入Forwarding

(删除了STP中本来的计时器功能,采取了来回的交流方式)

第二个改良:根端口快速切换机制
根端口down掉之后,Alternate端口马上进入Forwarding状态

第三个改良:次优BPDU处理机制
得到了次优BPDU(P置位)的报文之后,马上回最优的BPDU(P置位)给对端,
同时自己变更为DP,对端得到信息后从本来的DP变成RP

第四个改良:边缘端口的引入
在RSTP中,交换机连接终端的链路可以立即进入转发状态。
在你需要打开边缘接口的接口输入:stp edged-port enable
(全局配置边缘端口:stp edged-port default)
RSTP拓扑改变处理机制:
拓扑改变触发条件:只有非边缘端口转变为Forwarding状态时,才会产生拓扑改变

网络初级篇之RSTP(原理与配置)

一、RSTP的产生

  前面的文章写到了当网络拓扑发生变化时,STP的收敛速度大约需要花费30秒-50秒的时间才会继续转发数据。这样在实际生产环境中花费的时间是非常长的,这样RSTP(快速生成树协议)便应运而生。

二、RSTP与STP的区别

  1、端口角色的区别

  技术图片

  在RSTP中,新增两个两个端口角色(Backup与Alternate)。其中,Backup端口作为非桥设备的备份指定端口。Alternate端口作为非桥设备的备份根端口。正常情况下,Alternate端口与Backup端口作为Disabeld状态。当非根桥设备上的根端口或指定端口出现问题时,会立马启用最为新的根端口或指定端口。

  2、特殊的“指定”端口

  在RSTP中,将特殊的指定端口改为边缘端口。边缘端口一般情况下是桥设备与主机的连接端口,不会接收到配置BPDU报文,也不参与RSTP的运算。如果 RSTP 边缘端口接收到 BPDU,则该端口立刻丧失边缘端口的属性,而成为普通的生成树端口。可以直接由Disabeld(关闭)状态直接转换为Forwarding(转发)状态(不经历端口状态改变的延时) 。

三、STP配置BPDU报文中的Flags字段在RSTP中得到应用。

  技术图片

  四、RSTP收敛过程。

  1、选举根桥。

  开始时,所有的桥设备都认为自己是根桥,所有的端口都处于Discarding状态,端口角色为指定端口。并向外发送自己的RST BPDU。当桥设备的一个端口收到来自其他桥设备发送的RST BPDU,该桥设备就会与自身的RST BPDU做一个对比。若本身的RST BPDU比收到的RST BPDU更优,就会将其丢弃,同时会回复自身的RST BPDU。若收到的RST BPDU比自身的RST BPDU更优,就会停止发送RST BPDU,将收到的RST BPDU替换成原来自己本身的RST BPDU,接收桥设置所有的下游所有指定端口为Discarding状态,如果下游端口是Alternate或者边缘端口,则端口状态保持不变。

  2、选举根端口

  当桥设备下游端口全部为Discarding状态后,此桥会向根桥发送一个回复RST BPDU。此BPDU中Flags字段内设置了Agreenment标记位和端口角色。此过程中,按照STP的根端口选举方式选举的根端口立刻由Discarding状态变为Forwarding状态。

  3、选举指定段口

  与STP的指定端口选举方式一致。当上游桥设备接收到Agreement置位的BPDU后,指定端口的状态立刻由Discarding状态变为Forwarding状态。端口角色变为指定端口。

   4、阻塞端口

   当选择出根端口与指定端口后,剩余的所有非边缘端口全部为Discarding状态,作为根端口的备份与指定端口的备份。一般情况下为阻塞状态。

注:①边缘端口一般情况下是桥设备与主机的连接端口,不会接收到配置BPDU报文,也不参与RSTP的运算。如果 RSTP 边缘端口接收到 BPDU,则该端口立刻丧失边缘端口的属   性,而成为普通的生成树端口。

  ②当拓扑稳定之后,无论非根桥交换机是否接收来自根桥的BPDU,非根桥交换机都会按照Hello Time时间间隔(默认2秒)向外发送配置BPDU。

五、故障

  在RSTP中,当桥设备在3次Hello Time的时间内(共6秒)没有收到上游交换机发送的BPDU,便会认为与上游桥设备通信失败,这时会向外发送TC BPDU,通知上游桥设备清除其MAC地址表项,当上游桥设备接收到TC BPDU后,会清除除接收端口之外的端口的MAC地址表项并继续向外发送此TC BPDU。在此期间故障或检测到故障的桥设备会重新进行RSTP计算,来确定根端口及其他端口。

六、RSTP可与STP兼容

  两者是可以兼容的,但是不推荐。因为这样因为STP的原因导致RSTP收敛速度变慢,从而失去RSTP的快速性。

七、RSTP的三种“保护”

  1、环路的保护。

  与STP一样,由于有阻塞端口的存在,这样使得桥设备之间既保持了网络拓扑的环路、桥设备之间的冗余与安全性,又避免了类似于广播风暴这样的环路带来的问题。

  2、边缘端口的保护。

  边缘端口是会收到BPDU报文,也不会不参与RSTP计算的。当边缘端口收到恶意攻击,收到了BPDU报文,生成树便会重新进行计算,从而引起网络的震荡。面对这一问题,可设置边缘端口保护,当边缘端口接收到BPDU报文时,会立刻关闭此端口,可设置为自动恢复或者需要由管理员进行手动恢复。

  3、根保护

  在生成树中,根桥的配置BPDU是最优的,但是也不排除会有错误配置或者恶意攻击,从而发送更优的配置BPDU,从而使得生成树的重新计算而引起的网络震荡、流量拥塞。所以有了根保护的功能解决此问题。

  根保护是通过维持指定端口角色而进行对根桥的保护。一旦启用了此功能的指定端口接收到优先级更高的配置BPDU时,端口状态会立刻进入Discarding(STP中Listening)状态,不转发数据。在一段时间内(通常为两倍的Forward Delay)端口没用再次收到更优的配置BPDU,端口就会恢复为Forwarding状态。

  根保护功能仅仅在指定端口生效,不能配置在边缘端口或者阻塞端口上。

 

以上是关于RSTP原理的主要内容,如果未能解决你的问题,请参考以下文章

网络初级篇之RSTP(原理与配置)

快速生成树协议(RSTP)的工作原理与配置(学习笔记)

快速生成树协议(RSTP)的工作原理与配置(学习笔记)

BPDU报文(RSTP)

STP配置以及RSTP的原理与配置(2017年12月24日 17:43:52)

华为交换技术——MSTP协议原理