标签:思科 ccie ccnp root guard
理解并演示:Root Guard(根保护)
本文截自于博主CCNP交换技术稿件内容
Root Guard是一种强制的根保护措施,它的作用是防止意外(或者非法)加入的交换机成为网络中的根桥,如图所示,原本交换环路中只存在S1、S2、S3时,正确的根桥应该是S1,因为它有最优势的BID(一般而言是因为MAC地址最小),如果此时在原本的交换环路中加入了一台更有优势BID的网桥比如new_S,此时它可能具备更小的网桥优先级,那么这台新加入的交换机new_S就可能成为原交换环路中的新的根桥,出现这种情况时,由于生成树的重计算(有时英文也在重配置),会直接导致原有的交换环路不稳定。比如图左边部分所示,在没有加入new_S这台潜在的非法网桥时,S1为根桥,S1的E0/0和E0/1都是指定端口;而S2的E0/0是根端口,E0/2为指定端口;S3的E0/1是根端口,E0/2是阻塞端口,至于为什么会是这样,笔者在CCNA部分的书稿有详细说明。当new_S这台潜在的非法交换机加入到原始的交换环路时,如图右边部分,一切将发生改变,生成树的稳定性将遭到破坏,此时new_S将成为新的根桥,因为它有更有优势的BID,new_S的E0/3是指定端口;S2的E0/3将变成根端口,E0/0和E0/2会变成指定端口;S1的E0/0变为根端口,E0/1变为指定端口;而S3的E0/2将变为根端口,E0/1将变为阻塞端口,而BPDU报文的流向也如虚箭头所绘会发生改变。
而Root Guard(根保护)的意义就是在S2的E0/3上强制它成为指定端口,就是当S2的E0/3接口收到比当前更有优势的BPDU报文时(就是指的new_S发来的BPDU报文),S2会将该端口转到一种叫root-inconsistent(不一致的根)状态,并且在这种状态下该端口会进入阻塞状态,流量肯定也不会从该端口转发,达到保护并强化了原环路中的根(S1)地位的目标,注意此时root-inconsistent的状态相当于生成树的监听状态,如果new_S这台潜在的非法根桥,不再发送BPDU报文给S2的E0/3接口,那么该接口将自动结束root-inconsistent(不一致的根)状态,并取消对该端口的阻塞。
演示:启动Root Guard(根保护)的配置及效果检测
演示目标:
ü 在没有根保护时,加入非法交换机的情况
ü 在启动根保护时,加入非法交换机的情况
演示环境:如上图所示的演示环境。
演示背景:首先让交换机S1、S2、S3形成稳定的环路,并观察它在这个原本稳定的环路中生成树的选举及计算情况,暂时不要让new_S交换机接入到当前的交换环境,但是可以先将new_S交换机的BID配置到最小,一般通过调整new_S的生成树优先级来实现,这样就可以模拟new_S为非法交换机,并希望自己成为整个交换网络的根,具体配置可以通过在new_S的全局模式下执行spanning-treevlan 1 priority 28672来模拟一个更有优势的BID。然后再将new_S接入环路,并再次观察生成树的选举及计算过程,明确并取证哪些不稳定的情况,最后再到S2的E0/3上部署Root Guard(根保护)功能,明确并取证根保护功能对非法接入交换机new_S的约束效果。
演示步骤:
第一步:首先构造S1、S2、S3之间的稳定环路,当生成树的计算完成后,在交换机S3上可以通过show spanning-tree指令来查看稳定环路中的根桥及相关端口状态,如图所示,不难看出当前的S3是认可S1为环路的根桥的,并且E0/2端口是被阻塞,关于这一点在前面的理论部分已经有详细的描述。
第二步:现在将new_S接入到S2的E0/3从而进一步进入整个交换环路中,并观察原始环路的生成树引发重计算的不稳定因素,当完成非法交换机的接入后,首先在new_S上查看自身的一些情况,如图所示,可看出new_S把自己选成环路上新的根桥,因为它有更优势的BID,并且它有E0/3端口为指定端口并处于转发状态中。
此时,不仅是new_S自己认同自己为环路中的新根桥,由于原始环路没有根保护功能,所以此时的S1、S2、S3都会认同非法接入的交换机new_S为新的根桥,比如在S3上执行showspanning-tree如图所示,可清晰的看到此时的S3出认可非法网桥new_S(aabb.cc00.0400)为新的根桥,并且以前的根端口(E0/1)现在变成了替代端口并处于阻塞状态,而以前的阻塞端口(E0/2)变成了当前的根端口,并处于转发状态,这就已经改变了原始生成树的拓扑构成,破坏了稳定性。
注意:现在将非法交换机New_S暂时从网络中取下,让环路恢复成只有S1、S2、S3的原始状态,确保S1是根桥,S3的E0/2再次被阻塞。为下一步检测Root Guard(根保护)的效果作好准备。
第三步:现在到交换机S2的E0/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. *系统提示该接口根保护被启动
然后在完成上述的配置后,现在再次将非法交换机new_S连接到S2上的E0/3端口,因为new_S具备更优势的BID,如果S2的E0/3接收到这个更有优势的BPDU报文,将触发根保护功能,此时会发现,系统立即报告,根保护功能阻塞了S2的E0/3接口,具体显示如下:
关于根保护阻塞S2的E0/3接口的提示:
%SPANTREE-2-ROOTGUARD_BLOCK: Rootguard blocking port Ethernet0/3 on VLAN0001.
然后用户可以在S2上通过showspanning-tree inconsistentports,来查看生成树的不一致状态,如图所示,明显看出S2的E0/3接口被转为不一致的根状态,此时该端口将处于阻塞状态,这个时候用户可以回到原始环路中的交换机S3上,执行showspanning-tree再次查看生成树的状态,如图所示,很明显S1的根地位被强化,S3仍然认同S1为根,相应的端口状态也保持原始环路的计算结果。
本文出自 “无名的基督” 博客,谢绝转载!
标签:思科 ccie ccnp root guard
原文地址:http://7658423.blog.51cto.com/7648423/1672122