当前位置: 首页 > news >正文

ARP相关

ARP报文格式:

目的以太网地址,48bit,发送ARP请求时,目的以太网地址为广播MAC地址,即0xFF.FF.FF.FF.FF.FF。

源以太网地址,48bit。

帧类型,对于ARP请求或者应答,该字段的值都为0x0806。

硬件地址的类型。对于以太网,该类型的值为0x0001。

协议类型,对于IP地址,该值为0x0800。

硬件地址长度,对于ARP请求或者应答,该值为0x06。

协议地址长度,对于ARP请求或者应答,该值为0x04。

操作类型:对于ARP请求来说,该值为0x0001

         对于ARP应答来说,该值为0x0002.

         对于RARP请求来说,该值为0x0003.

         对于RARP应答来说,该值为0x0004.

发送方以太网地址:与以太网首部的源以太网地址是重复信息。

发送端IP地址: 32bit。

接收方以太网地址:发送ARP请求时,该处填充值为0x00.00.00.00.00.00

接收方的IP地址:32bit。

免费ARP:

普通 ARP 报文中的目标 IP 地址是其他主机的 IP 地址;而免费 ARP 的请求报文中,目标 IP 地址是自己的 IP 地址。

免费 ARP 数据包有以下 3 个作用:

  • 该类型报文起到一个宣告作用。它以广播的形式将数据包发送出去,不需要得到回应,只为了告诉其他计算机自己的 IP 地址和 MAC 地址。
  • 可用于检测 IP 地址冲突。当一台主机发送了免费 ARP 请求报文后,如果收到了 ARP 响应报文,则说明网络内已经存在使用该 IP 地址的主机。
  • 可用于更新其他主机的 ARP 缓存表。如果该主机更换了网卡,而其他主机的 ARP 缓存表仍然保留着原来的 MAC 地址。这时,可以发送免费的 ARP 数据包。其他主机收到该数据包后,将更新 ARP 缓存表,将原来的 MAC 地址替换为新的 MAC 地址。

地址冲突的主机对于免费ARP响应也是需要回复的,回复的也是免费ARP响应,与其说是给地址冲突的主机回复,不如说是告诉整个广播域,我的IP才是xxx,然后源主机收到后又会广播免费ARP响应,两台地址冲突的主机轮流发。

一个MAC关联多个IP地址的场景:

无线路由器工作在无线中继模式下,这个中继下面连了一堆设备,每个设备都有IP,这些IP是上级路由器分配的,但是上级路由器却看不到他们的Mac地址,上级路由器只能看到这个中继的Mac,对上级路由器来说,只看到这个中继申请了一堆IP,而不知道中继是为他的下级设备申请的。

ARP防欺骗:

免费ARP防欺骗开关为ON, 1分钟内检测到30次以上(含30次)刷新本板ARP表中某IP地址对应MAC地址的请求,上报告警。

ARP黑名单:

一般ARP条目建立后,如果1分钟没有变化,则置为Trust状态。

支持ARP冲突时触发ARP主动学习。本功能支持以太主接口、以太子接口、TRUNK主接口、TRUNK子接口。

● 如果当前已有信任MAC1,如果收到MAC不同的ARP报文时,立刻刷新MAC,并进行ARP攻击判定处理。

●ARP攻击判定处理过程:

□ 将该非信任MAC放入攻击者MAC队列。针对每条动态ARP表项,维护一个信任MAC和一个长度为3的潜在攻击者MAC(即非信任MAC)队列(非黑名单)。如果队列已满,则踢掉ARP报文接收统计次数最少的那个非信任MAC。

□ 发送N次广播ARP请求,N可以全局配置,5<=N<=15,默认N=5,请求报文的发送间隔为1秒。□ 针对攻击者MAC队列里的每个MAC,统计该MAC发来的ARP报文个数。一旦收到 N/2+1 次信任MAC的应答,则立刻结束确认过程,此时查看攻击者MAC队列,将发送ARP报文次数大于或等于 N/2+1 次的攻击者MAC加入黑名单,其他的攻击者MAC直接从攻击者MAC队列里清除,并且上报告警消除。

□ 如果N次广播ARP请求发送完毕后,再等待1秒钟,还没有收到 N/2+1 次信任MAC的应答,则该动态ARP表项无信任MAC,此时清空ARP潜在攻击者队列。

□ 如果一分钟内只收到新MAC的ARP报文,则重新建立信任关系;如果没有收到信任MAC的应答,但收到其他多个MAC应答,则按收到顺序刷新ARP表项,最终表项为最后一次收到的MAC。

动态黑名单老化机制:

支持黑名单的老化机制,默认的老化时间为20分钟。若20分钟里没有收到黑名单里对应MAC回应的ARP报文,则移出黑名单 ,如果黑名单中的MAC在老化时间(20分钟)内发起攻击,则重新开始等待20分钟。

ARP报文带VLAN:

当端口配置VLAN后,肯定会周期性发送带VLAN的免费ARP,但是不带VLAN的免费ARP报文发不发取决于ARP广播报文携带VLANID开关参数的配置。(arpbcpktvlanflag)

相关文章:

ARP相关

ARP报文格式&#xff1a; 目的以太网地址&#xff0c;48bit&#xff0c;发送ARP请求时&#xff0c;目的以太网地址为广播MAC地址&#xff0c;即0xFF.FF.FF.FF.FF.FF。 源以太网地址&#xff0c;48bit。 帧类型&#xff0c;对于ARP请求或者应答&#xff0c;该字段的值都为0x08…...

uniapp打包配置 (安卓+ios)

TOC 基础配置 HBuilderX中打开项目的manifest.json文件&#xff0c;在“基础配置”中可以设置App的应用名称、版本号等信息&#xff1a; 应用标识 DCloud应用appid&#xff08;简称appid&#xff09;是由DCloud创建App项目时生成的唯一标识&#xff0c;关联DCloud云端服务&…...

【算法优选】 动态规划之简单多状态dp问题——壹

文章目录 &#x1f38b;前言&#x1f38d;[按摩师](https://leetcode.cn/problems/the-masseuse-lcci/)&#x1f6a9;题目描述&#x1f6a9;算法思路&#xff1a;&#x1f6a9;代码实现 &#x1f340;[打家劫舍二](https://leetcode.cn/problems/house-robber-ii/description/)…...

Git学习笔记(第2章):Git安装

官网地址&#xff1a;Githttps://git-scm.com/ Step1&#xff1a;查看Git的GNU协议 → 点击“Next” Step2&#xff1a;设置Git的安装位置(非中文、无空格的目录) → 点击“Next” Step3&#xff1a;选择Git的选项配置(推荐默认设置) → 点击“Next” Step4&#xff1a;设置Git…...

C生万物呀

1、快捷键 快捷键描述ctrl滚轮字体变大小ctrlKC注释ctrlKU取消注释home行首end行末 2、C语言标准库函数 stdio.h&#xff1a;包含了输入输出相关的函数&#xff0c;如printf()、scanf()、fgets()等。 stdlib.h&#xff1a;包含了通用工具函数&#xff0c;如malloc()、free()…...

华纳云:怎么解决docker容器一直处于重启状态的问题?

Docker容器一直处于重启状态可能是由于容器内部的问题导致的。以下是一些建议&#xff0c;帮助你解决这个问题&#xff1a; 查看容器日志&#xff1a; 使用以下命令查看容器的日志&#xff0c;以便获取更多信息&#xff1a; docker logs 查看日志可能会提供容器启动时的错误信息…...

react native android使用命令生成打包签名密钥

一、概述 Android 要求所有应用都有一个数字签名才会被允许安装在用户手机上&#xff0c;所以在把应用发布到应用市场之前&#xff0c;你需要先生成一个签名的 AAB 或 APK 包&#xff08;Google Play 现在要求 AAB 格式&#xff0c;而国内的应用市场目前仅支持 APK 格式。但无论…...

245.【2023年华为OD机试真题(C卷)】内存冷热标记(JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-内存冷热标记二.解题思路三.题解代码Python题解…...

Docker五部曲之五:通过Docker和GitHub Action搭建个人CICD项目

文章目录 项目介绍Dockerfile解析compose.yml解析Nginx反向代理到容器以及SSL证书设置MySQL的准备工作Spring和环境变量的交互 GitHub Action解析项目测试结语 项目介绍 该项目是一个入门CICD-Demo&#xff0c;它由以下几部分组成&#xff1a; Dockerfile&#xff1a;用于构建…...

「JavaSE」类和对象3

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;快来卷Java啦 &#x1f387;欢迎点赞收藏加关注哦&#xff01; 类和对象3 &#x1f349;多态&#x1f34c;重写&#x1f34c;向上转型&向下转型&#x1f34c;静态绑定&动态绑定&#x…...

IntelliJ IDEA 中输出乱码解决

最近tomcat突然在控制台输出乱码&#xff0c;各种乱码问题&#xff0c;查阅大量的资料&#xff0c;最终得以解决. IDEA控制台输出乱码 问题一&#xff1a;idea中tomcat控制台输出乱码 运行本地的tomcat\bin\start.bat文件页面显示正常 在idea中显示乱码 解决&#xff1a; 根…...

序列到序列模型

一.序列到序列模型的简介 序列到序列&#xff08;Sequence-to-Sequence&#xff0c;Seq2Seq&#xff09;模型是一类用于处理序列数据的深度学习模型。该模型最初被设计用于机器翻译&#xff0c;但后来在各种自然语言处理和其他领域的任务中得到了广泛应用。 Seq2Seq模型的核…...

计算机网络(第六版)复习提纲4

计算机网络的体系结构&#xff1a; 三类体系结构&#xff1a; OSI七层&#xff1a;物理层比特位传输&#xff0c;链路层相邻链路传输检验&#xff0c;网络层进行路由选择&#xff0c;运输层实现端到端进程通信&#xff0c;会话层连接管理&#xff0c;表示层数据格式&#xff0c…...

天拓分享:汽车零部件制造企业如何利用边缘计算网关和数网星平台实现数控机床数据采集分析

一、项目背景 某汽车零部件制造企业为了提高生产效率、降低能耗和提高产品质量&#xff0c;决定引入TDE边缘计算网关和数网星工业互联网平台&#xff0c;对数控机床进行数据采集与分析。 二、解决方案 1、设备选型与配置&#xff1a;考虑到企业生产需求和数控机床的特性&…...

爬虫逆向开发教程1-介绍,入门案例

爬虫前景 在互联网的世界里&#xff0c;数据就是新时代的“黄金”。而爬虫&#xff0c;就是帮助我们淘金的“工具”。随着互联网的不断发展&#xff0c;数据量呈现指数级的增长&#xff0c;在数据为王的时代&#xff0c;有效的挖掘数据和利用&#xff0c;你会得到更多东西。 学…...

时序分解 | Matlab实现CEEMDAN+PE自适应噪声完备集合经验模态分解+排列熵计算

时序分解 | Matlab实现CEEMDANPE自适应噪声完备集合经验模态分解排列熵计算 目录 时序分解 | Matlab实现CEEMDANPE自适应噪声完备集合经验模态分解排列熵计算效果一览基本介绍程序设计参考资料 效果一览 基本介绍 CEEMDANPE自适应噪声完备集合经验模态分解排列熵计算 运行环境m…...

Oracle命令大全

文章目录 1. SQL*Plus命令&#xff08;用于连接与管理Oracle数据库&#xff09;2. SQL数据定义语言&#xff08;DDL&#xff09;命令3. SQL数据操作语言&#xff08;DML&#xff09;命令4. PL/SQL程序块5. 系统用户管理6. 数据备份与恢复相关命令1. SQL*Plus命令&#xff08;用…...

目标检测--01

基本概念 什么是目标检测&#xff1f; ​ 目标检测&#xff08;Object Detection&#xff09;的任务是找出图像中所有感兴趣的目标&#xff08;物体&#xff09;&#xff0c;确定它们的类别和位置&#xff0c;是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状…...

MyBatisPlus学习笔记三-核心功能

接上篇&#xff1a; MyBatisPlus学习笔记二-CSDN博客 1、核心功能-IService开发基础业务接口 1.1、介绍 1.2、引用依赖 1.3、配置文件 1.4、用例-新增 1.5、用例-删除 1.6、用例-根据id查询 1.7、用例-根据ids查询 2、核心功能-IService开发复杂业务接口 2.1、实例-更新 3、…...

【并发编程系列】putIfAbsent和getOrDefault用法

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...