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 报文格式
- 字段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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论