STP、RSTP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STP、RSTP相关的知识,希望对你有一定的参考价值。

参考技术A 为了提高网络可靠性,避免单点故障而导致网络中断,常常需要在网络中部署冗余链路或冗余设备,但是部署了冗余链路或冗余设备的网络,也会从无环的树型网络结构变为环形网络结构,环形网络结构会带来新的问题:

1、广播风暴导致网络不可用

因为交换机收到广播帧,会将广播帧从接收端口外的所有接口转发出去;

广播帧就会在环形网络中无限循环转发,随着广播帧的增加,最终导致整个网络的资源被耗尽,网络瘫痪不可用;

2、MAC地址表震荡导致MAC地址表被破坏

即使是单播报文,也有可能导致交换机的MAC地址表项混乱,破坏交换机的MAC地址表;

因为交换机接收到未知单播帧后,也会向除接收端口外的所有接口转发;

未知单播帧就会在环形网络中无限循环转发,同一交换机不断的从不同的接口学到未知单播帧,交换机就会不停的修改MAC地址表,导致MAC地址表震荡,破坏MAC地址;

STP根据IEEE 802.1D标准建立,用于在局域网中消除二层环路的问题;

运行STP协议的设备通过彼此交互信息发现网络中的环路,并有选择地对某些端口进行阻塞,最终实现将环路网络结构修剪成无环路的树型网络结构,从而防止报文在环形网络中不断循环,避免设备由于重复接收相同的报文造成处理能力下降。

STP仅在网络中存在冗余链路或者存在环形网络拓扑结构时才需要使用;

使用STP技术,其实更多是抱着以防万一的心态,怕网络中存在这样的物理封闭环路;

因为STP技术在保证正常使用冗余链路备份的同时,又能确保不会出现二层通信环路;

一个根桥、两个度量、三个要素、四个原则、五个端口状态

一个根桥:

树型的网络拓扑结构必须有一个树根,就像一棵树只有一个树根一样,对于一个运行STP协议的网络,根桥在全网中只有一个,就是网络中具有最小桥ID的交换机;

网络中除根桥外的其它交换机成为非根桥;

网络收敛后,根桥会按照一定的时间间隔向外发送配置BPDU,非根桥仅对该报文进行转发,传达拓扑变化记录,保证拓扑的稳定;

两个度量:

在STP计算中要确定两个方面,一是哪台交换机作为根桥,二是非根桥的哪些端口收发数据,哪些端口该被阻塞,以便最终形成无环路的树型网络拓扑结构;

STP计算依据的就是ID和路径开销这两个度量;

1、ID

ID包括BID桥ID和PID端口ID两种;

BID Bridge ID一共64位,高16位为Bridge Priority桥优先级,低48位为桥背板MAC地址;

BID决定了哪台交换机成为网络中的根桥,BID最小的交换机被选举为根桥;

从桥优先级字段和桥MAC地址字段所处位置可以看出,桥优先级越小,桥ID越小,桥优先级相同,取桥MAC地址小的作为根桥;

桥优先级数值范围0 - 61440,数值越小越优先;

PID Port ID一共16位,高4位是端口优先级,低12位是端口号;

在确定根端口、指定端口的过程中,如果根路径开销、发送者桥ID均相同,发送者PID小的端口成为根端口或指定端口;

端口优先级数值范围0 - 255,数值越小越优先;

2、路径开销

路径开销是一个端口参数,由具体端口的链路速率决定,是STP协议用于选择链路的参考值;

对于聚合链路,链路速率是聚合组中所有状态位UP的成员口的速率之和;

STP协议通过计算各端口的路径开销,选择较为强壮的链路,阻塞多余的链路,将网络修剪成无环路的树型网络结构;

根路径开销是某端口到根桥累计的路径开销,就是所经过的各个桥上的各端口的路径开销累加值;

根桥上所有端口的根路径开销,以及同交换机上不同端口间的路径开销值均为零;

某接口的根路径开销 = 根端口接收配置BPDU携带的根路径开销 + 根端口的路径开销

三个选举要素

由环形网络拓扑结构修剪为树型结构,需要使用STP中的三个选举要素,即根桥、根端口和指定端口;

根桥  就是STP网络中BID桥ID最小的桥,通过交互配置BPDU报文选出最小的BID作为根桥;

根端口    非根桥上接收最优配置BPDU的端口,即离根桥最近的端口;

最优配置BPDU根据BPDU优先级确定;

在一个运行STP协议的设备上,根端口有且只有一个,根桥上没有根端口;

指定端口    就是向一个网段上发送最优配置BPDU的端口;

一旦根桥、根端口、指定端口选举成功,整个树型网络拓扑结构就建立完成了;

拓扑稳定后,只有根端口、指定端口转发流量,其余端口处于阻塞状态;

四个比较原则

STP计算依据的是各个端口发送配置BPDU报文携带的4个字段:

1、根桥ID    每个STP网络只生成一棵树,一棵树只有一个树根;

2、根路径开销    发送该配置BPDU的端口到根桥的累计路径开销;

3、发送者桥ID    发送该配置BPDU的桥ID;

4、发送者端口ID    发送该配置BPDU的端口ID;

BPDU优先级按照上述顺序依次比较这四个字段确定,四个字段都是数值越小越优先;

需要注意的是,当非根桥从多个端口收到多个不同的配置BPDU时,根路径开销的比较是接收配置BPDU携带的根路径开销值加上接收端口路径开销值进行比较;

五个端口状态

运行STP协议的设备,有以下5个端口状态:

1、disabled    禁用状态

2、blocking    可以收发BPDU

该状态下正在确定根桥、根端口、指定端口;

3、listening    可以收发BPDU

在端口被选举为根端口或指定端口后,进入到该状态,是一种过渡状态;

4、learning    可以收发BPDU、学习MAC地址表项

经过一个转发延时后进入该状态,需要再经过一个转发延时后才能进入forwarding状态,也是一种过渡状态;

5、forwarding    可以收发BPDU、学习MAC地址表项、转发用户流量

只有根端口、指定端口才能进入转发状态;

新选出的根端口、指定端口要经过两倍的转发延时后,才能进入转发状态,确保新的配置BPDU传遍整个网络,可以防止临时环路的产生;

STP的3个定时器

1、hello time    hello time定时器    缺省2s

设备会每隔hello time时间向周围的设备发送配置BPDU,以确认链路是否存在故障;

网络拓扑稳定之后,只有根桥每隔hello time时间从指定端口发送配置BPDU;

非根桥从根端口接收到配置BPDU之后,才会从指定端口发送配置BPDU;

根桥上的hello time时间被修改后,会在下一次发出的配置BPDU报文中更新hello time这个字段,来向非根桥传递hello time定时器信息;

当网络拓扑发生变化之后,TCN BPDU的发送不受这个定时器的管理;

2、forward delay    转发延时    缺省15s

链路故障会引发网络重新进行生成树的计算,生成树的结构将发生改变,但是重新计算得到的新配置消息不可能立即传遍整个网络,如果此时新选出的根端口和指定端口就立即开始数据转发的话,很可能会造成临时的二层环路;

因此,STP采用了一种状态迁移机制,新选出的根端口和指定端口要经过两倍的forward delay延时后才能进入转发状态,这个延时保证了新的配置消息传遍整个网络,从而防止产生临时的二层环路;

转发延时是状态迁移的延迟时间,缺省值15s,即listening状态持续15s,随后进入learning状态再持续15s;

3、max age    最大生成时间    缺省20s

运行STP协议的网络中,非根桥设备收到配置BPDU报文后,会对报文中的Message Age消息生存时间和Max Age最大生存时间进行比较,如果Message Age小于等于Max Age,非根桥设备就继续转发配置BPDU报文;

如果Message Age大于Max Age,则该配置BPDU报文将被老化,该非根桥设备直接丢弃该配置BPDU,可认为网络直径过大,导致根桥连接失败;

当配置BPDU从根桥发出时,报文中的Message Age值为0,配置BPDU报文每经过一个交换机,Message Age增加1;

STP BPDU报文

STP协议采用的是BPDU Bridge Protocol Data Unit 桥协议数据单元类型报文,也称为配置消息,STP就是通过在设备直接传递BPDU来确定最终修剪完成的树型网络拓扑结构;

STP BPDU报文被封装在以太网数据帧中,此时目的MAC地址是组播MAC地址:01-80-C2-00-00-00,在LLC头部中IEEE为STP保留的DSAP和SSAP值均为0x42,Control为0x03;

STP BPDU分为两类,配置BPDU和TCN BPDU

1、Configuration BPDU 配置BPDU    用于生成树计算与维护

配置BPDU是一种心跳报文,只要端口使能STP协议,设备就会按照hello time定时器的时间间隔从指定端口发送配置BPDU;

在初始化过程中,每个交换机都会主动发送配置BPDU,但在网络拓扑稳定以后,只有根桥主动从指定端口发送配置BPDU;

非根桥从根端口收到配置BPDU后才触发从指定端口发送自己的配置BPDU;

配置BPDU在以下3中情况下会产生:

1)根桥每隔hello time时间周期性从指定端口发送配置BPDU;

2)非根桥从根端口收到配置BPDU后,触发从指定端口发送自己的配置BPDU;

3)当指定端口收到次优配置BPDU时,会立刻从该指定端口发送自己的配置BPDU;

配置BPDU中的字段:

protocol identifier协议ID:2字节,总是为0;

protocol version协议版本:1字节,总是为0;

message type消息类型:1字节,0x00为配置BPDU,0x80为TCN BPDU

flags标志:1字节,最低位TC Topology Change标志位,最高位TCA Topology Change Acknowledgment标志位;

Root Identifier根桥ID:8字节,2字节桥优先级,6字节桥MAC;

Root Path Cost根路径开销:4字节,发送该BPDU的端口到根桥的累计路径开销;

Bridge Identifier桥ID:8字节,发送该BPDU的桥ID,2字节桥优先级,6字节桥ID;

Port Identifier端口ID:2字节,发送该BPDU的端口ID,高4位端口优先级,低12位端口号;

Message Age消息生存时间:2字节,根桥发送的配置BPDU中该字段为0,每经过一个交换机加1,小于等于Max Age的配置BPDU才会被转发,否则被丢弃;

Max Age最大生存时间:2字节,配置BPDU的生存时间超过Max Age就会失效,缺省20s;

Hello Time:2字节,根桥每隔hello time周期性发送配置BPDU,缺省2s;

Forward Delay转发延时:2字节,listening和learning各自持续的时间,防止临时的二层环路,缺省15s;

2、Topology Change Notificaition BPDU    TCP BPDU    用于下游设备通知上游设备网络拓扑变化,直到根桥

TCN BPDU是在设备检测到网络拓扑发生变化时才发出的;

TCN BPDU在如下两种情况下会产生:

1)存在指定端口的设备上,端口状态变为forwarding;

2)从指定端口收到TCN BPDU后向根桥复制TCN BPDU;

TCN BPDU中的字段:

protocol identifier协议ID:2字节,总是为0;

protocol version协议版本:1字节,总是为0;

message type消息类型:1字节,0x00为配置BPDU,0x80为TCN BPDU;

STP的不足

STP协议虽然解决了二层环路问题,但是由于网络拓扑收敛速度慢,会影响用户通信质量;

Blocking到Forwarding需要经过两个转发延时间隔,另外配置BPDU超时需要20s;

如果网络中的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断;

1)STP协议采用的是被动算法,依赖定时器等待的方式确定拓扑,如转发延时,所以收敛速度慢;

2)STP网络拓扑稳定后,只有根桥主动发送配置BPDU,非根桥只能被动转发,也导致收敛速度慢;

3)没有细致区分端口状态和端口角色;

STP是最原始的生成树协议,它的主要不足是网络拓扑收敛速度慢;

RSTP是在STP基础上改进的生成树协议版本,提高了网络拓扑收敛速度;

IEEE802.1w定义的RSTP保留了STP的大部分算法和计时器,只在一些细节上做了改进,但这些改进相当关键,极大的提升了STP性能,能满足低延时、高可靠性的网络要求;

RSTP对STP的改进主要体现在端口角色、端口状态、BPDU的变化和P/A收敛机制四个方面:

1、新增三种端口角色

RSTP在STP中根端口、指定端口的基础上,对其它端口进行了细分;

1)Alternate替代端口    

作为根端口的备份端口,根端口故障后,替代端口就会无延时地进入转发状态;

2)Backup备份端口       

 作为指定端口的备份端口,指定端口故障后,备份端口就会无延时地进入转发状态;

3)Edge边缘端口    

用于连接主机,不参与生成树计算,不收发BPDU,能够直接进入forwarding状态;

如果收到BPDU报文就会失去边缘端口属性,开始收发报文进行STP生成树计算;

2、重新划分端口状态

RSTP把STP中的Disabled、Blocking、Listening三种端口状态用Discarding状态替代,即:

1)Discarding    收发BPDU

2)Learning        收发BPDU、学习MAC地址

3)Forwarding    收发BPDU、学习MAC地址,转发用户流量

3、BPDU的变化

RSTP协议与STP协议一样在交换机间使用BPDU交互信息,但是RSTP只有配置BPDU,即RST BPDU,没有TCN BPDU;

RSTP在BPDU方面的改变主要体现在BPDU格式、拓扑变化BPDU的使用和配置BPDU处理方式的改变三个方面:

1)BPDU格式上的改变

Protocol Version字段:RST BPDU是2,不再为0,运行STP的设备收到RST BPDU会丢弃;

BPDU Flag字段:最高位TCA和最低位TC保持不变,RST BPDU使用了STP配置BPDU中Flag字段保留的中间6位,增加了端口状态、端口角色和PA机制三个功能的标志;

PA机制:Agreement位和Proposal位用于RSTP的点到点链路的PA机制;

端口状态:Forwarding位和Learning位用于表示发送RST BPDU的端口的RSTP端口状态;

端口角色:占两个比特,00表示发送RST BPDU的端口的端口角色未知;

01表示发送RST BPDU的端口的RSTP端口角色为Alternate替代端口或Backup备份端口;

10表示发送RST BPDU的端口的RSTP端口角色为根端口;

11表示发送RST BPDU的端口的RSTP端口角色为指定端口;

2)拓扑变化BPDU的使用

在RSTP中不再需要从根端口依次向上发送TCN BPDU,直至根桥;

RSTP直接发送TC置1的RST BPDU,接收的交换机直接清空MAC地址表;

交换机清空MAC地址表不再需要等待根桥发送的TC置1的配置BPDU,提高了收敛速度;

3)配置BPDU处理方式的改变

配置BPDU处理方式的改变主要体现在配置BPDU的发送方式、超时时间和处理次优BPDU三个方面:

配置BPDU的发送方式:

拓扑稳定后,STP中只有根桥按照hello time时间间隔发送配置BPDU,非根交换机需要等待从根端口收到配置BPDU,才会从指定端口发送自己的配置BPDU,这样导致STP计算复杂和缓慢;

RSTP中所有交换机都按照hello time时间间隔周期性发送配置BPDU,无需等待根桥发出的配置BPDU;

配置BPDU的超时时间:

STP中需要等待Max Age 20s最大生存时间后,配置BPDU失效才会认为上游邻居故障;

RSTP中如果连续三个hello time时间间隔没有收到RST BPDU,就认为上游邻居故障;

处理次优BPDU:

STP中只对指定端口收到的次优配置BPDU,立即发送自己更优的配置BPDU;

对于根端口收到的次优配置BPDU,不会做同样处理,而是等待Max Age最大生存时间超时,才会进行BPDU协商;

RSTP端口收到次优BPDU都会立即发送自身更优的RST BPDU,无需等待20sMax Age最大生存时间超时时间;

RSTP处理次优BPDU不再像STP那样依赖于定时器通过超时完成拓扑收敛,从而加快了拓扑收敛;

4、P/A收敛机制

STP中确定一个端口为指定端口后,端口从Listening到Learning,Learning到Forwarding,要经过两倍的转发延时时间才能进入Forwarding状态,这种保守的设计可以防止临时的二层环路,但是收敛速度慢;

RSTP的提议确认机制,是为了让指定端口尽快进入Forwarding状态,而不必等待转发延迟;

P/A机制只能在点到点链路上使用,即端口所在的以太网对端只有一台设备,否则要从Learning到Forwarding要等待一个转发延时时间;

1)当一个指定端口处于Discarding或learning状态时,会向下游设备发送Proposal位置1的RST BPDU,请求快速切换到Forwarding状态;

2)下游设备根端口收到后,会让除根端口除外的所有非边缘端口进入Discarding状态,然后从根端口向上游设备发送Agreement位置1的RST BPDU,同意上游设备指定端口进入Forwarding状态;

3)上游设备收到后,指定端口直接进入Forwarding状态;

4)下游设备通过同样的方式恢复指定端口的转发;

5、RSTP保护功能

1)BPDU保护

边缘端口在收到BPDU以后端口状态将变为非边缘端口,此时就会造成生成树的重新计算,如果攻击者伪造RST BPDU恶意攻击交换设备,就会引起网络震荡;

启动了BPDU保护功能后,如果边缘端口收到RST BPDU,边缘端口将被error-down,但是边缘端口属性不变,同时通知网管系统被错误down掉的边缘端口只能由网络管理员手动恢复;

也可以配置端口自动恢复功能,并设置延迟时间,使被错误down掉的边缘端口可自动恢复;

2)Root保护

由于维护人员的错误配置或网络中的恶意攻击,根桥收到优先级更高的RST BPDU会失去根桥的地位,重新计算生成树,并且由于拓扑结构变化,可能造成高速流量迁移到低速链路,引起网络拥塞;

对于启动Root保护功能的指定端口,端口角色只能保持为指定端口,一旦启用Root保护功能的指定端口收到优先级更高的RST BPDU,端口将进入Discarding状态,不再转发报文;

在经过一段时间(通常为两倍的Forward Delay),如果端口一直没有收到高优先级的RST BPDU,端口自动恢复到正常的Forwarding状态;

3)环路保护

当出现链路拥塞或者单向链路故障时,根端口和Alternate替代端口会被老化,根端口老化会导致交换机重新选择根端口,Alternate替代端口老化将迁移到forwarding状态,这样会产生环路;

在启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游的RST BPDU,则向网管发出通知信息,根端口进入Discarding状态,直到根端口收到RST BPDU,端口状态才恢复正常到forwarding状态,而阻塞端口则会一直保持在阻塞状态不转发报文,从而不会在网络中形成环路;

4)防TC - BPDU报文攻击保护

交换设备在接收到TC - BPDU报文后,会执行MAC地址表和ARP表的删除操作,如果频繁操作则会对CPU的冲击很大;

启用防TC -BPDU报文攻击功能后,可配置单位时间内交换机可以处理TC-BPDU报文的次数;

如果单位时间内交换设备在收到TC-BPDU报文数量大于配置的阀值,那么设备只会处理阀值指定的次数;对于其它超出阀值的TC-BPDU,定时器到期后交换机只对其统一处理一次;这样可以避免频繁地删除MAC地址表和ARP表,达到保护设备的作用;

RSTP与STP的互操作:

RSTP可以和STP互操作,但是此时会丧失RSTP快速收敛特性;

当一个网段既有运行STP的交换网络,又有运行RSTP的交换设备时,STP设备会忽略RST BPDU,而运行RSTP设备的端口接收到STP的配置BPDU时,会在两个Hello time时间之后将自己的端口转换到STP工作模式,发送STP 配置BPDU,这样就实现了互操作;

RSTP@STP端口

RSTP:快速生成树协议rapid spanning Tree Protocol ):802.1w802.1d发展而成,这种协议在网络结构发生变化时,能更快的收敛网络。它比802.1d多了两种端口类型:预备端口类型(alternate port)和备份端口类型。 STPSpanning TreeProtocol )是生成树协议的英文缩写。该协议可应用于环路网络,通过一定的算法实现路径冗余,同时将环路网络修剪成无环路的树型网络,从而避免报文在环路网络中的增生和无限循环。

基本原理

编辑

STP协议由IEEE802.1D定义,RSTP由IEEE802.1W定义。

STP的基本原理是,通过交换机之间传递一种特殊的协议报文(在IEEE802.1D中这种协议报文被称为“配置消息”)来确定网络的拓扑结构。配置消息中包含了足够的信息来保证交换机完成生成树计算。

生成树协议STP/RSTP[1] 

技术原理

编辑

Rstp是从stp发展过来的,其实现基本思想一致,但它更进一步的处理了网络临时失去连通性的问题。Rstp规定在某些情况下,处于Blocking状态的端口不必经历2倍的Forward Delay时延而可以直接进入转发状态。如网络边缘端口(即直接与终端相连的端口),可以直接进入转发状态,不需要任何时延。或者是网桥旧的根端口已经进入Blocking状态,并且新的根端口所连接的对端网桥的指定端口仍处于Forwarding状态,那么新的根端口可以立即进入Forwarding状态。即使是非边缘的指定端口,也可以通过与相连的网桥进行一次握手,等待对端网桥的赞同报文而快速进入Forwarding状态。当然,这有可能导致进一步的握手,但握手次数会受到网络直径的限制。

功能介绍

编辑

生成树协议最主要的应用是为了避免局域网中的网络环回,解决成环以太网网络的“广播风暴问题,从某种意义上说是一种网络保护技术,可以消除由于失误或者意外带来的循环连接。STP也提供了为网络提供备份连接的可能,可与SDH保护配合构成以太环网的双重保护。新型以太单板支持符合ITU-T 802.1d标准的生成树协议STP及802.1w规定的快速生成树协议RSTP,收敛速度可达到1s。

端口状态

编辑

802.1d

交换机的端口在STP环境中共有5种状态:阻塞blocking、监听listening、学习learning、转发forwarding、关闭(disable)。

*Blocking:处于这个状态的端口不能够参与转发数据报文,但是可以接收配置消息,并交给CPU进行处理。 不过不能发送配置消息,也不进行地址学习。

*Listening:处于这个状态的端口也不参与数据转发,不进行地址学习;但是可以接收并发送配置消息。

*Learning:处于这个状态的端口同样不能转发数据,但是开始地址学习,并可以接收、处理和发送配置消息。

*Forwarding:一旦端口进入该状态,就可以转发任何数据了,同时也进行地址学习和配置消息的接收、处理和发送。

交换机上一个原来被阻塞掉的端口由于在最大老化时间内没有收到BPDU,从阻塞状态转变为倾听状态,倾听状态经过一个转发延迟(15秒)到达学习状态,经过一个转发延迟时间的MAC地址学习过程后进入转发状态。

如果到达倾听状态后发现本端口在新的生成树中不应该由此端口转发数据则直接回到阻塞状态。

当拓扑发生变化,新的配置消息要经过一定的时延才能传播到整个网络,这个时延称为转发延迟(Forward Delay),协议默认值是15秒。

在所有网桥收到这个变化的消息之前,若旧拓扑结构中处于转发的端口还没有发现自己应该在新的拓扑中停止转发,则可能存在临时环路。为了解决临时环路的问题,生成树使用了一种定时器策略,即在端口从阻塞状态到转发状态中间加上一个只学习MAC地址但不参与转发的中间状态,两次状态切换的时间长度都是Forward Delay,这样就可以保证在拓扑变化的时候不会产生临时环路。

802.1w

STP定义了5种不同的端口状态,关闭(disable),监听(Listening)学习(Learning)阻断(Blocking)转发(Forwarding),其端口状态表现为在网络拓扑中端口状态混合(阻断或转发),在拓扑中的角色(根端口、指定端口等等)。在操作上看,阻断状态和监听状态没有区别,都是丢弃数据帧而且不学习MAC地址,在转发状态下,无法知道该端口是根端口还是指定端口。

在RSTP中只有三种端口状态,DiscardingLearningForwarding。802.1D中的禁止端口,监听端口,阻塞端口在802.1W中统一合并为禁止端口。

RSTP根据端口在活动拓扑中的作用,定义了5种端口角色(STP只有3种角色):禁用端口(DisabledPort)、根端口(Root Port)、指定端口(DesignatedPort)、为支持RSTP的快速特性规定的替代端口(AlternatePort)和备份端口(Backup Port)。[2] 

表8-20 STP和RSTP端口状态比较

表8-20

RSTP有五种端口类型。根端口和指定端口这两个角色在RSTP中被保留,阻断端口分成备份和替换端口角色。生成树算法(STA)使用BPDU来决定端口的角色,端口

STP

Port  State

RSTP

Port  State

端口是否

为活跃状态

端口是否

学习MAC地址

禁止

禁止

No

No

阻塞

禁止

No

No

监听

禁止

Yes

No

学习

学习

Yes

Yes

转发

转发

Yes

Yes

类型也是通过比较端口中保存的BPDU来确定哪个比其他的更优先。

1)根端口

非根桥收到最优的BPDU配置信息的端口为根端口,即到根桥开销最小的端口,这点和STP一样。请注意图8-16上方的交换机,根桥没有根端口。

按照STP的选择根端口的原则,SW-1和SW-2和根连接的端口为根端口。

技术分享

图8-16 RSTP根端口

2)指定端口

与STP一样,每个以太网网段段内必须有一个指定端口。假设SW-1的BID比SW-2 优先,而且SW-1的P1口端口ID比P2优先级高,那么P1为指定端口,如图8-17所示。

技术分享

图8-17 指定端口的选择

3)替换端口

如果一个端口收到另外一个网桥的更好的 BPDU,但不是最好的,那么这个端口成为替换端口,如图8-18所示。

对于SW-2来说,端口P3收到的BPDU比自己优先,自己为次优先,P3为替换端口。

4备份端口

如果一个端口收到同一个网桥的更好 BPDU,那么这个端口成为备份端。当两个端口被一个点到点链路的一个环路连在一起时,或者当一个交换机有两个或多个到共享局域网段的连接时,一个备份端口才能存在。

如图8-19所示,SW-1的P1和P2口同时接入到以太网同一网段,P1为指定端口,P2 优先级低,则P2端口为备份端口。

技术分享

图8-18 替换端口的选择

 

技术分享

图8-19 备份端口的选择

5)禁用端口

在快速生成树协议应用的网络运行中不担当任何角色。

配置

编辑

步骤1:进入全局模式[1] 

Switch#configure terminal

步骤2:开启生成树协议

Switch(config)#spanning-tree

默认状态下STP协议是关闭的,需要用命令打开

步骤3:配置生成树模式

Switch(config)#spanning-tree mode {mstp | rstp | stp }

P/A机制

编辑

P/A机制即Proposal/Agreement机制。其目的是使一个指定端口尽快进入Forwarding状态。其过程的完成根据以下几个端口变量:

A)Proposing。当一个指定端口处于Discarding或Learning状态的时候,该变量置位。并向下游交换传递Proposal位被置位的BPDU。

B)Proposed。当下游交设备端口收到对端的指定端口发来的携带Proposal的BPDU的时候。该变量置位。该变量指示上游网段的指定端口希望进入Forwarding状态。

C)sync。当Proposed被设置以后,收到Proposal置位信息的根端口会依次为自己的其他端口置位sync变量。如果端口是非边缘的指定端口是则会进入Discarding状态。

D)synced。当其它端口完成转到Discarding后,会设置自己的synced变量(Alternate、Backup和边缘端口会马上设置该变量)。根端口监视其他端口的synced,当所有其他端口的synced全被设置,根端口会设置自己的synced,然后传回BPDU,其中Agreement位被置位。

E)agreed。当指定端口接收到一个BPDU时,如果该BPDU中的Agreement位被置位且端口角色定义是“根端口”,该变量被设置。Agreed变量一旦被置位,指定端口马上转入Forwarding状态。

改进

编辑

A、STP没有明确区分端口状态与端口角色,收敛时主要依赖于端口状态的切换。RSTP比较明确的区分了端口状态与端口角色,且其收敛时更多的是依赖于端口角色的切换。

B、STP端口状态的切换必须被动的等待时间的超时。而RSTP端口状态的切换却是一种主动的协商。

C、STP中的非根网桥只能被动的中继BPDU。而RSTP中的非根网桥对BPDU的中继具有一定的主动性。

 


以上是关于STP、RSTP的主要内容,如果未能解决你的问题,请参考以下文章

RSTP协议(快速生成树协议)

RSTP协议(快速生成树协议)

STP理论04-RSTP相对STP的改进

STP的作用是啥

STP 494/STP 598: Machine Learning

STP理论02-BPDU(STP)