当具有已知 MAC 地址的主机移动到另一个子网时,ARP 是如何工作的

网络工程 联网 ARP
2022-02-11 00:52:41

我一直试图弄清楚这一点,但我很迷茫。

假设您有 3 个网络 -> A (PC0)、B (PC1) 和 C 在此处输入图像描述

如果 ARP 在 PC0 和 PC1 之间的第一次交互中已经知道所有 MAC 地址,那么 ARP 将如何表现,然后具有相同 MAC 地址的 PC1 将从网络 B(中间)移动到网络 C(右侧) . 由于 ARP 表中的 MAC 地址,它会尝试首先到达网络 B 吗?

非常感谢!

3个回答

移动设备的 IPv4 地址会发生变化,因此它将是一个完全不同的 ARP 表条目。

请记住,ARP 表是由 IPv4 地址索引的,因此尝试通信将导致新的 ARP 请求,以获取新 IPv4 地址的 MAC 地址。如果 IPv4 地址位于不同的网络上,则源主机将使用其配置的网关的 ARP 条目连接到该网络。

MAC 地址仅在它们直接连接的网络上相关或可见。源主机不知道不同网络上主机的 MAC 地址。

看来你有一个概念上的问题,所以我将把它带回到基础:

以太网可以被认为是一种总线,原来的粗线以太网或多或少就是这样。网络上的每个节点都可以直接与另一个节点通信,方法是向它发送一个帧,其中包含数据包中的目标 MAC 地址(当然也有源地址)。

Internet 协议(或任何网络层协议)的美妙之处在于,它允许您与超过一跳之外的系统进行通信。我经常使用机票的类比:您可能可以直接飞行,或者可能有不止一条腿,但无论哪种方式预订航班都是相同的过程。当您到达机场时,您会查看登机屏幕以查看下一站的登机口号码(这是 ARP 查找的粗略类比)。

关键是,在路由网络中,ARP 信息只适用于一跳。顶层路由器只知道路由器 A、B、C 之外的红色接口的 MAC 地址。

那么,如果您将 PC 从网络 B 移动到 C 会发生什么?答案是您最好(手动或自动)为其分配一个适合该网络的 IP 地址,否则它将无法工作。然后,顶层路由器看到网络 C 的地址并知道如何路由数据包。在我的比喻中,飞往正确的机场,然后担心登机口号码。

由于您在 PC0 和 PC1 之间有一个或 3 个路由器,因此 PC0 根本不会学习 PC1 的 MAC 地址。

很可能您的 PC0 将被配置为将所有数据包发送到其默认网关 - 它连接到的路由器(端口)。PC0 需要知道的唯一 MAC 地址是路由器端口的 MAC 地址。

如果您的路由器实际上是网桥,那么 PC0 不会有任何变化。