STP的安全特性详解与环路保护机制
一、STP的安全
[1]BPDU保护
当一开始D为电脑或路由器 端口为DP指定端口 ,将D模拟成交换机 (优先级低) 发送BPDU,此时D会抢走根网桥 汇聚层断结构被破坏
B端口为阻塞端口 而根网桥应该放置在汇聚层,若在接入层 会导致网络运行不佳,流量集中接入层。
接入层接口默认为DP(指定端口),该端口连接的是PC
若该接口的PC被更换、用户模拟,成为一台交换机,那么可能导致根网桥转移,最终迫使网络结构发生变化,因为根网桥最佳设置应该在汇聚层,而新的结构将可能该改变该特性,导致网络运行不佳,流量集中于接入层设备;
可以将这些接口开启BPDU保护功能;被保护接口若收到BPDU,那么将进行错误关闭状态;
进入该状态的接口状态和协议均down
若需要重新唤活该接口:
1、手工重启—先关闭再开启
2、自动启动----需要人配置,配置后若该接口在300s内没有收到BPDU了,那么将自动开启
sw2(config)#interface e0/0
sw2(config-if)#spanning-tree bpduguard enable
在接入层连接用户的接口上,开启BPDU保护功能
被保护接口若接收到BPDU将错误关闭
sw2#show interfaces e0/0
Ethernet0/0 is down, line protocol is down (err-disabled)
若接口出现了错误关闭,可以查看导致原因
sw2#show interfaces status err-disabled
Port Name Status Reason
Et0/0 err-disabled bpduguard
针对BPDU保护出现的错误关闭,可以通过手工重启,或设置自动重启
sw2(config)#errdisable recovery cause bpduguard 当BPDU保护出现后的自动重启
sw2#show errdisable recovery 查看各种错误的原因状态
sw2(config)#errdisable recovery interval ? 默认300s收不到BPDU将自动重启
<30-86400> timer-interval(sec) 修改计时器,最小30s
全局配置:
在接入层接口上,开启所有接口的端口加速和所有接口的BPDU保护
sw2(config)#spanning-tree portfast bpduguard
全局开启后,还需要到上行链路上进行BPDU保护的关闭
sw2(config)#interface e0/0
sw2(config-if)#spanning-tree bpduguard disable 关闭单个接口的BPDU保护
sw2#show spanning-tree summary totals 查看各种全局协议的配置
[2]BPDU过滤
开启BPDU过滤后,若接入层接口收到BPDU信息,将仅丢弃BPDU数据帧,正常转发用户流量(不参与生成树)
sw2(config)#interface e0/0 接口开启或关闭
sw2(config-if)#spanning-tree bpdufilter ?
disable Disable BPDU filtering for this interface
enable Enable BPDU filtering for this interface
sw2(config)#spanning-tree portfast bpdufilter default 全局开启
注:全局开启后,需要在上行链路接口手工关闭
保护与过滤不同:
1)保护和过滤除了对接口的处理方式不同
2)还存在一个区别保护是拒绝接收BPDU,但可以发送;过滤是收发均拒绝
[3]根网桥保护
若网络中增添了新的交换机,其BID最优;那么将抢占网络的根网桥,导致拓扑结构变化;
在接口开启根桥保活后,若交换机的接口接收到了更优BPDU时,将该接口阻塞;直到该接口不再收到更优BPDU才恢复;
sw2(config)#interface e0/0
sw2(config-if)#spanning-tree guard root 接口开启根网保护
开启根桥保护的接口,在接收到更优BPDU时,将阻塞;进入broken状态,显示与根不一致;
sw2#show spanning-tree interface ethernet 0/0 detail
Port 1 (Ethernet0/0) of VLAN0001 is broken (Root Inconsistent)
sw2#show spanning-tree
Et0/0 Desg BKN*100 128.1 Shr *ROOT_Inc
不一致接口在生成树列表中的显示
sw2#show spanning-tree inconsistentports 查看出现不一致的接口
Name Interface Inconsistency
VLAN0001 Ethernet0/0 Root Inconsistent
Number of inconsistent ports (segments) in the system : 1
总结:BPDU保护和过滤配置在所有的接入层连接PC接口;
Root 保护建议配置在新连接交换机的接口,来避免网络的重新收敛;
二、环路保护
单向链路故障—尤其在光纤网络,很可能出现可以接收但不能发送;一旦出现单向链路故障,网络及时存在STP,也依然可能出现环路
解决方法:
【1】UDLD --当一根网线出现单向链路故障时,直接关闭该接口
UDLD默认不在全局或任何接口下启用
【2】LOOP GUARD ----主要用来避免根端口或阻塞端口错误地过渡到转发状态而产生桥接环路的情况
开启后,仅针对BPDU包,识别为单向链路故障,先对该接口进行阻塞,然后自动恢复;
sw2(config)#interface e0/0
sw2(config-if)#spanning-tree guard loop 开启命令
总结:UDLD和loop gurad区别
1、UDLD被触发后,接口被err-disable;然后需要手工重启 或设置自动重启
Loop guard被触发后,自动阻塞然后恢复接口的
2、UDLD用于处理硬件的单向问题,loop guard被用于处理软件问题(接口拥塞,CPU过载)
建议两种技术均配置
注:在一个网络中,根网桥和网关最好放置于汇聚层设备上,且两种角色最好在一处;
因为两种角色都算一个广播域的中心点;
俩个三层交换机之间的连线为二层链路 不能属于三层交换网络(若为三层链路,该链路则会为新网段与相邻vlan网段不一致)
B到C:(此时上行的线路对于vlan 3为阻塞) 只能从B到vlan 3 的根网桥,然后再到vlan 2,之后到C
C返回B: (此时上行的线路对于vlan 2为阻塞)只能从C到vlan 2的跟网桥,然后再到vlan 3,之后到B
A到F:(vlan5 与F之间线路对于vlan2为阻塞) 先从A过vlan5到达vlan 2的根网桥,再返回vlan5,之后到F
F回A: F到vlan5 直接到A 没有阻塞可以直接路由
C到B: (B到vlan2 之间的线路对于vlan3是阻塞的)C到vlan3再到vlan2的根网桥,然后返回vlan 3再路由到B