交换机ARP学习异常,看网工大佬是如何处理的?

news2024/12/23 5:30:54

晚上好,我的网工朋友。

在复杂多变的网络环境中,网工就没有不遇到问题的,习惯了,兵来将挡水来土掩。

ARP异常你遇到过吗?ARP作为网络中的基础协议之一,它的稳定性对整个网络的性能和可靠性至关重要。

比如说,交换机上遇到了大量的不完整ARP表项导致用户终端的ARP缓存不稳定,这个情况,怎么自查,怎么解决?

问题的关键点是STP配置不当还是拓扑变化频繁?又或是其他原因。

假如你也遇上了这样的问题,怎么分析,怎么解决,怎么确保网络业务连续性,可以参考一下这篇方案。

今日文章阅读福利:《 Netdiscover-ARP侦查工具 》

既然说到ARP,今天就给你分享个网络扫描工具Netdiscover,通过ARP扫描发现活动主机,可以通过主动和被动两种模式进行ARP扫描。通过主动发送ARP请求检查网络ARP流量,通过自动扫描模式扫描网络地址。

私信我,发送暗号“Netdiscover”(建议复制一下直接发),获取资料。

01 组网情况

这次详解,涉及产品和版本是S交换机所有产品和版本。

如图1所示,Switch-A和Switch-B通过Eth-Trunk链路直连,配置VRRP协议,Switch-A为VRRP主设备,Switch-B为VRRP备设备。

Switch-A和Switch-B做三层网关,下挂多台接入交换机做二层,均使能了STP协议进行破环。二层交换机与接入用户相连。

02 现象描述

Switch-A交换机上ARP学习异常,有很多Incomplete的ARP表项,下面用户终端的ARP时有时无,业务不稳定。

03 原因分析

Switch下挂的二层交换机上,STP域的边缘端口均没有配置stp edged-port enable;

这些端口状态发生变化时会发送TC报文,Switch收到后进行STP收敛处理,立即清除ARP表项或进行老化探测处理Switch上。

因为ARP数量比较多,发送大量ARP请求报文进行探测,收到用户的ARP应答报文比较多,超过了cpcar值,部分ARP应答报文丢弃,这些ARP将被老化删除,对应用户业务不能使用。

Switch频繁收到这样的TC报文,业务更加不稳定。

04 操作步骤

登录设备进行观察,查看VLANIF27接口下的ARP。该VLANIF接口接入的是经常在线的用户的服务器

长时间观察,发现接口下的ARP总数有时在50个左右,有时在20个左右,数量不稳定。同时还有Incomplete状态的ARP,IP地址也不固定。学习到的ARP表项的老化时间有时都为0。

从现象看,Switch应该是收到了TC报文,进行了老化ARP的操作

通过display stp tc命令也可以看到端口收到的TC报文情况:

分析日志,日志中也显示收到TC报文、进行ARP表项老化处理的记录:

同时有arp-reply报文的cpcar丢弃记录:

Apr 19 2011 09:28:13 DCN_S9306_A %%01QOSE/4/CPCAR_DROP_LPU(l): Some packets are dropped by cpcar on the LPU in slot 1. (Protocol=arp-reply, Drop-Count=061)

基于上面的信息,分析得出:

Switch频繁收到TC报文,进行老化ARP表项的操作。

设备需要发送大量ARP探测报文,用户终端回应arp-reply报文的数量也很多,超过了cpcar的car值,部分应答报文丢弃,ARP表项就会老化删除,影响到业务应用。

Switch收到的TC报文是下面的接入交换机发送的。接入交换机直接连接PC,端口使能了STP,但是没有配置stp edged-port enable。

PC在开机和关机时,很多边缘端口UP、DOWN,交换机就会反复发送TC报文。

将这些边缘端口配置stp edged-port enable后,经过几天的观察,没有再出现问题了,用户的业务运行正常。

05 建议与总结

类似的问题出现过很多次,交换机做网关,下挂二层交换机接入用户,网络中使用STP协议破环。

通常,二层交换机上的STP边缘端口都没有配置stp edged-port enable。用户PC上线、下线,端口就会反复UP/DOWN,设备向STP根节点发送TC报文。

网关设备频繁进行STP收敛,清除ARP,导致ARP学习异常。

这种应用场景下,推荐配置:

交换机上配置stp converge normal,这样交换机收到TC报文,不会立即清除ARP,而是发起ARP探测,探测失败才会删除ARP,对流量转发不会造成很大的影响;

二层交换机的STP边缘端口上配置stp edged-port enable,这样边缘端口的状态变化不会引起网络反复进行STP收敛。

整理:老杨丨10年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

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

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

相关文章

【MongoDB】跨库跨表查询(python版)

MongoDB跨表跨库查询 1.数据准备:2.跨集合查询3.跨库查询应该怎么做? 讲一个简单的例子,python连接mongodb做跨表跨库查询的正确姿势 1.数据准备: use order_db; db.createCollection("orders"); db.orders.insertMan…

电路分析2

7 等效电路的思想,简化不是目的,这个电路说明一切!_哔哩哔哩_bilibili 高中知识,翻笔记 8 什么时候用Y型?看到有有相同数字的时候,就可以考虑用 9 10 输入电阻还有没学完的 ok 11

海外多语言盲盒开发:打破语言障碍,连接全球消费者

随着全球化的加速和互联网的普及,语言障碍成为了影响跨国交流和商业活动的重要因素。为了满足跨国市场的需求,海外多语言盲盒开发成为了一个新兴的领域。本文将探讨海外多语言盲盒开发的意义、现状和未来发展。 一、海外多语言盲盒开发的意义 在全球化…

【C++】运算符重载详解

&#x1f497;个人主页&#x1f497; ⭐个人专栏——C学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 导读 1. 为什么需要运算符重载 2. 运算符重载概念 3. 运算符重载示例 3.1 运算符重载 3.2 >或<运算符 4. 运算符重…

提前祝大家新年好!来看看社区 2023 都得了哪些奖吧

大噶好&#xff01;转眼马上就是“龙”历新年啦&#xff0c;不知道大家这周的工作热情怎么样呢&#xff1f;小陈的心已经在殷切期盼回家过年了&#xff5e; RTE 开发者社区预祝诸位&#xff1a; 2024 年 &#x1f432;龙年添财气&#xff0c;万事皆胜意&#xff01; 回顾过去…

c语言封装继承详解

模块化编程结构 函数头文件 c语言头文件代码 #ifndef __Object_H_ #define __Object_H_// 继承 struct person {int id;char name[20];int gender;const char* (*getGender)(struct person* s);void (*setGender)(struct person* s, const char* strGender); }; struct teache…

C语言问题汇总

指针 #include <stdio.h>int main(void){int a[4] {1,2,3,4};int *p &a1;int *p1 a1;printf("%#x,%#x",p[-1],*p1);} 以上代码中存在错误。 int *p &a1; 错误1&#xff1a;取a数组的地址&#xff0c;然后1&#xff0c;即指针跳过int [4]大小的字节…

Flink1.14新版KafkaSource和KafkaSink实践使用(自定义反序列化器、Topic选择器、序列化器、分区器)

前言 在官方文档的描述中&#xff0c;API FlinkKafkaConsumer和FlinkKafkaProducer将在后续版本陆续弃用、移除&#xff0c;所以在未来生产中有版本升级的情况下&#xff0c;新API KafkaSource和KafkaSink还是有必要学会使用的。下面介绍下基于新API的一些自定义类以及主程序的…

【JavaEE进阶】 图书管理系统开发日记——伍

文章目录 &#x1f38b;前言&#x1f332;需求分析&#x1f384;约定前后端交互接口&#x1f333;实现服务器代码&#x1f6a9;控制层&#x1f6a9;业务层&#x1f6a9;数据层 &#x1f343;修改前端代码⭕总结 &#x1f38b;前言 这次我们来实现图书管理系统的增加图书模块。…

QT 应用中集成 Sentry

QT 应用中集成 Sentry QT应用中集成 SentrySentry SDK for C/C注册 Sentry 账号QT 应用中集成 Sentry触发 Crash 上报 QT应用中集成 Sentry Sentry 是一个开源的错误监控和日志记录平台&#xff0c;旨在帮助开发团队实时捕获、跟踪和解决软件应用程序中的错误和异常。它提供了…

qml中布局属性讲解

1.行布局&列布局:RowLayout&ColumnLayout RowLayout {id: layoutanchors.fill: parentspacing: 6Rectangle {color: tealLayout.fillWidth: trueLayout.minimumWidth: 50Layout.preferredWidth: 100Layout.maximumWidth: 300Layout.minimumHeight: 150Text {anchors.c…

基于nginx的虚拟主机配置

目录 一.基于不同ip的虚拟主机 二.基于不同端口的虚拟主机 三.基于不同域名的虚拟主机 一.基于不同ip的虚拟主机 1.关闭 SELinux和防火墙 2.在/data目录中创建三个目录&#xff0c;分别为nginx1、nginx2 和nginx3,具体名为: 3.分别在三个目录中创建index.html,并输入内容“…

C++程序在开机自启和定时器执行时遇到的问题和解决方法

遇到的错误如下&#xff1a; Camera is created.load vfvlog.[dll/so] failed for dll[/vfvlog.so] unexistedLoadDbgConfig, LoadFile fail, err:-3, errno: No such file or directoryqt.qpa.xcb: could not connect to displayqt.qpa.plugin: Could not load the Qt platfo…

XSS haozi靶场通关笔记

XSS靶场地址&#xff1a;alert(1) 靶场的要求是输出一个内容为1的弹窗&#xff1b;这个靶场限制了输入位置只能是input code&#xff1b;而且浏览器发送内容时会自动进行url编码&#xff1b;所以重点考察的是代码的分析和基础payload构造&#xff1b;一切完成在当前页面&#…

毫米波雷达在汽车领域的原理、优势和未来趋势

1 毫米波雷达的原理 汽车引入毫米波雷达最初主要是为了实现盲点监测和定距巡航。毫米波实质上是电磁波&#xff0c;其频段位于无线电和可见光、红外线之间&#xff0c;频率范围为10GHz-200GHz。工作原理类似一般雷达&#xff0c;通过发射无线电波并接收回波&#xff0c;利用障…

Dynamo根据几何相交对墙体进行分组——群问题整理002

你好&#xff0c;这里是 BIM 的乐趣&#xff0c;我是九哥~ 近期给大家分享一些短平快的小教程&#xff0c;基本都是来自群里面常问的问题&#xff0c;不做过多的介绍了&#xff0c;直接上截图和代码。 问题&#xff1a;002 - 根据几何相交对墙体进行分组 今天分享的&#xff0…

C++后端开发之Sylar学习二:配置VSCode远程连接Ubuntu开发

C后端开发之Sylar学习二&#xff1a;配置VSCode远程连接Ubuntu开发 没错&#xff0c;我不能像大佬那样直接在Ubuntu上面用Vim手搓代码&#xff0c;只能在本地配置一下VSCode远程连接Ubuntu进行开发咯&#xff01; 本篇主要是讲解了VSCode如何配置ssh连接Ubuntu&#xff0c;还有…

【文件增量备份系统】前端项目构建

文章目录 创建项目安装项目依赖引入element plus组件下载组件在main.js中使用组件测试 整合路由router下载组件创建路由管理器index.js使用路由App.vue上面使用 <router-view />测试 整合axios下载组件工具类axiosRequest.js工具类使用 创建项目 damwangrunqindeMBP dev…

PyTorch 2.2 中文官方教程(十四)

参数化教程 原文&#xff1a; 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 作者&#xff1a;Mario Lezcano 注意 点击这里下载完整示例代码 在本教程中&#xff0c;您将学习如何实现并使用此模式来对模型进行约束。这样做就像编写自己的nn.Module一样容易。 对深…

Mybatis基础教程及使用细节

本篇主要对Mybatis基础使用进行总结&#xff0c;包括Mybatis的基础操作&#xff0c;使用注解进行增删改查的练习&#xff1b;详细介绍xml映射文件配置过程并且使用xml映射文件进行动态sql语句进行条件查询&#xff1b;为了简化java开发提高效率&#xff0c;介绍一下依赖&#x…