ARP 地址解析协议 Address Resolution Protocol

简介

地址解析协议(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 地址解析协议 Address Resolution Protocol

ARP 报文格式

ARP 地址解析协议 Address Resolution Protocol

  • 字段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 地址解析协议 Address Resolution Protocol

响应包:

ARP 地址解析协议 Address Resolution Protocol

ARP 攻击

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

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

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

arp -a  // 查看 arp 的所有缓存

arp -s 192.168.0.1 mac 地址

以上是 ARP 地址解析协议 Address Resolution Protocol 的全部内容, 来源链接: utcz.com/p/233381.html

回到顶部