快速生成树协议 RSTP
RSTP在STP的基础上,增加了两种端口角色:替代(Alternate)端口和备份(Backup)端口。因此,在RSTP中共有4种端口角色:根端口、指定端口、替代端口、备份端口。
如果设备的根端口发生故障,那么替代端口可以成为新的根端口,这加快了网络的收敛过程。
案例背景与要求
在交换机SW1、SW2、SW3、SW4上部署RSTP。要求完成配置后交换机SW4的GE0/0/20端口被阻塞,配置完成后在交换机SW4上查看STP端口状态和GE0/0/20的端口详细信息进行验证。
案例配置过程
配置交换机SW1
<Huawei>system-view [Huawei]sysname SW1 [SW1]stp mode rstp [SW1]stp root primary |
配置交换机SW2
<Huawei>system-view [Huawei]sysname SW2 [SW2]stp mode rstp [SW2]stp root secondary |
配置交换机SW3
<Huawei>system-view [Huawei]sysname SW3 [SW3]stp mode rstp |
配置交换机SW4
<Huawei>system-view [Huawei]sysname SW4 [SW4]stp mode rstp [SW4]interface GigabitEthernet 0/0/20 [SW4-GigabitEthernet0/0/20]stp cost 100000 |
案例验证
查看交换机SW4的STP端口状态。
[SW4]display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/20 ALTE DISCARDING NONE 0 GigabitEthernet0/0/24 ROOT FORWARDING NONE |
查看交换机SW4的GE0/0/20的端口详细信息。
[SW4]display stp interface GigabitEthernet 0/0/20 -------[CIST Global Info][Mode RSTP]------- CIST Bridge :32768.4c1f-cc3e-291d ---省略部分显示内容--- CIST RootPortId :128.24 BPDU-Protection :Disabled TC or TCN received :33 TC count per hello :0 STP Converge Mode :Normal Time since last TC :0 days 0h:0m:42s Number of TC :12 Last TC occurred :GigabitEthernet0/0/24 ----[Port20(GigabitEthernet0/0/20)][DISCARDING]---- ---省略部分显示内容--- |
RSTP的端口角色
替代端口 :
可以简单地理解为根端口的备份,它是非根交换机收到了其他设备发送的BPDU从而被阻塞的端口
查看替代端口
<SW3>display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/22 ROOT FORWARDING NONE 0 GigabitEthernet0/0/23 ALTE DISCARDING NONE |
备份端口:
是指交换机由于收到了自己所发送的BPDU从而被阻塞的端口。
查看备份端口
<SW2>display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/24 ROOT FORWARDING NONE 0 GigabitEthernet0/0/20 DESI FORWARDING NONE 0 GigabitEthernet0/0/22 BACK DISCARDING NONE |
如果一台交换机拥有多个端口接入同一个网段,并且在这些端口中有一个被选举为该网段的指定端口,那么这些端口中的其他端口将被选举为备份端口,备份端口将作为该网段到达根桥的冗余端口。通常情况下,备份端口处于丢弃状态。
交换机SW1是网络中的根桥,对于交换机SW2而言,GE0/0/20及GE0/0/21端口形成了环路,RSTP能够检测到这个环路,并且在两个端口中选择一个进行阻塞。默认时,由于GE0/0/20端口的端口ID更小,因此该端口成为指定端口,而GE0/0/21端口则成为备份端口,备份端口将被阻塞。
RSTP的端口状态
丢弃(Discarding)
学习(Learning)
转发(Forwarding)
RSTP 的BPDU报文
报文格式
在RSTP中则简化了端口状态,将STP的禁用、阻塞以及侦听状态简化为丢弃(Discarding),学习(Learning)和转发(Forwarding)状态则保留了下来。
如果端口不转发用户流量也不学习MAC地址,那么端口状态就是Discarding状态。如果端口不转发用户流量但是学习MAC地址,那么端口状态就是Learning状态。如果端口既转发用户流量又学习MAC地址,那么端口状态就是Forwarding状态。
格式与STP的配置BPDU大体相同,只是其中个别字段做了修改,以便适应新的工作机制和特性。对于RST BPDU来说,“协议版本ID”字段的值为0x02,“BPDU类型”字段的值也为0x02。最重要的变化体现在“标志”字段中,该字段一共8bit,STP只使用了其中的最低比特位和最高比特位,而RSTP在STP的基础上,使用了剩余的6bit,并且分别对这些比特位进行了定义
边缘端口
作用:为了节省端口从初始启动到转发状态的时间间隔。
特点:
默认不参与生成树计算,不用经历转发延迟;
边缘端口的关闭或激活并不会触发RSTP拓扑变更。
配置边缘端口
[SW2]interface GigabitEthernet 0/0/1 [SW2-GigabitEthernet 0/0/1]stp edged-port enable [SW2]interface GigabitEthernet 0/0/2 [SW2-GigabitEthernet 0/0/2]stp edged-port enable [SW2]interface GigabitEthernet 0/0/3 [SW2-GigabitEthernet 0/0/3]stp edged-port enable |
运行了STP的交换机,其端口在初始启动之后,首先会进入阻塞状态,如果该端口被选举为根端口或指定端口,那么它还需经历侦听及学习状态,最终才能进入转发状态,也就是说,一个端口从初始启动之后到进入转发状态至少需要耗费约30秒的时间。对于交换机上连接到交换网络的端口而言,经历上述过程是必要的,毕竟该端口存在产生环路的风险,然而有些端口引发环路的风险是非常低的,例如交换机连接终端设备(PC或服务器等)的端口,这些端口如果启动之后依然要经历上述过程那就太低效了,而且用户希望PC接入交换机后能立即连接到网络,而不是还需要等待一段时间。
P/A 机制
定义:全称为Proposal/Agreement(提议/同意)机制,它是交换机之间的一种握手机制;
功能:保证一个指定端口能够从丢弃状态快速进入转发状态,从而加快生成树的收敛。
快速收敛过程:
网络中运行的是RSTP,当交换机SW1与SW2之间新增了一条链路后,生成树收敛过程包括6步。
- 交换机SW1及SW2立即在各自的端口上发送BPDU,初始时双方都认为自己是根桥。
- 经过BPDU交互后,交换机SW2将认为交换机SW1才是当前的根桥,此时交换机SW1的GE0/0/1端口是指定端口,而交换机SW2的GE0/0/2端口则成为根端口,该端口将立即停止发送BPDU。这两个端口当前都处于丢弃状态。
- P/A过程将在交换机SW1与SW2之间发生。由于交换机SW1的GE0/0/1端口为指定端口且处于丢弃状态,因此交换机SW1从GE0/0/1端口发送Proposal置位的BPDU 。
- 交换机SW2收到Proposal置位的BPDU后,立即启动一个同步过程。
- 交换机SW2的所有端口均已完成了同步,交换机SW2清楚地知道本地的端口不存在环路,它立即将根端口GE0/0/2切换到转发状态,并从该端口向交换机SW1发送Agreement置位的BPDU。
⑥ 交换机SW1在GE0/0/1端口上收到Agreement置位的BPDU后,立即将该端口切换到转发状态,此时PC2与PC1便可以实现通信了。
RSTP的保护功能
1.BPDU保护:避免网络中的RSTP重计算,防止二层环路和BPDU攻击。
在交换机上配置BPDU保护
1实验拓扑如右图
2配置BPDU保护
[SW2]interfacce GigabitEthernet 0/0/1 [SW2-GigabitEthernet 0/0/1]stp edged-port enable [SW2]interfacce GigabitEthernet 0/0/2 [SW2-GigabitEthernet 0/0/2]stp edged-port enable [SW2]interface GigabitEthernet 0/0/3 [SW2-GigabitEthernet 0/0/3]stp edged-port enable [SW2]stp bpdu-protection |
3查看BPDU保护
<SW2>display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/1 DESI FORWARDING BPDU 0 GigabitEthernet0/0/2 DESI FORWARDING BPDU 0 GigabitEthernet0/0/3 DESI DISCARDING BPDU 0 GigabitEthernet0/0/24 ROOT DISCARDING NONE |
4验证BPDU保护功能
Jan 4 2020 18:33:00-08:00 SW2 %%01MSTP/4/BPDU_PROTECTION(l)[60]:This edged-port GigabitEthernet0/0/1 that enabled BPDU-Protection will be shutdown, because it received BPDU packet! |
从上面可以看出由于GE0/0/1、GE0/0/2及GE0/0/3都被配置为边缘端口,因此这些端口都将激活BPDU保护功能(Protection列显示为BPDU),而GE0/0/24并非边缘端口,因此不会激活BPDU保护功能。
当交换机SW2的GE0/0/1端口收到了BPDU,交换机将立即产生如下告警信息,并将GE0/0/1端口关闭。
由于人为疏忽,边缘端口也可能会被误接交换设备,一旦交换设备连接到边缘端口,那么便引入了环路隐患。因此如果边缘端口连接了交换设备并且收到了BPDU,则该端口立即变成一个普通的生成树端口,在这个过程中可能引发网络中的RSTP重计算,从而对网络造成影响。这种疏忽同时也引入了二层环路的隐患。另外,如果攻击者连接到了边缘端口,并针对该端口发起BPDU攻击,也将对网络造成极大影响。在华为交换机上,可以通过在交换机上激活BPDU保护(BPDU Protection)功能解决上述问题。当交换机激活该功能后,如果边缘端口收到BPDU,则交换机会立即把端口关闭(置为Error-Down),同时触发告警。在交换机的系统视图下执行【stp bpdu protection】命令,可以在所有边缘端口上激活BPDU保护功能。
2.根保护:
避免RSTP重新计算,防止根桥被抢占,保护根桥。
配置过程
1拓扑结构
2端口上配置根保护
[SW1]interface GigabitEthernet 0/0/20 [SW1-GigabitEthernet0/0/20]stp root-protection |
3查看端口RSTP的状态
<SW1>display stp brief MSTID Port Role STP State Protection
|
对于一个部署了RSTP的交换网络来说,根桥的地位是至关重要的,毕竟RSTP所计算出的无环拓扑与根桥是息息相关的。在一个RSTP已经完成收敛的网络中,如果根桥发生变化,那么势必导致RSTP重新计算,此时该网络所承载的业务流量必将受到影响。
值得注意的是,根保护功能只有在指定端口上激活才会有效。当激活了根保护功能的指定端口收到更优的BPDU时,它将忽略这些BPDU,并立即将端口切换到丢弃状态。如果端口不再收到更优的BPDU,则一段时间后(通常为两倍的转发延迟时间),它将会自动恢复到转发状态。
3.环路保护
在根端口上激活环路保护功能。
在SW3的GE0/0/22端口上激活环路保护功能。
[SW3]interface GigabitEthernet 0/0/22 [SW3-GigabitEthernet0/0/22]stp loop-protection |
查看STP端口状态
<SW3>display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/22 ROOT FORWARDING LOOP 0 GigabitEthernet0/0/23 ALTE DISCARDING NONE |
在网络正常时,这些端口将持续收到BPDU,而当网络中出现链路单向故障或者网络拥塞等问题时,这些端口将无法正常地接收BPDU,这便会导致交换机进行RSTP重计算,此时端口的角色及状态便会发生改变,这就有可能在网络中引入环路。
当网络完成收敛后,交换机SW3的GE0/0/22端口将成为根端口并处于转发状态,而GE0/0/23端口则被选举为替代端口并处于丢弃状态。此时可以使用如下命令在交换机SW3的GE0/0/22端口上激活环路保护功能。
在替代端口上激活了环路保护功能。
在SW3的GE0/0/23端口上激活环路保护功能。
[SW3]interface GigabitEthernet 0/0/23 [SW3-GigabitEthernet0/0/23]stp loop-protection |
查看STP端口状态
<SW3>display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/22 ROOT FORWARDING LOOP 0 GigabitEthernet0/0/23 ALTE DISCARDING LOOP |
在替代端口上激活了环路保护功能后,如果该端口长时间没有收到BPDU,那么交换机会将该端口的角色调整为指定端口,但是将其状态保持在丢弃状态,从而避免环路的出现。
如果交换机SW3的GE0/0/23端口长时间没有收到BPDU,交换机会将该端口调整为指定端口,但是不会将其切换到转发状态,而是保持在丢弃状态,从而避免环路的出现。
4.拓扑变更保护
激活拓扑变更保护功能。
[SW]stp tc-protection |
改拓扑变更保护功能默认单位时间。
[SW]stp tc-protection interval interval-value |
改拓扑变更保护的默认单位时间内处理TC BPDU次数。
[SW]stp tc-protection threshold value |
一个稳定的交换网络是不会频繁地出现拓扑变更的,一旦网络拓扑出现变更,TC BPDU(此处指的是TC比特置位的BPDU)将会被泛洪到全网,而这些TC BPDU将会触发网络中的交换机执行MAC地址表删除操作。设想一下,如果网络环境极端不稳定导致TC BPDU频繁地泛洪,又或者网络中存在攻击者发送大量的TC BPDU对网络进行攻击,那么交换机的性能将受到极大损耗。