STP也可能遭受到各种类型的攻击,所以STP的保护工作也非常重要
对接入端口的保护:Root Guard和BPDU Guard
对于接入端口而言,可能临时新连接一台交换机在其下,而这可能会引起STP拓扑不必要的变化。要防止此问题,可以在接入端口激活BPDU Guard和Root Guard来监控是否有BPDU进入。它们的基本操作如下:
1)BPDU Guard:在每个端口上激活;如果接收到任何BPDU,该端口即被屏蔽。配置后可自动恢复。
2)Root Guard:在每个端口上激活;忽略任何优先级更小的BPDU,这样可以阻止连接在此端口的交换机成为根交换机。无需配置即可自动恢复。
***BPDU保护****
SW3 PRI:0
SW2:
interface f0/10
spanning-tree bpduguard enable
全局:errdisable recovery cause bpduguard(300秒后自动恢复)
全局 errdisable revovery interval 30 (把这个errdisable模式调等待时间调整到30秒)
sw(config)#spanning-tree portfast bpduguard default(全部接口开启BPDU保护)
sw(config)#int f0/1
sw(config-if)#spanning tree bpduguard disable(拒绝某个端口BPDU保护)
****根桥保护*******
sw(config-if)#spanning-tree guard root
启用这个命令是,端口状态会broken坏掉了
broken是动态的。如果一段时间没有收到优置的话,会up起来
show spanning-tree inconsistentports(查看那些端口被broken掉了)
在交换机中,errdisable 状态就相当于,接口和协议都down了
show errdisable recovery(查看errdisable的状态有哪些)
如果你的网络中,没有环路的话,就把生成树给关闭了。。
****BPDU过滤******即不发也不收
防止向主机发送不必要的BPDU,在开启portfast端口上配置
全局配置
(config)#spanning-tree portfast bpdufilter default
接口配置
(config-if)#spanning-tree bpdufilter enable
●对中继端口的保护:UDLD和Loop Guard
对于中继端口(trunk port)而言,最主要的问题是要避免因为单向(Unidirectional)链路(链路一端失败,可能是因为一端接插问题而引起)的存在而导致交换机端口错误地从阻塞状态转换到转发状态。
解决这个问题的办法是:UDLD(两种模式)和Loop Guard,具体操作如下:
1)UDLD:使用第二层消息来决定什么时候交换机不再由邻接交换机接收帧,交换机未失败的传输接口置为错误屏蔽状态。配置后可自动恢复。
2)UDLD aggressive mode:当接收不到另一交换机消息时,先试图重连(8次),如果仍然没有反应,那么两端都置为错误屏蔽状态。配置后可自动恢复。
3)Loop Guard:当接收不到正常的BPDU时,端口不再进行正常的STP收敛,而是进入STP环路冲突(loop-inconsistent)状态。无需配置即可自动恢复。
UDLD:单向链路检测解决硬件问题
udld enable(一个口坏了的话,全部堵上)
(config-if)#udld port
configuring loop guard 解决软件问题,cup过载,端口堵塞
(config-if)#spanning-tree guard loop
这个建议配置在根端口和替代端口上