wps593

什么是RSTP
Rapid Spanning Tree Protocol(RSTP),快速生成树协议,是传统Spanning Tree Protocol的升
级版本,由802.1D进化为802.1W。传统STP的收敛时间(Convergence Time)太慢,当有拓扑发生变化,
整个网络需要30秒或更多时间才能恢复到稳定状态,这是许多业务场景上无法接受的,例如股票证券交易
场景,每秒钟要进行上万甚至几十万笔交易,网络中断30秒足以造成重大事故。RSTP的出现就是为了缩短
收敛时间(Convergence Time),以适应更严苛的使用环境的需求。
这里假设大家已经了解传统STP与PVST。有关STP与PVST的介绍可以参考本站文章:
Spanning Tree Protocol(STP)生成树协议
STP默认Listening和Learning时间为15秒,端口由Down转为Up共需要30秒的时间,而RSTP则使用Synchro
nization的概念,交换机并非被动的等待接收根桥发来的BPDU来判断拓扑变化,而是主动与相邻的交换机进
行沟通,以最快的速度把拓扑信息传出去,这样就可以节省掉30秒的被动等待时间。 STP的Max Age默认为2
0秒,如果拓扑发生变化或其它原因导致BPDU不能到达Blocking端口,需要20秒才能将Blocking端口唤醒进
入到Listening状态,而RSTP由将此缩短为6秒(三个Hello Time)。

wps594

拓扑变化对比
当网络发生拓扑变化,无论是STP还是RSTP都会触发TC(Topology Change),提示网络中的所有交换机清
空MAC Table内失效的纪录。但是,STP与RSTP的机制是不同的,传统STP中,BPDU只会由根桥每2秒发送一
次,也就是Hello Time。然后一个传一个,传遍整个网络。 在RSTP中,每个交换机都会发送BPDU,同样也
是2秒发送一次,RSTP中的BPDU有keep-alive的作用,如果交换机的根端口(Root port)超过6秒钟都没有
收到对方的BPDU,就会做出以下动作:
  ● 如果有Alternate Port,立即将其升级为Root Port
  ● 如果没有Alternate Port,则把自己升级为Root Bridge并启动Synchronization Process

wps595

启用RSTP
1、Cisco交换机上默认启用的生成树协议为PVST,要设置成RSTP只需执行以下一条命令即可。注意RSTP与
PVST一样,都是Per VLAN的生成树。如下图,默认使用PVST时,协议为ieee,使用RSTP后,协议显示为
rstp。
  SW1(config)# spanning-tree mode rapid-pvst

wps596wps597

2、如下图,我们配置三台交换机使用PVST协议。下图中SW1为根桥, 所以两个端口为DP端口(Designa
ted Port)。SW3中的e0/1为AP端口(Alternate port),也就是被Blocking的端口。RSTP中保留了
STP的Root Port和Designated Port,选举方法与STP相同,同时加入了Alternate Port和Backup Po
rt的定义,加快收敛时间。
● Alternate Port:
没有成为Root port或Desg port的端口接收到来自其它交换机的Priority比自己高BPDU时,就会把自己
变成Altn port。Altn port将成为该交换机通往根桥的后备端口。
● Backup Port:
没有成为Root port或Desg port的端口接收到来自自己的BPDU时,就会成为Backup port,Backup port
成为该网段通往根桥的后备端口,如果在同一网段上同时拥有Altn port和Backup port,当Desg端口断掉
后,Backup port就会马上成为Desg端口,维持网络拓扑不发生变化。

wps598

3、RSTP的端口状态与STP相比,也得到了近一步的进化,RSTP将STP中的Disabled、Blocking和Listeni
ng合并成Discarding。Learning和Forwarding保持不变。也就是说Root port和 Desg port的状态是For
warding,而Altn port和Backup port的状态是Discarding。当Altn port和Backup port被启用时,它
们会立即进入Learning状态,并转为Forwarding。速度自然更快。

wps599

4、如果环境中的交换机都支持RSTP,则建议在使用RSTP时将环境中所有交换机都配置为使用RSTP,以达到
最佳效果。同时,RSTP也兼容PVST,如下图SW1、SW2、SW3使用RSTP模式,SW4使用PVST模式。在这种情况
下,我们来看一下SW2、SW3交换机上STP的状态。

wps600wps601

5、可以看到SW2、SW3连接SW4的端口类型为Peer(STP),表示在SW04上运行的生成树协议为STP。

wps602wps603

RSTP Link Type
在RSTP中新增了Link Type的概念,Link Type分为三种,分别是Edge Port、Point to Point Non-
edge Port和Shared Non-edge Port。
● Edge Port
1、Edge Port是指连接主机Host的端口,也就是连接服务器等设备的网卡的端口,Edge Port允许端口由Di
scarding直接进入Forwarding状态,而且不会产生TCN报文,从而避免了交换机清空MAC Table。
2、这个功能其实就是STP中的portfast,设置方法也是相同的。如图我们将SW1的e0/3设为Edge port。
   SW1(config)# int eth 0/3
   SW1(config-if)# spanning-tree portfast
   SW1(config-if)# end
   SW1# show spanning-tree
3、可以看到e0/3的端口类型为Edge端口。

wps604

● Point to Point Non-edge Port
1、RSTP把Full Duplex的端口定义为Point to Point Non-edge Port。并会用RSTP与对方进行沟通,通
过使用Synchronization Process的方式。
2、如果端口已经是Full Duplex,但没有显示为P2P端口,则可以用命令强制修改。这里我们把e0/0修改为
P2P端口。
   SW1(config)# int eth 0/0
   SW1(config-if)# spanning-tree link-type point-to-point

wps605

3、可以看到e0/0的端口类型为P2P端口。

wps606

● Shared Non-edge Port
所有Half Duplex的端口会成为Shared Non-edge Port,只能用传统的STP方式沟通。

Synchronization Process(同步过程)
下面我们来看一下RSTP的同步过程,当有新交换机加入网络后,就会发起一个Synchronization来觉得自己
是否是根桥。我们还是以下图中的拓扑为例,在网络中新加入一台交换机SW5,连接到SW1中。这里有两种情
况,一种是新接入的交换机成为根桥,另一种情况是新接入的交换机不会成为根桥。
● 新接入交换机不会成为根桥的过程如下:
1、新加入的交换机SW5认为自己是根桥,并向邻近交换机SW1发出BPDU,此时双方的端口都处于Discarding
状态。
2、SW1收到BPDU后,查看SW5的Bridge Priority值并与自己的值进行对比(因为SW1是目前的根桥,如果其
不是根桥,会将此BPDU向其它交换机传递)。
3、SW1对比后发现SW5的值比自己的大,没有资格取代自己,回复SW5你没资格成为根桥,并告知SW5自己的
Bridge Priority值。
4、SW5收到SW1的回复后确认自己落选,将自己的端口设置为Root port,并立刻开始Learning并进入Forwa
rding状态。

wps607

● 新接入交换机成为根桥的过程如下:
1、新加入的交换机SW5认为自己是根桥,并向邻近交换机SW1发出BPDU,此时双方的端口都处于Discardi
ng状态。
2、SW1收到BPDU后,查看SW5的Bridge Priority值并与自己的值进行对比(因为SW1是目前的根桥,如果
其不是根桥,会将此BPDU向其它交换机传递)。
3、SW1对比后发现SW5的值比自己的小,有资格取代自己。SW1知道根桥将发生改变,网络拓扑将发生无法
预知的改变,所以先把自己更有在Forwarding的Non-edge-Port转到Discarding状态,以免发生Loop。
4、SW1通知SW5你是新的根桥了,并把自己连接SW5的端口转变为Root port,并立刻开始Learning并进入
Forwarding状态。
5、SW1同时把这个消息向其它所有P2P端口传递出去,把消息传遍整个网络,告诉大家新老大来了,我已经
让位了,你们快来拜新老大。
6、网络中的其它交换机收到消息后,开始配合启动Synchronization,他们的Non-edge Port都会变成
Discarding状态。
7、先完成Synchronization的交换机会再向其它交换机传递消息。
8、这样直到最后一个交换机完成Synchronization,选出所有Altn端口。

wps608

通过上面的两个对比,可以留意新加入的交换机SW5不成为根桥和成为根桥在Synchronization过程中的区
别,可以看到SW5成为根桥后对网络的拓扑变化有一定的影响,过程也复杂一些。

Last modification:March 23rd, 2020 at 11:13 am
如果觉得我的文章对你有用,请随意赞赏