交换机环路检测以及判断方法

📅 2026/7/13 4:56:11 👁️ 阅读次数 📝 编程学习
交换机环路检测以及判断方法

大型企业园区、数据中心,我们经常可能会遇到环路的情况,遇到该情况时,企业的整体网络会出现卡顿,一会好,一会卡,网络无法使用,造成整个企业的业务中断,对企业的正常生产经营带来的灾难,本文章从环路的发现,确定故障原因,及时终止环路以及项目中交换设备配置的最佳实践,另外附上华三、华为、锐捷三家产商交换机环路检测的配置案例。

一、环路故障的条件

1、大型全交换的的网络,生成树协议的使用;

原本交换网络中的生成树协议用在链路防环,生成树对数据传输链路进行环路修剪,做到了线路冗余和环路的避免,但是在实际的使用中根桥的不确定,随意接入交换设备,设备间线路的冗余等都有可能导致环路的产生。

2、接入交换机的环路检测功能未使用,造成环路流量上行,波及整个交换网络。

从接入测来看,由于接入的是终端设备,私拉乱接的情况非常严重,在这种环境下,我们可以配置交换机的环路检测,并对出现环路的情况进行端口block或者shutdown,从而减少环路的影响波及范围,同时对终端接入测接入带有stp协议的交换机,自接入测配置交换机bpdu防护,阻止交换机的异常接入。

二、环路的发现

1、环路生成过程中用到的协议:生成树协议、环路检测协议

(1)生成树协议

https://www.h3c.com/cn/d_200804/603182_30003_0.htm#_Toc331494792

(2)单机环路检测

设备自身的环路检测功能,当检测到设备本身出现环路的情况,将对现有的环路端口进行关闭(有三种模式,建议选择shutdown模式)

https://www.h3c.com/cn/d_202503/2386076_30005_0.htm

2、发现方式

(1)终端到网关的通讯状态

表现为终端到核心网关的出现间歇性的丢包或者网络中断,网络通讯异常,并表现为大面积的影响范围非一台机器的情况。

(2)交换机日志及流量

当配置了交换机环路检测的情况,日志会显示端口出现环路检测的状况,并出现关闭该端口的情况;其次交换机的端口出现流量饱和,超出历史使用流量的最高阈值。

出现mac地址漂移的情况,同一个mac地址在多个端口之间同时学习,来回切换次数暴增(在有无线终端接入的情况下,可能会出现mac地址在多个ap或者交换机之间来回切换的情况,这种情况需要区分开)

(3)交换机的物理内存和cpu的使用量发生变化

当出现环路时,交换机的cpu和内存出现暴增的情况,对排查者来看表现为终端登录卡顿,远程连接可能出现无法连接的情况。

(4)上层的交换机生成树状态的变化

如果未配置接入交换机的环路检测的功能,环路会随着vlan及交换机向上层交换设备泛洪,从而导致上层交换机或全局出实现环路的情况,在交换机日志中会出现生成树拓扑变更的情况。(通过拓扑变更的情况找到对应的交换机并排查)

三、故障定位

1、在核心交换机上查看日志情况及生成树转发情况,核心交换机作为生成树的根,是所有流量转发的根设备,经常性的接收到拓扑变更的情况,需要检查同步变更的源头交换设备,并登录到该设备上进行检查设备工作状态;

2、地址漂移的情况,固网的情况下,出现mac地址漂移次数暴增的情况,找到该漂移端口的具体位置及所接的设备,分级找到该设备的具体接入故障点;

3、找到环路设备或多余的线缆,需要确认后,将其关闭或者清除,整体网络才能恢复正常。

四、生成树协议和单机防环使用环境

1、生成树和单机防环的协议两者的工作原理不一样,生成树是协议级防环(主动协商阻塞),环路检测是机制级防环(被动检测流量回环),前者适用于复杂网络拓扑,后者专防接入层私接小交换机造成的微环。

2、生成树在3层网络中,通过生成树计算阻塞环路端口,实现数据的正常转发,阻止环路的发生,在实际环境中会通过计算阻塞掉一个端口,形成单一的数据流转数;

3、单交换机防环,通过检测本交换机上的流量回环,将发生回环的2个端口shutdown,从而阻止环路的发生,其他端口流量正常转发不会收到环路的影响。

概念及命令里表:

(1)生成树根桥、指定端口、根端口

(2)root-protection(防抢根桥)指定端口配置

(3)loop-protection(防单通环路)根端口配置

(4)edged-port(边缘端口,接主机或AP等)

(5)bpdu-protection(接入交换机,防止非授权交换机接入)

(6)loopback-detection(单体交换机防环)

五、项目中的最佳实践

三层环境:

1、核心交换机(数据中心)

(1)核心交换机建议开启生成树,并开启根桥,确认核心交换机的生成树核心交换地位;(默认:mstp)

[H3C]stp instance 0 root primary 全局开启 级别:4096 (默认交换机级别:32768)其他端口也就默认开启了stp协议

(2)其他指定端口开启根保护:root-protection

[H3C-GigabitEthernet1/0/1]stp root-protection(防止抢根,非授权交换机的接入)

2、汇聚交换机(楼宇汇聚交换设备)

(1)汇聚交换机开启生成树协议(命令同上)

(2)上联端口开启loop-protection(根端口开启防环)

(3)其他指定端口开启根保护:root-protection

3、接入交换机(纯粹终端接入)

(1)开启全局生成树协议

(2)其他端口开启单体交换机防环(loopback-detection)

(3)上联端口关闭单体防环

(4)其他端口配置bpdu-protection(有交换机接入的情况,关闭该选项,可以配置root-protection)

二层环境:(少了汇聚层,接入直接接入核心,常见于数据中心区域)

1、核心层(核心层配置如同上三层配置)

2、接入层(配置如同三层模式接入配置)

六、具体品牌交换机配置

1、H3C交换机

(1)核心交换机

启用生成树协议:[H3C]stp mode mstp (默认情况H3C交换机已经启用了MSTP协议)

启用并确定根桥:[H3C]stp instance 0 root primary

启用指定端口根防护:[H3C-GigabitEthernet1/0/1]stp root-protection

(2)汇聚交换机

启用生成树协议:[H3C]stp mode mstp (默认情况H3C交换机已经启用了MSTP协议)

启用上联根端口:[H3C-GigabitEthernet1/0/2]stp loop-protection

启用下联口根防护:[H3C-GigabitEthernet1/0/3]stp root-protection

(3)接入交换机

启用生成树协议:[H3C]stp mode mstp (默认情况H3C交换机已经启用了MSTP协议)

启用上联根端口:[H3C-GigabitEthernet1/0/4]stp loop-protection

启用其他端口本机防环:

【端口视图下开启环路检测】

#进入接口二,在SW1开启接口视图下所有vlan的环路检测。

<H3C>system-view

[H3C]interface gigabitethernet 1/0/2

[H3C-GigabitEthernet1/0/5] loopback-detection global enable vlan all

#接口二下配置环路检测处理的模式为端口shutdown。

[H3C-GigabitEthernet1/0/5] loopback-detection global action shutdown

[H3C-GigabitEthernet1/0/5]quit

#保存配置

[H3C]save force

启用其他边缘端口:[H3C-GigabitEthernet1/0/5]stp edged-port

启用其他端口BPDU防护:[H3C]stp bpdu-protection(全局开启)

[H3C]errdisable recovery cause bpdu-protection

[H3C]errdisable recovery interval 300

2、华为交换机

(1)核心交换机

system-view

sysname Core-Master

stp enable

stp mode mstp # 设置实例0为主根桥,优先级自动4096 stp instance 0 root primary

【核心 ↔ 汇聚 下联Trunk口(DP指定端口)】

interface GigabitEthernet0/0/1

port link-type trunk

port trunk allow-pass vlan all stp root-protection

(2)汇聚交换机

定位:上行连接核心,下联接入交换机

  1. 上行口:loop-protection,关闭环路检测
  2. 下联接入口:root-protection,关闭环路检测
  3. 汇聚交换机不配置 edge-port、bpdu-protection

【上行Trunk 连接核心】

interface GigabitEthernet0/0/24

port link-type trunk

port trunk allow-pass vlan all

stp loop-protection

undo loopback-detect enable

【下联接入交换机 Trunk口】

interface GigabitEthernet0/0/1

port link-type trunk

port trunk allow-pass vlan all

stp root-protection

undo loopback-detect enable

(3)接入交换机

全局默认边缘端口 + BPDU 保护

上行口取消边缘端口、配置 loop-protection、关闭环路检测

下行用户口开启 loopback-detect 自环检测

增加 errdisable 自动恢复

system-view

sysname Access

stp enable

stp mode mstp

stp region-configuration

region-name MST-A

revision-level 1

active

# 全部端口默认边缘端口

stp edged-port default

# 全局启用BPDU保护

stp bpdu-protection

# 配置error-disable自动恢复(BPDU保护触发端口关闭后自动恢复)

errdisable recovery cause bpdu-protection

errdisable recovery interval 300

# 【上联汇聚端口】

interface GigabitEthernet0/0/24

port link-type trunk

port trunk allow-pass vlan all

undo stp edged-port

stp loop-protection

undo loopback-detect enable

# 【下行终端端口 批量配置】

port-group group-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/23

port link-type access

loopback-detect enable

loopback-detect action shutdown

3、锐捷交换机

(1)核心交换机

configure terminal

sysname Core-Master

spanning-tree mode mstp

# MST域配置(全网必须相同)

spanning-tree mst configuration

name MST-A

revision 1

exit

# 设置实例0为主根桥

spanning-tree instance 0 root primary

# =========下联汇聚Trunk口(DP指定端口)=========

interface GigabitEthernet 0/1

switchport mode trunk

switchport trunk allowed vlan all

spanning-tree rootguard

(2)汇聚交换机

定位:上行核心、下联接入;不配置 portfast、bpduguard

configure terminal

sysname Agg

spanning-tree mode mstp

spanning-tree mst configuration

name MST-A

revision 1

exit

# =========上行连接核心=========

interface GigabitEthernet 0/24

switchport mode trunk

switchport trunk allowed vlan all

spanning-tree loopguard

no loop-detection enable

# =========下联接入交换机Trunk口=========

interface GigabitEthernet 0/1

switchport mode trunk

switchport trunk allowed vlan all

spanning-tree rootguard

no loop-detection enable

(3)接入交换机

重点:

  • 全局 portfast + bpduguard
  • 上行口关闭 portfast、开启 loopguard、关闭环路检测
  • 下行 Access 口开启 loop-detection 端口自环检测
  • 配置 errdisable 自动恢复

configure terminal

sysname Access

spanning-tree mode mstp

spanning-tree mst configuration

name MST-A

revision 1

exit

# 所有端口默认PortFast边缘端口

spanning-tree portfast default

# 全局开启BPDU保护

spanning-tree bpduguard enable

# errdisable自动恢复(bpduguard触发端口关闭后自愈)

errdisable recovery cause bpduguard

errdisable recovery interval 300

# =========上联汇聚Trunk口=========

interface GigabitEthernet 0/24

switchport mode trunk

switchport trunk allowed vlan all

no spanning-tree portfast

spanning-tree loopguard

no loop-detection enable

# =========批量下行用户端口=========

interface range GigabitEthernet 0/1-23

switchport mode access

loop-detection enable

loop-detection action shutdown

功能

锐捷命令

部署位置

作用

Root 根保护

spanning-tree rootguard

核心 / 汇聚下联交换机 Trunk 口(DP)

阻止下游设备抢占全网根桥

Loop 环路保护

spanning-tree loopguard

汇聚 / 接入上行 Trunk 口(RP/Alternate)

光纤单向通信故障防止环路

BPDU 保护

spanning-tree bpduguard enable

接入交换机(配合 portfast)

边缘端口收到 BPDU 直接 errdisable

端口环路检测

loop-detection enable

接入下行 Access 用户口

终端自环、私接傻瓜交换机

备注:spanning-tree mst configuration

name MST-A

revision 1

默认情况下:如果不手动配置实例映射,所有 VLAN 默认归属 instance 0(CIST 实例)

七、总结

通过以上分析,大型园区使用stp的情况下,通过stp和环路防护完全可以实现交换网络环路控制,减少业务的中断的风险,提高企业的经营效益。

2026-07-12

合肥