问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

生成树协议原理与应用

创作时间:
作者:
@小白创作中心

生成树协议原理与应用

引用
CSDN
1.
https://blog.csdn.net/2302_81149470/article/details/142335266

生成树协议(Spanning Tree Protocol,简称STP)是网络工程领域中一个非常重要的协议,主要用于解决以太网中的环路问题。通过构建一个无环路的逻辑树状结构,STP能够确保数据包在网络中正确传输,避免了广播风暴和MAC地址表不稳定等问题。本文将详细介绍STP、快速生成树协议(RSTP)和多生成树协议(MSTP)的工作原理、改进点和配置方法。

STP技术原理

生成树协议的分类

生成树协议的分类,按照产生的时间先后顺序为STP、RSTP、MSTP。

生成树协议所遵循的IEEE标准

三种生成树所遵循的IEEE标准分别为:

  • STP:IEEE 802.3D
  • RSTP:IEEE 802.3W
  • MSTP:IEEE 802.3S

工作原理

STP技术的实现基于SPA(最短路径树算法 shortest path algorithm)算法,通过SPA在构建无环树形结构的时候经历四个步骤:

  1. 选举根桥(Root),根桥是整个无环树形结构的根节点;
  2. 选举根端口(RP),根端口是距离根桥最近的端口;
  3. 选举指定端口(DP),指定端口是设备发出BPDU的接口,每条链路上必定有且只有一个 指定端口;
  4. 剩下的端口全部Block掉;
  5. 实现SPA算法所需要的原始数据,则是通过交换机之间交互BPDU(bridge protocol data unit)报文来完成的

STP的收敛过程-选举根桥

在一个交换广播域中,选举一个交换机为根桥,选举过程:

  • 比较自己收到BPDU和自己发出的BPDU的Bridge ID,Bridge ID更小的成为根桥:
  • 比较优先级,优先级更小的成为根桥;
  • 若优先级一致,则比较交换机的MAC地址(show sysmac显示的地址),MAC地址更小的成为根桥
  • 交换机启动生成树协议,并配置根桥优先级命令:
    Ruijie(config)#spanning-tree mode stp
    Ruijie(config)#spanning-tree
    Ruijie(config)#spanning-tree priority ?
    <0-61440> Bridge priority in increments of 4096 (default value: 32768)
    

为什么根桥优先级只能是4096的整数倍?

  • Bridge ID:8字节,指示该BPDU报文发送者的BID,是由2字节的桥优先级和6字节MAC地址构成,而在2字 节(16bit)的优先级字段中,后12bit用来标识VLAN ID,只有前4bit是通过配置修改的, 2 的12次方=4096

STP的收敛过程-选举RP

在广播域内所有的非根桥交换机选择根端口(RP,ROOT Port),RP是非根桥交换机上到根桥距离最近的端口,每个非根桥有且只有一个RP。非根桥从多个接口接收到BPDU,哪个接口是RP?选举过程:

  1. 比较接收到的BPDU中的Cost值,最小Cost值的BPDU的接收端口成为RP;
  2. 若Cost值一致,则比较多个BPDU中的Bridge ID,最小Bridge ID值的BPDU的接收端口成 为 RP。Bridge ID 的比较,先比较优先级,再比较MAC,越小越优先;
  3. 若Bridge ID一致,则比较多个BPDU中的Port ID,最小Port ID值的BPDU的接收端口成为 RP。Port ID的比 较,先比较端口优先级,后比较端口号,越小越优先
  • 修改端口cost值和端口优先级的命令(为什么端口优先级只能是16的整数倍?)
    Ruijie(config-if-GigabitEthernet 0/36)#spanning-tree cost ?
    <1-200000000> Port path cost
    Ruijie(config-if-GigabitEthernet 0/36)#spanning-tree port-priority ?
    <0-240> Port priority in increments of 16 (default value: 128)
    

STP的收敛过程-选举DP

在所有的链路上选举指定端口(DP,Design Port),通过比较同一段链路上两个端口发送的BPDU中的 字段来实现,选举过程:

  1. 比较同一段链路上两个端口发送的BPDU中的Cost值,Cost值较小的BPDU的发送端口成 为DP;
  2. 若Cost值一致,则比较同一段链路上两个端口发送的BPDU中的的Bridge ID,Bridge ID值 较小的BPDU发送端口成为DP;
  3. 若Bridge ID一致,则比较同一段链路上两个端口发送的BPDU中的Port ID,Port ID值较小 的BPDU发送端口成为DP

端口状态

RSTP快速生成树协议

RSTP产生背景

STP的不足之处:

  1. 恢复时间长:端口从阻塞状态进入转发状态必须经历至少2倍的Forward Delay时间(即 Listening和Learning状态所经历的时间),所以网络拓扑结构改变之后至少需要两倍的 Forward Delay时间,才能恢复连通性
  2. 如果网络中的拓扑结构变化频繁,网络会频繁的失去连通性,这样用户将无法忍受
  • RSTP(Rapid Spanning Tree Protocol,即快速生成树协议)的特点:
  1. RSTP(快速生成树协议)是从STP发展而来,实现的基本思想和STP一致;
  2. RSTP具备STP的所有功能;
  3. RSTP改进的目的就是当网络拓扑结构发生变化时,尽可能快的恢复网络的连通性

RSTP对STP的改进-端口角色

RSTP的端口状态:根端口、指定端口、替代端口、备份端口
替代端口:Alternate Port,替代根端口(替代RP),替代端口是从其他网桥接收到次优BPDU的端口,它提供了从本地到达根桥的另一条路经;
备份端口:Backup Port,备份指定端口(备份DR),由于学习到自己发出的BPDU报文而阻塞的端口,它提供了从根桥到达相应链路的另一条备份路径
-RSTP中的替代端口+备份端口=STP中的Block端口

RSTP对STP的改进-端口状态

RSTP的三个状态:

  1. Discarding:丢弃,不转发用户数据帧,不可以学习MAC地址;
  2. Learning:学习,不可以转发用户数据帧,但是可以学习MAC地址;
  3. Forwarding:转发,可以转发用户数据帧,可以学习MAC地址;

RSTP对STP的改进-RST BPDU

Message Type字段:不再是0x00,而是代表着RSTP的0x02;
Flag字段,STP中只有第0、7位占用,而在RSTP中,第1-6位也全部占用

  1. Bit1和Bit6分别是proposal和agreement,用于PA机制
  2. Bit2和Bit3表示端口角色,00代表未知、01代表AP或BP、10代表RP、11代表DP
  3. Bit0和Bit7分别是TCN和TCA
  4. Bit3和Bit5分别代表learning和forwarding状态

RSTP对STP的改进-快速收敛机制之端口切换

  • 根端口快速切换:
  1. SW2的RP端口异常Down掉
  2. 该设备上的Alternate端口(AP)将成为根端口,进入Forwarding状态;
  3. 因为通过这个Alternate端口所在的链路上,必然有个指定端口可以到达根桥
  • 指定端口快速切换:
  1. SW3交换机DP口异常Down掉
  2. 该设备上的Backup端口(BP)将成为指定端口,进入Forwarding状态;
  3. 因为Backup端口作为指定端口的备份,提供了另外一条从根桥到响应网段的路径

RSTP对STP的改进-P/A机制

P/A机制,即Proposal/Agreement协商机制;
RSTP通过P/A机制加快了上游端口进入Forwarding状态的速度;
在RSTP中,当一个端口被选举成为指定端口之后,会首先进入Discarding状态,再通过P/A 机制快速进入 Forwarding状态:

  1. 在STP中为了避免环路,该端口至少要等待一个Forwarding Delay时间才能进入Forwarding 状态
  2. 而RSTP通过阻塞自己的非根端口来避免环路,加快了上游端口进入Forwarding状态的速度

RSTP的工作机制-P/A机制详解

在一个稳定的RSTP环境中,root和SW3之间新增一条链路,RSTP如何重新收敛?

  1. root和SW3之间的端口成为指定端口,发送RST BPDU;
  2. SW3的P1端口收到了更优的RST BPDU,马上意识到自己将成为根端口 而不是指定端 口,马上停止发送RST BPDU;
  3. root的指定端口进入discarding状态,发送proposal置位的RST BPDU
  4. SW3收到root发来的proposal置位的RST BPDU,开始将自己的所有端口进入同步状态
  5. SW3各端口同步之后,下游端口进入discarding状态,上游端口P1进入forwarding状态并向 root返回agreement置位的RST BPDU,作为对 proposal的回应;
  6. root收到agreement置位的RST BPDU,是对自己刚刚发出的proposal的回应,于是指定端 口马上进入forwarding状态
  7. SW3下游链路的收敛过程和上述过程一致

RSTP的配置

选择STP模式为RSTP(锐捷交换机默认为RSTP);
启动生成树协议
配置优先级

Ruijie(config)#spanning-tree mode rstp
Ruijie(config)#spanning-tree
Ruijie(config)#spanning-tree priority ?
<0-61440> Bridge priority in increments of 4096 (default value: 32768)

RSTP的不足

  1. 无法负载均衡
  2. 二层次优路径

MSTP

简介:

MSTP是在传统的STP、RSTP的基础上发展而来的新的生成树协议,包含了RSTP的快速 Forwarding机制
MSTP 是基于实例来进行无环拓扑计算,既避免了环路的产生,也能基于VLAN实现数据转发 的负载均衡

相关概念--MST Region

MST Region :MST把一个交换网划分成多个域,每个域内形成多棵生成树,生成树之间相互独立

  1. 1.--由交换网络中的多台交换机以及他们之间的网段所构成;
    2.--一个局域网内可以存在多个MST域,各MST域之间在物理上直接或者间接相连;
    3.--MSTP网络中包含1个或者多个MST域,每个MST域中包含一个或多个生成树实例;
    ——在日常项目实施或者网络维护中,通常是一个局域网只有一个域. 同一个MSTP域中有如下 的特点:
    ·都启动了MSTP;
    ·配置了相同的域名;
    ·具有相同的VLAN和实例的映射;
    ·具有相同的Reversion Number(0-65535)

MSTP相关概念-Instance

Instance:实例,MST域内可以有多棵生成树,每棵生成树都是一个实例,使用Instance ID标识 (0-64)

  1. Instance 0缺省存在,且在缺省情况下,所有的VLAN都映射到了Instance 0中;
  2. 每个VLAN只能对应一个Instance,而一个Instance内可以有多个VLAN

MSTP相关概念-CST,IST,CIST

CST:公共生成树,把每一个MST域作为一个独立的节点设备,CST就是这些节点设备通过生成树协议计算而生成的一棵生成树;
IST:内部生成树,是MST域内Instance 0所生成的一棵生成树;
·CIST:公共和内部生成树
---通过生成树协议计算生成的,连接一个交换网所有设备的单生成树,CST+IST=CIST

其他相关概念:

MSTP端口角色
---根端口、指定端口、Alternate端口、Backup端口、边缘端口(和RSTP一致)、master端口、域边缘端口(MSTP特有,多域状态下存在)
MSTP端口状态
---Forwarding、Learning、Discarding(和RSTP一致)

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号