STP(Spanning Tree Protocol,生成树协议)是根据IEEE 802.1D 标准建立的,用于在局域网中消除数据链路层物理环路的协议。运行该协议的设备通过彼此交互信息发现网络中的环路,并有选择的对某些端口进行阻塞,最终将环路网络结构修剪成无环路的树型网络结构,从而防止报文在环路网络中不断增生和无限循环,避免设备由于重复接收相同的报文所造成的报文处理能力下降的问题发生。
STP采用的协议报文是BPDU(Bridge Protocol Data Unit,桥协议数据单元),也称为配置消息,BPDU中包含了足够的信息来保证设备完成生成树的计算过程。STP即是通过在设备之间传递BPDU来确定网络的拓扑结构。
BPDU格式及字段说明
要实现生成树的功能,交换机之间传递BPDU报文实现信息交互,所有支持STP协议的交换机都会接收并处理收到的报文。该报文在数据区里携带了用于生成树计算的所有有用信息。
标准生成树的BPDU帧格式及字段说明:
Protocol identifier: 协议标识
Version: 协议版本
Message type: BPDU类型
Flag: 标志位
Root ID: 根桥ID,由两字节的优先级和6字节MAC地址构成
Root path cost: 根路径开销
Bridge ID: 桥ID,表示发送BPDU的桥的ID,由2字节优先级和6字节MAC地址构成
Port ID: 端口ID,标识发出BPDU的端口
Message age: BPDU生存时间
Maximum age: 当前BPDU的老化时间,即端口保存BPDU的最长时间
Hello time: 根桥发送BPDU的周期
Forward delay: 表示在拓扑改变后,交换机在发送数据包前维持在监听和学习状态的时间
STP的基本概念
桥ID(Bridge Identifier):桥ID是桥的优先级和其MAC地址的综合数值,其中桥优先级是一个可以设定的参数。桥ID越低,则桥的优先级越高,这样可以增加其成为根桥的可能性。
根桥(Root Bridge):具有最小桥ID的交换机是根桥。请将环路中所有交换机当中最好的一台设置为根桥交换机,以保证能够提供最好的网络性能和可靠性。
指定桥(Designated Bridge):在每个网段中,到根桥的路径开销最低的桥将成为指定桥,数据包将通过它转发到该网段。当所有的交换机具有相同的根路径开销时,具有最低的桥ID的交换机会被选为指定桥。
根路径开销(Root Path Cost):一台交换机的根路径开销是根端口的路径开销与数据包经过的所有交换机的根路径开销之和。根桥的根路径开销是零。
桥优先级(Bridge Priority):是一个用户可以设定的参数,数值范围从0到32768。设定的值越小,优先级越高。交换机的桥优先级越高,才越有可能成为根桥。
根端口(Root Port):非根桥的交换机上离根桥最近的端口,负责与根桥进行通信,这个端口到根桥的路径开销最低。当多个端口具有相同的到根桥的路径开销时,具有最高端口优先级的端口会成为根端口。
指定端口(Designated Port):指定桥上向本交换机转发数据的端口。
端口优先级(Port Priority):数值范围从0到255,值越小,端口的优先级就越高。端口的优先级越高,才越有可能成为根端口。
路径开销(Path Cost):STP协议用于选择链路的参考值。STP协议通过计算路径开销,选择较为“强壮”的链路,阻塞多余的链路,将网络修剪成无环路的树型网络结构。
生成树基本概念的组网示意图如图 7?1所示。交换机A、B、C三者顺次相连,经STP计算过后,交换机A被选为根桥,端口2和端口6之间的线路被阻塞。
STP定时器
联络时间(Hello Time):
数值范围从1秒到10秒。是指根桥向其它所有交换机发出BPDU数据包的时间间隔,用于交换机检测链路是否存在故障。
老化时间(Max. Age):
数值范围从6秒到40秒。如果在超出老化时间之后,还没有收到根桥发出的BPDU数据包,那么交换机将向其它所有的交换机发出BPDU数据包,重新计算生成树。
传输时延(Forward Delay):
数值范围从4秒到30秒。是指交换机的端口状态迁移所用的时间。
当网络故障引发生成树重新计算时,生成树的结构将发生相应的变化。但是重新计算得到的新配置消息无法立刻传遍整个网络,如果端口状态立刻迁移的话,可能会产生暂时性的环路。为此,生成树协议采用了一种状态迁移的机制,新的根端口和指定端口开始数据转发之前要经过2倍的传输时延,这个延时保证了新的配置消息已经传遍整个网络。
STP模式的BPDU的优先级比较原则
假定有两条BPDU X和Y,则:
如果X的根桥ID小于Y的根桥 ID,则X优于Y
如果X和Y的根桥ID相同,但X的根路径开销小于Y,则X优于Y
如果X和Y的根桥ID和根路径开销相同,但X的桥ID小于Y,则X优于Y
如果X和Y的根桥ID、根路径开销和桥ID相同,但X的端口ID小于Y,则X优于Y
STP的计算过程
每台交换机在初始时会生成以自己为根桥的BPDU,根路径开销为0,指定桥ID为自身设备ID,指定端口为本端口。
每台交换机都向外发送自己的BPDU,同时也会收到其它交换机发送的BPDU。比较过程如下表所述:
步骤 |
内容 |
1 |
当端口收到的BPDU比本端口BPDU的优先级低时,交换机将丢弃接收到的BPDU,保留该端口的BPDU;否则,交换机将接收到的BPDU替换成为该端口的BPDU。 |
2 |
交换机将所有端口的BPDU进行比较,选出最优的BPDU作为本交换机的BPDU。 |
通过交换配置消息,设备之间比较根桥ID,网络中根桥ID 最小的设备被选为根桥。
根端口、指定端口的选择过程如下表所述:
步骤 |
内容 |
1 |
非根桥交换机将接收到最优BPDU的那个端口指定为根端口。 |
2 |
交换机根据根端口的BPDU和根端口的路径开销,为其它端口计算一个端口BPDU: l 根桥ID替换为根端口的根桥ID; l 根路径开销替换为根端口的根路径开销加上本端口到根端口的路径开销; l 指定桥ID替换为自身设备的ID; l 指定端口ID替换为自身端口ID。 |
3 |
交换机使用计算出来的BPDU和需要确定端口角色的端口上的BPDU进行比较,并根据比较结果进行不同的处理: l 如果计算出来的BPDU优,则设备就将该端口定为指定端口,端口上的BPDU被计算出来的BPDU替换,并周期性向外发送。 l 如果端口上的BPDU优,则设备不更新该端口BPDU并将此端口阻塞,该端口将不再转发数据,只接收但不发送配置消息; |
RSTP
RSTP(Rapid Spanning Tree Protocol,快速生成树协议)是优化版的STP,他大大缩短了端口进入转发状态的延时,从而缩短了网络最终达到拓扑稳定所需要的时间。RSTP的端口状态实现快速迁移的前提如下:
RSTP的基本概念
边缘端口(Edge Port):直接与终端相连而不是与其它交换机相连的端口。
点对点链路:是两台交换机之间直接连接的链路。
MSTP
MSTP(Multiple Spanning Tree Protocol,多生成树协议)是在STP和RSTP的基础上,根据IEEE协会制定的802.1S标准建立的,他既可以快速收敛,也能使不同VLAN的流量沿各自的路径转发,从而为冗余链路提供了更好的负载分担机制。
MSTP的特点如下:
MSTP的基本概念
MST域(Multiple Spanning Tree Region,多生成树域):由具有相同域配置和相同Vlan-实例映射关系的交换机所构成。
IST(Internal Spanning Tree,内部生成树):MST域内的一棵生成树。
CST(Common Spanning Tree,公共生成树):连接网络内所有MST域的单生成树。
CIST(Common and Internal Spanning Tree,公共和内部生成树):连接网络内所有设备的单生成树,由IST和CST共同构成。
MSTP基本概念的组网图如图 7?2所示。
MSTP的基本原理
MSTP将整个网络划分为多个MST域,各个域之间通过计算生成CST;域内则通过计算生成多棵生成树,每棵生成树都被称为是一个多生成树实例。MSTP同STP一样,使用BPDU进行生成树的计算,只是BPDU中携带的是MSTP的配置信息。
MSTP模式的BPDU优先级比较原则
假定有两条MSTP的BPDU X和Y,则:
如果X的总根ID小于Y的总根ID,则X优于Y
如果X和Y的总根ID相同,但X的外部路径开销小于Y,则X优于Y
如果X和Y的总根ID和外部路径开销相同,但X的域根ID小于Y的域根ID,则X优于Y
如果X和Y的总根ID、外部路径开销和域根ID相同,但X的内部路径开销小于Y,则X优于Y
如果X和Y的总根ID、外部路径开销、域根ID和内部路径开销相同,但X的桥ID小于Y,则X优于Y
如果X和Y的总根ID、外部路径开销、域根ID、内部路径开销和桥ID均相同,但X的端口ID小于Y,则X优于Y
端口状态
MSTP中,根据端口是否转发数据和如何处理BPDU报文,可将端口状态划分为以下四种:
端口角色
MSTP的端口角色分为以下几种: