假设这个假设场景:我有一个父网络 192.168.0.0/16 和一个子网 192.168.42.0/24。
我有一个路由器,中间有两个网络接口,子网中的地址是 192.168.42.1。我可以将同一个地址分配给另一个网络接口(连接到父网络的接口)吗?这很正常吗?
答案1
是的,这是已知情况。这可以通过代理 ARP 解决。
让我描述一下问题出在哪里。较小的网络 .42.0/24 不会有问题。但是,.0.0/16 网络中的系统将 .42.0/24 中的地址视为其 LAN 的一部分,并将尝试直接访问它们,而无需任何路由器。它们将发送 ARP 请求,但没有人可以回答,因为这些请求不可路由。
在这种情况下,路由器必须是智能的,它将充当其 /24 LAN 的普通路由器,但对于 /16 网络,它应该显示为一组主机。它将使用自己的 MAC 地址(/16 侧接口的 MAC 地址)回答来自 /16 网络的每个 ARP 请求,该请求针对属于 /24 网络的任何 IP 地址(即任何 .42.x 地址)。这样,所有发往具有 /24 地址的主机的数据包都将传送给它,然后它可以将它们路由到正确的目的地。
/24 LAN 中的系统应将其 /24 侧地址设置为网关。/16 侧的地址是什么并不重要,因为想想看,无论它是什么,所描述的场景都会起作用。因此,它通常设置为与 /24 侧相同的地址,但网络掩码不同。