ARP 地址解析协议 Address Resolution Protocol

发布于 2021-05-12 13:10:48 字数 2609 浏览 1488 评论 0

简介

地址解析协议(Address Resolution Protocol),其基本功能为透过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。它是IPv4中网络层必不可少的协议,不过在IPv6中已不再适用,并被邻居发现协议(NDP)所替代。

ARP 工作流程

假设主机A和B在同一个网段,主机A要向主机B发送信息,具体的地址解析过程如下:

(1) 主机A首先查看自己的ARP表,确定其中是否包含有主机 B 对应的ARP表项。

如果找到了对应的MAC地址,则主机A直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给主机B。

(2) 如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。

ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的IP地址和MAC地址,目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。

由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。

(3) 主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:

将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。

之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。

(4) 主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去。

ARP 报文格式

  • 字段1是ARP请求的目的以太网地址,全1时代表广播地址。
  • 字段2是发送ARP请求的以太网地址。
  • 字段3以太网帧类型表示的是后面的数据类型,ARP请求和ARP应答这个值为0x0806。
  • 字段4表示硬件地址的类型,硬件地址不只以太网一种,是以太网类型时此值为1。
  • 字段5表示要映射的协议地址的类型,要对IPv4地址进行映射,此值为0x0800。
  • 字段6和7表示硬件地址长度和协议地址长度,MAC地址占6字节,IP地址占4字节。
  • 字段8是操作类型字段,值为1,表示进行ARP请求;值为2,表示进行ARP应答;值为3,表示进行RARP请求;值为4,表示进行RARP应答。
  • 字段9是发送端ARP请求或应答的硬件地址,这里是以太网地址,和字段2相同。
  • 字段10是发送ARP请求或应答的IP地址。
  • 字段11和12是目的端的硬件地址和协议地址。

发送包:

响应包:

ARP 攻击

ARP 协议的基本功能就是通过目标设备的 IP 地址,查询目标设备的 MAC 地址,以保证通信的进行。 基于 ARP 协议的这一工作特性,黑客向对方计算机不断发送有欺诈性质的ARP数据包,数据包内包含有与当前设备重复的 Mac 地址,使对方在回应报文时,由于简单的地址重复错误而导致不能进行正常的网络通信。

因为这种攻击是利用 ARP 请求报文进行 欺骗 的,所以防火墙会误以为是正常的请求数据包,不予拦截。因此普通的防火墙很难抵挡这种攻击。需要下载专门的 ARP 防火墙软件。

有一款叫做 网络执行官 的软件,就是利用 ARP 欺骗的方式,流氓执法。

arp -a  // 查看 arp 的所有缓存
arp -s 192.168.0.1 mac 地址

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

已经忘了多久

文章 0 评论 0

15867725375

文章 0 评论 0

LonelySnow

文章 0 评论 0

走过海棠暮

文章 0 评论 0

轻许诺言

文章 0 评论 0

信馬由缰

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文