Loading... ## 生成树的产生背景 在局域网中,我们通常有多个交换机互联组成 为了避免广播风暴,我们要确保网络中不能出现路径环路 于是引入了STP(生成树协议),通过阻塞端口来避免环路的产生 ## STP的作用  用来解决二层环路 通过阻塞冗余链路来消除网络中可能存在的环路 且如果链路出现中断,那么冗余链路又会重新激活 恢复网络连通性 ## 生成树协议  STP(Spanning Tree Protocol)生成树协议 协议标准为IEEE制定的802.1D 通过传输BPDU报文(Bridge Protocol Data Unit 桥协议数据单元),来保证设备完成生成树的计算过程 其中BPDU分为两类:<code>配置BPDU</code>、<code>TCN BPDU</code> > 配置 BPDU Configuration BPDU 用来计算生成树和维护生成树拓扑的报文 传递的是STP的配置信息 > TCN BPDU 当拓扑结构发送改变时候,会用此报文来通知相关设备拓扑发送变更 就是用于通告拓扑发送变更 ## 生成树的选举机制  1.首先在所有交换机中选出一台设备作为根网桥(Root Bridge), 在网络初始化的过程中,每个交换机<code>默认自己都为根网桥Root Bridge</code>,设备之间通过传递<code>BPDU报文来比较桥ID(Bridge ID)</code>,在所有的交换机中选举出一台根网桥 > Bridge ID 桥ID,也可以叫BID,用来标识交换机身份 由<code>优先级</code>和<code>MAC地址</code>组成 在华三设备中,默认优先级都为<code>32768</code>是<code>4096</code>的倍数 默认情况下,桥ID越小的优先级越高 如果优先级相同,则比较MAC地址大小,MAC地址越小,优先成为根网桥。  2.在每个非根网桥交换机中选举出一个根端口(Root Port), 先判断到达根网桥的路径开销,开销最小的优先选择 如果开销相同则比较BID的大小,同样还是小的优先 其中默认端口ID小的优先 > Cost开销  指的是路径消耗的代价和成本,带宽越大,开销越小 非根桥进行根端口选举时,根路径开销最小的端口为根端口 物理段进行指定桥选举时,路径开销最小的桥为指定桥 3.在每个物理端口上选出一个指定端口(Designated Port) 这个阶段和根端口的选举类似 到达根网桥开销小的优先选择 本地BID小的优先选择 端口ID小的优先选择 注意,根网桥上的所有端口都是指定端口  4.剩下没有角色的端口就是阻塞端口(Blocked Port) ## 生成树端口状态  - **Disabled:** 表示该端口处于失效状态,不接收和发送任何报文。这种状态可以是由于端口的物理状态(比如端口物理层没有 up)导致的,也可能是手工将端口关闭。 - **Blocking:** 处于这个状态的端口不能够参与转发数据报文,但是可以接收配置消息,并交给 CPU 进行处理。不过不能发送配置消息,也不进行地址学习。 - **Listening:** 处于这个状态的端口也不参与数据转发,不进行地址学习;但是可以接收并发送配置消息。 - **Learning:** 处于这个状态的端口同样不能转发数据,但是开始地址学习,并可以接收、处理和发送配置消息。 - **Forwarding:** 一旦端口进入该状态,就可以转发任何数据了,同时也进行地址学习和配置消息的接收、处理和发送。 其中<code>Listening</code>和<code>Learning</code>阶段是不稳定状态,端口状态随时可能会改变 ## 生成树计时器 Hello time:2秒,配置BPDU的发送周期 Max age[最大生成时间]:20秒,判断链路故障时间,10个hello time周期 Forwarding delay[转发延迟]:15秒,状态切换延迟  从一个状态进入另一个状态,中间有15秒的延时 ## 生成树的配置 ```CSS /*开启STP*/ [H3C] stp global enable /*关闭接口STP*/ [H3C-Ethernet1/0/1] undo stp enable /*配置STP的工作模式*/ [H3C] stp mode [ stp | rstp | pvst | mstp ] /*配置当前设备的优先级*/ [H3C] stp [ instance [ID] ] priority [priority] /*配置接口为边缘端口*/ [H3C-Ethernet1/0/1] stp edged-port /*查看生成树状态*/ [H3C]display stp /*查看各接口状态*/ [H3C]display stp brief ```  ## 生成树存在的缺陷 1. 收敛速度慢,故障切换时间过长 2. 网络中大量的主机频繁上下线,会导致TCN BDPU以及TC配置BPDU大量发送,从而阻塞网络,浪费资源。 ## RSTP快速生成树 RSTP(Rapid Spanning Tree Protocol) 快速生成树是生成树的优化版 IEEE802.1W定义了RSTP 端口状态减少到三种 端口角色增加到四种 新增了边缘端口机制  ## RSTP端口角色 根端口和指定端口与STP保持不变 阻塞端口细分两种: **代替端口**[Alternata port] 根端口的备份端口 **备份端口**[Backup port] 指定端口的备份端口 在选举当前根端口和指定端口时,同时再选举备份端口,可以有效快速的解决某一台设备故障,或某一条线路故障,端口的切换,省去STP中繁琐的选举过程(30S)。 ## RSTP边缘端口机制 解决网络中大量主机频繁上下线 当链路激活时,边缘端口会立即成为Forwarding[转发]状态,不参与STP计算。 其中,边缘端口的UP/DOWN不会触发STP的拓扑变更机制。 一般用在连接PC的端口,配置为边缘端口 ## STP、RSTP的不足 交换机跑的Trunk链路上有多个VLAN STP和RSTP都用的一个生成树 无法实现不同VLAN在多条Trunk链路上的负载分摊 会浪费链路资源,如下图所示:  ## PVST PVST (Per VLAN Spanning Tree) 每个VLAN上运行一个独立的STP,不同STP计算结果不同,可实现基于VLAN的流量负载均衡  ## MSTP MSPT(Multiple Spanning Tree Protocol)多生成树协议 IEEE802.1s定义了MSTP 将多个VLAN捆绑到一个实例里(域概念),每个实例里面单独的跑生成树 这样就允许了多条Trunk链路上实现VLAN负载均衡  ## 四种生成树的特性  MSTP、PVST具有RSTP的快速收敛、同时又具有负载分担的机制 MSTP兼容STP和RSTP,在实际运用中较多 ## 四种生成树端口状态  关于生成树,这里暂时只需要了解STP,我们后续会详细讲解RSTP与MSTP,在这只做概述了解 最后修改:2023 年 01 月 06 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏