ARP 表项

网络工程 arp
2021-07-23 11:26:29

我试图研究不同的 ARP 主题,但没有一个对我有帮助。

对于你们中的许多人来说,这可能是一个荒谬的问题,请怜悯一个为 CCNA 学习的可怜的菜鸟:)

说了这么多,问题来了。

我在由 2 个路由器分隔的 2 个不同网络上有 2 台主机。

如果从“主机 A”ping“主机 B”,我在主机 A 上的 ARP 表会是什么样子?

我试图在 Packet Tracer 上模拟这一点,并且两台主机上唯一的 ARP 条目是它们自己的网关 IP 和路由器接口的 MAC 地址。

我还希望找到与我的 G0/0 网关接口的 MAC 地址相关联的远程主机 B IP 地址。

我有任何意义吗?

1个回答

那幅图中的答案是错误的。

[编辑:图像已被删除。它有一个这样的网络,带有 IP 和以太网地址。“答案”表明,在 A ping B 之后,A 的 ARP 缓存具有 B 的 IP 地址和 Router1 Fa0/0 的以太网地址。]

                   Fa0/0 Fa0/1    Fa0/0 Fa0/1
A ----- switch ----- Router1 ------ Router2 ------ B

一个给定的操作系统可以维护 MAC 条目,用于将给定的 IP 地址发送到哪里,但大多数都没有。该示例显示目标主机 B 将通过以太网发送到 Fa0/0 的以太网地址,即本地网关的近端接口。这行得通,也许有些操作系统会这样做——他们必须在网络掩码和路由表之前检查 ARP 缓存我面前的人没有,我也从未见过。

通常的方式是主机维护一个路由表,对于主机来说,它通常是“发送所有非本地到默认网关的内容”;对于本地的东西,还有一个 MAC 地址表,它说发送 IP 地址 X 到 MAC 地址 M。在这个表中有一个网关条目,当然是本地的。IP 地址及其匹配的 MAC 地址通过 ARP 添加到表中,通过操作系统选择的任何方法进行维护,例如使用传入数据包中的信息,最后在不再需要时通过超时从表中删除。

要了解您自己的主机做什么,请尝试

arp -a           # or "show ip arp" on a cisco
ping 8.8.8.8     # or anything not local
arp -a

关于 ARP 的总体情况

MAC 地址通常是它们自己的本地网络的私有地址。

了解正在发生的事情的方法是考虑这一点:

  • 主机 A,通过以太网连接到
  • 路由器 RA,通过电话公司专用方法连接到
  • 路由器 RB,通过超级昂贵的晦涩网络技术连接到
  • 主机B

为什么主机 A 对主机 B 上超级昂贵的晦涩网络技术一无所知?那是B的所有者的事情。它甚至不需要知道Router RA的另一端。

或者换一种说法,只是因为主机A具有以太网,并理解以太网地址,为什么要B使用以太网在所有也许它使用 RS-232 上的 PPP——在这种情况下,B在任何地方的任何 ARP 表中根本没有 MAC 地址A怎么会知道?为什么A会在意?相反,运行 PPP 的主机 B 知道 LCP 幻数,并且可能没有任何以太网软件。它会用主机 A 的以太网地址做什么?A 可以用 B 的幻数做什么?

这一点是互联网接管世界的重要原因之一:A 的所有者只需要知道如何连接到连接到其他东西的东西。我们不需要知道太多关于它们的信息:只需要知道 IP 地址。这意味着他们可以自由地开发他们想要的任何东西,而我们的计算机不需要拥有甚至能够理解远端设备本地寻址方法的软件。

所以 ARP 问题的答案是:如果这个主机使用 ARP,它会维护本地连接的东西的 MAC 地址,比如这个主机路由器。我知道如何将信件放入邻居的信箱,我的一个邻居是邮局。当我给你寄信时,我根本不知道你的邮局是如何给你寄信的。

MAC 地址是第 2 层关注的问题,仅用于我们通过第 2 层连接的事物。A 仅通过第 2 层连接到 RA,因此只有 RA 和它自己的 MAC 地址。