RSTP协议原理与配置整——RSTP对STP的改进

1、端口角色与端口状态

端口角色的重新划分

RSTP定义了两种新的端口角色:备份端口(Backup Port)和预备端口(Alternate Port)。

根据STP的不足,RSTP新增加了两种端口角色,并且把端口属性充分地按照状态和角色解耦,使得可以更加精确地描述端口,从而使得协议状态更加简便,同时也加快了拓扑收敛。通过端口角色的增补,简化了生成树协议的理解及部署。

从配置BPDU报文发送角度来看: 

Alternate Port就是由于学习到其它网桥发送的配置BPDU报文而阻塞的端口。 

Backup Port就是由于学习到自己发送的配置BPDU报文而阻塞的端口。

从用户流量角度来看:

Alternate Port提供了从指定桥到根的另一条可切换路径,作为根端口的备份端口。 

Backup Port作为指定端口的备份,提供了另外一条从根节点到叶节点的备份通路。

给一个RSTP域内所有端口分配角色的过程就是整个拓扑收敛的过程。

端口状态的重新划分

2、快速收敛机制

针对问题一:P/A机制 (1)

Proposal/Agreement机制,其目的是使一个指定端口尽快进入Forwarding状态。

P/A机制要求两台交换设备之间链路必须是点对点的全双工模式。一旦P/A协商不成功,指定端口的选择就需要等待两个Forward Delay,协商过程与STP一样。

事实上对于STP,指定端口的选择可以很快完成,主要的速度瓶颈在于:为了避免环路,必须等待足够长的时间,使全网的端口状态全部确定,也就是说必须要等待至少两个Forward Delay,所有端口才能进行转发。

针对问题一:P/A机制 (2)

问题一的解决方案:

阶段一:设备刚刚启动,RSTP协议刚刚启用,所有交换机都认为自己是根桥,向其他交换机发送P置位的BPDU,并把发送P消息的端口变成DP口,同时接口处在Discarding状态。

阶段二:交换机SWA收到SWB和SWC的P消息会置之不理,因为他的桥优先级最高。交换机SWB和SWC收到SWA的P消息后,由于认同SWA是最优的根桥,会根据P/A协商流程回复A消息,并把发送端口变成RP端口,同时接口处在Forwarding状态。

阶段三:SWA与SWB,SWA与SWB的P/A协商已经完成,接下来是SWB和SWC的P/A协商。

SWB和SWC都会发送根桥为SWA的P消息给对方。

SWC收到SWB的P消息后,发现P消息里虽然根桥和自己认可的一样,但是发送者的桥优先级比自己高(SWB>SWC),所有马上停止发送P消息,但是由于已经有端口是RP口,也不会回A消息。

SWB收到SWC的P消息后,发现P消息里虽然根桥和自己认可的一样,但是发送者的桥优先级比自己低(SWB>SWC),会不停的发送P消息。

以上状态在等待2个Forward Delay时间后,SWB端口为DP端口,处在Forwarding状态, SWC端口为AP端口,处在Discarding状态。

实际上SWB与SWC之间的协商等同于退回到STP的模式,但是反正是Discarding状态,根本不影响其他业务转发。

针对问题一:P/A机制 (3)

RSTP选举原理和STP本质上相同:选举根交换机-选举非根交换机上的根端口-选举指定端口-选举预备端口和备份端口。

但是RSTP在选举的过程中加入了“发起请求-回复同意”(P/A机制)这种确认机制,由于每个步骤有确认就不需要依赖计时器来保证网络拓扑无环才去转发,只需要考虑BPDU发送报文并计算无环拓扑的时间(一般都是秒级)。

针对问题二:根端口快速切换机制

SWC与SWA的直连链路down掉,其AP端口切换成RP端口并进入转发状态可在秒级时间内完成收敛:

针对问题三:次等BPDU处理机制

SWB与SWA的直连链路down掉,SWC的AP端口切换成DP端口并进入转发状态可在秒级时间内完成:

针对问题四:边缘端口的引入

在RSTP中,交换机连接终端的链路可立即进入转发状态:

针对问题五:拓扑变更机制的优化

判断拓扑变化唯一标准:一个非边缘端口迁移到Forwarding状态。 

一旦检测到拓扑发生变化,将进行如下处理: 

为本交换设备的所有非边缘指定端口启动一个TC While Timer,该计时器值是Hello Time的两倍。在这个时间内,清空状态发生变化的端口上学习到的MAC地址。同时,由这些端口向外发送RST BPDU,其中TC置位。一旦TC While Timer超时,则停止发送RST BPDU。 

其他交换设备接收到RST BPDU后,清空所有端口学习到MAC地址,除了收到RST BPDU的端口。然后也为自己所有的非边缘指定端口和根端口启动TC While Timer,重复上述过程。 如此,网络中就会产生RST BPDU的泛洪。 

拓扑变化引发的问题

在RSTP中检测拓扑是否发生变化只有一个标准:一个非边缘端口迁移到Forwarding状态。

网络拓扑改变可能会导致交换机的MAC地址表产生错误。

如图所示,在稳定情况下,SWC的MAC地址表中对应PCA的MAC地址的端口是E1。如果SWB的E1端口发生了故障,而SWC的MAC地址表中与PCA的MAC地址对应的端口仍然是E1,则会导致数据转发丢失的问题。

拓扑变化处理 (1)

一旦检测到拓扑发生变化,首先将进行如下处理:

清空状态发生变化的端口上学习到的MAC地址。

同时,由这些端口向外发送RST BPDU,其中TC置位。一旦TC While Timer超时,则停止发送RST BPDU。

如图所示,SWB的E1端口出现故障之后,RSTP的处理过程如下:

SWB重新计算生成树,选举E2为新的根端口。

SWB删除MAC地址表中E1端口所对应的表项。

生成树重新计算完成之后(需要进入转发状态的端口已经进入了转发状态),SWB的所有非边缘端口向外发送TC置位的RST BPDU。

拓扑变化处理 (2)

一旦检测到拓扑发生变化,首先将进行如下处理:

清空状态发生变化的端口上学习到的MAC地址。

同时,由这些端口向外发送RST BPDU,其中TC置位。一旦TC While Timer超时,则停止发送RST BPDU。

如图所示,SWB的E1端口出现故障之后,RSTP的处理过程如下:

SWB重新计算生成树,选举E2为新的根端口。

SWB删除MAC地址表中E1端口所对应的表项。

生成树重新计算完成之后(需要进入转发状态的端口已经进入了转发状态),SWB的所有非边缘端口向外发送TC置位的RST BPDU。

拓扑变化处理 (3)

拓扑变化处理 (4)

BPDU保护

BPDU保护 (1)

应用场景:防止有人伪造RST BPDU恶意攻击交换设备,当边缘端口接收到该报文时,会自动设置为非边缘端口,并重新进行生成树计算,引起网络震荡。

实现原理:配置BPDU保护功能后,如果边缘端口收到BPDU报文,边缘端口将会被立即关闭。

BPDU保护 (2)

BPDU保护

实现原理:配置BPDU保护功能后,如果边缘端口收到BPDU报文,边缘端口将会被立即关闭。

根保护 (1)

根保护

应用场景:由于维护人员的错误配置或网络中的恶意攻击,网络中合法根桥有可能会收到优先级更高的RST BPDU,使得合法根桥失去根地位,从而引起网络拓扑结构的错误变动。

实现原理:一旦启用Root保护功能的指定端口收到优先级更高的RST BPDU时,端口状态将进入Discarding状态,不再转发报文。在经过一段时间,如果端口一直没有再收到优先级较高的RST BPDU,端口会自动恢复到正常的Forwarding状态。

Root保护功能只能在指定端口上配置生效。

根保护 (2)

根保护

应用场景:由于维护人员的错误配置或网络中的恶意攻击,网络中合法根桥有可能会收到优先级更高的RST BPDU,使得合法根桥失去根地位,从而引起网络拓扑结构的错误变动。

实现原理:一旦启用Root保护功能的指定端口收到优先级更高的RST BPDU时,端口状态将进入Discarding状态,不再转发报文。在经过一段时间,如果端口一直没有再收到优先级较高的RST BPDU,端口会自动恢复到正常的Forwarding状态。

Root保护功能只能在指定端口上配置生效。

TC-BPDU泛洪保护 (1)

TC-BPDU攻击:

交换机在接收到TC-BPDU报文后,会执行MAC地址表项的删除操作。如果有人伪造TC-BPDU报文恶意攻击交换机时,交换机短时间内会收到很多TC-BPDU报文,频繁的删除操作会给设备造成很大的负担,给网络的稳定带来很大隐患。

TC-BPDU泛洪保护 (2)

TC-BPDU攻击保护:

启用防TC-BPDU报文攻击功能后,在单位时间内,RSTP进程处理TC类型BPDU报文的次数可配置(缺省的单位时间是2秒,缺省的处理次数是3次)。如果在单位时间内,RSTP进程在收到TC类型BPDU报文数量大于配置的阈值,那么RSTP进程只会处理阈值指定的次数;对于其他超出阈值的TC类型BPDU报文,定时器到期后,RSTP进程只对其统一处理一次。这样可以避免频繁的删除MAC地址表项,从而达到保护交换机的目的。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • 为了提高网络可靠性,交换机网络中通常会使用冗余链路,冗余链路会给交换机带来环路风险,并导致广播风暴以及MAC地址表...
    酱紫冻阅读 20,855评论 2 18
  • LAN&WAN技术 1、交换机的端口类型存在哪几种,有什么特点? 在802.1Q中定义VLAN帧后,设备的有些接口...
    太阁闫辉阅读 510评论 0 0
  • 1、交换机的端口类型存在哪几种,有什么特点? 在802.1Q中定义VLAN帧后,设备的有些接口可以识别VLAN帧,...
    6IE闫辉阅读 585评论 0 0
  • 一、背景 为了提高网络可靠性,避免单点故障而导致网络中断,常常需要在网络中部署冗余链路或冗余设备,但是部署了冗余链...
    虽然逆风依然不羁阅读 2,171评论 0 0
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,485评论 16 22