ARP 缓存条目

网络工程 转变 路由器 arp 网络
2021-08-02 10:24:12

考虑 2 台 PC 01 和 02,其中 01 连接到路由器 R,路由器 R 又连接到交换机 S,交换机 S 连接到 02:

                    01--R--S--02

我需要了解如果 02 的 ARP 缓存被 PC 01 ping 然后被交换机 S ping 会发生什么。

我对此感到困惑,非常感谢我能得到的任何帮助。

4个回答

关于您的网络设计的第一件事是有两个不同的子网,换句话说有两个不同的网络。路由器连接这些网络。为了回答您的问题,我们应该了解路由器和交换机的实际工作原理以及它们在网络中的作用。简而言之;

-->路由器使用 ip 地址来实现它的任务,即连接网络

-->交换机使用mac地址来实现它的任务,即连接同一网络中的主机和设备

两个网络意味着两个不同的 ip 子网。在您的问题中,如果您不使用 IP 隧道,则 01 和 02 必须具有不同的网络 ID。

假设01 的网络 ID是 192.168.1.0/24并且它来自这个块的 IP 地址是192.168.1.402 的网络 ID是 172.16.0.0/16并且它在这个块中的 IP 地址是172.16.1.3除此之外,属于 192.168.1.0/24 的第一个接口的路由器的 ip 地址是192.168.1.1,属于 172.16.0.0/16 的其他接口的路由器的 ip 地址172.16.1.1

当您从 01 ping 02 时ping 172.16.1.3,路由器将通过更改帧字段将您的 ICMP 数据包转发到另一端这真的很重要!路由器会将源 mac 地址字段从01 的 mac 地址更改为其属于 172.16.0.0/16 网络的接口的mac 地址那么路由器将instert的02 MAC地址目的MAC地址字段

路由器怎么知道02的mac地址?答案是路由器中的ARP表。路由器查看其 ARP 表以找到 172.16.1.3 的 mac 地址。在这些操作之后,路由器生成了一个新的数据包。这个新数据包中没有 01 的 mac 地址,因此 02 永远不会知道 01 的 mac 地址。最终,02 的 ARP 表中将没有关于 01 的条目

但是会出现Router接口的mac地址属于172.16.0.0/16网络的条目。.

举例来说,

02的ARP表;

IP 地址 --> Mac 地址为 172.16.1.1 -- xx:xx:xx:xx:xx:xx

ARP 存储IP 地址与其各自的MAC 地址之间的映射关系。

既然您提到您的交换机可以 ping,我将假设您的意思是它是第 3 层交换机而不是纯第 2 层交换机。

假设设置如下:

PC1 (.1) --- R1 (.2) --- S1 (.3) ---- (.4) PC2

[网络:10.10.10.0/24]

[我假设 R1 和 S1 中的 10.10.10.2 和 10.10.10.3 分别是 SVI,而 R1 和 S1 中的链接都是交换机端口]

从 PC1 到 PC2 的 Ping 将在 PC2 中创建一个 ARP 条目:10.10.10.1 --- PC1

从 S1 Ping 到 PC2 将使 PC2 中的 ARP 条目为:10.10.10.3 --- S1

我认为当您从 PC1 ping 到 PC2 时,数据包会通过 R1 和 S1 桥接到 PC2,而没有更改任何标头,(即)源 MAC 地址仍将是电脑1。

现在让我们假设 PC1 和 PC2 在不同的子网中。

PC1(10.10.10.1) --- (10.10.10.2) R1 (20.20.20.1) --- S1 (20.20.20.2) ---- (20.20.20.3) PC2

[再次在这里,我假设 20.20.20.2 是 SVI,而 S1 中的链接是交换机端口]

当您从 PC1 ping 到 PC2 并假设已为 PC1 设置默认网关 R1 时,ping 数据包将发送到 R1,然后 R1 会将其路由到正确的网络(在本例中为 20.20.20.0/24) .

因此,从 PC1 ping PC2 将在 PC2 中生成一个 ARP 条目:20.20.20.1 --- R1

从 S1 到 PC2 的 Ping 将在 PC2 中创建一个 ARP 条目为:20.20.20.2 --- S1

当一个设备向另一个设备发送信息时,ARP 会将第 3 层地址解析为第 2 层地址。因为它试图解析第 2 层地址,所以它只在第 2 层 LAN 上运行,而不是跨第 3 层设备(例如路由器)运行。

如果 R 的 ARP 表中没有 02 的条目,R 将发送 02 的第 2 层地址的 ARP 请求,并且两个设备的 ARP 表将使用另一个设备的第 2 层地址更新,否则 R 将简单地向 02 发送 ICMP 回显请求。

当 02 回复 01 时,如果它的 ARP 表中没有 R 的条目,那么它将向 R 发送一个 ARP 请求,并且两个设备的 ARP 表都将更新为另一个设备的二层地址设备,否则 02 将简单地将 ICMP 回显回复发送到 01。

二层交换机通常是透明设备,因此,它们在三层设备的 ARP 表中没有任何作用,除非 S 是与 02 处于同一三层网络中的管理三层地址的管理型交换机,然后从S ping 02,如果S 的ARP 表中没有02 的条目,则S 将向02 的第2 层地址发送ARP 请求,并且两个设备的ARP 表都会随着该层更新-2 其他设备的地址,否则 S 将简单地向 02 发送 ICMP 回显请求。

当 02 回复 S 的管理接口时,如果它的 ARP 表中没有 S 的管理接口的条目,那么它将向 S 的管理接口发送一个 ARP 请求并更新它的 ARP 表S的管理接口的二层地址。

如果 S 的管理接口在不同的网络中,则结果将与 01 ping 02 相同:R 和 02 的 ARP 表可能会更新。

在任何情况下,交换机都会查看进入交换机的任何帧,并根据该帧的源第 2 层地址更新其 MAC 地址表。然后它将在其 MAC 地址表中查找目标 MAC 地址,以查看它是否有条目。如果未找到目标第 2 层地址条目,它将将该帧泛洪到所有其他交换机接口。如果在 MAC 地址表中找到第 2 层目的地址,则将帧发送到 MAC 地址表指示的接口。

任何第 3 层设备的 arp 表都将具有其直接邻居的mac 地址,即下一跳,因为 mac 地址在由路由器转发时在帧中更新。

所以PC 02 和PC 01在他们的arp 表中不会有彼此的mac 地址条目。他们会有路由器的