快速生成树RSTP(IEEE 802.1w)

STP的不足:

1. 收敛时间长

一般网络拓扑发生变化需要30-50秒收敛。

收敛慢的原因有两点:一是端口状态的变化依赖计时器。    二是拓扑变更后网络内交换机MAC表刷新的变更机制引起收敛慢。拓扑变化的判断依据是:端口状态由其它转变为forwarding,变化的交换机发送TCN包,传给根桥,再由根桥发送TC包,向下泛洪。

2. 不能设置edge端口

3. 没有细致区分端口状态与端口角色,不利于学习与部署

RSTP概述:

收敛更快,且能向下兼容STP。相比STP的不足,做了如下调整

1. 增加端口的角色:根端口Root,指派端口Designate,替代端口Alternate,备用端口Backup

2. 端口状态简化为:Discarding,Learning,Forwarding

3. 充分利用了BPDU里的flag字段

4. 配置BPDU的处理变化

5. 快速收敛

6. 增加保护功能

RSTP相对STP的改进:

1. 增加了端口角色

根端口Root,指派端口Designate,替代端口Alternate,备用端口Backup

Alter口做为根端口的备份端口,是设备去往根桥的另一条可选路径,当设备的Root口断开后,Alter口马上切换成Root口。

Backup口做为Designate的备份端口,提供了根桥到某个相应网段的备份线路,当指定的Designate断开后,Backup口马上切换成Designate口。

如何区分Alter与Backup口:学习到不同交换机的BPDU而阻塞的端口,为Alter口。学习到同一交换机的BPDU而用阻塞的端口,为Backup口。

2. 端口状态简化

以是否学习MAC地址及转发数据来区分,端口状态简化为为:Discarding,Learning,Forwarding

Discarding:不学习MAC,不转发数据。对应STP里的Disabled,Blocking,Listening。端口角色:Disable,Alter,Backup端口。

Learning:可学习MAC,不转发数据。对应STP里的Learning。端口角色:根端口,指定端口。

Forwarding:可学习MAC,可转发数据。对应STP里的Forwarding。端口角色:根端口,指定端口。

3. 配置BPDU-RST BPDU

变化点一:BPDU Type变为0x02,而STP的配置BPDU为0x00,TCN BPDU为0x08

变化点二:作用原来中间保留的6位

Bit 0:TC,表示拓扑变化

Bit 1:Proposal , 用于P/A机制,表示提议

Bit 2-3:Port Role,表示端口角色,00表示未知端口,01表示替代或备份端口,10表
示根端口,11表示指定端口

Bit 4:Learning,表示学习状态,若学习状态与转发状态均未置0,表示Discarding。

Bit 5:Forwarding,表示转发状态

Bit 6:Agreement,用于P/A机制,表示同意

Bit 7:TCA,表示拓扑变化确认

4. 配置BPDU的处理

1).拓扑稳定时BPDU的发送:STP里拓扑稳定后只有根桥定期发送配置BPDU,非根桥只有收到根桥发送的配置BPDU后,才会触发发出自己的配置BPDU。而RSTP里,每台设备无论是否为根桥自主决定是否在Holle Timer规定的时间间隔发送自己的配置BPDU。

2).更短的BPDU超时时间:如果一个端口在超时时间(即三个周期,超时时间=Hello Time×3)内没有收到上游设备发送过来的配置BPDU,那么该设备认为与此邻居之间的协商失败。而STP里必须等待一个Max Age时长20s。比如根桥宕机,那STP至少等待20s才能重新开始选举,而RSTP只需要6s即可以开始新的选举。

3).处理次优BPDU:STP只有指定端口才会立即处理BPDU,而Alte口需要等20s缓存里的BPDU老化后重新计算转变为指定端口后发送BPDU。而RSTP,任何角色的端口收到次优BPDU后都会处理,并发送自身的BPDU。

5. 快速收敛机制

1).端口角色快速切换

Alter口做为根端口的备份端口,是设备去往根桥的另一条可选路径,当设备的Root口断开后,Alter口马上切换成Root口。

Backup口做为Designate的备份端口,提供了根桥到某个相应网段的备份线路,当指定的Designate断开后,Backup口马上切换成Designate口。

2).边缘端口

可以设置直连终端的端口为edge口,edge口不参与RSTP计算,可以直接由Discarding状态进入Forwarding状态,同时edge口的连接断开不会发送TC包,不会引起网络的拓扑变化。

当edge口收到BPDU包时,会失去边缘端口属性,成为普通STP端口,并重新进行生成树计算。

3).P/A机制

Proposal/Agreement机制:P/A机制是让上游指定端口快速由Discarding状态进入Forwarding状态。

对于RSTP来说,通过对比接收到的BPDU能很快的决定端口角色,但如何让指定端口快速进入转发状态,RSTP通过阻塞非根端口来防止环路,由通过P/A机制加快上游的指定端口快速进入forwarding状态,转换速度为秒级。

P/A机制将在下游链路逐跳完成,整个网络可以快速收敛,并终止存在DP和AP的链路上。一旦P/A协商不成功,指定端口的选举就会回到STP的协商方式,就需要等待两个Forward Delay(30秒)时间。

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

P/A流程:

在SW1与SW2连接线路,通过抓包可看出:

第一与第二个包:SW1与SW2的互联端口角色都是Designate状态都为Discarding,SW1与SW2开始都认为自己为根桥,相互发送RST BPDU包;

第三个包:SW2对比e0/0/1收到的RST BPDU,发现更优,SW2的e0/0/1意识到自己会变为根端口,马上停止发送RST BPDU。而SW1紧接着发送Proposal与Agreement置位的RST BPDU

第四个包:SW2收到SW1发过来的Proposal置位的RST BPDU包,马上进入端口同步状态,把除边缘端口外其余端口的状态变为Discarding(Alte与Block口本来为Discarding故状态不变),Root口马上进入forwarding状态,同时回应SW1 Agreement与TC置位的RST BPDU包。

最后SW1收到后SW2的Agreement的回包后,马上把e0/0/1口转变为forwarding状态。

6. 拓扑变更机制

RSTP中判断拓扑是否发现变化只有一个标准:一个非边缘端口迁移至forwarding状态

STP里当网络拓扑发现变化时,发生变化的交换机从根端口发送TCN BPDU,上级交换机收到后回应TCA位为1的配置BPDU,告知下级交换机无需再发送TCN BPDU了,同时继续向根桥发送TCN BPDU,根桥收到后回应TCA位为1的配置BPDU,同时发送TC为1的配置BPDU,通告各级交换机刷新MAC地址表。

在RSTP里,当某台交换机的非边缘端口状态迁移至forwarding,那此交换机有启用一个while time计时器,清空发现变化端口上学习到的MAC地址,同时计时器内由非边缘指定端口与根端口发送TC位为1 的RST BPDU。其它交换机收到此BPDU后,清空除边缘口与接收此BPDU口的MAC地址,并启用定时器,从除接收此BPDU及边缘口外,其它端口发送TC位为1的RST BPDU,依次操作,最后TC在全网泛洪。

7. 保护机制

1).BPDU保护,当某个edg port收到BPDU后,会失去边缘端口属性,而重新参与生成树的学习,从而导致网络发生震荡。而在edge port上开启BPDU保护后,当edge port再收到BPDU时,此端口会被error down。

2).根保护,一般在非根桥的指定端口设置,这样可防止生成树优先级低的交换机接入网络后,抢占变为根桥,而引起网络震荡。一旦启用根保护功能的指定端口收到优先级更高的RST BPDU时,就是把端口状态转变为discarding,经过两个relay forwarding time的时间没收到优先级更高的RST BPDU时就会恢复正常为forwarding。

3).环路保护,阻塞端口或根端口是通过不断的接收上游设备的BPDU来维持端口状态的,但由于网络拥塞或线路的单向故障,导致阻塞端口与根端口长时间接收不到上游发过来的BPDU,此时交换设备会重新选择根端口。原先的根端口会转变为指定端口,而原先的阻塞端口会转变为forwarding状态,从而造成交换网络中可能产生环路。开启环路保护后,如果根端口或Alternate端口长时间收不到来自上游设备的BPDU报文时,则向网管发出通知信息(此时根端口会进入Discarding状态,角色切换为指定端口),而Alternate端口则会一直保持在阻塞状态(角色也会切换为指定端口),不转发报文,从而不会在网络中形成环路。直到链路不再拥塞或单向链路故障恢复,端口重新收到BPDU报文进行协商,并恢复到链路拥塞或者单向链路故障前的角色和状态。

4).防TC-BPDU攻击

交换设备在接收到TC BPDU报文后,会执行MAC地址表项和ARP表项的删除操作。如果有人伪造TC BPDU报文恶意攻击交换设备时,交换设备短时间内会收到很多TC BPDU报文,频繁的删除操作会给设备造成很大的负担,给网络的稳定带来很大隐患。启用防TC-BPDU报文攻击功能后,在单位时间内,交换设备处理TC BPDU报文的次数可配置。如果在单位时间内,交换设备在收到TC BPDU报文数量大于配置的阈值,那么设备只会处理阈值指定的次数。对于其他超出阈值的TC BPDU报文,定时器到期后设备只对其统一处理一次。这样可以避免频繁的删除MAC地址表项和ARP表项,从而达到保护设备的目的

RSP配置命令:

[Huawei] stp bpdu-protection

[Huawei-GigabitEthernet0/0/1] stp root-protection

[Huawei-GigabitEthernet0/0/1] stp loop-protection

[Huawei] stp tc-protection interval  interval-value

[Huawei] stp tc-protection threshold  threshold

[Huawei-GigabitEthernet0/0/1] stp edged-port enable

[Huawei-GigabitEthernet0/0/1] stp priority  priority

[Huawei] stp root primary

[Huawei] stp mode rstp
 

RSTP实验:

实验一:hub与SW3暂不连线,hub只连接与SW4的线,关闭与打开SW4的Eth0/0/1口,并在此接口抓包,观察此接口的状态变化。

undo shutdown  SW4的Eth0/0/1口,SW4马上转变为Designate口,状态为Discarding,经过30s后仍为Designate口,但状态转为forwarding口。能过此端口的抓包数据来看,SW4不断发送我是根桥,且flag的agreement与proposal置位1,port-role位为designated,learning与forwarding均未置位的包,每间隔2s发送完全一样的包,过大约15s后,SW4发送的包的flag字段的leaning位置1,再过15s,发的BPDU的flag位变化为forwarding置1,而proposal变为0,TC位置1的包。

结论:端口连接线路后默认为指派端口处于Discarding状态,同时向外发送BPDU RST报文,若对端设备不响P/A交互时,指派端口经过两个forward Delay即30s才能转变为forwarding 状态。

实验二:hub与SW3的线路连接好,关闭与打开SW4的Eth0/0/1口,并在此接口抓包,观察此接口的状态变化。

SW4的秒变forwarding状态,可抓到SW4与SW3以P/A机制交换BPDU包。

实验三:关闭与打开sw3的Eth0/0/1口,观察SW3各端口角色的变化及变化所花时长  

shutdown SW3的Eth0/0/1口,此时Eth0/0/2快速变为由Alter转为Root,当undo shutdown SW3的Eth0/0/1口,Eth0/0/1会再快速变为Root口,同时抓SW3的Eth0/0/1口的数据包可以观察到与SW1之间存P/A的RST BPDU包。

疑问:sw3的Eth0/0/1 undo shutdown后,Eth0/0/1会再快速变为Root口这是由交换机本身决定的,还由交换机P/A包之间交互决定的?--------角色是由交换机本身根据比较每个端口收到的BPDU优先级决定的。P/A只可以加快角色的状态,由discarding转为forwarding.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值