技术标签: CCIE 网络工程师-华为认证/思科认证 ARP协议 CCNA CCNP 网络工程师
ARP 是什么?
ARP(Address Resolution Protocol ) ,即地址解析协议,负责把目的主机的IP 地址解析成目的MAC地址。
当发送者 知道目的主机的IP地址之后, 就可以使用这个IP地址去解析对方的MAC地址。
为什么需要ARP?
在发送者给其他的网络设备发送数据的时候, 是以数据帧的形式发送的,数据帧被网卡解析成电信号或者光信号传递到对端。
数据帧是由源MAC地址和目的MAC地址组成的,如果发送者只知道目的主机的IP地址, 不知道目的主机的MAC地址, 就不能把这个数据包转化成数据帧发走,而ARP 协议就是负责地址解析的, 使用目的主机IP地址来解析对方的MAC地址。
如果发送者和接收者在同一个网络内,arp解析的就是接收者的MAC地址。如果发送者和接收者不在同一个网络内, arp解析的就是这个网络内网关的接口MAC地址。
ARP工作流程
在网络设备中会存在一个ARP缓存表,这个缓存表记录着这个IP 地址和MAC地址的映射关系,可以在设备终端使用arp -a 来查看本地的arp 缓存表的缓存信息。
arp 协议的作用, 就是形成这个arp缓存表,那么,交换机是如何形成这个缓存表的呢?
设备需要解析一个IP地址时, 会发出一个arp 请求报文的广播帧,2层报文中目的MAC地址为全F ,目的设备在收到ARP请求报文之后,会向源设备发送一个单播帧,该单播帧是一个ARP的应答报文,该应答报文中包含了目的设备的MAC地址。
同一个网络内的ARP请求和应答过程如下:
如图:PC 1 只知道PC3 的IP地址是10.1.1.3, 但是不知道PC3的MAC, 现在想获取PC3 的MAC地址:
1、发送者PC1:PC 1 会发送一个广播帧, 源IP和源MAC是PC1, 目的IP是PC3,目的MAC为FF-FF-FF-FF-FF-FF, 这个帧是广播发送的, 该网络内所有主机都会接收到,这个报文的载荷内容是一个ARP请求报文,意思是我的MAC地址是MAC1,我想给10.1.1.3发送数据, 谁是10.1.1.3, 请回复一下我。
2、非目的主机PC2:由于这个广播帧网络内主机都可以收到,PC2 收到这个帧, 提取IP地址, 发现, 它要找的IP地址是10.1.1.3, 我的IP地址是10.1.1.2, 这个数据包不是发给我的, 丢弃, 不回复。
3、 目的主机PC3:PC 3 收到这个广播数据帧后,拆开数据帧, 提取IP地址, 发现和我本地IP地址是一样的, 这个数据包就是发给我的, 然后再拆, 提取报文后, 了解到对方要请求我自己的MAC地址,然后就打包一个ARP的应答报文,源IP和源MAC都是自己的,目的IP和目的MAC是对方的,单播的发送给接收者,这样PC1 就有了PC3的MAC地址。
代理ARP
如果这两个主机不在同一个网络内, 被3层设备隔离了, 怎么通信?
目的IP地址与本机的IP地址位于不同网络, 由于主机A没有配置网关,所以它将会以广播形式发送ARP Request报文,请求主机B的MAC地址。但是,广播报文无法被路由器转发,所以主机B无法收到主机A的ARP请求报文,当然也就无法应答。
在路由器上启用代理ARP功能,就可以解决这个问题。
启用代理ARP后, 主机A解析网关MAC 地址过程:
1、主机A发送arp 请求网关MAC: 在电脑主机要先配置网关地址,主机A给主机B发送数据,发现是不同网段的数据通信,而我本地是没有这个关于B的ARP映射关系的,就会发送一个arp请求报文,解析网关MAC地址,源IP和源MAC地址都是主机A,目的IP是网关IP地址,目的MAC地址是全0。
2、网关回复自己的MAC 地址:网关收到这个arp请求报文后, 检查目的主机是否可达,可达,就会把自己的MAC地址以arp reply报文回复给主机A,目的主机不可达就不回复。
3:主机A 给主机B 发送数据:主机A收到这个arp应答报文就会把网关MAC和网关的IP地址添加进arp表,A要给主机B发送数据,需要先解析B的MAC地址,发送一个arp请求报文,源IP 和源MAC是A的信息,目的IP地址是B的IP地址,目的MAC是网关MAC。
4:网关收到数据包后的处理:网关收到这样的请求,会查找路由表,如果存在主机B的路由表项,路由器将会使用自己的G0/0/0接口的MAC地址来回应该ARP request。主机A收到ARP reply后,将以路由器的G0/0/0接口MAC地址作为目的MAC地址进行数据转发。
arp协议具体用法
ARP是IPv4中网络层必不可少的协议,不过在IPv6中已不再适用,并被邻居发现协议(NDP)所替代。说白了,就是把通过ip地址找到设备mac地址。
ARP的命令一般有三个用法,就是查询显示、添加记录、与删除记录,这个在我们做网络项目时经常会用到。
1、arp -a ,当你需要显示当期ip地址对应的mac地址时使用
当你需要了解你网络中设备对应的mac地址时,你可以使用arp地址进行显示,这个有利于我们可以清楚了解到ip地址对应的mac地址是哪台设备。
在命令提示符中输入“arp -a”并回车;自动在缓存中,读取IP地址和mac地址的对应关系表;
2、arp -s ,当你需要手动添加或绑定一条arp记录时使用。
手工输入一条ARP项目,格式为“ARP+空格+-a+IP地址+MAC地址”;
在网络中,通常在办公网络或监控项目中,为了防止用户乱改ip地址或ip地址冲突,我们需要给ip地址绑定设备的mac地址。
如下图,先用ARP -s 192.168.1.1 3c-22-3f-5d-f6-77绑定一条记录,然后用arp -a查询了ARP记录添加是否成功。
其实这个命令也叫作绑定mac地址的命令,例如一个公司的网络,员工经常喜欢改自己电脑的ip地址,经常会造成ip地址混乱,无法管理,那么这个时候你只需要把它的ip地址与它电脑mac地址进行绑定,那么下次出现网络故障,就可以直接mac地址定位到那几台电脑。
3、arp -d,当你觉得某条arp记录有问题时,可以删除。
功能为:删除所有ARP记录
其实如果想彻底清空ARP列表,需要您禁止所有网络连接,否则网络数据交互过程中仍然会产生新的ARP列表。
当你网络中出了问题,可能是有某些ip地址发生冲突了,mac对应的ip地址有误,那么你可以对它进行删除这条arp记录,然后重新添加新的记录,网络问题就会得到解决。
END
欢迎关注微信公众号【厦门微思网络】。www.xmws.cn专业IT认证培训19周年
主要课程:思科、华为、红帽、ORACLE、VMware、CISP、PMP等认证培训及考证
往期回顾
文章浏览阅读8.8w次,点赞196次,收藏1.9k次。掌握esp8266的使用可以实现真正的万物物联。esp8266wifi通信对于MCU而言归结到底还是串口或spi通信。因此,掌握RS232通信协议、SPI通信协议以及esp8266的配置就可以基本搞定WiFi模块的使用。参考文章:[1] ESP8266WiFi模块AT指令入门指南[2] ESP8266 WIFI串口通信模块使用详解(实例:附STM32详细代码)[3] STM32串口接收..._cipmux and cipserver must be 0
文章浏览阅读1.4k次。很多小伙伴都遇到过win7系统远程连接提示“由于以下原因无法连接”的困惑吧,一些朋友看过网上零散的win7系统远程连接提示“由于以下原因无法连接”的处理方法,并没有完完全全明白win7系统远程连接提示“由于以下原因无法连接”是如何解决的,今天小编准备了简单的解决办法,只需要按照 1)未启用对服务器的远程访问 2)远程计算机已关闭的顺序即可轻松解决,具体的win7系统远程连接提示“由于以下原因无法连..._win7 无法远程 到服务器
文章浏览阅读3.4k次。SpringBoot实现vue-admin-template登录接口vue-admin-templatevue-admin-template是一个简化版的vue-element-admin的模板,适合vue用来做项目的搭建,虽然官方文档以及花裤衩前端大佬在博客中已经将大部分的疑难杂症解决了,但当完全自己搭建的时候才发现多折腾vue-admin-template登录接口请求详解要想搞懂一个接口,最好的方式就是1.去看接口的定义声明的参数2.发送请求查看返回的数据格式开始1.先配置跨域等基_vue-element-admin 整合springboot登录
文章浏览阅读2.2k次。瓦片简介百度离线地图是由多层级的多张瓦片组成的,存放在titles文件夹下,层级越高,瓦片越多,显示的地图越详细下载的瓦片有png和jpg等格式,我下载的png格式没法用,后面全改成jpg格式就可以了将下载的瓦片按照下载级别放到对应的文件夹下瓦片获取从别的博主那找了两种获取方式1、链接: http://www.xiaoguo123.com/p/baidumap_offline_v2/.从这个链接里边的网盘下载,按照博主的介绍一步步做,一定要看使用前必读,需要按照用前必读改一下百度的密钥这个瓦_百度瓦片地图下载
文章浏览阅读1.7w次,点赞19次,收藏68次。几分钟复习一下调Q技术~ 基本原理及常见方法详解。复习面试必备!_调q
文章浏览阅读127次。技巧一:从基本做起***开始对你的网络发起***的时候,他们首先会检查是否存在一般的安全漏洞。因此,当你服务器上的数据都存在一个FAT的磁盘分区的时候,即使安装上世界上所有的安全软件也不会对你有多大帮助的。因此,你需要从基本做起。将服务器上所有包含了敏感数据的磁盘分区都转换成NTFS格式的。同时,可以为Exchange Server安装反病毒软件,将被感染的邮件在到达用户以前..._简述你利用互联网进行资源检索时遇到的问题或是小技巧,列举并上传至活动心得
文章浏览阅读1.2w次。CentOS 7 构造GCC 4.8.2 32位编译环境_libpthread库 yum安装
文章浏览阅读424次。原型设计这个作业属于哪个课程这个作业要求在哪里https://www.cnblogs.com/harry240/p/11524127.html这个作业的目标1,熟悉三种原型设计工具并学会使用他们; 2,对给出的题目进行需求分析; 3,设计题目所需要的原型背景简介:什么是原型设计 ?原型设计是产品经理确认需求、设计产品最重要的沟通工具。一,对..._供不完全的原型设计文件-“数据集实例(不全).rp”, 完成如下任务
文章浏览阅读2.8k次。MT7628驱动版本:4.0.13现象:手机或者pad无法连接MT7628 APlog:[ 3633.276000] Qidx(0), not enough space in MgmtRing, MgmtRingFullCount=957![ 3633.288000] Qidx(0), not enough space in MgmtRing, MgmtRingFullCount=_mt7628有些mac地址导致ap无法被连接
文章浏览阅读146次。要想入门NoSQL,先读圣经Dynamo。 Amazon的这篇论文《Dynamo: Amazon's Highly Available Key-value Store》网上随处可以下得到,据说搞NoSQL的人都是从这里爬出去的。短短16页,不大好看,但非常精彩。不好看不是说写的不好,而是里面提到了很多分布式系统的概念和算法,要引经据典不容易弄懂(好吧,其实是个人基础太差)..._dynamo的物理架构
文章浏览阅读264次。引言所用版本:jdk1.8 tomcat7.88 所用数据库:mysql所用技术:maven-spring4.3.2-struts2-mybatis-ajax 基于注解版//主要实现 两张表 增删改查 包含图片上传 ajax发送异步请求 主要对 select标签 有详细案例本案例中用到的常用注解总结如下:1.实体类上:@Component此注解表示 创建简单对象 默认构建的简单对..._spring-struts maven
文章浏览阅读4.2k次,点赞5次,收藏23次。目录第一部分 IPP环境搭建(基于win10的WSL)1.1 WSL的几种安装方法1.1.1 开启wsl支持1.1.2 (可选)使用Windows store直接安装(1)下载(2)安装1.1.3 (可选)使用LxRunOffline自定义安装wsl1. 安装LxRunOffline2. 下载wsl离线文件3. 解压wsl offline文件4. 安装wsl5. 打开wsl6. wsl初始化1.2 (可选)使用VScode连接wsl1.2.1 插件下载1.2.2 连接wsl1.3 在ubuntu上安装IPP_图像处理ipp库源码