【二层环路】交换机二次原路排查思路

以太网交换网络中为了提高网络可靠性,通常会采用冗余设备和冗余链路,然而现网中由于组网调整、配置修改、升级割接等原因,经常会造成数据或协议报文环形转发,不可避免的形成环路。如图1所示,三台设备两两相连就会形成环路。当设备未部署环路保护协议或者组网配置发生变更时,环形组网中就可能会产生广播风暴。

图1 以太网交换网络冗余链路组网图

二层环路最大的危害就是会产生广播风暴,以太网是一个支持广播的网络,在没有环路的环境中,广播包在网络中以泛洪的形式被送达到网络的每一个角落,以保证每个设备都能够接受到它。在带宽允许的情况下,每个网桥在接收到广播报文以后,都会向除接收端口以外的其他所有接口转发这个广播包,一旦网络中有环路,这种简单的广播机制就会引发灾难性后果。

环路中一个广播报文被反复转发了千万次,产生了广播风暴并且很快达到或接近端口线速,并迅速消耗链路带宽。根据转发规则,这些广播报文不仅仅只是在环路上无限转发,环路设备还会向其他端口转发一份,这样整个网络中都充斥着大量重复广播报文。如果全网络都采用千兆端口互连,那么几乎每一条链路上都充斥着1000M/s的广播报文,正常的数据报文将很难再获得转发的机会。

二层网络设备处于同一个广播域下,广播报文在环路中会反复持续传送,无限循环,形成广播风暴,引发MAC地址表不稳定等故障现象,进而影响正常业务,导致用户通信质量较差,甚至通信中断。

为防止环路出现,并保证网络的可靠性,交换机设备上通常会部署一些破环协议。目前S系列交换机支持的二层环路破环协议主要有:

  • STP/RSTP/MSTP
  • RRPP
  • SEP
  • Smart Link
  • ERPS

除了二层环路破环协议,S系列交换机同时支持环路检测技术,主要的环路检测技术有:

  • Loop Detection
  • Loopback Detection

本文将主要介绍如何识别二层网络的环路问题以及常见处理方法。

总体思路

所有故障皆“事出有因”,故障的发生一定是在一个稳定的正常运行的网络中,某一网络环节发生了变化而引起的,这些诱发网络产品生故障的变化包括:

  • 网络调整:包括但不限于组网调整、配置修改、升级割接等操作;
  • 网络环境发生变化:包括但不限于网络风暴、特定节日/促销活动/智能终端导致用户行为变化,网络设备电源/温度环境发生变化、传输光缆被切断、夏令时跳变、微波受大雨/大雾等其后影响、洪水/火灾/地震/雷击等外界不可抗力;
  • 网络设备发生故障:包括但不限于软件发生缺陷、硬件老化故障(单板异常、光纤光模块故障)等。

所有这些诱发故障的内在因素绝大多数都有其“外在异常表现”,具体会反映在特定网元的告警、日志、流量统计、端口状态等信息中。因此故障快速定位的关键在于,如何有效而快速的通过事发时间、影响范围、所做操作及故障网络范围的网元基本信息的查看,快速发现这些“外在异常表现”所在的点,进而锁定故障网元节点,找出问题根因。

如下图所示,网络中出现二层环路通常会有如下现象,如果分析现网问题发现存在以下异常表现中的一个或者多个,则网络中存在二层环路可能性较大。

图2 二层环路常见异常表现

环路故障诊断步骤

判断网络中是否存在二层环路,一般可以使用查看接口带宽流量、查看MAC漂移告警、部署环路检测、查看CPU占用率四种方法进行确认。这四种方法没有严格的操作顺序,为更加准确判断故障属性,可以使用其中的一种或多种方法来进行问题定位。

图3 环路故障诊断步骤

查看接口带宽流量

  1. 检查端口带宽流量简要信息。

    通过display interface brief命令,查看所有接口下的流量,存在环路的接口上InUi和OutUi两个计数会逐步增加至端口速率上限。

    第一次查询:

    <span style="color:#333333"><span style="background-color:#dddddd"><HUAWEI> <strong>display interface brief | include up</strong> PHY: Physical                                                                   
    *down: administratively down                                                    
    ^down: standby                                                                  
    ~down: LDT down                                                                 
    #down: LBDT down                                                                
    (l): loopback                                                                   
    (s): spoofing                                                                   
    (E): E-Trunk down                                                               
    (b): BFD down                                                                   
    (e): ETHOAM down                                                                
    (dl): DLDP down                                                                 
    (d): Dampening Suppressed                                                       
    (ld): LDT block                                                                 
    (lb): LBDT block                                                                
    InUti/OutUti: input utility/output utility 
    Interface                   PHY   Protocol  InUti OutUti   inErrors  outErrors  
    Ethernet0/0/0/0             up    up        0.01%  0.01%          0          0  
    GigabitEthernet0/0/2        up    up        0.01%  0.01%          0          0 
    <span style="color:#ff0001">GigabitEthernet0/0/16       up    up        0.01%  0.56%          0.56%      0</span>
    <span style="color:#ff0001">GigabitEthernet1/0/12       up    up        0.01%  0.56%          0.56%      0</span></span></span>

    最后一次查询:

    <span style="color:#333333"><span style="background-color:#dddddd"><HUAWEI> <strong>display interface brief| include up</strong>  PHY: Physical                                                                   
    *down: administratively down                                                    
    ^down: standby                                                                  
    ~down: LDT down                                                                 
    #down: LBDT down                                                                
    (l): loopback                                                                   
    (s): spoofing                                                                   
    (E): E-Trunk down                                                               
    (b): BFD down                                                                   
    (e): ETHOAM down                                                                
    (dl): DLDP down                                                                 
    (d): Dampening Suppressed                                                       
    (ld): LDT block                                                                 
    (lb): LBDT block                                                                
    InUti/OutUti: input utility/output utility 
    Interface                   PHY   Protocol  InUti OutUti   inErrors  outErrors  
    Ethernet0/0/0/0             up    up        0.01%  0.01%          0          0  
    GigabitEthernet0/0/2        up    up        0.01%  0.01%          0          0 
    <span style="color:#ff0001">GigabitEthernet0/0/16       up    up          76%    76%          0          0</span>
    <span style="color:#ff0001">GigabitEthernet1/0/12       up    up          76%    76%          0          0</span></span></span>

    一般情况下,使用此命令查询只能看到当前网络的流量结果,此结果需要和网络的正常业务流量进行比较,业务流量的带宽可以从网管设备上的网络流量监控图中获取。

    • 通过下面简单的判断,可以初步确定有没有环路存在。
      • 如果当前网络流量远大于正常业务,可能存在二层环路。
      • 如果当前网络流量正常,且没有部署广播抑制(接口下未配置命令broadcast-suppression percent-value | cir cir-value [ cbs cbs-value ] | packets packets-per-second }),则没有二层环路。
      • 如果当前网路流量比正常流量稍大,且部署了广播抑制,则需要通过查看MAC地址漂移进一步判断。
    • 通过观察设备流量大的端口个数和流量出入方向,也可以进行如下初步判断。
      • 如果只有一台设备的一个端口出入方向流量较大,可能属于交换机单端口自环出现环路。
      • 如果只有一台设备的两个端口流量较大,可能属于交换机双端口环路导致协议震荡。
      • 如果某端口只有单方向流量较大,即只有出方向流量大或者只有入方向流量较大,则需要重点排查,因为环路有可能在该端口的上下游设备,属于下游设备报文转发异常导致伪环路问题。

      上述步骤在确认可能是环路的情况下,可以通过如下步骤进一步判断确认环路是否的确存在。

  2. 查看带宽异常的接口详细信息。

    为排除先前报文统计数对故障判断的影响,在征询客户同意的前提下,您可以在用户视图执行命令reset counters interface [ interface-type interface-number ] ],先清除指定接口的统计信息。

    任意视图下执行命令display interface interface-type [ interface-number ] ],或接口视图下执行命令display this interface,查看接口当前运行状态详细信息。具体可查看回显信息中的BroadcastMulticast和字段,以观察接口出入方向是否有大量的广播和组播报文计数。

    如果存在某些接口的收发广播/组播报文数明显大于同一设备其他接口的收发广播/组播报文数,则存在环路的可能性很大;否则,请执行查看MAC地址漂移进一步判断。

    <span style="color:#333333"><span style="background-color:#dddddd"><HUAWEI> <strong>display interface XGigabitEthernet 2/0/1 </strong>                                          
    XGigabitEthernet2/0/1 current state : UP                                        
    Line protocol current state : UP                                                
    Description:                                                                    
    Switch Port, PVID :    1, TPID : 8100(Hex), The Maximum Frame Length is 9216    
    IP Sending Frames' Format is PKTFMT_ETHNT_2, Hardware address is 00e0-fc01-38f9 
    Last physical up time   : 2010-12-15 14:24:47 UTC-03:00                         
    Last physical down time : 2010-12-15 14:23:54 UTC-03:00                         
    Current system time: 2010-12-15 19:13:33-03:00                                  
    Port Mode: COMMON FIBER, Transceiver: 10GBASE_SR_SFP                            
    Speed : 10000,  Loopback: NONE                                                  
    Duplex: FULL,   Negotiation: DISABLE                                            
    Mdi   : NORMAL, Flow-control: DISABLE                                           
    Last 300 seconds input rate 1432 bits/sec, 1 packets/sec                        
    Last 300 seconds output rate 1272 bits/sec, 1 packets/sec                       
    Input peak rate 12390544 bits/sec, Record time: 2010-12-15 14:31:02             
    Output peak rate 11624 bits/sec, Record time: 2010-12-15 14:24:48               Input:  3804624 packets, 578247577 bytes                                        Unicast:                    3784099,  <strong>Multicast</strong>:                       20524  <strong>Broadcast</strong>:                        1,  Jumbo:                               0  Discard:                          0,  Pause:                               0  Frames:                           0                                           Total Error:                      0                                           CRC:                              0,  Giants:                              0  Jabbers:                          0,  Fragments:                           0  Runts:                            0,  DropEvents:                          0  Alignments:                       0,  Symbols:                             0  Ignoreds:                         0                                           Output:  19396 packets, 2796198 bytes                                           Unicast:                          9,  <strong>Multicast</strong>:                       19386  
    <strong>  Broadcast</strong>:                        1,  Jumbo:                               0  Discard:                          0,  Pause:                               0  Total Error:                      0                                           Collisions:                       0,  ExcessiveCollisions:                 0  Late Collisions:                  0,  Deferreds:                           0  Buffers Purged:                   0                                           Input bandwidth utilization threshold : 90.00%                              Output bandwidth utilization threshold: 90.00%                              Input bandwidth utilization  :    0%                                        Output bandwidth utilization :    0%   </span></span>

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

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

相关文章

C#中Semaphore 和 CountdownEvent 的使用总结

信号量(Semaphore)&#xff0c;有时被称为信号灯&#xff0c;是在多线程环境下使用的一种设施&#xff0c;是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前&#xff0c;线程必须获取一个信号量。一旦该关键代码段完成了&#xff0c;那么该线程必须释…

解决ROS的cv_bridge与自己安装的opencv的版本冲突的问题

如果用ROS的topic传输图片&#xff0c;需要用到cv_bridge&#xff0c;这是个ros自带的opencv中的库&#xff0c;如果此时项目中引用了自己安装的opencv&#xff0c;自己安装的opencv会与ros自带的opencv中的cv_bridge冲突。编译时弹出warning: libopencv_imgproc.so.407, neede…

Kotlin 协程(线程)切换

常用协程切换函数 withContext 是Kotlin协程中的一个常用协程函数&#xff0c;它的作用是切换协程的执行上下文&#xff08;线程或调度器&#xff09;。具体来说&#xff0c;withContext 的主要功能如下&#xff1a; 切换执行上下文&#xff1a;withContext 允许你从一个执行上…

SNAP对Sentinel-1预处理

SNAP对Sentinel-1预处理 一、导入数据 二、轨道校正 点击run开始处理 三、噪声去除 打开S-1 Thermal Noise Removal工具 如果选中了VH&#xff0c;就只会输出一个VH极化结果 四、辐射定标 Run 五、滤波处理 六、地形校正 这边的dem需要自己下载 dem下载地址 如果一格…

力扣-python-两数之和

题解&#xff1a; class Solution(object):def twoSum(self, nums, target):# 遍历列表for i in range(len(nums)):# 计算需要找到的下一个目标数字res target-nums[i]# 遍历剩下的元素&#xff0c;查找是否存在该数字if res in nums[i1:]:# 若存在&#xff0c;返回答案。这里…

视频I420裸流保存为文件

1、从TvCamera的ABK回调的OnImageReceived出来的是I420的数据&#xff0c;保存文件的方式如下&#xff1a; void OnImageReceived(const uint8_t* data, size_t size, uint16_t widht, uint16_t height) { .............. FILE *fp fopen("test.yuv", "wb&quo…

论文阅读:Seeing in Extra Darkness Using a Deep-Red Flash

论文阅读&#xff1a;Seeing in Extra Darkness Using a Deep-Red Flash 今天介绍的这篇文章是 2021 年 ICCV 的一篇 oral 文章&#xff0c;主要是为了解决极暗光下的成像问题&#xff0c;通过一个深红的闪光灯补光。实现了暗光下很好的成像效果&#xff0c;整篇文章基本没有任…

C++ 的设计模式之 工厂方法加单例

在下面的示例中&#xff0c;我将演示如何创建一个工厂类&#xff0c;该工厂类能够生成四个不同类型的单例对象&#xff0c;每个单例对象都通过单独的工厂方法进行创建。 #include <iostream> #include <mutex>// Singleton base class class Singleton { protecte…

C++项目实战——基于多设计模式下的同步异步日志系统-⑪-日志器管理类与全局建造者类设计(单例模式)

文章目录 专栏导读日志器建造者类完善单例日志器管理类设计思想单例日志器管理类设计全局建造者类设计日志器类、建造者类整理日志器管理类测试 专栏导读 &#x1f338;作者简介&#xff1a;花想云 &#xff0c;在读本科生一枚&#xff0c;C/C领域新星创作者&#xff0c;新星计…

三、RestClient操作索引库与文档

文章目录 三、RestClient操作索引库与文档3.1 操作索引库3.2 操作文档结束语 三、RestClient操作索引库与文档 ES官方提供了各种不同语言的客户端&#xff0c;用来操作ES。这些客户端的本质就是组装DSL语句&#xff0c;通过http请求发送给ES。 官方文档地址: https://www.ela…

HarmonyOS 语言基础类库开发指南上线啦!

语言基础类库提供哪些功能&#xff1f;多线程并发如何实现&#xff1f;TaskPool&#xff08;任务池&#xff09;和 Worker 在实现和使用场景上有何不同&#xff1f; 针对开发者关注的并发等语言基础类库的相关能力&#xff0c;我们在新推出的语言基础类库开发指南中提供了详细的…

MATLAB——RBF、GRNN和PNN神经网络案例参考程序

欢迎关注“电击小子程高兴的MATLAB小屋” %————RBF程序实例 %% I. 清空环境变量 clear all clc %% II. 训练集/测试集产生 %% % 1. 导入数据 load spectra_data.mat %% % 2. 随机产生训练集和测试集 temp randperm(size(NIR,1)); % 训练集——50个样本 P_train NIR(t…

子组件监听父组件消息,随之变化与不变化

父组件通过props传递给子组件消息&#xff0c;子组件有两种情况接收处理&#xff1a; 1、子组件监听父组件props的变化&#xff0c;同时随之变化【可以直接取props中的值展示&#xff0c;也可以监听值得变化处理】 2、子组件初始化时更新&#xff0c;随后不再随父组件变化 示…

【MySQL系列】- SELECT语句执行顺序

【MySQL系列】- SELECT语句执行顺序 文章目录 【MySQL系列】- SELECT语句执行顺序一、MYSQL逻辑查询处理的步骤图二、MYSQL执行顺序详解2.1 执行FROM操作2.2 应用ON过滤器2.3 JOIN外部行2.4 应用WHERE过滤器2.5 GROUP BY分组2.6 应用ROLLUP 或 CUBE2.7 HAVING过滤2.8 处理SELEC…

源码编译安装部署lnmp

源码编译安装部署lnmp 文章目录 源码编译安装部署lnmp1.简介&#xff1a;2.环境说明&#xff1a;3.部署前的准备工作4.安装nginx4.1.进入官网拉取nginx源码包4.2.通过IP地址访问nginx的web页面 5.安装mysql5.1.安装依赖包5.2.创建用户和组5.3.下载源码包并解压到/usr/local/5.4…

一些常用的软件架构

分层架构 分层架构&#xff08;Layered Architecture&#xff09;&#xff1a; 分层架构是将系统划分为多个逻辑层&#xff0c;每个层都有特定的职责&#xff0c;实现了分离关注点和提高可维护性。常见的层包括表示层&#xff08;Presentation Layer&#xff09;、业务逻辑层&…

深入理解Scrapy

Scrapy是什么 An open source and collaborative framework for extracting the data you need from websites. In a fast, simple, yet extensible way. Scrapy是适用于Python的一个快速、简单、功能强大的web爬虫框架&#xff0c;通常用于抓取web站点并从页面中提取结构化的数…

靶机 Chill_Hack

Chill_Hack 信息搜集 存活检测 arp-scan -l 详细扫描 扫描结果 显示允许 ftp 匿名链接 FTP 匿名登录 匿名登陆 ftp 下载文件并查看 anonymous10.4.7.139下载命令 get note.txt查看文件 译 Anurodh告诉我&#xff0c;在命令 Apaar 中有一些字符串过滤后台扫描 扫描结果…

css美化滚动条

/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/ ::-webkit-scrollbar { width: 8px; height: 8px; background-color: rgba(0,0,0,.2); } /*定义滚动条轨道 内阴影圆角*/ ::-webkit-scrollbar-track { -webkit-box…

leetCode 5. 最长回文子串 动态规划 + 优化空间 / 中心扩展法 + 双指针

5. 最长回文子串 - 力扣&#xff08;LeetC5. 最长回文子串 - 力扣&#xff08;LeetCode&#xff09;5. 最长回文子串 - 力扣&#xff08;LeetC 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。如果字符串的反序与原始字符串相同&#xff0c;则该字符串称为回文字符串。…