前文我们了解了RSTP相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16240348.html;今天我们来聊一聊RSTP保护相关话题;
我们知道RSTP优化了STP收敛速度,同时也加入了边缘端口的机制,但是如果有人恶意使用stp特有的属性发起攻击,对于STP网络来说它也会造成网络不稳定;为了更好的保证RSTP协议在网络不稳定情况下,尽可能的保证流量的正常转发,在标准协议中新增了4中保护功能;
1、BPDU保护
提示:我们知道边缘端口的属性就是不参与stp计算,但是它一旦收到了BPDU,该属性也就失效;边缘端口正常情况下是不可能收到BPDU报文的,如果说边缘端口收到BPDU,说明要么是我们链锯接线有问题,要么是有人恶意攻击我们;如果我们没有开启边缘端口BPDU保护,对应边缘端口参与STP计算就会造成网络的震荡不稳定;
提示:所谓BPDU保护就是针对边缘端口的,开启了边缘端口的BPDU保护,对应边缘端口一旦收到BPDU报文后,会立即把该端口shutdown;从而实现保护现有的stp网络不受边缘端口的影响而造成网络震荡;
实验:如下拓扑,配置RSTP
sw1的配置
sys sys sw1 stp mode rstp stp priority 4096View Code
sw2的配置
sys sys sw2 stp mode rstp int g0/0/3 stp edged-port enView Code
sw3的配置
sys sys sw3 stp mode rstp stp priority 8192View Code
验证rstp个端口角色和状态
提示:可以看到现在三个交换机RSTP的角色和状态都符合我们的拓扑;
插拔边缘端口,看看对应是否会对stp网络造成影响?
提示:可以看到现在模拟插拔边缘端口,并不会对stp网络造成影响,因为边缘端口不参与stp计算;
向边缘端口发送bpdu,看看对应端口是否会对stp网络造成影响呢?
提示:我们使用sw4来发送bpdu,看看对应边缘端口收到bpdu后,是否会参与stp计算?
提示:感觉开机配置SW4以后,对应没有发生什么变化;我们把sw4配置成root看看对应会发生变化吗?
提示:可以看到现在我们插拔边缘接口,对应stp网络就会发生震荡;这说明 边缘接口收到BPUD后会参与计算;
开启边缘接口BPDU保护
验证:现在打开sw4的g0/0/1,看看对应链路是否会自动shutdown呢?
提示:可以看到当我们把sw4的端口打开以后,对应sw2连接hub的链路就会down,这是sw2上开启了bpdu保护,对应边缘端口收到bpdu后,会立即将对应边缘端口软down;
关闭sw4的1口,看看对应sw2的边缘接口会不会自动up起来呢?
提示:可以看到对应关闭了Sw4的1口,对应sw2的边缘接口并没有up起来;这是因为默认我们没有配置error-down自动恢复;
配置error-down自动恢复时间为30秒
提示:系统默认error-down自动恢复时间范围是30-86400秒;
查看error-down自动恢复
提示:可以看到配置了error-down自动恢复时间,并开启了sw4接口后,对应sw2的边缘接口在30秒钟后启动一次边缘接口,如果边缘接口再次收到bpdu报文,对应又会产生error-down,对应端口又会shutdown,所以我们可以看到当error-down倒计时完了以后,对应链路会启动马上又断掉;
2、根保护
提示:我们知道如果在一个稳定的stp拓扑中加入一台交换机,并开启stp,对应拓扑就会发生变化,从而导致stp网络震荡;根对于stp来说尤其重要,所有跨交换机的访问流量都会经由根,如果有人恶意冒充stp的根不但对stp网络会造成震荡、次优路径,同时信息安全也得不到保障,为此RSTP协议中加入了根保护机制;
提示:所谓根保护机制是指配置了根保护的接口,如果收到更优的RST BPDU,对应端口会进入阻塞状态,不再转发报文;如果一段时间内该端口没有收到更优的RST BPDU,对应端口又会恢复到正常转发状态;
实验:还是以上拓扑,我们在sw2的g0/0/3口配置根保护
提示:边缘接口不能配置根保护;
删除sw2的边缘接口属性
验证:开启sw4的g0/0/1口,发送更有的RST BPDU,看看对应端口是否会阻塞?
提示:可以看到但我们把sw4口up起来后,对应sw2的3口就从转发变成了阻塞;这是因为sw2的3口配置了根保护,它收到更优的RST BPDU后,对应会触发根保护机制,将转发状态变成阻塞状态,不再转发数据,从而实现保护现有stp网络;
关闭sw4的g0/0/1口,看看对应sw2的g0/0/3口是否会自动将状态恢复成转发状态呢?
提示:可以看到当把sw4的g0/0/1口shutdown以后,对应sw2的g0/0/3口会等待一段时间,确定没有收到更优的RST BPDU以后,对应端口又会参与到stp计算中;这里需要注意,指定端口从阻塞状态转变为forwarding状态,会经由learning状态,而不是直接转变成forwarding状态;
3、环路保护
提示:所谓环路保护是指由于链路拥塞导致BPDU丢失,为了避免因链路拥塞导致stp拓扑发生变化,从而引起stp网络震荡;设置环路保护的端口当收不到上游交换机发送的BPDU报文时,环路保护机制就会生效;如果该端口参与了stp计算,则不论其角色如何,该端口在所有实例都处于discarding状态;
配置环路保护的命令
提示:环路保护和根保护是互斥的,配置了根保护的端口不能再配置环路保护;环路保护和根保护都是在对应端口模式下开启;开启了环路保护的端口,在查看端口状态的后面会有一个保护机制从none变为loop;
4、TC保护
提示:我们知道只要往STP拓扑上接入交换机并开启stp,对应stp网络都会发生拓扑变化从而引起网络震荡;拓扑变化对应交换机就会发送tc,大量的TC报文会导致整个网络的交换机频繁删除mac地址表项,从而给交换机和链路带来隐患;为了防止过多的TC报文影响网络稳定,RSTP协议中增加了tc保护;
提示:所谓TC保护是指我们配置交换机在单位时间内处理单位数量的TC报文,如果超出配置单位时间处理的tc报文个数,对应交换机就处理TC报文;
配置TC保护
1、全局开启TC保护
2、配置单位时间(处理频率),默认是2秒
stp tc-protection interval 10,这个命令在华为的模拟器上没有,但真机有的机型是有的
3、配置阀值(要处理的tc报文数量)默认是1个
总结:各保护机制和应用的端口和作用
RSTP保护推荐方案
提示:在主根桥和备用根桥上开启根保护,在接入终端的交换机上开启边缘端口和BPDU保护,环路保护在交换机与交换机相连的根端口或备份端口上开启;