目录

具备冗余功能的第二层拓扑

冗余功能

冗余功能存在的问题

广播风暴

重复的单播帧

STP简介

生成树算法

BPDU

BPDU字段

STP BPDU

 到根桥的最佳路径开销

到根桥的最佳路径开销 - 配置端口开销

到根桥的最佳路径开销 - 路径开销 

到根桥的最佳路径开销 – 检验端口和路径开销

网桥 ID 

配置并检验 BID

端口角色 

STP 端口状态和 BPDU 计时器

STP收敛

STP 收敛步骤

步骤1:选举根桥

步骤 2. 选举根端口

步骤 3.选举指定端口和非指定端口 

STP 拓扑更改

PVST+,RSTP和快速PVST+

Cisco 及 及 STP 变体

PVST+ 和 PVST+ 网桥 ID

主根桥和次根桥

PVST+ 交换机优先级

RSTP 

RSTP 的特征

边缘端口

链路类型

RSTP 端口状态和端口角色 

配置快速 PVST+

Configuring rapid PVST+ 

精心规划STP 

无论是否有必要都请保留STP

使流量远离管理VLAN

不要用单个VLAN覆盖整个网络

排除STP运行故障

总结


具备冗余功能的第二层拓扑

冗余功能

第 2 层冗余功能通过添加设备和电缆来实现备用网络路径,从而提升网络可用性。
当有多条网络路径可用于数据传输时,即使一条路径失效,也不会影响网络上设备的连通性。

在分层设计中,实现冗余功能的方法是在分布层和核心层添加额外的硬件,并通过额外添加的硬件建立备用路径。

冗余功能存在的问题

广播风暴

当卷入第 2 层环路的广播帧过多,导致所有可用带宽都被耗尽时,便形成了广播风暴。此时没有带宽可供正常流量使用,网络无法支持数据通信。环路网络中不可避免的会产生广播风暴。随着越来越多的设备向网络中发送广播,卷入环路的流量也越来越多,最终形成广播风暴,导致网络中断。

重复的单播帧

广播帧并不是会受环路影响的唯一一种帧。发送到环路网络的单播帧也可能造成目的设备收到重复的帧。

STP简介

生成树算法

冗余功能可防止网络因单个故障点(例如网络电缆或交换机故障)而无法运行,以此提升网络拓扑的可用性。
向第 2 层设计引入冗余功能时,环路和重复帧现象也可能随之而出现。环路和重复帧对网络有着极为严重的影响。
生成树协议 (STP) 便旨在解决这些问题。

STP 可以弥补网络故障所带来的问题

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_链路

(1)STP 会特意阻塞可能导致环路的冗余路径,以确保网络中所有目的地之间只有一条逻辑路径。

(2)当一个端口阻止流量进入或离开时,该端口便视为处于阻塞状态。

(3)阻塞冗余路径对于防止网络环路非常关键。为了提供冗余功能,这些物理路径实际依然存在,只是被禁用以免产生环路。

(4)一旦需要启用此类路径来抵消网络电缆或交换机故障的影响时,STP 就会重新计算路径,将必要的端口解除阻塞,使冗余路径进入活动状态。

(5)STP 使用生成树算法 (STA) 计算网络中的哪些交换机端口应配置为阻塞才能防止环路形成。STA 会将一台交换机指定为根桥,然后将其用作所有路径计算的参考点。

(6)所有参与 STP 的交换机互相交换 BPDU 帧,以确定网络中哪台交换机的网桥 ID (BID) 最小。BID 最小的交换机将自动成为 STA 计算中的根桥。

BPDU

BPDU 是运行 STP 的交换机之间交换的消息帧。每个BPDU 都包含一个 BID,用于标识发送该 BPDU 的交换机。BID 内含有优先级值、发送方交换机的 MAC 地址以及可选的扩展系统 ID。BID 值的大小由这三个字段共同决定。

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_链路_02

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_生成树_03

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_网络_04

BPDU字段

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_生成树_05

STP BPDU

(1)广播域中的每台交换机最初都会将自己视为生成树实例中的根桥,因此其送出的 BPDU 帧中将自己的 BID 作为根 ID。默认情况下,BPDU 帧是在交换机启动后每 2 秒发送一次,也就是说 BPDU 帧中 hello 计时器的默认值是 2 秒。每台交换机都维护着有关其 BID、根 ID 以及到根桥的路径开销的本地信息。

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_最佳路径_06

(2)当邻接交换机收到 BPDU 帧时,它们会将 BPDU 帧内的根 ID 与本地根 ID 比较。如果 BPDU 中的根 ID 比本地根 ID 更小,交换机便更新本地根 ID 以及它送出的BPDU 消息内的根 ID。这些消息的作用是告诉网络新的根桥。此外,路径开销也会更新,以指出到根桥的距离。

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_生成树_07

(3)交换机的根 ID 更新后,其送出的所有后续 BPDU 帧都会包含新的根 ID 以及更新后的路径开销。通过这种方式,所有其它邻接交换机就能始终看到最小的根 ID。随着BPDU 帧在其它邻接交换机之间传递,路径开销也不断更新,以指示到根桥的总路径开销。生成树中的每台交换机使用其路径开销来指示到根桥的最佳可能路径。

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_网络_08

 到根桥的最佳路径开销

链路速度

开销(修订后的IEEE规范)

开销(之前的IEEE规范)

10Gb/s

2

1

1Gb/s

4

1

100Mb/s

19

10

10Mb/s

100

100

到根桥的最佳路径开销 - 配置端口开销

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_链路_09

到根桥的最佳路径开销 - 路径开销 

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_网络_10

到根桥的最佳路径开销 – 检验端口和路径开销

show spanning-tree

网桥 ID 

网桥 ID (BID) 用于确定网络中的根桥。

配置并检验 BID

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_链路_11

检验:show spanning-tree

端口角色 

在生成树过程中,交换机端口会被自动配置为四种不同的端口角色。

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_生成树_12

具体的STP端口介绍,可以看我之前的文章《STP生成树协议的介绍》,这里就不做过多的介绍。

STP 端口状态和 BPDU 计时器

端口状态

过程

阻塞

侦听

学习

转发

禁用

接收并处理BPDU





不能

转发接口上收到的数据帧

不能

不能

不能


不能

转发其他接口交换过来的数据帧

不能

不能

不能


不能

学习MAC地址

不能

不能



不能

 若不是到根桥的最低开销路径,则回到阻塞状态

BPDU计时器

Hello时间

Hello时间是通过发送BPDU帧的间隔时间,默认值为2s,可调整为1-10s之间的值。

转发延迟

转发延迟是处于侦听和学习状态的时间,默认情况下,每转换一个状态要等待15s,可调整为4-30s之间的值。

最大老化时间

最大老化时间控制着交换机端口保存配置BPDU信息的最长时间,默认是20s,可调整为6-40s之间的值。

STP收敛

STP 收敛步骤

1.选举根桥
2.选举根端口
3.选举指定端口和非指定端口。

步骤1:选举根桥

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_链路_13

步骤 2. 选举根端口

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_最佳路径_14

步骤 3.选举指定端口和非指定端口 

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_网络_15

STP 拓扑更改

当转发端口关闭(例如被阻塞)或某端口在交换机已具有指定端口的情况下转换为转发状态时,交换机会认为自己检测到了拓扑更改。如果检测到更改,交换机会通知生成树的根桥。然后根桥将该信息广播到整个网络。

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_链路_16

 关于STP 拓扑更改,我会专门写一篇文章介绍,这里的话,先了解有这个概念。

PVST+,RSTP和快速PVST+

Cisco 及 及 STP 变体

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_生成树_17

PVST+ 和 PVST+ 网桥 ID

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_网络_18

PVST+ 

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_生成树_19

主根桥和次根桥

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_生成树_20

PVST+ 交换机优先级

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_最佳路径_21

检验:show spanning-tree active;show run

RSTP 

RSTP 的特征

用于防止交换网络出现第二层环路的首选协议

透明集成了思科专用的增强功能,如向邻居路由器发送建议和同意的BPDU。

比早期Cisco转悠增强功能更有效。

不兼容某些Cisco专有的增强功能,如UplinkFast和BackboneFast。

定义了不同的端口状态和端口角色。

不需要802.1D计时器。

大多数配置参数保持不变。

BPDU格式与IEEE 802.1D BPDU相同。

向下兼容802.D。

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_链路_22

边缘端口

RSTP 边缘端口是指永远不会用于连接到其它交换机设备的交换机端口。当启用时,此类端口会立即转换到转发状态。

链路类型

链路类型用于将参与 RSTP 的每个端口分类。链路类型可预先确定待命端口要扮演的活动角色,以便在满足特定条件时端口立即转换到转发状态。
边缘端口和非边缘端口需满足不同的条件。非边缘端口分类为两种链路类型:点对点和共享。链路类型是自动确定的,但可以使用显式端口配置覆盖。

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_链路_23

链路类型:共享链路类型,点对点链路类型
共享链路类型:此链路连接到工作在半双工模式的一个端口,可能存在多台交换机的共享介质
点对点链路类型:此链路连接到工作在全双工模式的交换机端口,连接到单台交换机设备。 

RSTP 端口状态和端口角色 

丢弃:稳定的活动拓扑以及拓扑同步和更改期间都会出现的状态,丢弃状态禁止转发数据帧,可以断开2层环路
学习:稳定的活动拓扑以及拓扑同步和更改期间都会出现的状态,学习状态会接收数据帧来填充MAC表,限制未知单播帧防洪。
转发:稳定的活动拓扑以及拓扑同步和更改期间都会出现的状态,转发状态的交换机端口决定了拓扑,发送拓扑变化后,或在同步期间,只有建议和同意过程后才会转发数据帧。

配置快速 PVST+

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_最佳路径_24

基于Full Mesh拓扑的网络二层交换技术 二层冗余拓扑_链路_25

Configuring rapid PVST+ 

验证:show spanning-tree vlan 10;show run

精心规划STP 

无论是否有必要都请保留STP

1.请勿禁用SP

2.STP不会占用大量的处理器资源

3.每条链路上的少量BPDU不会降低带宽

4.但如果没有STP,网桥网络可能会瞬间瘫痪

使流量远离管理VLAN

1.在管理VLAN上发送大量广播或者组播流量会降低CPU处理关键BPDU的能力

2.不要在管理VLAN上传输用户流量

不要用单个VLAN覆盖整个网络

1.VLAN 1作为管理VLAN,其中所有交换机都可以通过相同IP子网访问

2.VLAN 1上的桥接环路会影响所有的中继,并能使网络瘫痪

3.使用高速第三层交换机将桥接域分段

排除STP运行故障

要排除桥接环路故障,需要了解:

1.网桥网络的拓扑

2.根桥的位置

阻塞端口和冗余链路的位置。

总结

STP可以防止采用冗余链路的分层网络中形成环路。
STP 使用不同的端口状态和计时器来防止出现环路。网络中的一台交换机会被指定为根桥。根桥通过选举来确定,在选举过程中,广播域内的邻居交换机之间会交换 BPDU 帧。
网络中所有其它交换机使用生成树算法来确定其交换机端口的角色。最接近根桥的交换机端口成为根端口。其它的非根端口将竞争成为指定或非指定端口。

因为生成树协议收敛需要花费 50 秒时间才能完成 RSTP,所以人们开发了快速 PVST+:RSTP 将收敛时间减少到 6 秒左右。快速 PVST+ 在 RSTP 的基础上添加了 VLAN 支持。快速PVST+ 是 Cisco 交换网络中首选的生成树协议。