《TCP/IP详解 卷一》第4章 地址解析协议ARP

目录

4.1 引言

4.2 一个例子

4.3 ARP缓存

4.4 ARP帧格式

4.5 ARP例子

4.6 ARP缓存超时

4.7 代理ARP

4.8 免费ARP和地址冲突检测

4.9 ARP命令

4.10 使用ARP设置嵌入式设备IPv4地址

4.11 与ARP相关攻击

4.12 总结


4.1 引言

地址解析:

        IPv4:ARP(仅用于广播网络)。

        IPv6:NDP邻居发现协议。

NDP有两个报文:

        邻居发现请求报文:NS

        邻居发现应答报文:NA

NDP属于ICMPv6一部分。

PC收到包的目的MAC不是自己则丢弃。

而交换机端口不具有MAC地址。交换机的端口检查收到包目的MAC,而是查找MAC地址表,获得转发端口。

路由查找:

        如果查找到的路由表网关,则继续转发。

        如果查找到的路由表网关为空,说明已抵达终点,不转发。

如果主机发现收到的ARP中请求的IP地址与自己的IP地址不匹配,将丢弃ARP请求。

如过IP地址匹配,则将ARP请求报文的源IP地址和源MAC地址映射添加到本地ARP缓存中。

4.2 一个例子

PPP链路不使用ARP,因为不涉及MAC地址,不需要地址解析。

4.3 ARP缓存

老化时间:默认20分钟。

ARP条目中Flags:

        C(Complete,已完成):表示该ARP条目已完成地址解析过程,存储在ARP缓存中。

        M(Permanent,永久):表示该ARP条目是永久性,通常是手动添加的。

        P(Published,已发布): 表示该条目已被广播到其他设备。

4.4 ARP帧格式

ARP请求:目的以太网地址ff:ff:ff:ff:ff:ff (广播)

硬件类型:值为1,表示以太网。

协议类型:值为0x800,表示IPv4。

硬件大小:值为6,表示地址长度。

协议大小: 值为4,表示协议地址长度。

Op操作有:

        ARP请求 ARP应答

        RARP请求 RARP应答

4.5 ARP例子

4.6 ARP缓存超时

大部分实现中complete ARP条目默认为20分钟,非complete ARP条目默认3分钟。

complete ARP:通过动态学习得到ARP条目。

4.7 代理ARP

如果目标主机位于不同子网时,ARP请求会失败。此时可使用代理ARP。

网关配置代理ARP后:

        网关收到ARP请求后,如果本地ARP缓存有目标主机IP地址映射,会伪装成目标主机响应ARP请求,并将自己MAC地址作为目标主机MAC地址返回给源主机。

        源主机想与目标主机通信时,先将数据发送到网关MAC地址,网关在转发到目标主机。

可隐藏真实主机,也存在安全隐患。ARP代理不常见,尽量避免使用。

使能方法:echo 1 > /proc/sys/net/ipv4/conf/*/proxy_arp

4.8 免费ARP和地址冲突检测

免费ARP:ARP请求寻找自己地址。

使用场景:接口启动时,且被配置为上行。

可知:发送方协议地址和目的协议地址相同。

免费ARP作用:

        1. 检测是否IPv4地址冲突(只能检测,无法解决)

        2. 如果改变硬件地址,发送该帧,使其他主机更新ARP条目。

ACD(Address Conflict Detection,地址冲突检测)

IPv4 ACD类似免费ARP,包括:

        ARP探测报文:与免费ARP区别是,发送发协议地址为0,这样对方不会缓存该ARP。

        ARP通告报文:表明正使用该地址,让对方更新ARP。

IPv6 ACD地址冲突检测步骤:

        地址配置:当IPv6接口启动时,使用SLAAC、DHCPv6等地址配置方式获取IPv6地址。

        地址检查:接口获取到IPv6地址后,它会发送多播Neighbor Solicitation(NS)消息,询问该IPv6地址是否已被其他节点使用。

        地址确认:如果该IPv6地址已被某节点使用,它会发送多播的Neighbor Advertisement(NA)消息作为响应,告知其他节点该IPv6地址已被使用。

        地址处理:如果没有收到其他节点响应,那么该接口可继续使用该IPv6地址。

4.9 ARP命令

显示ARP条目:

        arp -a

        arp -n

添加ARP条目:

        arp -s

删除ARP条目:

        arp -d

4.10 使用ARP设置嵌入式设备IPv4地址

设置IPv4地址方式:

        DHCP

        ARP(不常见):手动设置一个ARP映射,然后向该IP发送分组。 对方收到该IP分组后,设置IP

4.11 与ARP相关攻击

使用代理ARP假扮真实主机,应答。

/proc/sys/net/ipv4/conf/eth0/arp_filter:

        作用:用于控制 ARP 报文过滤,比如:

                若ARP请求接口,与发送应答接口不一致,则应答抑制。

                如果接收的ARP请求目标IP不在本地子网上,不会响应ARP请求。

4.12 总结

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

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

相关文章

Android LinearLayout 如何让子元素靠下居中对齐 center bottom

Android LinearLayout 如何让子元素靠下居中对齐 center bottom 首先你需要知道两个知识点: android:layout_gravity 指定的是当前元素在父元素中的位置android:gravity 指定的是当前元素子元素的排布位置 比如: 有这么一个布局,我需要让…

基于生成扩散模型的分子对接程序-DiffDock安装及使用

欢迎浏览我的CSND博客! Blockbuater_drug …点击进入 文章目录 前言一、DiffDock是什么?二、DiffDock安装步骤1. 下载2.创建conda环境并安装STEP 1. 创建conda环境并配置STEP 2. 配置ESM和OpenFoldSTEP 3. 检查cuda和pytorch geometric安装STEP 4. 检查p…

AIGC 实战:Ollama 和 Hugging Face 是什么关系?

Ollama和 Hugging Face 之间存在着双重关系: 1. Ollama是 Hugging Face 开发并托管的工具: Ollama是一个由 Hugging Face 自行开发的开源项目。它主要用于在本地运行大型语言模型 (LLM),特别是存储在 GPT 生成的统一格式 (GPT-Generated Un…

单片机02_寄存器_GPIO设置__点灯

芯片概述 C51:0口、1口、2口、3口,P00~p07、P10~P17、P20~P27、P30~P37 STM32:A口、B口、C口、D口,PA0~PA15/PA5 GPIOA.5 STM32F407ZGT6有7组GPIO端口,分别是:A B C D E F G,每组均有16个GPIO端…

js设计模式:备忘录模式

作用: 封装的对象可以在对象触发行为时进行状态的记录与保存 也可以进行状态的回退,恢复之前的状态 示例: class Editor{constructor(){this.allText }edit(text){this.allText text}saveNow(){return new EditorText(this.allText)}backspacing(editorText){this.allText…

【k8s资源调度-StatefulSet】

1、部署对象StatefulSet资源(无状态应用) StatefulSet针对的是有状态应用,有状态应用会对我们的当前pod的网络、文件系统等有关联。 2、配置文件如下 StatefulSet资源的配置文件粗略如下,如下的配置信息包含了数据卷,…

python 3.7.3的安装

参考 Linux安装Python3.7-良许Linux教程网 (lxlinux.net) 1、Index of /ftp/python/3.7.9/ 1、安装gcc,yum -y install gcc 2、 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel…

有趣的CSS - 文字加载动画效果

大家好,我是 Just,这里是「设计师工作日常」,今天分享的是用 css 实现多字符模拟加载动画效果。 《有趣的css》系列最新实例通过公众号「设计师工作日常」发布。 目录 整体效果核心代码html 代码css 部分代码 完整代码如下html 页面css 样式页…

容器_Docker ( 06 )

容器_Docker ( 05 ) Kubernetes 资源对象管理 资源对象文件 模板与帮助信息 资源对象文件优势 命令无法实现高级复杂的功能某些资源对象使用命令无法创建方便管理 , 保存 , 追溯历史 资源对象文件太长 , 记不住怎么办 使用命令创建模板查询帮助信息查询官方手册 生成资源…

2024-02-21 作业

作业要求: 复习课上内容 //已完成结构体字节对齐,64位没做完的做完,32位重新都做一遍,课上指定2字节对齐的做一遍,自己验证 //已完成两种验证大小端对齐的代码写一遍复习指针内容 //已完成完善顺序表已写出的…

300分钟吃透分布式缓存-12讲:为何MC能长期维持高性能读写?

内存管理 slab 机制 讲完淘汰策略,我们接下来学习内存管理 slab 机制。 Mc 内存分配采用 slab 机制,slab 机制可以规避内存碎片,是 Mc 能持续高性能进行数据读写的关键。 slabclass Mc 的 slab 机制是通过 slabclass 来进行运作的&#x…

普中51单片机学习(DS1302)

DS1302时钟 DS1302实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力。内部含有31个字节静态RAM,可提供用户访问。采用串行数据传送方式,使得管脚数量最少,简单SPI 3线接口。工作电压…