第十三章 生成树协议

一、生成树背景

1.为什么产生STP协议?

  产生STP的原因就是用来解决局域网中的环路或者说大点叫广播风暴。下面用图来解释:

首先假设PCA发了一个数据帧,他的流量第一次走向是这样的。

但是由于下面两点原因会造成第二次流量走向:

  原因一:网桥或者说二层交换机对于其他交换机相当于是透明的,即SWA对SWB SWC来说,它不存在,SWA相当于一根线。

  原因二:交换机的MAC地址表项只能一个端口对应学到一个或者多个MAC,不能一个MAC学到几个端口。端口就有点类似咱们高中学函数的时候,函数的定义是只能一对一或者一对多,但是不能多对一。不然就不叫函数叫方程了。

   流量第二次走向,此时,对于SWB SWC来说,这个流量(亦即新帧数据,为什么是新的?因为SWBSWC的E1/0/2端口都没有学到)是新的流量所以更改了自己的MAC地址表项,然后再转发新的流量(新数据帧)到上面那根线路上去。记住,这里是SWBSWC第一次转发新流量(新帧)到上面线路去。

  第三次流量走向是基于第一次的,回到第一张图,从SWB下来的流量,跑向两边,当它发现SWA的地址表项是基于E1/0/1学的,重点来了:

  因为SWB对于SWASWC都是透明的,这个是第一次下来的流量,它只记录了自己的端口是基于SWB的E1/0/1口。其余不管的。那跑向两边的流量,对于SWC来说,它端口已经学到了PCA的MAC地址为2口,所以它放这个流量过去。而对于SWA来说,因为它这个流量要从自己的E1/0/2口出去但是没学到,而MAC地址是唯一的。(学习前提条件第四点)所以把MAC地址更新成如图三,这里又会产生新的帧数据,即新流量出来。就是如箭头旁边的数字3.

  新流量3走向SWBSWC发现端口又不一致的时候,又变成了新的帧数据4从SWBSWC出来,并更新MAC地址表项。按上述分析过程(即发现流量入口和学到端口不一致时,更新MAC地址表项产生新的帧数据(流量)),如此循环往复产生流量5等等,就产生了环路。

  一旦这样无限下去,势必就会导致CPU负载过重,导致整片的交换机瘫痪,造成严重损失!这时候就会需要一种先进的方法来解决这个问题。

这就是STP产生的背景!

  核心分析就是,PCA的地址是唯一的,也只能被一个端口学习到,一旦发生改变,就会产生新的帧数据(流量),实际上就是流量只在线路和交换机内部流通,但是帧数据(MAC地址表项也算数据)一直再增加。导致CPU负载过重宕机。

2.STP作用

1)通过阻断冗余链路来消除桥接网络中可能存在的路径回环

2)当前路径发生故障时,激活冗余备份链路,恢复网络连通性

二、STP

1.生成树协议

  1)STP(Spanning Tree Protocol,生成树协议)是用于在局域网中消除数据链路层物理环路的协议。

  2)通过在桥之间交换BPDU(Bridge Protocol Data Unit,桥接协议数据单元),来保证设备完成生成树的计算过程。

 2.配置BPDU的生成和传递

  1)配置BPDU包含以下重要信息,完成生成树计算

  *根桥ID(RootID)

  *根路径开销(RootPathCost)

  *指定桥ID(DesignatedBridgeID)

  *指定端口ID(DesignatedPortID)

  2)各台设备的各个端口在初始时生成以自己为根桥(Root Bridge)的配置消息,向外发送自己的配置消息。

  3)网络收敛后,根桥向外发送配置BPDU,其他的设备对该配置BPDU进行转发。

3.根桥的选举

  1)桥ID由桥优先级(Bridge Priority)和桥MAC地址(BridgeMacAddress)组成

  2)桥ID小的桥被选举为根桥

4.端口角色的确定

  1)根桥上的所有端口为指定端口(Designated Port)

  2)在非根桥上选举根路径开销(RootPathCost)最小的端口为根端口(Root Port)

  3)每个物理段选出根路径开销最小的桥作为指定桥(Designated Bridge),连接指定桥的端口为指定端口

  4)不是根端口和指定端口的其余端口被STP置为阻塞状态

5.根路径开销

  1)根路径开销(RootPathCost)是到达根的路径上所有链路开销(Cost)的代数和

  2)非根桥进行根端口选举时,根路径开销最小的端口为根端口

  3)物理段进行指定桥选举时,路径开销最小的桥为指定桥

6.通过桥ID决定端口角色

  1)在根路径开销相同时,所连网段指定桥ID最小的端口为根端口

  2)在根路径开销相同时,桥ID最小的桥被选举为物理段上的指定桥,连接指定桥的端口为指定端口。

 7.通过端口ID决定端口角色

  在根路径开销、指定桥ID都相同的情况下,所连指定端口ID小的端口为根端口

 8.端口状态

端口角色

端口状态

端口行为

未启用STP功能的端口

Disabled

不收发BPDU报文,接收或转发数据

非指定端口或根端口

Blocking

接收但不发送BPDU,不接收或转发数据

--

Listening

接收并发送BPDU,不接收或转发数据

--

Learning

接收并发送BPDU,不接收或转发数据

指定端口或根端口

Forwarding

接收并发送BPDU,接收并转发数据

 

 

 

 

 

 

 

 

 

 

 

 

 

9.端口状态迁移

  1)端口被选为指定端口或根端口后,需要从Blocking状态经Listening和Learing才能到Forwarding状态

  2)默认的Forwarding  Delay时间是15秒

10.生成树的不足

  

  1)端口从阻塞状态进入转发状态必须经历两倍的Forwarding Delay时间

  2)如果网络中的拓扑结构变化频繁,网络会频繁地失去连通性

三、RSTP

1.简介

  1)RSTP(Rapid Spanning Tree Protocol,快速生成树协议)是STP协议的优化版

  2)RSTP 具备STP的所有功能

  3)RSTP可以实现快速收敛

    *在某些情况下,端口进入转发状态的延时大大缩短,从而缩短了网络最终达到拓扑稳定所需要的时间。

2.RSTP的改进

 

STP行为

RSTP行为

端口被选为根端口

默认情况下,2倍的Forwarding Delay的时间延迟。

存在阻塞的备份根端口情况下,仅有数毫秒延迟。

端口被选为指定端口

默认情况下,2倍的Forwarding Delay的时间延迟。

在指定端口是非边缘端口的情况下,延迟取决因素较多。

在指定端口是边缘端口的情况下,指定端口可以直接进入转发状态,没有延迟。

 

 

 

 

 

 

 

 

四、MSTP

1.STP/RSTP的问题

  1)Trunk链路上实际上运行着多个vlan

  2)所有vlan公用一棵生成树

  3)无法实现不同vlan在多条Trunk链路上的负载分担

2.MSTP简介

  

  1)MSTP(Multiple Spanning Tree Protocol,多生成树协议)

  2)将多个vlan捆绑到一个实例,每个实例生成独立的生成树

  3)在多条Trunk链路上实现vlan级负载分担

3.三种生成树协议特性的比较

特性列表

STP

RSTP

MSTP

解决环路故障并实现冗余备份

Y

Y

Y

快速收敛

N

Y

Y

形成多棵生成树实现负载分担

N

N

Y

 

 

 

 

 

 

 

  

  

  1)MSTP具有RSTP的快速收敛,同时又具有负载分担机制

  2)MSTP兼容STP和RSTP

4.三种生成树协议的端口状态对比

五、生成树协议的配置

1.STP基本配置

  1)开启设备STP特性

   2)关闭端口的STP特性

   3)配置STP的工作模式

 2.STP可选配置

  1)配置当前设备的优先级

   2)配置端口为边缘端口

 3.STP配置示例

 

 4.STP监控与维护

六、总结

1.STP产生的原因是为了消除路径回环的影响

2.STP通过选举根桥和阻塞冗余端口来消除环路

3.RSTP和MSTP相关工作原理

4.生成树协议配置

 

posted @ 2020-08-19 11:14  年少纵马且长歌  阅读(511)  评论(0编辑  收藏  举报