RSTP协议原理与配置

STP协议(生成树协议)

STP协议虽然能够解决环路问题,但是由于网络拓扑收敛较慢,影响了用户通信质量,而且如果网络中的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断,这也是用户无法忍受的。
由于STP的不足,IEEE于2001年发布的802.1w标准定义了RSTP。RSTP在STP基础上进行了诸多改进优化,使得协议更加清晰、规范,同时也实现了二层网络拓扑的快速收敛。

STP的不足
初始化和拓扑变化时
STP从初始状态到完全收敛至少需经过30s(监听→学习→转发)
在这里插入图片描述
原理(发送BPDU)
BPDU:桥协议数据单元
具体参数:root ID、COST(到达root的开销值)、桥 ID(优先级+mac,4096的倍数,越小越好)、port ID(优先级+端口编号)

RSTP的P/A机制基本原理

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

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

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

图示
在这里插入图片描述
阶段一:设备刚刚启动,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状态,根本不影响其他业务转发。

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

P/A机制的同步阻塞
在A之前,将其他端口全部阻塞
边缘端口:不直接与任何交换机连接,也不通过端口所连接的网络间接与任何交换机相连的端口
将端口配置为边缘端口,在收到BPDU会自动放弃

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

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

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

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

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

具体配置

display stp brief //查看stp信息
stp root primary //设置主根,优先级自动为0
stp root secondary //设置次根,优先级为4096
stp priority xxxx //设置优先级
stp enable //全局开启STP
stp mode rstp //配置STP模式为RSTP

int g0/0/0
stp edged-port enable //配置边缘端口

stp edged-port default //所有端口都为边缘端口
stp bpdu-protection //全局开启BPDU防护,配合边缘端口一起使用,收到bpdu就shutdown
int g0/0/1
port link-type trunk
port trunk allow pass vlan 10
stp edgrd-port disable //启用bpdu保护后需要手动关闭其他sw互联端口的边缘端口功能
restart

int g0/0/3
stp root-protection //保护当前根不变

实验

HCIP实验01 RSTP特性及安全
本实验模拟冗余网络环境,完成以下配置需求:

1.SW1/2/3是企业内部交换机,如图所示配置各设备名称。

2.配置VLAN,需求如下:
1)SW1/2/3创建vlan10
2)将PC1与PC2划入VLAN10,使用access链路。
3)SW1/2/3之间时间trunk链路,仅允许vlan10通过。

3.配置STP,需求如下:
1)SW1/2/3使用RSTP
2)将SW1设置为根桥,SW2设备设置为次根,不允许使用priority命令配置。
3)使用display stp brief命令观察三台交换机的端口角色和端口状态。
4)SW2与PC互联的接口配置边缘端口,加快收敛速度。

4.SW3上配置STP保护功能,需求如下:
1)SW3在系统视图下启用边缘端口功能,将所有端口默认配置为边缘端口。
2)SW3与SW1/2互联的端口关闭边缘端口功能,以免影响交换机之间通信。
3)在SW3上全局启用bpdu保护功能,防止非法交换机接入。
4)打开非法交换机的G0/0/1接口,查看SW3的端口状态。

5.使用PC1长pingPC2,然后关闭SW2的G0/0/1口,观察链路切换时间。
在这里插入图片描述
1.SW1/2/3是企业内部交换机,如图所示配置各设备名称。

2.配置VLAN,需求如下:
1)SW1/2/3创建vlan10
[SW1]vlan batch 10
[SW2]vlan batch 10
[SW3]vlan batch 10
2)将PC1与PC2划入VLAN10,使用access链路。
[SW2]int g0/0/4
[SW2-GigabitEthernet0/0/4]port link-type access
[SW2-GigabitEthernet0/0/4]port default vlan 10

[SW3]int g0/0/4
[SW3-GigabitEthernet0/0/4]port link-type access
[SW3-GigabitEthernet0/0/4]port default vlan 10
3)SW1/2/3之间时间trunk链路,仅允许vlan10通过。
[SW1]int g0/0/1
[SW1-GigabitEthernet0/0/1]port link-type trunk
[SW1-GigabitEthernet0/0/1]port trunk allow-pass vlan 10
[SW1-GigabitEthernet0/0/1]int g0/0/2
[SW1-GigabitEthernet0/0/2] port link-type trunk
[SW1-GigabitEthernet0/0/2] port trunk allow-pass vlan 10

[SW2]int g0/0/1
[SW2-GigabitEthernet0/0/1]port link-type trunk
[SW2-GigabitEthernet0/0/1]port trunk allow-pass vlan 10
[SW2-GigabitEthernet0/0/1]int g0/0/2
[SW2-GigabitEthernet0/0/2] port link-type trunk
[SW2-GigabitEthernet0/0/2] port trunk allow-pass vlan 10

[SW3]int g0/0/2
[SW3-GigabitEthernet0/0/2]port link-type trunk
[SW3-GigabitEthernet0/0/2]port trunk allow-pass vlan 10
[SW3-GigabitEthernet0/0/2]int g0/0/3
[SW3-GigabitEthernet0/0/3] port link-type trunk
[SW3-GigabitEthernet0/0/3] port trunk allow-pass vlan 10

3.配置STP,需求如下:
1)SW1/2/3使用RSTP
[SW1]stp mode rstp
[SW2]stp mode rstp
[SW3]stp mode rstp
2)将SW1设置为根桥,SW2设备设置为次根,不允许使用priority命令配置。
[SW1]stp root primary
[SW2]stp root secondary
3)使用display stp brief命令观察三台交换机的端口角色和端口状态。

4)SW2与PC互联的接口配置边缘端口,加快收敛速度。
[SW2]int g0/0/4
[SW2-GigabitEthernet0/0/4]stp edged-port enable
4.SW3上配置STP保护功能,需求如下:
1)SW3在系统视图下启用边缘端口功能,将所有端口默认配置为边缘端口。
[SW3]stp edged-port default
2)SW3与SW1/2互联的端口关闭边缘端口功能,以免影响交换机之间通信。
[SW3]int g0/0/2
[SW3-GigabitEthernet0/0/2]stp edged-port disable
[SW3-GigabitEthernet0/0/2]int g0/0/3
[SW3-GigabitEthernet0/0/3]stp edged-port disable
3)在SW3上全局启用bpdu保护功能,防止非法交换机接入。
[SW3]stp bpdu-protection

4)打开非法交换机的G0/0/1接口,查看SW3的端口状态。
[Huawei]int g0/0/1
[Huawei-GigabitEthernet0/0/1]undo shutdown \非法交换机接口开启
[SW3]display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/2 ROOT FORWARDING NONE
0 GigabitEthernet0/0/3 ALTE DISCARDING NONE
0 GigabitEthernet0/0/4 DESI FORWARDING BPDU
\ 发现生成树中没有与非法交换机相连的 G0/0/1 口
[SW3]int g0/0/1
[SW3-GigabitEthernet0/0/1]dis this
interface GigabitEthernet0/0/1
shutdown
\ 发现 SW3 的 G0/0/1 口自动 shutdown
5.使用 PC1 长 pingPC2,然后关闭 SW2 的 G0/0/1 口,观察链路切换时间。
解法略
(特别说明,因模拟器不能完美的模拟拓扑变化时 TC 报文引起的 mac 地址表更新,所以该实验会存在切换后无法 ping 通的 bug。需要 ctrl+c 打断 ping 后,重新 ping,或者从 PC2pingPC1 测试。)

  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值