理解并演示:Root Guard(根保护)

简介:

    Root Guard是一种强制的根保护措施,它的作用是防止意外(或者非法)加入的交换机成为网络中的根桥,如所示,原本交换环路中只存在S1S2S3时,正确的根桥应该是S1,因为它有最优势的BID(一般而言是因为MAC地址最小),如果此时在原本的交换环路中加入了一台更有优势BID的网桥比如new_S,此时它可能具备更小的网桥优先级,那么这台新加入的交换机new_S就可能成为原交换环路中的新的根桥,出现这种情况时,由于生成树的重计算(有时英文也在重配置),会直接导致原有的交换环路不稳定。比如左边部分所示,在没有加入new_S这台潜在的非法网桥时,S1为根桥,S1E0/0E0/1都是指定端口;而S2E0/0是根端口,E0/2为指定端口;S3E0/1是根端口,E0/2是阻塞端口,至于为什么会是这样,笔者在CCNA部分的书稿有详细说明。当new_S这台潜在的非法交换机加入到原始的交换环路时,如右边部分,一切将发生改变,生成树的稳定性将遭到破坏,此时new_S将成为新的根桥,因为它有更有优势的BIDnew_SE0/3是指定端口;S2E0/3将变成根端口,E0/0E0/2会变成指定端口;S1E0/0变为根端口,E0/1变为指定端口;而S3E0/2将变为根端口,E0/1将变为阻塞端口,而BPDU报文的流向也如虚箭头所绘会发生改变。

wKiom1Wc8wrSwWs-AAEiQVQjRPs884.jpg

wKioL1Wc9NrR1uBJAAHji6onPkk791.jpg


  Root Guard(根保护)的意义就是在S2E0/3上强制它成为指定端口,就是当S2E0/3接口收到比当前更有优势的BPDU报文时(就是指的new_S发来的BPDU报文),S2会将该端口转到一种叫root-inconsistent(不一致的根)状态,并且在这种状态下该端口会进入阻塞状态,流量肯定也不会从该端口转发,达到保护并强化了原环路中的根(S1)地位的目标,注意此时root-inconsistent的状态相当于生成树的监听状态,如果new_S这台潜在的非法根桥,不再发送BPDU报文给S2E0/3接口,那么该接口将自动结束root-inconsistent(不一致的根)状态,并取消对该端口的阻塞。

 

演示:启动Root Guard(根保护)的配置及效果检测

 

演示目标:

ü  在没有根保护时,加入非法交换机的情况

ü  在启动根保护时,加入非法交换机的情况

演示环境:如上所示的演示环境。


wKiom1Wc8zuSkIyBAAEiQVQjRPs526.jpg

演示背景:首先让交换机S1S2S3形成稳定的环路,并观察它在这个原本稳定的环路中生成树的选举及计算情况,暂时不要让new_S交换机接入到当前的交换环境,但是可以先将new_S交换机的BID配置到最小,一般通过调整new_S的生成树优先级来实现,这样就可以模拟new_S为非法交换机,并希望自己成为整个交换网络的根,具体配置可以通过在new_S的全局模式下执行spanning-treevlan 1 priority 28672来模拟一个更有优势的BID。然后再将new_S接入环路,并再次观察生成树的选举及计算过程,明确并取证哪些不稳定的情况,最后再到S2E0/3上部署Root Guard(根保护)功能,明确并取证根保护功能对非法接入交换机new_S的约束效果。

演示步骤:

第一步:首先构造S1S2S3之间的稳定环路,当生成树的计算完成后,在交换机S3上可以通过show spanning-tree指令来查看稳定环路中的根桥及相关端口状态,如所示,不难看出当前的S3是认可S1为环路的根桥的,并且E0/2端口是被阻塞,关于这一点在前面的理论部分已经有详细的描述。

wKioL1Wc9TjRjpABAAIyeYYTqoE440.jpg

第二步:现在将new_S接入到S2E0/3从而进一步进入整个交换环路中,并观察原始环路的生成树引发重计算的不稳定因素,当完成非法交换机的接入后,首先在new_S上查看自身的一些情况,如所示,可看出new_S把自己选成环路上新的根桥,因为它有更优势的BID,并且它有E0/3端口为指定端口并处于转发状态中。


wKioL1Wc9WmDi6FOAAJKZNAv0WY659.jpg


 此时,不仅是new_S自己认同自己为环路中的新根桥,由于原始环路没有根保护功能,所以此时的S1S2S3都会认同非法接入的交换机new_S为新的根桥,比如在S3上执行showspanning-tree所示,可清晰的看到此时的S3出认可非法网桥new_Saabb.cc00.0400)为新的根桥,并且以前的根端口(E0/1)现在变成了替代端口并处于阻塞状态,而以前的阻塞端口(E0/2)变成了当前的根端口,并处于转发状态,这就已经改变了原始生成树的拓扑构成,破坏了稳定性。

wKiom1Wc883ixM7wAAKX7oUiV40805.jpg

注意:现在将非法交换机New_S暂时从网络中取下,让环路恢复成只有S1S2S3的原始状态,确保S1是根桥,S3E0/2再次被阻塞。为下一步检测Root Guard(根保护)的效果作好准备。

 

第三步:现在到交换机S2E0/3接口(连接非法交换机new_S的接口)启动根保护功能,具体配置如下所示,然后可以通过在S2上执行showruning-config interface e0/3来查看当前E0/3接口上的根保护功能是否被开启,如所示,明确根保护已经被成功开启。

 

启动根保护功能:

S2(config)#interfacee0/3

S2(config-if)#spanning-treeguard root   * 启动生成树的根保护

%SPANTREE-2-ROOTGUARD_CONFIG_CHANGE:Root guard enabled on port Ethernet0/3. *系统提示该接口根保护被启动


wKioL1Wc9czhQls5AAD8kMfeB4U115.jpg

然后在完成上述的配置后,现在再次将非法交换机new_S连接到S2上的E0/3端口,因为new_S具备更优势的BID,如果S2E0/3接收到这个更有优势的BPDU报文,将触发根保护功能,此时会发现,系统立即报告,根保护功能阻塞了S2E0/3接口,具体显示如下:

 

关于根保护阻塞S2E0/3接口的提示:

%SPANTREE-2-ROOTGUARD_BLOCK: Rootguard blocking port Ethernet0/3 on VLAN0001.

 

    然后用户可以在S2上通过showspanning-tree inconsistentports,来查看生成树的不一致状态,如所示,明显看出S2E0/3接口被转为不一致的根状态,此时该端口将处于阻塞状态,这个时候用户可以回到原始环路中的交换机S3上,执行showspanning-tree再次查看生成树的状态,如所示,很明显S1的根地位被强化,S3仍然认同S1为根,相应的端口状态也保持原始环路的计算结果。

wKiom1Wc9IGDqtlXAAETfqGXjw0390.jpg

wKiom1Wc9IKyo0ufAAKGJriNsi0786.jpg



本文转自 kingsir827 51CTO博客,原文链接:http://blog.51cto.com/7658423/1672122,如需转载请自行联系原作者

相关文章
|
存储 数据采集 监控
SNMP 使用总结
SNMP 使用总结
1573 0
|
机器学习/深度学习 算法
《深度剖析:凸优化与梯度下降的紧密关系》
凸优化和梯度下降是机器学习与数学优化中的核心概念。凸优化旨在最小化凸函数在凸集合上的取值,其特性保证了局部最优即为全局最优,简化了求解过程。梯度下降则通过迭代更新参数,沿负梯度方向逐步减小目标函数值。两者紧密关联:凸函数的良好性质确保梯度下降能可靠收敛至全局最优,且在实际应用中广泛使用,如线性回归和逻辑回归。掌握它们的关系对解决复杂优化问题至关重要。
275 4
|
机器学习/深度学习 JavaScript 算法
面试中的网红虚拟DOM,你知多少呢?深入解读diff算法
该文章深入探讨了虚拟DOM的概念及其diff算法,解释了虚拟DOM如何最小化实际DOM的更新,以此提升web应用的性能,并详细分析了diff算法的实现机制。
|
网络安全 网络架构 Windows
详解Traceroute过防火墙回显问题,原来如此!
详解Traceroute过防火墙回显问题,原来如此!
754 2
|
传感器 编解码 Linux
V4l2 专栏
V4l2 专栏
562 1
|
网络协议 网络安全 网络虚拟化
网络技术基础(13)——NAT网络地址转换
【3月更文挑战第2天】网络基础笔记(加班了几天,中途耽搁了,预计推迟6天),这篇借鉴了之前师兄的笔记,边听边记笔记实在是太慢了。
|
存储 Ubuntu Linux
fd一个简单快速的find命令替代方案
目录 fd特点 如何在Linux中安装fd CentOS安装 命令选项 如何在Linux中使用fd
1054 0
|
JavaScript Java 测试技术
基于SpringBoot+Vue的音乐播放器的详细设计和实现
基于SpringBoot+Vue的音乐播放器的详细设计和实现
393 0
|
Web App开发 存储 监控
如何通过Google Chrome远程控制你的Windows 10系统
Google提供了一个免费而又强大的工具--Chrome远程桌面(Chrome Remote Desktop),来允许你连接并控制互联网上的Windows 10电脑系统(这同样适用于Windows 7和8)。根据本文介绍的步骤,你可以在家里或办公室的Windows 10系统上通过设置Chrome远程桌面,来借助互联网进行连接和控制了。
4327 1
如何通过Google Chrome远程控制你的Windows 10系统
|
算法 Java Windows
Guava-RateLimiter详解
常用的限流算法有漏桶算法和令牌桶算法,guava的RateLimiter使用的是令牌桶算法,也就是以固定的频率向桶中放入令牌,例如一秒钟10枚令牌,实际业务在每次响应请求之前都从桶中获取令牌,只有取到令牌的请求才会被成功响应,获取的方式有两种:阻塞等待令牌或者取不到立即返回失败,下图来自网上: ratelimite原理图 本次实战,我们用的是guava的RateLimiter,场景是spring mvc在处理请求时候,从桶中申请令牌,申请到了就成功响应,申请不到时直接返回失败。
3476 0

热门文章

最新文章