设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 2271|回复: 5
收起左侧

[分享] STP生成树协议发展史

[复制链接]
 成长值: 62320
发表于 2017-10-31 15:44:44 | 显示全部楼层 |阅读模式

思科知识点汇总贴
http://bbs.hh010.com/thread-529979-1-1.html
(出处: 鸿鹄论坛)




标准协议的发展史:STP ——> RSTP ——> MSTP
1.STPClassical Spanning Tree,标准生成树)---IEEE 802.1D
它的主要任务是阻止在第2层中产生网络环路。它警惕着监视着网络中的所有链路,通过关闭任何冗余的接口来确保在网络中不会产生环路。STP采用生成树算法(STA),它首先创建一个拓扑数据库,然后搜索并破坏掉冗余的链路。运行STA算法之后,帧就只能被转发到保险的由STP挑选出来的链路上。
STP的一些术语
a)BPDU(桥协议数据单元),所有的交换机相互之间都交换信息,并利用这些信息来选举出网路中的根桥,也根据这些信息来进行网络的后续配置。每台交换机都对桥协议数据单元(Bridge Protocol Data Unit,BPDU)中的参数进行比较,它们将BPDU传送给某个邻居,并在其中放入它们从其他邻居那里收到的BPDU信息。运行802.1D的交换机默认发送的时间间隔为2s,组播MAC地址是01-80-c2-00-00-00
b)Bridge ID(桥ID),STP利用桥ID来跟踪网络中的所有交换机。桥ID是由{桥优先级+MAC地址}(在所有Cisco交换机上,默认的优先级为32768;这里的MAC地址即命令show versionBase ethernet MAC Address的内容)组合来决定的。
c)Root bridge(根桥),是桥ID最小的网桥。它的选举决定于交换机的{优先级+MAC地址},网络中这个组合的值最小的就成为根桥。通常在一个网络中我们都会规划一个主根桥和一个备份根桥,以防止在主根桥故障的情况下新选出的根桥也能处在网络的核心或汇聚层。
d)Nonroot bridge(非根桥),除了根桥其他所有的网桥都是非根桥。他们之间都交换BPDU(默认每2秒发送一次),并在所有交换机上更新STP拓扑数据库,以防止环路对链路失效采取补救措施。
STP的端口角色
a)Root port(根端口),指交换机上到根桥开销最小的端口。如果有多条链路连接到根桥,且每条链路到根桥的开销是一样的,就使用通过的交换机桥ID小的那条链路;如果多条链路来自同一台设备,就使用端口号最低(一般情况下端口号比较大的其MAC地址都较大)的那条链路。
b)Designated port(指定端口),被标记为转发的端口。我们可以通过比较交换机的桥ID或端口号大小来决定指定端口的选举。
c)Nondesignated port(非指定端口),被置为阻塞状态,不是转发端口。但它始终监听来自网络中的BPDU
STP的选举
1.jpg
选举过程
a)确定根桥---BID最小---唯一根桥(每个广播域)
b)确定根端口---距离根桥代价最小---每个非根桥唯一一个根端口——>转发报文
根端口确定规则(顺着RB发出的BPDU方向):
–到达根桥的代价最小
–发送方的Bridge ID 最小
–发送方的port最小----port ID=port priority+port number
–接收方(自身)port ID 最小
c)确定指定端口---唯一的指定端口(每条链路即一个冲突域中)——>转发报文

  指定端口的选举原则同根端口。
d)确定非指定端口---每个2层环路都有一个非指定端口——>不转发(阻塞)
注:链路开销

                               
登录/注册后可看大图

    只有在一个广播能够到达的范围内,才需要进行STP计算与选举,也就是一个广播域内独立计算STP。

STP端口状态
阻塞(Blocking),20秒。稳定状态。不学习MAC地址,不转发数据帧,它只侦听BPDU。当交换机加电时,默认情况下所有端口都处于阻塞状态。
侦听(Listening),15秒。过渡状态。不学习MAC地址,不转发数据帧,侦听BPDU,以确定在传送数据之前在网路上没有环路产生。
学习(Learning),15秒。过渡状态。学习MAC地址,不转发数据帧。处在学习状态的交换机端口形成了MAC地址表,但还不能转发数据帧。
转发(Forwarding),稳定状态。学习MAC地址,转发数据帧。处在转发状态的交换机端口可以进行数据的转发功能。
注:在一个运行STP的网络中所有的交换机端口都转变到转发或阻塞状态时,就产生了收敛。在收敛完成之前,交换机不能转发任何数据。
    ②BPDU每隔2秒发送一次,如果在20秒内没有收到对端BPDU数据,阻塞端口将会开启进入监听、学习、转发。需要时间是20+15+15=50
STPBPDU报文的类型
a)Configuration BPDU(配置BPDU):这种BPDU就是在根桥所有端口上以周期性间隔(由hello时间间隔所定义)发出的,其中包括各种STP参数。这种BPDU只能由Root Bridge产生,其他交换机中转这种BPDU
b)TCN BPDU(拓扑改变通知BPDU):由发现拓扑改变的交换机产生。
拓扑改变的机制(端口进入blockingforwarding状态):
–在交换网络中,若一个交换机发现拓扑改变,它将产生TCN BPDU,沿着去往root bridge方向发送,(从自己的RP端口发出,必须得到上游交换机的确认TCA,如果没有收到TCA,将再次发送TCN BPDU)直到该TCN BPDU报文到达root bridge
Root Bridge收到该TCN BPDU,在后续一段时间内(Max-AGE+Forward_Delay=20+15)发送的configuration BPDU中的TC标志位=1,所有交换机收到这种带TC比特的Configuration BPDU,将本交换机的MAC地址表中的现有表项的老化时间设置为Forward_delay
2.RSTPRapid Spaning Tree Protocol,快速生成树协议)---IEEE 802.1W---基于STP增强
switch(config)#spanning-tree mode rapid-pvst
#
配置RSTP协议。新版的802.1W协议修补了802.1D在收敛上的不足,它将PortFastUplinkFastBackboneFast等问题都解决了,我们要做的只是打开802.1W协议。RSTP协议可以向下兼容802.1D协议,但是如果它们共存时802.1W所拥有的内在的快速收敛功能将失效。
RSTP的端口角色
a)根端口
b)指定端口
c)替代端口(Alternate Port),如果活跃的根端口发生故障,那么替代端口将成为根端口。若一个端口时由于接收到其他交换机的BPDU报文而进入Blocking状态,则该端口为AP
d)备份端口(Backup Port),如果现有的指定端口发生故障,那么备份端口将成为新的指定端口。若一个端口时由于接收到本交换机的BPDU报文而进入Blocking状态,则该端口为BP
RSTP的选举原则(同STP
RSTP的端口状态
a)丢弃(Discarding),对应STPBlocking以及Listening阶段。
b)学习(Learning
转发(Forwarding
RSTP提高收敛速度的改进
a)引入hello机制(类似于邻居机制)
若连续3次(默认6秒)未收到hello报文,则认为邻居故障,将从该邻居得到的BPDU消息老化。
b)一个交换机C(一个端口为RP;一个端口为AP,处于阻塞状态),当交换机CRP故障,AP成为的RP。若新的RP对端设备的端口已经处于Forwarding状态,则该端口可以直接转发。

                               
登录/注册后可看大图

c)Proposal-Agreement机制(提议/同意机制)
从根桥开始,DP端口向下游交换机的端口发出Proposal消息,收到下游交换机回复的Agreement消息后就可以进入转发状态。当然下游交换机回复的Agreement消息必须满足一些条件:
–除了接收Proposal消息以外的所有其他端口必须是edge-port(这种端口通常是连接终端设备,它的收敛时间为0);或者
–除了接收Proposal消息以外的所有其他端口必须该端口是阻塞的(下游交换机在收到Proposal消息后会主动让这些端口进入阻塞状态。
d)拓扑改变机制(非边缘端口进入转发状态)
由发现拓扑改变的交换机直接泛洪这个BPDU消息(TC位置为1)到网络中。因为每个交换机可以自动产生/发送BPDU报文。
注:Proposal-Agreement必须在Point-to-Point链路上进行。
    ②若交换机的端口工作在全双工,则缺省认为是Point-to-Point链路;若交换机的端口工作在半双工,则缺省认为是shared链路。
配置边缘端口(portfast端口)
方式1
switch(config)# spanning-tree portfast default     #在所有access端口上启用edge-port功能。
方式2
switch(config)#interface range fa 0/1 – 12     #将交换机上的112个端口同时设置成快速端口。注意书写时的空格位置。
switch(config-if-range)#spanning-tree portfast     #使用快速端口意味着,当STP正在收敛时,被配置的端口不需要等待通常的50秒才进入转发状态。应该注意必须保证禁用STP不会产生环路。
3.MSTMultiple Spanning Tree,多生成树)--- IEEE 802.1S---基于RSTP开发
基于RSTP开发的,在网络中运行多个生成树实例。通过对VLAN分组并将其关联到生成树实例,MST允许在主干道上组建多生成树。每个实例都拥有独立于其他生成树实例的拓扑。这种体系结构为数据流量提供了多条转发路径,并且支持负载分担功能。如果某条转发路径发生故障,不会影响到不同转发路径中的示例,从而提高了网络容错的能力。
2.jpg
检查
switch#show spanning-tree mst configutation     #查看交换机mst配置信息
switch#show spanning-tree mst mst_number     #查看交换机某个mst实例的信息
注:MST交换机与STPRSTP交换机向连接时,将发送STPRSTPBPDU来交互。若相邻设备生成树版本更改,MST交换机不会自动感知,此时必须强制重新协商。可以使用命令switch#clear spanning-tree detected-protocols [interface interface_id]





Cisco协议的发展史:PVST(PVST+) ——> PVRST
1.PVST(PVST+) --- Per VLAN STP,每VLAN生成树协议
概述
为了兼容STP/RSTPCiscoPVST做了改进称为PVST+ ,它在VLAN1上运行CST(Common Spanning Tree,公共生成树),在其他VLAN上运行PVST。如果配置得当,PVST+能够以每个VLAN为基础提供负载分担,PVST+允许在交换网络中使用VLAN来创建不同的逻辑拓扑,进而确保能够使用所有的链路,而不会过度使用某条链路。VLANPVST+的每个实例都有单独的根桥。这个根桥向网络中的所有其他交换机传播与该VLAN相关的生成树信息。Cisco现行设备基本运行的都是PVST+,并且是自动开启的。
PVST+优缺点
优点:在每个VLAN中计算一个STP实例,可以实现不同VLAN的流量分担,提高链路的利用率。
  缺点:为每个VLAN计算生成树,耗费大量系统资源,而且是思科私有协议(PVST只支持ISL封装,PVST+做了扩展可以支持802.1Q封装),与其他厂家不兼容。
运行PVST+的交换机上不同VLAN都需要计算一个STP实例,如何设置Bridge ID?
–交换机上保存一个MAC地址池,不同VLAN计算STP时,从其中选取一个MAC地址,从而保证不同STP实例的Bridge ID唯一。(Cisco早期做法)
–使用扩展系统ID,将原先16bit的优先级划分为2部分,前4bit依旧用作priority,后12bitVLAN ID映射进去。(目前采用这种方式)
示例:
VLAN 1Bridge ID{32768+1,MAC地址}(假设交换机的priority为缺省值32768
VLAN 2
Bridge ID{32778+2,MAC地址}(假设交换机的priority为缺省值32768
注:由于后12bit被用作VLAN ID的映射,因此配置PVST+的交换机优先级时,步长必须为4096
配置PVST+
3.jpg
注:关于STP中其他参数的设置(以下命令也可以运用于MST,只是针对的是MST实例而不再是VLAN
switch (config)#spanning-tree vlan 1 priority 4096   #针对某个VLAN更改桥优先级的数值(061440,以4096递增)。
switch(config-if)#spanning-tree vlan 1 cost 20   #针对某个VLAN更改接口cost值。
switch(config-if)#spanning-tree vlan 1 port-priority 96   #针对某个VLAN更改端口优先级(0240,以16递增)。
switch(config)#spanning-tree vlan 10 hello-time 3   #针对某个VLAN调整HELLO时间间隔
switch(config)#spanning-tree vlan 10 max-age 30   #针对某个VLAN调整最大失效时间
switch(config)#spanning-tree vlan 10 forward-time 10   #针对某个VLAN调整转发延迟
检查STP信息

2.PVRST --- Per VLAN RSTP,每VLAN快速生成树协议
Rapid PVST+就是具有RSTP特性的PVST+,是像RSTP一样基于IEEE 802.1w运行的,其它所有运行与规则与PVST+完全相同。这里不再做详细的描述。

发表于 2017-10-31 22:59:50 | 显示全部楼层
感谢楼主分享!
沙发 2017-10-31 22:59:50 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2018-6-29 16:10:47 | 显示全部楼层
感谢楼主分享!
5# 2018-6-29 16:10:47 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2020-7-25 18:50:18 | 显示全部楼层
感谢小乔分享
6# 2020-7-25 18:50:18 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-11-22 04:58 , Processed in 0.067835 second(s), 15 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表