地址解析协议(ARP):什么是报头?

⚡ 智能摘要

地址解析协议 (ARP) 将 32 位 IPv4 地址映射到 48 位 MAC 地址,以便设备可以在本地网络上通信,使用广播请求、缓存回复和标头字段来连接网络层和数据链路层。

  • 🔗 目的: ARP 将已知的 IP 地址转换为在本地网络上传递帧所需的 MAC 地址。
  • 🗂️ ARP缓存: 已解析地图pings 存储在带有超时的 ARP 缓存中,避免对已知主机重复广播。
  • 📡 分辨率 : 主机广播 ARP 请求,拥有该 IP 地址的设备返回一个包含其 MAC 地址的回复。
  • 🧩 ARP 类型: 代理,无偿, Reverse (RARP)和反向(InARP)ARP 满足特殊的寻址需求。
  • 🧾 头部字段: ARP 报头包含硬件类型、协议类型、地址长度、操作码以及发送方和目标方地址。
  • 🛡️ 安全性: ARP 没有身份验证机制,因此容易受到欺骗攻击,所以基于 AI 的监控有助于检测投毒攻击。

网络中的地址解析协议 (ARP)

什么是 ARP?

地址解析协议(ARP)是OSI模型中网络层的重要协议,它有助于查找目标地址。 MAC(媒体访问控制)地址 从设备中取出 IP地址ARP 的主要任务是将 32 位 IP 地址(对于 IPv4)转换为 48 位 MAC 地址。

它主要用于本地网络上的设备之间通信。ARP 的全称是地址解析协议(Address Resolution Protocol)。

地址解析协议(ARP)如何工作?

IPv4网络中的每个操作系统都维护着一个ARP缓存。当一台主机需要向局域网内的另一台主机发送数据包时,它首先会检查其ARP缓存,查看MAC地址转换映射是否已存在。如果映射不存在,则不会执行此操作。ping 如果 MAC 地址存在,主机将重用该地址;如果不存在,主机将广播 ARP 请求以发现 MAC 地址。

下图展示了主机如何解析地址,并将数据包通过中间路由器转发,直至到达目的地:

ARP 解析 MAC 地址并将数据包从主机 P 经由路由器 T1 和 T2 路由到主机 U。

考虑以下示例:

  • 当主机 P 上的应用程序向主机 U 发送消息时,主机 P 解析主机 U 的协议地址。
  • 如果 P 无法直接解析主机 U 的协议地址,则通过 T1 和 T2 路由,利用网络层将数据包传递给 U。
  • 主机P解析T1硬件地址。
  • 主机 P 上的网络层将包含 U 的目标协议地址的数据包传递给 T1 进行交付。
  • T1 将数据包传递给 T2,T2 再将数据包转发给主机 U。

重要的 ARP 术语

以下是与地址解析协议相关的重要术语:

  • ARP 缓存: ARP 解析出 MAC 地址后,会将其存储在表(缓存)中以供将来参考,这样后续通信就可以重用该 MAC 地址而无需再次广播。
  • ARP 缓存超时: 这是已解析的 MAC 地址在被删除之前可以在 ARP 缓存中停留的时间。
  • ARP 请求: 通过网络广播的数据包,用于检查发送方能否找到给定 IP 地址对应的目标 MAC 地址。
  • ARP 响应/回复: MAC 地址回复是源端从目标端收到的信息,有助于进一步的数据通信。

地址解析方法

协议地址与硬件地址之间的关联称为绑定。实现此目的有三种技术:

  • 表格查找: 绑定信息以协议地址为键存储在内存中。数据链路层检查协议地址以找到对应的硬件地址。
  • 动态: 这种消息传递方法用于“即时”解析。数据链路层发送硬件地址请求消息,目标层做出响应。
  • 闭式计算: 在这种方法中,协议地址基于硬件地址,因此数据链路层可以直接从协议地址推导出硬件地址。

ARP 的类型

以下是四种地址解析协议:

  • 代理 ARP
  • 免费 ARP
  • Reverse ARP(RARP)
  • 逆向 ARP (InARP)

下图概括了四种 ARP 类型,之后我们将逐一详细介绍:

图表总结了四种类型的ARP:代理ARP、免费ARP、 Reverse以及反向

代理 ARP

在代理ARP方法中,三层设备可以代表另一台主机响应ARP请求。配置好的路由器会响应目标IP地址,并将自身的MAC地址映射到该目标IP地址,从而使发送方的流量通过路由器到达预期目的地。

免费 ARP

免费ARP是主机向网络发送的请求,请求获取自身的IP地址。它有助于识别重复的IP地址。当路由器或交换机广播免费ARP请求获取自身的IP地址且未收到回复时,则表明没有其他节点正在使用分配给该设备的IP地址。

Reverse ARP(RARP)

Reverse ARP(也称为 RARP)是一种网络协议,局域网中的客户端系统使用它从 ARP 路由器表中请求自己的 IPv4 地址。网络管理员通常会在网关路由器中创建一个表,将每个 MAC 地址映射到特定的 IP 地址。

逆向 ARP (InARP)

反向ARP(InARP)用于根据节点的数据链路层地址查找其IP地址。InARP广泛应用于ATM网络和帧中继网络,在这些网络中,第2层虚电路寻址是通过第2层信令获取的。

ARP 报头

ARP 报头包含请求和应答用于携带寻址信息的字段。下图显示了 ARP 报头的结构:

ARP 报头结构,显示硬件类型、协议类型、地址长度、操作码以及发送方和目标方地址。

  • 硬件类型: 对于以太网,其值为 1。
  • 协议类型: 它是网络层使用的协议。
  • 硬件地址长度: 它是以字节为单位的长度,因此以太网的长度为 6。
  • 协议地址长度: 它的值为 4 字节。
  • OperaTION Code: 它指示数据包是 ARP 请求 (1) 还是 ARP 响应 (2)。
  • 发件人硬件地址: 这是源节点的硬件地址。
  • 发送方协议地址: 这是源节点的三层地址。
  • Target 硬件地址: 它用于 RARP 请求;响应则包含目标硬件地址和第 3 层地址。
  • Target 协议地址: 它用于 ARP 请求中;响应同时包含第 3 层地址和目标硬件地址。

使用 ARP 的优点

以下是使用ARP的优点和好处:

  • 如果知道系统的 IP 地址,就可以使用 ARP 协议轻松发现其 MAC 地址。
  • 终端节点无需手动配置即可“识别” MAC 地址;需要时可以自动查找。
  • ARP允许网络上的每个主机构建映射表。ping IP 地址和物理(MAC)地址之间的关系。
  • 地图集ping存储在主机中的 ARP 表或 ARP 缓存。

常见问题

ARP 请求在局域网内广播,但由于没有主机拥有该 IP 地址,因此没有设备响应。发送方没有收到 MAC 地址,因此数据包无法送达,最终在超时后被丢弃。

这被称为免费ARP。主机通告自己的IP地址到MAC地址的映射关系。ping 因此其他设备会更新其缓存。如果另一台机器响应,则表明网络上存在重复的 IP 地址冲突,管理员必须解决此问题。

ARP欺骗,或称ARP投毒,会发送伪造的ARP应答,将攻击者的MAC地址与合法的IP地址关联起来。由于ARP协议没有身份验证机制,受害者会将流量发送给攻击者,从而导致中间人拦截、会话劫持或拒绝服务攻击。

不,ARP 协议是 IPv4 特有的。IPv6 用邻居发现协议 (NDP) 取代了它,NDP 使用 ICMPv6 消息来解析链路层地址并检测重复地址,提供类似的地址映射。ping 此外,还增加了路由器发现等功能。

运行 arp -a Windows 或者使用 Linux 列出缓存的 IP 到 MAC 地址映射ping在 Linux 系统中,您还可以使用 ip neighbor 命令。要删除过期的条目,请使用 arp -d 命令,后跟 IP 地址,这将强制重新解析。

动态条目通过 ARP 请求自动学习,并在超时后失效。静态条目需要手动配置,且永不过期。静态条目能提高抗欺骗能力,但硬件或地址变更时需要维护。

是的。机器学习模型以正常的 IP 到 MAC 地址映射为基础。ping它会分析流量模式,然后标记出突然的变化、重复的 MAC 地址绑定或异常的 ARP 应答率,这些都可能表明存在恶意攻击。人工智能可以加快检测速度,但工程师在阻止可疑主机之前仍然需要确认警报。

GitHub 副驾驶 草案 Python 或者用于解析ARP表等任务的shell脚本, pinging 主机,或者通过简短的评论自动执行缓存检查。 Rev在对生产网络设备运行命令之前,请仔细查看生成的命令。

总结一下这篇文章: