我了解了 NAT 以及它在 LAN 中的使用。我只是想知道,是否有可能两个或两个以上的设备在 LAN 中拥有相同的私有 IP?
两个或两个以上的设备可以在局域网中拥有相同的私有 IP 吗?
是的,这是可能的,但只会给您带来问题。您最终会遇到 IP 冲突,并且会看到一些帧/数据包将传输到一个设备而一些帧/数据包传输到另一台设备的问题。
您将看到的另一个问题是 MAC 地址和 IP 地址之间的映射。LAN 网段上的每个 MAC 地址都将映射到一个 IP 地址,设备将使用 ARP 将 IP 地址解析为 MAC,并将其放入它们的 ARP 表中。当两个 MAC 地址具有相同的 IP 地址时,您将最终将数据发送到错误的设备,因为在本地 LAN 段上,数据是根据 MAC 目标和源地址发送的。
例如,当设备使用 ARP 来找出谁拥有 IP 地址 192.168.1.1 时,设备最终会收到来自两个不同设备的两个响应,您可能会看到 ARP 表不断更新,因为 LAN 网段上的设备会认为 MAC更改为该特定 IP 地址。
如果您使用的是 Windows,请在命令提示符下键入arp -a以查看 ARP 缓存,它看起来与此类似。
> 192.168.0.1 00-00-4e-03-01-01 dynamic
> 192.168.0.255 ff-ff-ff-ff-ff-ff static
> 224.0.0.22 01-00-3e-6e-03-16 static
> 224.0.0.252 01-00-4e-4e-03-fc static
> 245.254.255.250 01-00-5e-7f-ff-fa static
> 245.254.255.255 ff-ff-ff-ff-ff-ff static
所以使用这些细节,当你的 Windows PC 想要发送数据时,它会查看目标 IP 地址,然后将此 IP 地址解析为 MAC 地址,以便它可以使用第 2 层将帧发送到目标 MAC 地址。如果它不知道 MAC 地址,它将发出一个广播 ARP,询问“谁拥有 IP 地址 192.168.1.1”,并等待响应。它应该只收到一个响应,如果有两个响应,您就知道有多个具有相同 IP 地址的设备。
如果我们在谈论 NAT,那么您可以加入使用相同私有 IP 方案的两个网络,但是当您连接到第二个网络时,通过 NAT,您的 IP 地址将更改为外部地址,因此您不再是使用第一个网络的私有 IP 地址。IP 地址将被转换为可以在第二个网络上工作且不会引起任何冲突的 IP 地址。例如,可以保留转换后的地址以仍然使用私有范围内的 IP 地址,但配置将确保您没有使用已在第二个网络上使用并已添加到 NAT 地址池的地址.
希望这可以帮助。
困人
在同一个局域网段内?不会。在 LAN 网络之间,您可以看到相同的 IP 地址。但在该网络中,所有 IP 都必须是唯一的。
因此,在站点 A 中,您有一个 IP 为 192.168.1.0 - 192.168.1.255 的 LAN,而在站点 B(通过启用了 NAT 的路由器连接到站点 A)中,您有一个具有相同 IP 的 LAN - 192.168。 1.0 - 192.168.1.255
这个有可能。但是在同一个网络中,不可能有两台主机都具有 IP 192.168.1.1,它会发生冲突。NAT 主要是为了让您可以在站点之间使用相同的私有 IP。
试想一下,如果对于站点 A 我们可以使用 192.168.1.0-255 而对于站点 B 我们必须使用 192.168.2.0-255。与站点 C、D、E 类似……您没有使用 192.168.1 或 .2 子网的选项?这会导致大量可用 IP 地址的浪费,不是吗?
因此,NAT 允许在段之间使用相同的 IP 范围。但不,你肯定,不使用 NAT 或任何与此相关的东西,在同一网段上有两个具有相同 IP 地址的主机。它必须是独一无二的。
希望有帮助!