【运维小能手】交换机二层环路问题如何处理

news2024/12/27 12:18:36

1       网络业务故障,如何确认存在环路?

网络业务故障后,如发生二层环路,通常会存端口流量数据风暴和反复大量的MAC漂移现象。因此,在骨干链路所在的节点,通过如下三步操作:

图1:环路排查流程图

可以判断网络是否可能存在二层环路。

1.1     第一步:是否可以通过端口流量发现数据风暴?

通过display interface brief命令,查看所有接口下的流量,存在环路的接口上InUti和OutUti两个计数会逐步增加:

第一次查询:

[151]disp interface Ethernet brief | in up

PHY: Physical

*down: administratively down

(l): loopback

(b): BFD down

InUti/OutUti: input utility/output utility

Interface                  PHY   Auto-Neg Duplex Bandwidth InUti OutUti   Trunk

GigabitEthernet0/0/2        up    enable   full       100M  0%  0.01%    --

GigabitEthernet0/0/16       up    enable   full       1000M 0.56%  0.56%     1

GigabitEthernet1/0/12       up    enable   full       1000M 0.56%  0.56%     1

MEth0/0/1                up    enable   half       100M  0.01%  0.01%  --

最后一次查询:

[151]disp interface Ethernet brief | in up

PHY: Physical

*down: administratively down

(l): loopback

(b): BFD down

InUti/OutUti: input utility/output utility

Interface                  PHY   Auto-Neg Duplex Bandwidth InUti OutUti   Trunk

GigabitEthernet0/0/2        up    enable   full       100M  0%  0.01%    --

GigabitEthernet0/0/16       up    enable   full       1000M 76%  76%     1

GigabitEthernet1/0/12       up    enable   full       1000M 76%  76%     1

MEth0/0/1                up    enable   half        100M 0.01% 0.01%  --

一般情况下,查询只能看到网络的当前流量结果,此时需要和网络的正常业务流量进行比较,业务流量的带宽可以从客户的网络流量监控图获取。

如果只有一台设备的一个端口出入方向流量较大,可能是单端口环回。

如果只有一台设备的两个端口流量较大,可能是本设备两个端口环回;

如果某端口只有单方向流量,只有出或者只有入,需要重点排查,因为环路有可能在该端口的上下游设备。
 

通常情况下:

如果当前网络流量远大于正常业务,可能存在二层环路。

如果当前网络流量正常,没有部署广播抑制,没有二层环路。

如果当前网路流量比正常流量稍大,且部署了广播抑制,需要继续后面的第二步和第三步操作。

1.2     第二步:是否可以通过MAC-Flapping检测漂移?

MAC地址漂移即设备上一个接口学习到的MAC地址在同一VLAN中另一个接口上也学习到,后学习到的MAC地址表项的覆盖原来的表项。

导致MAC地址漂移的因为包括网络存在环路、或者非法用户进行网络攻击。

例如下图,当Switch1向两个方向同时发报文时,在Switch2上的两个不同端口都会收到该报文,从而出现MAC地址漂移。当Switch2的两个端口出现了MAC地址漂移时,说明交换机的两个端口间可能出现了环路。

图2:MAC-Flapping示意图

MAC地址漂移,交换机所有形态和版本均默认支持漂移,具体的MAC漂移配置主要是指漂移后是否告警,漂移后是否设置端口堵塞的功能。

由于框式交换机和盒式交换机MAC漂移检测的命令行和检测存在差异,我们分别介绍:

1.2.1  框式交换机

V1R2版本,在非S系列单板上支持全局使能的MAC-Flapping检测功能(全局使能,只支持发送TRAP)。

在V1R2上,开启MAC地址漂移检测:

[Quidway]mac-flapping alarm enable

V1R3及以后的版本,在V1R2版本的基础上,新增了基于VLAN的MAC地址漂移检测、检测到MAC地址漂移后执行对应的动作策略。

在V1R3及以后的版本上,开启MAC地址漂移检测(下面两个命令均可使用):

系统视图下:[Quidway]loop-detect eth-loop alarm-only

VLAN视图下:[Quidway -vlan1001]loop-detect eth-loop alarm-only

1.2.2  盒式交换机

盒式交换机(不包括23、27系列)V1R3及以后版本,不支持全局使能的MAC地址漂移检测,只支持基于VLAN的MAC地址漂移检测,同时支持检测到漂移后的发送TRAP、阻塞端口等动作。

开启MAC地址漂移检测:

VLAN视图下:[Quidway -vlan1001]loop-detect eth-loop alarm-only

1.3     第三步:设备作为三层网关,是否存在大量ARP报文被CPCAR丢包记录?

<dgg62aslhwug>disp clock

2011-11-30 20:04:32

Wednesday

Time Zone : BJ add 08:00:00

<dgg62aslhwug>disp cpu-defend  arp-request statistics  slot 3

 CPCAR on slot 3

-------------------------------------------------------------------------------

Packet Type         Pass(Bytes)  Drop(Bytes)   Pass(Packets)   Drop(Packets)

arp-request            91720644  61001339156         1348833       897078517

-------------------------------------------------------------------------------

<dgg62aslhwug>disp cpu-defend  arp-reply statistics  slot 3

 CPCAR on slot 3

-------------------------------------------------------------------------------

Packet Type         Pass(Bytes)  Drop(Bytes)   Pass(Packets)   Drop(Packets)

arp-reply             381073700  46925484540         5604025       690080655

-------------------------------------------------------------------------------

<dgg62aslhwug>disp clock

2011-11-30 20:04:35

Wednesday

Time Zone : BJ add 08:00:00

<dgg62aslhwug>disp cpu-defend  arp-request statistics  slot 3

 CPCAR on slot 3

-------------------------------------------------------------------------------

Packet Type         Pass(Bytes)  Drop(Bytes)   Pass(Packets)   Drop(Packets)

arp-request            91728872  61001759940         1348954       897084705

-------------------------------------------------------------------------------

<dgg62aslhwug>disp cpu-defend  arp-reply statistics  slot 3

 CPCAR on slot 3

-------------------------------------------------------------------------------

Packet Type         Pass(Bytes)  Drop(Bytes)   Pass(Packets)   Drop(Packets)

arp-reply             381082540  46925484540         5604155       690080655

-------------------------------------------------------------------------------

通常情况下,ARP的交互是有序进行,短时间内不会出现超多报文的丢弃。

问题一般发生在9300作为汇聚网关场景,出现上述情况后,可能的原因是ARP的广播报文在物理环形的网络中转发,形成协议报文的风暴,当前设备上送CPU,被交换机CPU限速丢弃。

1.4     第四步,当前是否可以增加配置环路检测发现环路?

框式交换机和盒式交换机都支持检测环,框式交换机的环路监测称为Loop Detection;盒式交换机的环回监测称为Loopback Detection。

1.4.1  Loop Detection(框式)

框式交换机端口配置Loop Detection功能以后,设备会从该端口发送环路检测报文,在端口所属且使能Loop Detection功能的VLAN内进行环路检测,如果设备接收到自己发送的检测报文,网络上存在环路。

框式交换机上的环路监测能检测到下面两种情况下的端口环路:

1、  设备上端口收到本端口发送的检测报文。

2、  设备上端口收到非本端口发送的检测报文。

开启了Loop Detection以后,用display loop-detection命令可以查看当前环路检测的状态,用display loop-detection interface命令可以查看具体某一个端口的状态。

<Quidway> display loop-detection

Loop Detection is enable.

Detection interval time is 5 seconds.

Following vlans enable loop-detection:

 vlan  556

Following ports are blocked for loop:

NULL

Following ports are shutdown for loop:

NULL

Following ports are nolearning for loop:

NULL

<Quidway> display loop-detection interface gigabitethernet 1/0/0

The port is enable.

The port's status list:

Status              WorkMode            Recovery-time       EnabledVLAN

-----------------------------------------------------------------------

Normal              Shutdown            200                 556

1.4.2  Loopback Detection(盒式)

盒式交换机端口配置Loopback Detection功能以后,设备会从该端口发送环路检测报文,一个untagged报文和指定VLAN Tag报文。盒式交换机的Loopback Detection,只能针对设备上端口收到本端口发送的检测报文的环路。

开启了Loop Detection以后,用display loop-detection命令可以查看环路检测功能的配置信息和接口状态信息。

<Quidway> display loopback-detect

Loopback-detect is enabled in the system view

Loopback-detect interval: 30              

Loopback-deteck sending-packet interval:  5

Interface                ProtocolID  RecoverTime    Action    Status

--------------------------------------------------------------------------------

GigabitEthernet0/0/2     602          30            block     NORMAL

2       环路问题发生后,如何快速破环?

以太网的环路,会在短时间内形成数据风暴,当端口的流量达到带宽的最大负荷,会形成链路拥塞,影响网络业务。因此,在确认网络发生数据环路后,请按照如下步骤处理:

2.1     第一步:是否理解网络业务并明确拓扑?

环形网络拓扑一般较为复杂,可以向客户寻求网络拓扑结构全图,具体到网络的VLAN规划信息,每台设备名称、系统MAC、管理IP,本端端口名称、对端端口名称。

完整的拓扑信息是解决环路问题的首要条件,如果没有拓扑图,需要从发现环路的设备,通过逐跳登陆,记录设备信息、端口信息和VLAN信息,手动绘制完整的拓扑。     

2.2     第二步:是否需要用影响最小的方法破环?

紧急破环又称手动破环,当网络风暴严重影响正常的业务时,需要在尽快恢复业务。

可以通过如下三个方法紧急破环:

(注意紧急破环不要影响远程telnet路径所在的设备、端口和VLAN,避免无法登陆。)

2.2.1  方法一:端口退出成环VLAN破环

将成环的网络上,其中一个端口退出成环VLAN,属于影响面最小的方法。

端口

命令行

备注

Access

undo default vlan

可能影响下游业务。

Trunk

undo port trunk allow-pass vlan id

Hybrid

undo hybrid vlan id

不区分tagged和untagged

备注:需要注意不要shutdown远程telnet路径所在的端口,避免无法远程登陆。

2.2.2  方法二:shutdown成环端口破环

Shutdown成环的物理端口,也可以达到破环的效果。

此时,需要保证shutdown的端口两端在全部VLAN内能够通信。

2.2.3  方法三:通过拔出成环光纤破环

通过拔出成环的光纤,可以紧急破环。

备注:该方法可以使用shutdown端口代替,只有在设备无法登陆时才使用。

2.3     第三步:操作后确认业务是否恢复?

通过ping等测证网络通信质量,并和客户一起观察现网业务是否已经恢复。

环路拓扑存在冗余链路和配置,环路破除后业务会自行恢复,特殊情况在此不一概而论。

3       环路问题发生后,如何定位问题根因?

3.1     第一步:是否由于近期施工操作引入环路?

如果环路问题是由于近期施工操作引入,可以和施工方确认,了解施工的过程,特别是新增线路连接的细节,结合拓扑结构,确认后排出物理环路。

3.2     第二步:是否由于近期修改配置引入的环路?

常见的容易配置引入环路的命令行如下:

特性

命令行

成环原因

应对方案

接口管理

Undo shutdown

端口进入转发引入环路。

关闭端口或者部署破环协议

STP

Bpdu enable

盒式交换机端口下需要使能bpdu enable命令才能接收并处理STP报文。

配置命令(V1R6及以后版本已默认使能)

框式交换机端口下需要去使能该命令,交换机才不会透传STP报文。

删除命令

bpdu bridge enable

使能该命令会导致STP报文透传,无法上送处理。

删除命令

bpdu-tunnel stp bridge role provider

使能该命令会导致STP无法处理报文。

删除命令

RRPP

Rrpp enable

全局不配置rrpp enable,无法计算堵塞端口破环。

配置命令

SmartLink

Smartlink enable

SmartLink组模式下不使能该命令,无法计算堵塞端口。

配置命令

3.3     第三步:是否典型的常见环路问题?

3.3.1  交换机自环出现环路

前置条件:交换机未配置STP和LDT

问题现象:端口出方向和入方向流量持续增加。

问题原因:端口自环或者链路环回。

处理方法:

1、首先在端口下去使能loopback internal。

2、设备由于链路引入环路有两种:

一种是单端口收发环回。第二种是设备上两个端口环路。

         此类环路造成的原因是光纤或者网线误接,需要拆除连线。

3.3.2  交换机下游设备自环出现环路

前置条件:设备未部署STP和LDT,本设备未环回。

问题现象:端口入方向和出方向流量持续增大,环回链路在下游。

问题原因:下游链路环回或者自环。

处理方法:

1、首先逐跳向下游寻找环路的链路。

1、然后在端口下去使能loopback internal。

2、设备由于链路引入环路有两种:

一种是单端口收发环回。第二种是设备上两个端口环路。

此类环路造成的原因是光纤或者网线误接,需要拆除连线。

3.3.3  环形组网链路震荡导致环收敛震荡

前置条件:设备部署STP、RRPP、SEP或者SMLK等破环协议。

问题现象:环路一段时间收敛正常,一段时间收敛失败,或者持续震荡。

问题原因:网络上链路存在震荡,导致环网协议报文转发失败,反复超时震荡。如:

1、链路存在错包,协议报文被丢弃。
2、未知单播抑制、不合理的qos等配置丢弃协议报文。

处理方法:

1、  如因为错包丢弃,建议更换问题网线、光纤或者光模块。

2、  如因为被抑制丢包,建议修改单播抑制和不合理的Qos配置。

3、  观察当前网络带宽,确认是否是网络流量拥塞,导致协议报文丢失,超时放开堵塞端口导致临时环路,此类问题需要进行网络优化。

3.3.4  环形组网寄存器下发失败无法破环

前置条件:物理环路,协议已经破环。

问题现象:网络数据风暴

问题原因:软件计算堵塞端口正确,但是芯片下发失败。

处理方法:此类问题极其少见,可以通过shutdown、undo shutdown期望的堵塞端口,观察协议是否收敛成功。

3.3.5  链路单通引入RRPP网络单向环

 

前置条件:RRPP组网

问题现象:RRPP堵塞端口超时放开

问题原因:RRPP心跳检测方向,链路单通。

处理方法:解决单通链路问题。

        

该问题有两个规避方法:

1、链路自协商,链路质量较差的情况下,链路单通无法协商UP,无单通问题。

2、通过在链路上部署DLDP检测协议,检测到链路单通后,会完全shutdown两侧的端口,解决单向环环路问题。

3.3.6  协议堵塞的端口L2PT(bpdu-tunnel)协议报文成环

 

前置条件:二层网络环路收敛正常,堵塞端口状态下发正常

         问题现象:disp l2protocol-tunnel statistics查看到报文增加很快,软转发成环。

         问题原因:由于堵塞端口软件转发L2PT(bpdu-tunnel)协议报文,未判断端口是否堵塞,从堵塞端口发送L2PT报文,引起的L2PT报文成环,

         处理方法:R6以前版本需要加载最新的补丁解决问题。V1R6C00SPC900解决该问题。

3.3.7  下游设备报文转发异常导致疑似环路

20160829103244614009.png

图9:报文转发异常导致环路

前置条件:二层网络环路收敛正常,堵塞端口状态下发正常

问题现象:在LSW3形成频繁的MAC-Flapping,出现疑似环路问题。

问题原因:二层网络的边缘设备,由于个别厂家实现差异,对于无法处理的报文,会反弹转发,常见的设备有机顶盒等。

处理方法:由于报文反弹,此类问题需要更换边缘设备解决。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/857237.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

向量检索在大模型应用场景的技术和实践

一、向量检索应用简介 向量是多维数学空间里的一个点&#xff0c;在各维度上的坐标的一串数字。这个点就是来源于真实世界的物体进行数字化之后在数学空间的投影。那么不同点之间有一个数学关系&#xff0c;就是距离&#xff0c;距离远近就代表两个物体的相似程度。 非结构化数…

Semantic and Syntactic Enhanced Aspect Sentiment Triplet Extraction

创新点 图-序列双重表示: 通过将句子中的语义和句法关系表示为图&#xff0c;并使用图神经网络&#xff08;GNNs&#xff09;进行编码&#xff0c;同时保留原始句子的顺序信息&#xff0c;S3E2能够更精确地捕捉三元组元素之间的复杂关系。许多传统方法可能只依赖于线性或浅层表…

分支和循环语句(1)(C语言)

目录 什么是语句&#xff1f; 分支语句&#xff08;选择结构&#xff09; if语句 悬空else if书写形式的对比 switch语句 在switch语句中的 break default子句 循环语句 while循环 while语句中的break和continue for循环 语法 break和continue在for循环中 for语句和…

vue3 vite gzip

1、首先前端项目里安装 vite-plugin-compression 插件 yarn add vite-plugin-compression 2、在 vite.config.js 中 import vue from vitejs/plugin-vue import { defineConfig } from vite import compressPlugin from vite-plugin-compressionexport default defineConf…

【TI毫米波雷达笔记】sdk传参时的type避坑

【TI毫米波雷达笔记】sdk传参时的type避坑 这个函数要传一个结构体进去 然后结构体里面有个adcoutcfg结构体变量 adcoutcfg结构体里面共有三个变量 一个adcbitformat结构体 另外两保留 点开adcbitformat结构体发现是个32位段 一共四级结构体 那么请问 为什么adcoutcfg变量不直…

管理类联考——逻辑——论证逻辑——汇总篇——真题和典例——支持

支持 没有特点的 199-2017-1-30——支持论点 离家300米的学校不能上&#xff0c;却被安排到2千米外的学校就读&#xff0c;某市一位适龄儿童在上小学时就遭遇了所在区教育局这样的安排&#xff0c;而这一安排是区教育局根据儿童户籍所在施教区做出的。根据该市教育局规定的“…

科技前沿:一文带你读懂“星闪点亮万物互联”

目录 一、星闪简介 二、星闪技术的模式 三、星闪技术六大优势 四、应用场景 智能汽车 智能工业 智能穿戴 智能家居 智能终端 一、星闪简介 星闪NearLink是由中国信通院牵头发起的星闪联盟&#xff08;NearLink Alliance&#xff09;推出的一种新一代近距离无线连接技…

什么是DNS欺骗及如何进行DNS欺骗

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、什么是 DNS 欺骗&#xff1f;二、开始1.配置2.Ettercap启动3.操作 总结 前言 我已经离开了一段时间&#xff0c;我现在回来了&#xff0c;我终于在做一个教…

Spring Boot集成Mybatis Plus通过Pagehelper实现分页查询

文章目录 0 简要说明Pagehelper1 搭建环境1.1 项目目录1.2 项目搭建需要的依赖1.3 配置分页插件拦截器1.4 源代码启动类实体类数据层xml映射文件业务层业务层实现类控制层接口配置swagger请求体 2 可能出现的疑问或者问题2.1 关于total属性疑问2.2 分页不生效问题 3 案例说明3.…

【高危】 Zoom Desktop Client for Windows <5.14.5 权限升级漏洞

漏洞描述 Zoom 是一种用于视频会议、在线会议和远程协作的软件平台。 Zoom Desktop Client for Windows 5.14.5 之前版本由于对数据的真实性验证不足&#xff0c;经过身份验证的攻击者可通过网络访将权限升级为 SYSTEM 用户。 漏洞名称Zoom Desktop Client for Windows <…

IDEA如何调试Stream API

Stream API现在在实际开发中应用非常广泛&#xff0c;经常会遇到需要调试Stream API的场景&#xff0c;这篇文章主要讲解如何使用IDEA调试Stream Testpublic void test(){Stream.of(10, 20, 30, 40, 50).mapToInt(e->e*10).filter(e->e>200).forEach(System.out::pri…

docker基本使用方法

docker使用 1. Docker 介绍 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。Docker 使您能够将应用程序与基础架构分开&#xff0c;从而可以快速交付软件。通过利用 …

Blockchain投资:是否是实现财务自由的捷径?

随着Blockchain技术的不断发展和应用&#xff0c;越来越多的人开始探索Blockchain投资的机会。Blockchain作为一种分布式记账技术&#xff0c;以其去中心化、透明性和安全性等特点&#xff0c;吸引了众多投资者的关注。但是&#xff0c;Blockchain投资是否真的可以成为实现财务…

unity 修改默认脚本

using System.Collections; using System.Collections.Generic; using UnityEngine; //***************************************** //创建人&#xff1a; xxxx //功能说明&#xff1a; //***************************************** #ROOTNAMESPACEBEGIN# public class #SCRI…

0基础学习VR全景平台篇 第82篇:智慧眼-角色是什么?如何运用呢?

一、功能说明 角色是指城市运营工作开展时所需要设定的成员职称或者人物定位&#xff0c;如管理员、督察员、镇街主管、镇接干事、网格员等等。 后台编辑界面 点击【新增】&#xff0c;填写角色的名称&#xff0c;若有上级&#xff0c;还需选择对应的父级角色。如管理员为最…

Python(七十五)集合的生成式

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

山东布谷科技直播软件源码探索高效、稳定直播传输的技术介绍:流媒体传输技术

今天我们探索的是让直播软件源码平台在直播时能够高效、稳定的进行直播传输的技术&#xff0c;而这个技术就是直播软件源码平台的流媒体传输技术&#xff0c;在直播软件源码平台中&#xff0c;流媒体传输技术会将直播的图像、视频、音频等相关的流媒体信号通过网络传递到用户的…

SQL-每日一题【1251. 平均售价】

题目 Table: Prices Table: UnitsSold 编写SQL查询以查找每种产品的平均售价。average_price 应该四舍五入到小数点后两位。 查询结果格式如下例所示&#xff1a; 解题思路 1.题目要求查询每种产品的平均售价。给出了两个表&#xff0c;我们用聚合查询来解决此问题。 2.首先我…

从 OBJ 到 FBX:图扑新一代飞机模型、动画、漫游

相信大多数图扑 HT 用户都曾见过这个飞机的 Demo&#xff0c;在图扑发展的这十年&#xff0c;这个 Demo 是许多学习 HT 用户一定会参考的经典 Demo 之一。 这个 Demo 用简洁的代码生动地展示了 OBJ 模型加载、数据绑定、动画和漫游等功能的实现。许多用户参考这个简单的 Demo 后…

通过Shinami快速使用赞助交易(Gas代付)

Web3中对钱包和tokens的要求对于新用户来说是最大的挑战。Sui上的赞助交易不仅为用户提供丝滑的体验&#xff0c;还为构建者开辟了更多的收入模式。 按需付费的区块链模型直接支持网络基础设施&#xff0c;但对于那些已经习惯了Web2世界中看似免费服务的用户来说&#xff0c;这…