企业网络常用技术-快速生成树RSTP原理与配置

  • STP协议虽然能够解决环路问题,但是收敛速度慢,影响了用户通信质量。如果STP网络的拓扑结构频繁变化,网络也会频繁失去连通性,从而导致用户通信频繁中断。IEEE2001年发布的802.1w标准定义了快速生成树协议RSTPRapid Spanning-Tree Protocol),RSTPSTP基础上进行了改进,实现了网络拓扑快速收敛。

STP不足

  • STP能够提供无环网络,但是收敛速度较慢。如果STP网络的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断。RSTP使用了Proposal/Agreement机制保证链路及时协商,从而有效避免收敛计时器在生成树收敛前超时。如图所示,在交换网络中,P/A过程可以从根桥向下游级联传递。 

RSTP端口角色

  • 运行RSTP的交换机使用了两个不同的端口角色来实现冗余备份。当到根桥的当前路径出现故障时,作为根端口的备份端口,Alternate端口提供了从一个交换机到根桥的另一条可切换路径。Backup端口作为指定端口的备份,提供了另一条从根桥到相应LAN网段的备份路径。当一个交换机和一个共享媒介设备例如Hub建立两个或者多个连接时,可以使用Backup端口。同样,当交换机上两个或者多个端口和同一个LAN网段连接时,也可以使用Backup端口。

RSTP边缘端口

 

  • 边缘端口不接收处理配置BPDU,不参与RSTP运算。
  • RSTP里,位于网络边缘的指定端口被称为边缘端口。边缘端口一般与用户终端设备直接连接,不与任何交换设备连接。边缘端口不接收配置BPDU报文,不参与RSTP运算,可以由Disabled状态直接转到Forwarding状态,且不经历时延,就像在端口上将STP禁用了一样。但是,一旦边缘端口收到配置BPDU报文,就丧失了边缘端口属性,成为普通STP端口,并重新进行生成树计算,从而引起网络震荡。

端口状态 

  • RSTP把原来STP5种端口状态简化成了3种。
1. Discarding 状态,端口既不转发用户流量也不学习 MAC 地址。
2. Learning 状态,端口不转发用户流量但是学习 MAC 地址。
3. Forwarding 状态,端口既转发用户流量又学习 MAC 地址。

 

 RST BPDU

  • STP的配置BPDUFlag字段的中间6位在RSTP中得到了应用。 
  • 除了部分参数不同,RSTP使用了类似STPBPDU报文,即RST BPDU报文。BPDU Type用来区分STPBPDU报文和RST (Rapid Spanning Tree) BPDU报文。STP的配置BPDU报文的BPDU Type值为0(0x00)TCN BPDU报文的BPDU Type值为128 (0x80),RST BPDU报文的BPDU Type值为2 (0x02)STPBPDU报文的Flags字段中只定义了拓扑变化TCTopology Change)标志和拓扑变化确认TCATopology Change Acknowledgment)标志,其他字段保留。在RST BPDU报文的Flags字段里,还使用了其他字段。包括P/A进程字段和定义端口角色以及端口状态的字段。ForwardingLearningPort Role表示发出BPDU的端口的状态和角色。

 

  •  非根桥设备无论是否接收到根桥发送的配置BPDU,都会按照Hello Timer规定的时间间隔发送配置BPDU
  • STP中,当网络拓扑稳定后,根桥按照Hello Timer规定的时间间隔发送配置BPDU报文,其他非根桥设备在收到上游设备发送过来的配置BPDU报文后,才会触发发出配置BPDU报文,此方式使得STP协议计算复杂且缓慢。RSTP对此进行了改进,即在拓扑稳定后,无论非根桥设备是否接收到根桥传来的配置BPDU报文,非根桥设备都会仍然按照Hello Timer规定的时间间隔发送配置BPDU,该行为完全由每台设备自主进行。

RSTP收敛过程

 

  •  每一台交换机启动RSTP后,都认为自己是“根桥”,并且发送RST BPDU。所有端口都为指定端口,处于Discarding状态。

  •  交换机互相发送Proposal置位的RST BPDU
  • SWA收到SWBRST BPDU,会忽略。
  • 每个认为自己是“根桥”的交换机生成一个RST BPDU报文来协商指定网段的端口状态,此RST BPDU报文的Flags字段里面的Proposal位需要置位。当一个端口收到RST BPDU报文时,此端口会比较收到的RST BPDU报文和本地的RST BPDU报文。如果本地的RST BPDU报文优于接收的RST BPDU报文,则端口会丢弃接收的RST BPDU报文,并发送Proposal置位的本地RST BPDU报文来回复对端设备。

 

  •  SWB收到了更优的RST BPDU,于是停止发送RST BPDU,并开始执行同步。
  • 交换机使用同步机制来实现端口角色协商管理。当收到Proposal置位并且优先级高的BPDU报文时,接收交换机必须设置所有下游指定端口为Discarding状态。如果下游端口是Alternate端口或者边缘端口,则端口状态保持不变。本例说明了下游指定端口暂时迁移到Discarding状态的情形,因此,P/A进程中任何帧转发都将被阻止。 

 

  • 阻塞所有非边缘端口之后, SWB 将会发送一个Agreement 置位的RST BPDU 
  • 当确认下游指定端口迁移到Discarding状态后,设备发送RST BPDU报文回复上游交换机发送的Proposal消息。在此过程中,端口已经确认为根端口,因此RST BPDU报文Flags字段里面设置了Agreement标记位和根端口角色。

 

  • P/A进程向下游继续传递,SWB SWC会继续进行收敛。 
  • P/A进程的最后阶段,上游交换机收到Agreement置位的RST BPDU报文后,指定端口立即从Discarding状态迁移为Forwarding状态。然后,下游网段开始使用同样的P/A进程协商端口角色。

链路故障/根桥失效 

 

  •  链路故障或者根桥失效都会导致交换机收不到邻居发送的RST BPDU  RSTP中,3Hello Timer内收不到邻居的BPDU即认为邻居失效。
  • STP中,当出现链路故障或根桥失效导致交换机收不到BPDU时,交换机需要等待Max Age时间后才能确认出现了故障。而在RSTP中,如果交换机的端口在连续3Hello Timer规定的时间间隔内没有收到上游交换机发送的RST BPDU,便会确认本端口和对端端口的通信失败,从而需要重新进行RSTP的计算来确定交换机及端口角色。 

RSTP拓扑变化处理 

  •  其他交换机接收到TC置位的BPDU后,清空所有其他端口学习到的MAC地址,收到TC BPDU的端口不清空。
  • RSTP拓扑变化的处理类似于STP拓扑变化的处理,但也有些细微差别。
l 本例里面, SWC 发生链路故障。 SWA SWC 立即检测到链路故障并清除连接此链路的端口上的 MAC 地址表项。接下来 SWC 选举出新的根端口并立即进入 Forwarding 状态,因此触发 SWC 向外发送 TC 置位的 BPDU 报文(以下简称 TC 报文)。通知上游交换机清除所有其他端口上的 MAC 地址表项,除了接收到 TC 报文的端口。 TC 报文周期性地转发给邻居,在此周期内,所有相关接口上 MAC 地址表项将会被清除,重新学习 MAC 地址表项。图形里面红色 X 表示由于拓扑变化导致端口上的 MAC 地址表项被清除。

 STP兼容

  • 运行RSTP的交换设备在某端口上接收到运行STP的交换设备发出的配置BPDU,会把该端口转换到STP工作模式。 
  • RSTP是可以与STP实现后向兼容的,但在实际中,并不推荐这样的做法,原因是RSTP会失去其快速收敛的优势,而STP慢速收敛的缺点会暴露出来。
  • 当同一个网段里既有运行STP的交换机又有运行RSTP的交换机时,STP交换机会忽略接收到的RST BPDU,而RSTP交换机在某端口上接收到STP BPDU时,会等待两个Hello Time时间之后,把自己的端口转换到STP工作模式,此后便发送STP BPDU,这样就实现了兼容性操作。

配置STP模式

  • 执行命令后,SWA所有端口都工作在RSTP模式。 
  • Sx7交换机上,可以使用stp mode rstp命令来配置交换机工作在RSTP模式。
  • stp mode rstp命令在系统视图下执行,此命令必须在所有参与快速生成树拓扑计算的交换机上配置。

配置验证

  • display stp命令可以显示RSTP配置信息和参数。根据显示信息可以确认交换机是否工作在RSTP模式。 

配置边缘端口

  • 边缘端口可以由Disabled直接转到Forwarding状态,不经历时延。
  • Sx7系列交换机默认所有端口都工作在非边缘端口。
  • 边缘端口完全不参与STPRSTP计算。边缘端口的状态要么是Disabled,要么是Forwarding;终端上电工作后,它就直接由Disabled状态转到Forwarding状态,终端下电后,它就直接由Forwarding状态转到Disabled状态。
  • 交换机所有端口默认为非边缘端口。
  • stp edged-port enable命令用来配置交换机的端口为边缘端口,它是一个针对某一具体端口的命令。
  • stp edged-port default命令用来配置交换机的所有端口为边缘端口。
  • stp edged-port disable命令用来将边缘端口的属性去掉,使之成为非边缘端口。它也是一个针对某一具体端口的命令。
  • 需要注意的是,华为Sx7系列交换机运行STP时也可以使用边缘端口设置。

根保护

  • 根保护功能确保了根桥的指定端口不会因为一些网络问题而改变端口角色。 
  • 由于错误配置根交换机或网络中的恶意攻击,根交换机有可能会收到优先级更高的BPDU报文,使得根交换机变成非根交换机,从而引起网络拓扑结构的变动。这种不合法的拓扑变化,可能会导致原来应该通过高速链路的流量被牵引到低速链路上,造成网络拥塞。交换机提供了根保护功能来解决此问题。根保护功能通过维持指定端口角色从而保护根交换机。一旦启用了根保护功能的指定端口收到了优先级更高的BPDU报文时,端口会停止转发报文并且进入Listening状态。经过一段时间后,如果端口一直没有再收到优先级较高的BPDU报文,端口就会自动恢复到原来的状态。根保护功能仅在指定端口生效,不能配置在边缘端口或者使能了环路保护功能的端口上。

BPDU保护

  • 配置BPDU保护功能后,如果边缘端口收到BPDU报文,边缘端口将会被立即关闭,并通知网管系统。被关闭的边缘端口可配置成自动恢复或管理员手动恢复。 
  • 正常情况下,边缘端口是不会收到BPDU的。但是,如果有人发送BPDU来进行恶意攻击时,边缘端口就会收到这些BPDU,并自动变为非边缘端口,且开始参与网络拓扑计算,从而会增加整个网络的计算工作量,并可能引起网络震荡。
  • 为防止上述情况的发生,我们可以使用BPDU保护功能。使能BPDU保护功能后的交换机的边缘端口在收到BPDU报文时,会立即关闭该端口,并通知网络管理系统。被关闭的边缘端口可配置成自动恢复或管理员手动恢复
  • 如需使能BPDU保护功能,可在系统视图下执行stp bpdu-protection命令。

环路保护

  • 根端口如果长时间收不到来自上游的BPDU,则进入Discarding状态,避免在网络中形成环路。 
  • 交换机通过从上游交换机持续收到BPDU报文来维护根端口和阻塞端口的状态。当由于链路拥塞或者单向链路故障时,交换机不能收到上游交换机发送的BPDU报文,交换机重新选择根端口。最初的根端口会变成指定端口,阻塞端口进入Forwarding状态,这就有可能导致网络环路。
  • 交换机提供了环路保护功能来避免这种环路的产生。环路保护功能使能后,如果根端口不能收到上游交换机发送的BPDU报文,则向网管发出通知信息。根端口会被阻塞,阻塞端口仍然将保持阻塞状态,这样就避免了可能发生的网络环路。
  • 如需使能环路保护功能,可在接口视图下执行stp loop-protection命令。

配置验证

  •  display stp interface <interface>命令可以显示端口的RSTP配置情况。包括端口状态,端口优先级,端口开销,端口角色,是否为边缘端口等等。

本章总结

问:P/A机制中同步的作用是什么?

答:P/A机制是RSTP网络中的一种拓扑收敛机制,P/A机制中同步的作用是避免临时环路的产生。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/236249.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信基于StarRocks的湖仓一体实践

作者&#xff1a;StarRocks Active Contributer、微信 OLAP 内核研发工程师 微信作为国内活跃用户最多的社交软件&#xff0c;其数据平台建设经历了从 Hadoop 到 ClickHouse 亚秒级实时数仓的阶段&#xff0c;但仍旧面临着数据体验割裂、存储冗余的问题。通过 StarRocks 的湖仓…

时钟偏移与时钟抖动

1、时钟偏移 如下图所示&#xff0c;由于布局布线导致&#xff0c;clk到达三个触发器的时间是不一样的。这个就是时钟偏移&#xff0c;对每个触发器而言&#xff0c;不会改变时钟周期。 2、时钟抖动 如下图所示&#xff0c;指芯片的某一个给定点上时钟周期发生暂时性变化&…

【Spring】15 ApplicationContextAware 接口

文章目录 1. 简介2. 作用3. 使用3.1 创建并实现接口3.2 配置 Bean 信息3.3 创建启动类3.4 启动 4. 应用场景总结 Spring 框架提供了许多回调接口&#xff0c;用于在 Bean 的生命周期中执行特定的操作。ApplicationContextAware 接口是其中之一&#xff0c;它允许 Bean 获取对 A…

SM5321 是一款带动态路径管理的开关型单节锂电池充电电路。

SM5321 2.5A.1MHz 带动态路径管理的开关型单节锂电池充电电路 简介&#xff1a; SM5321 是一款带动态路径管理的开关型单节锂电池充电电路。SM5321 可提供 2.5A 的充电电流&#xff0c;特别适合移动电源、平板电脑等配备超大容量锂电池的设备。SM5321 内部集成了大电流同步降压…

SpringBoot 使用Quartz执行定时任务对象时无法注入Bean问题

文章目录 问题描述解决方案结束语 大家好&#xff01;今天是2023年12月212日 | 农历十一月初九(距离2024年还有一周左右的时间)&#xff0c;最近还是比较忙的&#xff0c;忙着搞钱&#xff0c;毕竟马上过年啦。 问题描述 感谢大家对我一直以来的支持与帮助&#xff0c;今天这边…

IDEA 黑色主题很难看到鼠标

“控制面板”—搜索“鼠标”关键字—选择“更改鼠标设置” 参考&#xff1a; IDEA 黑色主题很难看到鼠标

JDBC常见的几种连接池使用(C3PO、Druid、HikariCP 、DBCP)

✨前言✨ 本篇作为主要在于介绍jdbc数据库连接池&#xff0c;以及多种连接池的用法 &#x1f352;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f352;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留言 文章目…

计算机基础:网络基础

目录 一.网线制作 1.制作所需要工具 网线制作标准 ​编辑 2.水晶头使用 3.网线钳使用 4.视频教学 二.集线器、交换机介绍 1.OSI七层模型 2.TCP/IP四层参考模型 3.集线器、交换机。路由器介绍 集线器 交换机 路由器 区别 三.路由器的配置 1.路由器设置 说明书 设…

智能优化算法应用:基于水基湍流算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于水基湍流算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于水基湍流算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.水基湍流算法4.实验参数设定5.算法结果6.…

Python:正则表达式---贪婪匹配

在正则表达式中&#xff0c;贪婪匹配是指匹配尽可能多的字符&#xff0c;而非贪婪匹配&#xff08;也称为懒惰匹配或最小匹配&#xff09;则是匹配尽可能少的字符。 .* 表示匹配任意数量的任意字符&#xff08;除换行符外&#xff09;。贪婪匹配会将尽可能多的字符都作为匹配结…

macOS 安装 oh-my-zsh 后 node 报错 command not found : node

最近为了让终端中显示 git 分支的名称&#xff0c;安装了 oh-my-zsh &#xff0c;安装之后呢&#xff0c;我原先安装的 Volta、 node 都没法用了&#xff0c;报错如下&#xff1a; 这时候粗略判断应该是系统变量出了问题&#xff0c;oh-my-zsh 的变量文件是 ~/.zshrc&#xff0…

变分自动编码器【03/3】:使用 Docker 和 Bash 脚本进行超参数调整

一、说明 在深入研究第 1 部分中的介绍和实现&#xff0c;并在第 2 部分中探索训练过程之后&#xff0c;我们现在将重点转向在第 3 部分中通过超参数调整来优化模型的性能。要访问本系列的完整代码&#xff0c;请访问我们的 GitHub 存储库在GitHub - asokraju/ImageAutoEncoder…

Linux(二)常用命令

文章目录 一、文件管理命令1.1 chmod1.2 chown1.3 cat1.4 cp1.5 find1.6 head1.7 tail1.8 less1.9 more1.10 mv1.11 rm1.12 touch1.13 vim1.14 >和>>1.15 scp1.16 ln1.17 怎么用命令查看日志 二、文档管理命令2.1 grep2.2 wc2.3 echo 三、磁盘管理命令3.1 cd3.2 df3.3…

短视频账号矩阵系统3年独立开发正规接口源码搭建部署开发

一、矩阵系统源码主要有三种框架&#xff1a; 短视频账号矩阵源码的框架有很多种&#xff0c;以下列举其中几种&#xff1a; 1. **星图矩阵**&#xff1a;星图矩阵是抖音官方向商家提供的短视频广告推广平台&#xff0c;是抖音官方的赚钱工具。商家可利用星图矩阵进行广告推广…

适用于车载电动升窗器的解决方案

升窗器是指避免车主忘记关窗的自动关窗装置&#xff0c;主要通过电子模块加认组合&#xff0c;利用主机上的芯片里面设定的程序完成检测功能&#xff0c;使自动升窗步骤顺利完成。 ■ 基于ACM32F403系列MCU ■ 高性价比软件控制方案&#xff0c;高算力 ■ MCU内置2路CAN总线&a…

为什么项目管理工具需要项目财务信息?

在讨论项目时&#xff0c;钱是绕不开的话题。 资金是项目管理中最重要的因素之一&#xff0c;与范围和时间并列&#xff0c;三者共同构成了 “三重约束”。例如&#xff0c;如果缩短项目时间&#xff0c;就必须增加成本。 如果无法清楚了解开支及其对项目的影响&#xff08;反…

Python接口自动化测试:断言封装详解

前言 在进行API接口测试时&#xff0c;断言起着至关重要的作用。断言是用于验证预期结果与实际结果是否一致的过程。在Python中&#xff0c;我们可以利用一些库来实现断言功能。 1. 安装必要的库 在Python中&#xff0c;我们主要会使用两个库&#xff1a;requests和jsonpath…

基于 SOAP 的 Web 服务 是什么服务

基于 SOAP 的 Web 服务是一种网络服务&#xff0c;它使用简单对象访问协议&#xff08;SOAP&#xff09;作为通信协议。SOAP 是一种基于 XML 的协议&#xff0c;用于在网络上交换结构化信息。基于 SOAP 的 Web 服务通常用于实现跨网络的远程过程调用&#xff08;RPC&#xff09…

红队打靶练习:WINTERMUTE: 1

前言 网络扫描&#xff08;Nmap、netdiscover&#xff09; HTTP 服务枚举 使用电子邮件日志文件在浏览器中进行目录遍历 利用 SMTP RCPT 选项中的操作系统命令注入 生成 PHP 后门 (Msfvenom) 执行RCPT选项中嵌入的后门 反向连接&#xff08;Metasploit&#xff09; 导入 pytho…

Poi实现复杂Excel导出,理解POI操作Excel思路!!!

前言 对于简单excel报表导出&#xff0c;有很多简单的工具如easypoi&#xff0c;而且现在网上已经有很多工具类整合easypoi使用起来非常方便。但是简单的弊端往往无法适配一些负责场景&#xff0c;而我们实际生产中面临的都是客户自定以的一个负责报表导出&#xff0c;这是利用…