<优化STP>
·BPDU防护:
对于设置了PortFast接口,却收到了BPDU,如果设置了BPDU防护,就能将此接口关闭,而不会进入生成树状态。
spanning-tree portfast bpduguard default (全局开启)
int f0/1
spanning-tree bpduguard enable (接口开启)
show spanning-tree summary [totals]
Show errdisable recovery 显示可导致接口errdisable的选项
设置自动恢复:
errdisable recovery cause bpduguard 设置300S(默认)后自动修复bpduguard所导致的errdisable
errdisable recovery interval 30 修改默认的修复时间
·BPDU过滤:不发也不收
通过使用BPDU过滤,能够防止在启用portfast的端口上向host发送不必要的BPDU。
注意:
如果在全局下配置,从端口收到BPDU的话,不会禁掉端口,会转为正常的STP状态
如果在接口下配置,从端口收到BPDU的话,会丢弃。
如果在同一接口设置Guard/Filter , F优于G
BPDU过滤只是一种优化技术,在接口上配置BPDU过滤有可能导致桥接环路,所以不推荐使用。
spanning-tree portfast bpdufilter default(全局开启)
int f0/9
spanning-tree bpdufilter enable (接口开启)
show spanning-tree summary totals
·根保护:
能够将接口强制设为DP,进而防止对端SW成为Root。
设置了根保护的端口如果收到了一个优于原BPDU的新的BPDU,它将把本端口设为blocking禁止状态,过一段时间,如果没再收到BPDU,它会恢复端口,这一点不同于BPDU的防护。
int f0/5
spanning-tree guard root
测试:将其他SW变成根桥,看原来根桥的现象:
show spanning-tree inconsistentports
Show spanning-tree interface f0/2 detail
show spanning-tree
Fa0/2 Desg BKN*19 128.2 P2p *ROOT_Inc
·环路保护: 对于软件故障处理得更好
当STP中的BLK端口错误的过渡到FWD状态,有可能出现环路。
启用Loopguard的接口,如果原来的BPDU老化了,不会转到listening状态,而将自动转为inconsistent状态
在inconsistent状态下,会再根据对端交换机发过来的BPDU进行决定端口状态。
如果是出现了单向链路失效的现象,对端交换机是不会有BPDU过来的,所以接口将一直保持inconsistent。
默认情况下是禁用的。
spanning-tree loopguard default (全局)
int f0/9
spanning-tree guard loop (接口)
·UDLD单向链路失效检测: 对于硬件故障处理得更好
单向链路失效是比较常见的现象,以太网线缆的收发出现问题。
当链路保持“UP”的时候,接口却没有流量收到。
UDLD是一种二层协议,它与第一层机制协同工作来确定链路的物理状态。
启用UDLD能使得这种接口自动进入“err-disable”状态。
启用了UDLD的交换机之间会互相发送UDLD协议包来保持联系,默认间隔15S
Sw1(config)#udld enable 也可在接口下配
show udld
积极模式的UDLD--当端口停止接收UDLD的数据包时,UDLD将尝试重新建立与邻居的连接,但如果尝试8次之后还不成功,那么两端的端口都将成为“err-disable”状态。
Err-disable特性:
在CISCO交换机上有很多的保护特性都会导致接口进入err-disable状态
接口如果进入err-disable状态:有两种方法恢复
1、手动恢复
先shutdown、再no shutdown
2、自动恢复
errdisable recovery cause {all|arp-inspection|bpduguard|link-flap} 指定原因
errdisable recovery interval 30 指定自动恢复时间间隔
命令总结:
bgduguard
接口开启:sw1(config-if)#spanning-tree bpduguard enable
全局开启:sw1(config)#spanning-tree portfast bpduguard default
如果对所有开了portfast的端口进行限速如何办?
sw1(config)#spanning-tree portfast bpduguard 【对所有开启了portfast的接口进行bpdu防护】
loopguard
接口开启:spanning-tree guard loop
全局开启:span-tree loopguard default
loop防护:该技术不能与根保护一起用,一起使用后会互相覆盖。
bpdufilter
sw3(config-if)#spanning-tree bpdufilter enable
sw1(config)#spanning-tree portfast bpdufilter default
bpdufilter和bpduguard一起使用时,bpdufilter优先!
rootguard
sw1(config-if)#spanning-tree guard root