什么是ARP?地址解析协议如何工作

什么是ARP?地址解析协议如何工作

您的计算机在互联网上有两个地址:一个永久物理地址或介质访问控制(MAC)地址和一个逻辑互联网协议或 IP 地址。但是,由于许多计算机会不断更改 IP 地址,网络如何才能将不同的 IP 与单个 MAC 地址关联起来呢?

这就是 ARP,正式名称为地址解析协议。

ARP 的工作是在计算机的 MAC 地址和 IP 地址之间进行转换,这对任何网络来说都是非常有用的功能。不过,尽管 ARP 很有用,但它也会带来一些安全风险,包括可能截获潜在敏感数据的风险。

那么 ARP 是如何工作的呢?

在本文中,我们将定义 ARP,将其与类似的网络协议进行对比,探讨其各种类型和用例,以及在网络中使用它的风险。请继续阅读,进一步了解这一常见的网络协议,有时甚至是有风险的网络协议。

什么是 ARP?

地址解析协议或 ARP 是网络将计算机的 IP 地址转换(或解析)为物理机器地址的常用方法。

由于这两个地址的长度和格式不同,因此 ARP 对于允许计算机和其他设备通过网络进行通信至关重要。要真正理解这一点的重要性,让我们来快速复习一下这两种地址类型,以及它们与我们日常网络模型的关系。

ARP 链接计算机的 MAC 地址和 IP 地址

ARP 链接计算机的 MAC 地址和 IP 地址

IP 地址与 MAC 地址

您的电脑、智能手机和其他联网设备在互联网上有两个地址:IP 地址和 MAC 地址。

但为什么一台设备要有两个不同的地址呢?

试想一下,您的电脑是一个活动房屋。当移动房屋下线时,它可能会有一个序列号(或其他一些唯一标识符),将它与其他所有移动房屋区分开来。换句话说,移动房屋可以通过序列号来识别。

活动房屋有唯一的序列号

活动房屋有唯一的序列号

现在,假设您将活动房屋停放在小区里。根据您停放的地段,活动房屋会有一个街道地址,比方说 “27 Wbolt Lane”。如果您的活动房屋停放在同一地段,其街道地址仍为 27 Wbolt Lane。不过,您也可以很容易地将它移到路边,给它一个新的街道地址,比如 “93 Wbolt Lane”。

请注意,在这里停放活动房屋有两种形式的标识:序列号和街道地址。在这里,街道地址告诉了大家移动房屋相对于世界其他地方的位置,而序列号则将移动房屋与同一地段的其他移动房屋区分开来。

计算机的 IP 地址和 MAC 地址的作用完全相同,只是我们例子中的邻居现在变成了本地网络。

在这里,计算机的 MAC 地址是其在网络中的唯一物理标识符,就像移动房屋的序列号是其唯一物理标识符一样。因此,MAC 地址通常被称为物理地址或硬件地址。与序列号一样,您也无法更改计算机的 MAC 地址。

直接印在硬件上的 MAC 地址

直接印在硬件上的 MAC 地址(来源:LearnTomato

与此同时,计算机的 IP 地址是它在网络中的 “街道地址”。当计算机连接到网络时,它就会被分配一个 IP 地址,就像移动房屋停在停车场后会被分配一个街道地址一样。

但是,如果计算机断开网络连接,它就会失去 IP 地址,就像移动房屋从地段上移开时会失去街道地址一样。重新连接网络也等同于将移动房屋停放在其他地方,计算机将获得一个新的 IP 地址,就像移动房屋将获得一个新的街道地址一样。

当然,IP 地址和 MAC 地址与街道地址和序列号还是有很大区别的。

邮递员可以在不知道移动房屋序列号的情况下将邮件投递到移动房屋,而互联网协议(IP)则需要这两个地址才能将邮件或数据包投递到正确的计算机上。

MAC 地址和 IP 地址的主要区别

MAC 地址和 IP 地址的主要区别(来源:TechTarget

简而言之,MAC 地址和 IP 地址以不同的方式识别网络上的设备。以下是两者的一些主要区别:

  • 地址层不同。MAC 地址和 IP 地址工作在开放系统互连 (OSI) 模型的不同层,该模型描述了数据在计算机之间传输时所经历的各个阶段。虽然我们在这里不会说得太详细,但 MAC 地址工作在数据链路层(或第 2 层),该层直接转换通过电线发送的电信号和逻辑数据。IP 地址工作在更高一层的网络层(或第 3 层),负责处理整个网络的寻址和路由,就像在信封上写地址一样。
  • 本地范围与全球范围。MAC 地址用于在 “本地 “范围内识别不同的设备,如在办公楼内共享网络的不同电脑。IP 地址的工作范围更广,可控制互联网上的设备如何相互定位和通信。
  • 地址格式不同。由于 MAC 地址和 IP 地址工作在不同的层级,做不同的事情,因此它们也有不同的格式。MAC 地址的格式类似于序列号,由 12 个数字组成,每对数字之间用连字符或冒号隔开(00:00:00:00:00:00:00:00:00:00),而典型的 IPv4 地址则是 32 位地址(比特指二进制数字),由 4 个十进制数字组成(000.000.000.0000)。虽然你暂时不需要了解具体细节,但请注意,关联这两种地址格式是 ARP 的主要功能。
  • MAC 地址是永久性的。设备制造完成后,制造商就会为其分配 MAC 地址。该地址基本上 “嵌入” 到设备的网络硬件中,使其永久不可更改–就像我们前面提到的移动房屋序列号一样。IP 地址是临时性的,在设备连接到网络时分配。因此,设备在其生命周期内可以拥有多个不同的 IP 地址。
  • 物理地址与逻辑地址。根据上述引申,MAC 地址也被称为物理地址或硬件地址,而 IP 地址有时(但并不常见)被称为逻辑地址。
  • 分配时间不同。如前所述,MAC 地址在制造时只分配一次。之后,IP 地址可以分配任意次数,只要设备连接到网络即可。

那么 ARP 从何而来呢?

由于每台计算机都有这两个地址,因此必须有某种方法将一个地址与另一个地址关联起来,以便将数据包传送到正确的地方。这就引出了 ARP 的核心功能:将设备的 MAC 地址与其不断变化的 IP 地址关联起来,反之亦然。

让我们仔细看看它是如何工作的。

ARP 如何工作?

既然我们已经回答了 “什么是 ARP?”,就让我们来了解一下它是如何工作的。ARP 维护一个最新的 MAC 地址及其关联 IP 地址列表。该列表通常由网关或路由器维护–基本上,任何负责管理网络和设备之间数据流的网络交换机都会维护该列表。

为了理解这一点,让我们来看看下图。

以太网网络上的 ARP

以太网网络上的 ARP(来源:Fortinet

在这里,左边的 “主机” 计算机正试图向右边的 IP 地址为 34.40.21.20 的计算机发送数据。要成功向这台电脑发送数据,”主机” 电脑需要它的 IP 地址和 MAC 地址。

值得庆幸的是,主机已经有了这台电脑的 IP 地址。现在它需要的只是这台电脑的 MAC 地址,这就是 ARP 的作用所在。

网络连接设备和交换机(本例中为路由器)在其操作系统中维护着一个已知 IP-MAC 地址转换列表。这个列表被称为 ARP 缓存或 ARP 表,需要不断更新才能跟上不断变化的 IP 地址。

当计算机要向一个特定的 IP 地址发送信息时,它首先会检查其 ARP 缓存,看看是否有匹配的 MAC 地址。如果没有匹配的 MAC 地址,它就会发送请求数据包。

让我们用图中的两台电脑来说明这一过程:

  1. 主机计算机检查其 ARP 缓存,查看是否已经知道 34.40.21.20 的 MAC 地址。如果知道,它就拥有了所需的一切并发送了信息。
  2. 主机发送请求,获取 34.40.21.20 的 MAC 地址。
  3. 路由器收到主机发出的网络地址请求后,会使用 ARP 来查找 MAC 地址。
  4. ARP 会尝试参考路由器现有的 ARP 缓存,如果找不到 MAC 地址,它就会向 34.40.21.20 发送请求。
  5. 34.40.21.20 会将其 MAC 地址 (A5:22:98:5C:24:93) 发回路由器。
  6. 路由器更新其 ARP 缓存,并将 34.40.21.20 的 MAC 地址发回主机,完成请求。
  7. 主机向 34.40.21.20 发送信息。

虽然这只是一个基本的例子,但它应该能让你对 ARP 的核心功能有一些了解。

ARP 的另一个核心功能是维护(和清除)ARP 缓存中的 IP-MAC 转换。保持 ARP 缓存相对清晰不仅是获取最新信息的必要条件,还有助于消除不准确或未使用的地址。正如我们稍后将看到的,清除转换对于防止 IP 地址落入坏人之手也是必要的。

ARP 缓存中的条目也可以是动态或静态的。动态条目是指按照我们已经描述过的方式自动填充的条目。不过,用户也可以手动指定要永久保留的静态条目。这对于具有已设置(即静态)IP 地址的持久网络设备非常有用。

ARP vs DHCP vs DNS:有什么区别?

如果你对网络有一定的了解,你可能听说过动态主机配置协议(DHCP)和/或域名系统(DNS)。如果是这样,您可能还想知道网络中的 ARP 与这些类似协议有何不同。

这些都是不同的流程。虽然它们可能有一些相似之处,但在计算机网络中都发挥着不同的作用。让我们仔细看看。

  • DHCP 与 ARP:ARP 存在的主要原因是 IP 地址总是在网络中不断变化和重新分配。DHCP 是为主机配置动态 IP 地址的协议,因此被称为动态主机配置协议。DHCP 还有助于避免冲突,如多台计算机被分配相同的 IP 地址。
  • DNS 与 ARP:ARP 将 IP 地址和 MAC 地址关联起来,而 DNS 则将 IP 地址和域名(如 “wbolt.com”)关联起来。所有网站都依靠虚拟主机来托管其网页、图像和其他任何内容。与其他网络设备一样,虚拟主机服务器也有一个 IP 地址。不过,有了 DNS,访问网站就不需要输入主机的 IP 地址了。相反,你只需键入一个 URL,如 “www.example.com”,DNS 服务器就会获取匹配的 IP 地址,这样你的网络浏览器就可以从虚拟主机请求并提供网页。

DNS 将域名与 IP 地址相连

DNS 将域名与 IP 地址相连(来源:GeeksforGeeks

ARP 的用途和类型

虽然 ARP 看起来像是一个庞大而单一的过程,但它可以通过多种不同的方式来实现。

ARP 的四种主要类型

ARP 的四种主要类型(来源:IPXO

在解释什么是 ARP 时,有四种特殊类型:代理 ARP、无偿 ARP、反向 ARP (RARP) 和逆向 ARP (IARP)。每种类型都有不同的使用情况,在某些情况下还具有明显的优缺点。

什么是代理 ARP?

代理 ARP 是指由 ARP 配置的交换机(如路由器)处理来自其直接网络以外的设备/主机的 ARP 请求(即请求 MAC 地址)。交换机会发送自己的 MAC 地址作为回应,从而有效地充当其网络中每台主机的 “代表”。

路由器作为跨网络请求的代理 ARP

路由器作为跨网络请求的代理 ARP(来源:Practical Networking

为了说明问题,让我们仔细看看上图。在这里,中间的绿色路由器为两个独立的局域网提供服务: 10.0.0.0/24 和 10.0.4.0/24。

假设主机 B 想要向主机 D 发送一条信息。如果主机 D 位于同一个局域网(如主机 A)上,那就没有问题,但不幸的是,它位于不同的网络上。因此,主机 B 发现自己陷入了一个棘手的境地:如何才能获得主机 D 的 MAC 地址呢?

幸好有路由器的帮助。当主机 B 向路由器发送 ARP 请求信息时,路由器会介入并提供自己的 MAC 地址作为回应。有了路由器的 MAC 地址,主机 B 就可以向路由器发送信息了,而路由器现在就是主机 B 的 “代理”。

如你所想,代理 ARP 在计算机网络中极为常见,其典型用途包括 VPN 连接和防火墙

不过,代理 ARP 也有一些缺点,其中大部分是由于配置不当造成的。其中一个缺点是增加了向错误的地方发送信息的风险,因为在仅使用代理 ARP 时,网络外的设备可能不会意识到配置不当。代理 ARP 还可以作为拒绝服务 (DoS) 攻击的载体,我们稍后将对此进行探讨。

什么是无偿 ARP?

无偿 ARP 是指之前未请求的 ARP 响应。换句话说,无偿 ARP 是无偿发送 ARP 响应,实际上是向网络上的每台主机/设备广播其 IP 到 MAC 的转换。这几乎就像有人发送 “群发邮件”,让所有人知道他们更新了联系信息。

主机通过无偿 ARP 通知网络更新 MAC 地址

主机通过无偿 ARP 通知网络更新 MAC 地址(来源:IPCisco.com

无偿 ARP 有几种有用的应用。首先,它对更新 ARP 缓存和映射至关重要,尤其是当有新设备或节点加入网络时。对于新设备,免费 ARP 可避免向本地网络中的其他设备发送和响应单独的 ARP 请求。

确保冗余是免费 ARP 的另一个重要用途。例如,一些冗余网络可能使用两个或多个具有相同 IP 地址的路由器。当其中一个路由器发生故障时,”幸存 “的路由器会发送一个免费 ARP,通知网络向何处发送信息。

什么是反向 ARP (RARP)?

反向 ARP (RARP) 正如其名称所示。它发送的是 IP 地址而不是 MAC 地址。

主机发送 RARP 请求以了解其 IP 地址

主机发送 RARP 请求以了解其 IP 地址(来源:NetworkLessons

但为什么要这样做呢?网络上的主机不是已经知道 IP 地址了吗?

并非总是如此。有些主机甚至不知道自己的 IP 地址,这看起来不太可能。这通常是由于主机根本没有内存或空间来存储自己的 IP 信息,因此必须请求 RARP 才能进行通信。请记住,只有 MAC 地址是永久分配的,因此主机可能不知道 MAC 地址以外的任何信息!

什么是逆向 ARP(IARP 或 InARP)?

与 RARP 类似,反向 ARP(缩写为 IARP 或 InARP)也发送 IP 地址而不是 MAC 地址。但与 RARP 不同的是,反向 ARP 的工作原理与传统 ARP 完全相同,只是它将 MAC 地址转换为 IP 地址,而不是将 IP 地址转换为 MAC 地址。

IARP 对于不断变化的 IP 地址特别有用(再次感谢 DHCP)。在这种情况下,一台主机可能知道另一台主机或路由器的 MAC 地址,而这台主机或路由器的 IP 地址已经改变。主机只需掌握 MAC 地址,就可以通过 IARP 获取新的 IP 地址并发送信息。

什么是 ARP 欺骗?

ARP 欺骗也称为 ARP 中毒,是指黑客向目标网络发送虚假的 ARP 信息,试图将自己的 MAC 地址与网络上的合法 IP 地址连接起来。

黑客如何通过 ARP 欺骗拦截网络流量

黑客如何通过 ARP 欺骗拦截网络流量(来源:OKTA

如果成功,原本发送给拥有合法 IP 地址的计算机的信息就会被发送给黑客。这样,黑客就可以发起其他几种类型的网络攻击,包括:

中间人(MTM)

中间人(MTM)攻击是指黑客 “窃听” 网络流量,可能截获密码、银行信息等有价值的数据。在 ARP 欺骗攻击中,黑客利用虚假的 ARP 信息将网络流量重定向到他们的计算机上,通常将其传递给目标接收者,使其看起来像什么也没发生过。

会话劫持

会话劫持是指黑客窃取并假冒用户的会话 ID,这是一种授权用户在网站上执行某些操作的特殊数据类型。会话 ID 通常由网站以 Cookie 的形式分发,它允许用户保持登录状态或访问保存的购物车

通过 ARP 欺骗重定向流量,黑客可以轻松访问会话 ID 并假冒用户。这意味着他们可以做用户授权做的任何事情,如访问登录的银行账户。

拒绝服务(DoS)

拒绝服务(DoS)或分布式拒绝服务(DDoS)攻击有两种形式:黑客阻止向主机发送信息或黑客向主机发送过多信息。后者更为常见。

但无论哪种情况,ARP 欺骗都能让黑客大规模阻止或传输信息。通过拦截常规网络流量,黑客可以阻止信息发送给预定收件人,或将其重定向到单个目标。

小结

在此,我们深入解答了 “什么是 ARP?” – 的深入解答。ARP 是计算机网络中最常见、最有用的协议之一。有了 ARP,计算机和网络设备才能将物理 MAC 地址与不断变化的 IP 地址关联起来,从而实现我们今天所享受的便捷通信。

评论留言