ARP 协议工作过程是什么?

ARP 协议工作过程是什么?,第1张

ARP协议的工作过程是:
主机A的IP地址为19216811,MAC地址为0A-11-22-33-44-01;
主机B的IP地址为19216812,MAC地址为0A-11-22-33-44-02;
主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(19216812)解析成主机B的MAC地址。工作流程如下:
1、根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是19216812。
2、如果主机A在ARP缓存中没有找到映射,它将询问19216812的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。
3、主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。
4、主机B将包含其MAC地址的ARP回复消息直接发送回主机A。
5、当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。
扩展资料
ARP命令:
ARP缓存中包含一个或多个表,它们用于存储IP地址及其经过解析的MAC地址。ARP命令用于查询本机ARP缓存中IP地址-->MAC地址的对应关系、添加或删除静态对应关系等。如果在没有参数的情况下使用,ARP命令将显示帮助信息。
常见用法:
arp
-a或arp
–g
用于查看缓存中的所有项目。-a和-g参数的结果是一样的,多年来-g一直是UNIX平台上用来显示ARP缓存中所有项目的选项,而Windows用的是arp
-a(-a可被视为all,即全部的意思),但它也可以接受比较传统的-g选项。
arp
-a
Ip
如果有多个网卡,那么使用arp
-a加上接口的IP地址,就可以只显示与该接口相关的ARP缓存项目。
arp
-s
Ip
物理地址
可以向ARP缓存中人工输入一个静态项目。该项目在计算机引导过程中将保持有效状态,或者在出现错误时,人工配置的物理地址将自动更新该项目。
arp
-d
Ip
使用该命令能够人工删除一个静态项目。
参考资料来源:搜狗百科-ARP

arp协议是“address
resolution
protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的mac地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的mac地址。但这个目标mac地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标ip地址转换成目标mac地址的过程。arp协议的基本功能就是通过目标设备的ip地址,查询目标设备的mac地址,以保证通信的顺利进行。

网络上的通信会使用到逻辑地址(IP地址)和物理地址(MAC地址)。逻辑地址可以使得不同网络以及没有直接相连的设备之间能够进行通信。物理地址则用来在单一网段中交换机直接连接的设备之间进行通信。在大多数情况下,正常通信需要这两种地址协同工作。

我们假设这样一个场景:你需要和你网络中的一个设备进行通信,这个设备可能是某种服务器,或者只是你想与之共享文件的另一个工作站。你所用来创建这个通信的应用已经得到这个远程主机的IP地址(通过DNS服务),也意味着系统已经拥有用来构建它想要在第3层到第7层中传递的数据包所需要的信息。这时它所需要的唯一信息就是第2层包含目标主机MAC地址的数据链路层数据。

之所以需要MAC地址,是因为网络中用于连接各个设备的交换机使用了内容寻址寄存器(CAM)。这个表列出了它在每一个端口所有连接设备的MAC地址。当交换机收到一个指向特定MAC地址的流量,它会使用这个表,来确定应该使用哪一个端口发送流量。如果目标的MAC地址是未知的,这个传输设备会首先在它的缓存中查找这个地址,如果没有找到,那么这个地址就需要在网络上额外的通信来解析了。

TCP/IP网络(基于IPv4)中用来将IP地址解析为MAC地址的过程称为地址解析协议(Address Resolution Protocol,ARP),它的解析过程只使用两种数据包:一个ARP请求与一个ARP响应。

让我们做个小实验,在局域网内ping一个主机IP,假设是第一次ping,本机的ARP表并未缓存,可以通过 arp -a 命令查看。

本机IP19216837,ping局域网内19216835的主机,执行以下命令:

开始抓包分析。

上图是一个ARP请求数据包,通过Wireshark的Packet Details面板中,检查以太网头,来确定这个数据包是否是一个真的广播数据包。这个数据包的目的地址是ff:ff:ff:ff:ff:ff:ff。这是一个以太网的广播地址,所有发送到这个地址的数据包都会被广播到当前网段中的所有设备。这个数据包中以太网头的源地址就是我的MAC地址。

在这个给定的结构中,我们可以确定这的确是一个在以太网上使用IP的ARP请求,从数据包的 *** 作码(opcode)为1可以得知。这个ARP的头列出了发送方的IP(本机的IP 19216837)和MAC地址,以及接收方的IP地址19216835。我们想要得到的目标MAC地址,还是未知的,所以这里的目的MAC地址填写为00:00:00:00:00:00。

这是一个回应ARP请求的响应,opcode现在是2表示这是一个响应而不是请求。

发送方和接收方的地址发生了转换,重要的是现在数据包中所有的信息都是可用的,也就是说我们现在有了19216835主机的MAC地址。

执行以下命令

可以得知19216835及其对应的MAC地址已经被缓存。

大多数情况下,一个设备的IP地址是可以改变的。当这样的改变发生后,网络主机中缓存的IP和MAC地址映射就不再有效了。为了防止造成通信错误,无偿的ARP请求会被发送到网络中,强制所有收到它的设备去用新的IP和MAC地址映射更新缓存。

检查上述数据包,你会看见这个数据包是以广播的形式发送,以便网络上的所有主机都能收到它。这个ARP头的特点就是发送方的IP地址和目标IP地址是相同的。当这个数据包被网络中的其他主机接收到之后,它会让这些主机更新映射表,由于这个ARP数据包时未经请求的,却导致客户端更新ARP缓存,所以会称之为无偿。

ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

答案是A。

地址解析协议是IPv4中必不可少的协议,在通过以太网发送IP数据包时,需要先封装第三层(32位IP地址)、第二层(48位MAC地址)的报头,但由于发送时只知道目标IP地址,不知道其MAC地址,又不能跨第二、三层,所以需要使用地址解析协议。

使用地址解析协议,可根据网络层IP数据包包头中的IP地址信息解析出目标硬件地址(MAC地址)信息,以保证通信的顺利进行。

扩展资料

ARP协议的作用:

1、一个主机可以通过它来确定另一个主机是否设置了相同的IP地址,主机bsdi并不希望对此请求有一个回答,但是,如果收到一个回答,那么就会在终端日志上产生一个错误消息:"以太网地址:a:b:c:d:e:f发送来重复的IP地址",这样就可以警告系统管理员,某个系统有不正确的设置。

2、如果主机收到某个IP地址的ARP请求,而且它已经在接收者的高速缓存中,那么就要用ARP请求中的发送端硬件地址(如以太网地址)对高速缓存中相应的内容进行更新。

参考资料来源:百度百科-ARP协议

在论坛上经常看到关于ARP病毒的问题,在Google上搜索ARP关键字,结果出来很多关于这类问题的讨论。我的求知欲很强,想再学习ARP下相关知识,所以对目前网络中常见的ARP问题进行了一个总结。
1 ARP概念 咱们谈ARP之前,还是先要知道ARP的概念和工作原理,理解了原理知识,才能更好去面对和分析处理问题。 ARP,全称Address Resolution Protocol,中文名为地址解析协议,它工作在数据链路层,在本层和硬件接口联系,同时对上层提供服务。
IP数据包常通过以太网发送,以太网设备并不识别32位IP地址,它们是以48位以太网地址传输以太网数据包。因此,必须把IP目的地址转换成以太网目的地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。ARP协议用于将网络中的IP地址解析为的硬件地址(MAC地址),以保证通信的顺利进行。 首先,每台主机都会在自己的ARP缓冲区中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系。当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP列表中是否存在该 IP地址对应的MAC地址,如果有﹐就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址;源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
例如:
A的地址为:IP:192168101 MAC: AA-AA-AA-AA-AA-AA
B的地址为:IP:192168102 MAC: BB-BB-BB-BB-BB-BB
根据上面的所讲的原理,我们简单说明这个过程:A要和B通讯,A就需要知道B的以太网地址,于是A发送一个ARP请求广播(谁是192168102 ,请告诉192168101),当B收到该广播,就检查自己,结果发现和自己的一致,然后就向A发送一个ARP单播应答(192168102 在BB-BB-BB-BB-BB-BB)。 也就是ARP请求风暴
通讯模式(可能):
请求 -> 请求 -> 请求 -> 请求 -> 请求 -> 请求 -> 应答 -> 请求 -> 请求 -> 请求
描述:
网络中出现大量ARP请求广播包,几乎都是对网段内的所有主机进行扫描。大量的ARP请求广播可能会占用网络带宽资源;ARP扫描一般为ARP攻击的前奏。
出现原因(可能):
病毒程序,侦听程序,扫描程序。
如果网络分析软件部署正确,可能是我们只镜像了交换机上的部分端口,所以大量ARP请求是来自与非镜像口连接的其它主机发出的。
如果部署不正确,这些ARP请求广播包是来自和交换机相连的其它主机。 在网络中,有人发送一个自己伪造的ARP应答,网络可能就会出现问题。这可能就是协议设计者当初没考虑到的!
221 欺骗原理
假设一个网络环境中,网内有三台主机,分别为主机A、B、C。主机详细信息如下描述:
A的地址为:IP:192168101 MAC: AA-AA-AA-AA-AA-AA
B的地址为:IP:192168102 MAC: BB-BB-BB-BB-BB-BB
C的地址为:IP:192168103 MAC: CC-CC-CC-CC-CC-CC
正常情况下A和C之间进行通讯,但是此时B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192168103(C的IP地址),MAC地址是BB-BB-BB-BB-BB-BB(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP缓存(A被欺骗了),这时B就伪装成C了。同时,B同样向C发送一个ARP应答,应答包中发送方IP地址四192168101(A的IP地址),MAC地址是BB-BB-BB-BB-BB-BB(A的MAC地址本来应该是AA-AA-AA-AA-AA-AA),当C收到B伪造的ARP应答,也会更新本地ARP缓存(C也被欺骗了),这时B就伪装成了A。这样主机A和C都被主机B欺骗,A和C之间通讯的数据都经过了B。主机B完全可以知道他们之间说的什么:)。这就是典型的ARP欺骗过程。
注意:一般情况下,ARP欺骗的某一方应该是网关。
222 两种情况
ARP欺骗存在两种情况:一种是欺骗主机作为“中间人”,被欺骗主机的数据都经过它中转一次,这样欺骗主机可以窃取到被它欺骗的主机之间的通讯数据;另一种让被欺骗主机直接断网。
第一种:窃取数据(嗅探)
通讯模式:
应答 -> 应答 -> 应答 -> 应答 -> 应答 -> 请求 -> 应答 -> 应答 ->请求->应答
描述:
这种情况就属于我们上面所说的典型的ARP欺骗,欺骗主机向被欺骗主机发送大量伪造的ARP应答包进行欺骗,当通讯双方被欺骗成功后,自己作为了一个“中间人“的身份。此时被欺骗的主机双方还能正常通讯,只不过在通讯过程中被欺骗者“窃听”了。
出现原因(可能):
木马病毒
嗅探
人为欺骗
第二种:导致断网
通讯模式:
应答 -> 应答 -> 应答 -> 应答 -> 应答 -> 应答 -> 请求…
描述:
这类情况就是在ARP欺骗过程中,欺骗者只欺骗了其中一方,如B欺骗了A,但是同时B没有对C进行欺骗,这样A实质上是在和B通讯,所以A就不能和C通讯了,另外一种情况还可能就是欺骗者伪造一个不存在地址进行欺骗。
对于伪造地址进行的欺骗,在排查上比较有难度,这里最好是借用TAP设备(这个东东好像有点贵勒),分别捕获单向数据流进行分析!
出现原因(可能):
木马病毒
人为破坏
一些网管软件的控制功能
3 常用的防护方法
搜索网上,目前对于ARP攻击防护问题出现最多是绑定IP和MAC和使用ARP防护软件,也出现了具有ARP防护功能的路由器。呵呵,我们来了解下这三种方法。 最常用的方法就是做IP和MAC静态绑定,在网内把主机和网关都做IP和MAC绑定。
欺骗是通过ARP的动态实时的规则欺骗内网机器,所以我们把ARP全部设置为静态可以解决对内网PC的欺骗,同时在网关也要进行IP和MAC的静态绑定,这样双向绑定才比较保险。
方法:
对每台主机进行IP和MAC地址静态绑定。
通过命令,arp -s可以实现 “arp –s IP MAC地址 ”。
例如:“arp –s 192168101 AA-AA-AA-AA-AA-AA”。
如果设置成功会在PC上面通过执行 arp -a 可以看到相关的提示:
Internet Address Physical Address Type
192168101 AA-AA-AA-AA-AA-AA static(静态) Internet Address Physical Address Type
192168101 AA-AA-AA-AA-AA-AA dynamic(动态)
说明:对于网络中有很多主机,500台,1000台,如果我们这样每一台都去做静态绑定,工作量是非常大的。。。。,这种静态绑定,在电脑每次重起后,都必须重新在绑定,虽然也可以做一个批处理文件,但是还是比较麻烦的!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12823755.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存