Stp的安全机制
专门针对STP生成树协议的安全机制
1 root guard 根防护
2 bpdu guard bpdu防护
3 bpdu filter bpdu过滤
1 什么是root guard?
根防护,就是当一个已经运行了STP协议的交换机群,且已经正确的收敛完成,网络拓扑稳定的情况下,有一台具备更优bridge ID的交换机加入,在不配置安全机制的情况下,有可能会强占原有网络环境中的根桥地位。从而导致全网拓扑发生变化
2 有什么作用?
开启了根防护,可以有效的防止这一现象的发生,保证网络拓扑的稳定性,当这个开启了root guard的接口收到新的BPDU更优的设备时,应该怎么做呢? 答:BLK,但是这个BLK 还有些不同,
3 用在什么地方?
通常用在根交换机的所有未使用接口(因为根交换机通常情况下不会连接其它的终端设备,中做STP的业务)所以当STP收敛完成以后,要在根交换机上配置其它口为ROOT GUARD
实例:
在该网络中,SW1处于未开机状态,sw2,sw3,sw4开启STP,SW2此时为根桥,
那么当SW1接入后会发生什么呢?
确认SW2 为 root bridge
现在开启SW1
在sw2上看,自己已经不是根桥了,有了新的MAC
在sw1上看,唉,自己变成了 root bridge,
这样一台,就会影响整个网络的拓扑,因为sw1并没有连接其它设备,也就导致发往它这里的数据没有出口,也就将无法正常的发送数据。导致无法正常的上网
通过上面的实验,发现root guard 的重要性了吧,现在开始配置这一功能
在SW2上的E0/2口开启(因为e0/0 -1两个口,正在运行着STP,且之前已经收敛完成了)实际中应该在root设备上所有未使用的接口都配置根防护,从而“把根留住”
先把SW1的e0/0口shudown,(等同于拔掉网线)
sw2(config)#inter e0/2
sw2(config-if)#spanning-tree guard root
再开启SW1 的接口
Sw1(config-if)#no shu
此时sw2上会发生什么呢?
发现已经有了系统提示信息,root guard blocking e0/2 看来已经生效了,咱们来查看一下具体的信息
可以看到这个端口被特殊的阻塞了,
原理:开启了root guard的接口,当收到更优的bpdu时,会丢弃这个信息,同时,将这个接口置为BKN*的状态,
同时,30s内,如果没有收到BPDU,则开启此接口
如果一直收到,那就一直阻塞,一直卡在BKN*的这个状态
在实际工作中,这一点还是很有必要的
(护根大法,你值得拥有)
二、bpdu guard
1、什么是BPDU guard
BPDU防护,主要针对于Portfast接口,因为portfast接口被视为边缘端口,用来接终端设备时加快收敛速度用的,(可节省30S的时间)而这时,如果是因人为失误接入了一台交换机,此时需要注意的是,不经过(侦听---学习----转发过渡的30s)直接进行转发,有可能其地位也是会变成root bridge,就算不能成为根桥,也会影响整个网络的拓扑改变,造成数据的不稳定
2、用在哪里?
Bpdu guard,主要用于接入层交换机的portfast接口
3、其原理是什么?
当在接入层交换机上开启了bpdu guard的时候,也就意味着,只要是接收到BPDU的信息,不管优劣与否,直接给你干掉,也就是err-disable状态(这一点,和sw的port-securiy很像)只允许我通过的,只要检测到不合格的,就干掉,
支持手动开启和自动开启,但是当检测到BPDU信息时,还是会关闭
此时在SW4上全局开启了portfast,然后再开启bpdu guard,
开启针对portfast 的bpdu防护
此时再开启SW1,
刚一开机,就看到SW4 上的提示信息,
因为触发了BPDU GUARD,所以将端口关闭
设置自动恢复的方法和port-security的方法是相同的,这里不再做赘述
sw4(config)#errdisable recovery interval 30 //自动恢复时间延时30s
sw4(config)#errdisable recovery cause bpduguard //自动恢复因出发bpduguard的接口
可以通过
SW#show errdisable recovery 命令来查看具体的因触发导致关闭的端口自动恢复功能是否开启,以及自动检测时间周期倒计时。
BPDU filter(BPDU过滤)
一些特殊的情况下,这台接入层设备下方,就必须要接入一台交换机,如果因为bpdu guard的原因,导致无法正常的开启端口,也就影响了实验的工作网络。
这时更加人性化的功能出现了,
Bpdu 过滤, bpdu filter
配置bpdu filter 有两种方法,1 全局下开启 2 接口下开启
1 全局下开启:
配置了该功能后,所有的portfast收到budp信息后会将原有的edge端口特性全部取消,将该接口视为最初的接口状态,也就意味着要重新的从侦听----学习---转发,需要 STP的计算过程来决定端口最终的角色
sw4(config)#spanning-tree portfast edge bpdufilter default
被初始化的同时,网络拓扑也发生了变化,显然 ,这不是我们想要的,
2接口下开启
(config-if)#spanning-tree bpdufilter enable
有两个特点1 接收,但不转发BPDU,就是一个单纯的PORTFAST接口,过滤BPDU信息
2 edge边缘端口的特性不会变
通常情况下,咱们用这个,
在SW4上查看,根桥,还是SW2
而在sw1上看呢?
它认为自己是根桥没错,但是BPDU的信息是不可能通过sw4的e1/0接口发过去的.
因为针对接口开记了bpdu filter 它会无视这些BPDU信息,
Show spanning-tree summary totals,可以查看具体都开启了哪些STP 的功能
这里有一点需要注意,
如果是在接口下开启的BPDU filter, 在这个汇总信息里是看不到的,
需要到接口下才能看到
show run inter e1/0
-----------------------------------------------------
CCIE成长之路---梅利