在运行生成树协议的网络中,根端口和其他阻塞端口状态是依靠不断接收来自上游设备的BPDU维持。当由于链路拥塞或者单向链路故障导致这些端口收不到来自上游交换设备的BPDU时,设备会重新选择根端口。原先的根端口会转变为指定端口,而原先的阻塞端口会迁移到Forwarding状态,从而造成网络中产生环路。
STP环路保护功能是生成树协议中的一个增强功能。启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游设备的BPDU报文,根端口和Alternate端口不会切换到Forwarding状态,从而不会在网络中形成环路。直到链路不再拥塞或单向链路故障恢复,端口重新收到BPDU报文进行协商,并恢复到链路拥塞或者单向链路故障前的角色和状态。
环路保护是如何工作的?
通过在交换设备上部署生成树协议STP(Spanning Tree Protocol)、快速生成树协议RSTP(Rapid Spanning Tree Protocol)、多生成树协议MSTP(Multiple Spanning Tree Protocol)或基于VLAN的生成树协议VBST(VLAN-Based Spanning Tree)可以破除二层网络环路。某些情况下,运行生成树协议设备的阻塞端口迁移到Forwarding状态时可能导致网络环路,而环路保护功能可以避免这一情况。
当网络中的设备部署了生成树协议时,设备间通过交互BPDU(Bridge Protocol Data Unit)报文计算生成无环的网络拓扑。设备通过不断更新并交互BPDU报文,计算决定部分接口阻塞流量,从而破除网络环路;部分接口成为根端口并转发流量等。
当链路拥塞或者单向链路故障时可能导致阻塞端口接收不到BPDU报文,这时阻塞端口会迁移到Forwarding状态,网络中会出现环路。
当环路保护功能使能后,生成树协议会检测根端口和Alternate端口是否能接收到BPDU报文。使能环路保护功能的端口如果接收不到BPDU报文,该端口不会迁移到Forwarding状态而是一直保持在Discarding状态,这样可以避免产生环路。
如图所示,例如当BP2-CP1之间的链路发生拥塞时,DeviceC由于根端口CP1在超时时间内收不到来自上游设备的BPDU报文,Alternate端口CP2转变成了根端口且处于Forwarding状态,根端口CP1转变成指定端口且处于Forwarding状态,导致网络中形成了二层环路。启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游设备的BPDU报文,根端口或Alternate的端口角色会正常转变,但端口状态不会迁移到Forwarding状态而是保持在Discarding状态不转发报文,从而不会在网络中形成环路。直到链路不再拥塞或单向链路故障恢复,端口重新收到BPDU报文进行协商,并恢复到链路拥塞或者单向链路故障前的角色和状态。
链路发生拥塞情况拓扑的变化
环路保护和STP有什么区别?
生成树协议是一种破环协议,可以破除二层网络环路。环路保护是生成树协议中的一个增强功能,可以防止端口因收不到上游交换设备的BPDU报文而产生环路。
除了环路保护功能,生成树协议还支持根保护、BPDU保护等增强功能。
- 根保护:由于维护人员的错误配置或网络中的恶意攻击,网络中合法根桥有可能会收到优先级更高的BPDU,使得合法根桥失去根地位,从而引起网络拓扑结构的错误变动。通过根保护可以避免此类问题。启用根保护功能的指定端口收到优先级更高的BPDU时,端口将进入Discarding状态,不再转发报文。经过一段时间,如果端口一直没有再收到优先级更高的BPDU,端口会自动恢复到正常的Forwarding状态。这样可以避免网络中根桥错误切换。需要注意的是,根保护功能仅在指定端口上生效。根保护功能和环路保护功能不能同时配置在同一端口。
- BPDU保护:在边缘端口上部署BPDU保护功能。当边缘端口收到BPDU报文,边缘端口将被error-down,但保持边缘端口属性不变,这样可以避免边缘端口收到攻击者发送的BPDU报文引起的网络拓扑变更、业务流量中断。
相关文章推荐(点击查看):
-
STP——RSTP快生成树协议讲解
-
【实验】配置STP
-
【干货】STP二层防环机制详解
-
【技术】华为HCIE实验之STP