STP

本篇的基本内容:生成树协议包括最初的STPSpanning Tree Protocol,生成树协议),能够快速收敛的RSTPRapid Spanning Tree Protocol,快速生成树协议),以及适应多VLAN复杂环境的MSTPMultiple Spanning Tree Protocol,多生成树协议)。

         STP介绍:局域网中的物理环境通常有两种产生原因,一种是基于可靠性的考虑,为交换机之间提供冗余连接;另一种是由于错误的网络设置导致环路的产生。如果不对网络拓扑加以管理,以上两种情况均会导致严重的后果,如广播风暴和MAC地址学习错误等。

         STPIEEE制定的802.1D标准中定义:用于在局域网中消除数据链路层环路。STP可以通过计算动态地阻断冗余链路,而当活动链路发生故障时,STP又可以激活冗余链路,恢复网络的连通,避免网络中断。

         STP消除链路层环路的基本思想:将网络拓扑修建为树形拓扑,而树形拓扑是不存在环路的。(注意)

         运行STP设备之间交互一些信息,然后通过计算实现拓扑的收敛,具体内容如下:

(1)      运行STP的设备依据一定的准则选举一个树根节点作为网络中的根桥,其他节点为非树根节点。

(2)      每一个非树根节点,会选择最优的路径和根相连,非树根节点上位于最优路径的端口,为该节点的根端口。

(3)      如果网络中存在冗余链路,则阻塞冗余链路。

每一个非树根节点都进行同样的计算,最终网络中任何两台设备之间都只有一条路径可达,从而形成一颗无环的树。

当拓扑发生变化时,节点重新进行计算,收敛为新的树形拓扑。

STP基本概念

1、  桥和端口的角色

STP中有两种特殊的网桥:根桥(Root Bridge)和指定桥(Designate Bridge)。根桥是整个生成树的根节点,由所有网桥中优先级最高的桥担任。指定桥是负责一个Physical Segment(物理段)上数据转发任务的桥,由这个Physical Segment上优先级最高的担任。

网桥上的端口有不同的角色,包括根端口(Root port)、指定端口(Designate Port)、和候补端口(Alternate port)。

根端口指定网桥上距离根最近的端口。根桥没有根端口,每一个非根桥有且仅有一个根端口

指定端口指Physical Segment上属于指定桥的端口。根桥是所有网桥中优先级最高的,它在其所连接的所有Physical Segment上都是指定桥,所以通常情况下根桥的所有端口都是指定端口。

Alternate端口指既不是根端口也不是指定端口的端口,它用来为根端口或指定端口做备份,从Alternate端口出发到达根桥的路径,是网桥到达根桥的备用路径,即最终需要阻塞的路径。

网络处于稳定状态时,根端口和指定端口处于转发状态,Alternate端口处于阻塞状态,阻塞Alternate端口,就消除了网络中的环路。

         ID

         STP中每一个网桥都具有一个桥IDBridge ID),用于在网络中唯一标识一个桥。根桥选择的依据就是桥ID,具有最小桥ID的网桥即为网络中的根桥。

         在进行桥ID的比较时,先比较桥优先级,优先级数值小者为优;在优先级相同的情况下,在比较MAC地址,MAC地址小者为优。当网桥没有哦配置优先级时,使用默认优先级32768,此时,具有最小MAC地址的网桥即为网络中的根桥。

         路径开销

非根桥需要确定根端口,根端口的选择取决于端口到达根桥距离的远近,网桥上到达根桥距离最近的端口为根端口。衡量距离远近依据是路径开销(Path Cost)。路径开销用户衡量桥与桥之间路径的优劣。STP中每条链路都具有开销值,默认的链路开销值取决于所遵循的路径开销标准以及链路带宽。路径开销等于整个路径上全部链路开销的和。

         BPDU

         STP使用BPDUBridge Protocol Data Unit,桥协议数据单元)来交互协议信息,BPDU分两类

(1)      配置BPDUConfiguration BPDU):用来进行生成树计算和维护生成树拓扑的报文。

(2)      TCNBPDUTopology Change Notification BPDU):当拓扑结果改变时,用来通知相关设备网络拓扑结构发生变化的报文。

网桥之间通过交互配置BPDU来进行根桥的选举以及端口角色的确定。配置BPDU基于二层组播方式发送,目的地址为01-80-C20-00-00-00

配置BPDU由根桥从指定端口周期性发出,发送周期为Hello Time。非根桥从根端口接受配置BPDU,进行更新并从指定端口将其发送出去。网络中只有根桥会产生配置BPDU,非根桥只对配置BPDU进行中继,不会自行生成配置BPDU。没有运行STP协议的网桥将把配置BPDU当作普通数据帧转发。

网桥上的每个端口都会保存本端口接收到的最优配置BPDU,端口保存的配置BODU信息老化时间为Max Age时间内配置BPDU信息没有得到更新时,端口将清除保存的配置BPDU信息。

配置BPDU包含目的MAC地址、源MAC地址、帧长、逻辑链路头以及载荷

STP计算过程

STP的计算过程主要包含两个任务:选举根桥和确定端口角色。在实际计算过程中,这两个任务是同步计算完成的。

进行STP计算时,网桥将各个端口收到的配置BPDU和自己的配置BPDU作比较,得出优先级最高的配置BPDU;网桥用优先级最高的配置BPDU更新本身的配置BPDU,用于选举根桥和确定端口角色;网桥从指定端口发送新的配置BPDU

比较配置BPDU时依据优先级向量最小者最优的原则。

根桥选举

在初始状态时,每一个网桥都还没有收到其他网桥发送的配置BPDU,此时每个网桥都认为自己是网络中的根桥,并将向外发送以自己为根桥的配置BPDU。同时也会收到对端网桥发送的配置BPDU。每一个网桥都将自身认为的Root Bridge ID 和接收到的配置BPDU中的Root Bridge ID进行比较,选择Root Bridge ID较小的作为网络中的根桥。

确定端口角色

端口角色的确定方式分为根端口确定、指定端口确定和Alternate端口确定的3个工作。

根端口的确定需要比较RPC。当网桥从一个端口收到配置BPDU后首先获取其中的RPC,和接收端口的链路开销相加,得到此端口的RPC,每个收到配置BPDU的端口都进行同样的计算,然后比较各端口的RPC,拥有最下RPC值的端口即为本网桥的根端口。

指定端口的确定需要比较端口发送的配置BPDU和接收的配置BPDU,如果发送的配置BPDU优于接收到的配置BPDU,表明端口在本Physical Segment上拥有最优的配置BPDU则该端口为指定端口。

Alternate端口指该端口的配置BPDU在其所属Physical Segment上不是最优的,且端口不是根端口。

(注意:在华三设备上该协议是默认开启的所以本篇不附实验)