客户端是否将默认网关的 IP 用于 ARP 以外的其他用途?

客户端是否将默认网关的 IP 用于 ARP 以外的其他用途?

当我 ping 外部未知 IP 时,我看到发送的 ICMP 数据包以默认网关的 MAC 地址作为目的地,正如预期的那样。然而,网关的 IP 地址并没有在任何地方使用 - 它只是一个自然以外部未知 IP 作为目的地的单个数据包。

那么为什么我(或 DHCP)需要在客户端上配置默认网关的 IP 地址?真的只需要触发单个 ARP 请求来查找网关的 mac 地址吗?

我知道默认网关是什么。令我惊讶的是,默认网关总是通过 IP 地址来标识,而实际上你真正需要的只是它的 MAC 地址。据我所知,你可以构建一个功能齐全的网关,甚至不需要一个 IP 地址。

答案1

MAC 地址是为接口定义的。如果默认网关路由器上的接口卡发生变化,或者路由器本身发生变化,则 MAC 地址也会发生变化。

另一种方法是在网关上使用固定的 MAC 地址,即在新硬件的接口上配置相同的 MAC 地址。但这并不总是可行的。

因此,仅使用 MAC 地址作为默认网关是不切实际的,因此使用 IP 地址。

这也和OSI网络层的划分一致,OSI第3层总是处理路由,第3层有自己的地址机制。

答案2

创建路由表条目时,网关 IP 地址用于决定数据包必须发送到哪个网络接口。之后,网关 IP 地址用于 ND 或 ARP 以了解目标的 MAC 地址。

还有其他方法可以指定路由表条目用于哪个网络接口。因此,如果您确实需要,可以避免使用 IP 地址。在这种情况下,网关 IP 地址将仅用于 ND 或 ARP。

这看起来可能有些多余,但请记住,每次引入间接层时,都意味着可以(或多或少动态地)更改某些内容以增加灵活性。例如,如果您有冗余网关,则从 IP 地址到 MAC 地址的映射可能会发生变化。

虽然可以绕过 ND/ARP 步骤,但很多软件并不直接支持该步骤。之所以不直接支持该步骤,是因为标准做法恰好更有用。

如果您确实想绕过 ND/ARP 步骤,您可以手动在 ND/ARP 缓存中创建一个条目并使用它。这将允许您使用仅知道其 MAC 而不知道其 IP 地址的网关,但这是一种非常罕见的情况。

相关内容