所以我一直在阅读有关 CIDR 的文章。如果我没记错的话,可以将相同的两个 IP 地址分配给两台机器,前提是它们具有不同的前缀长度(不同的子网)。我想知道这种分配是否曾经在“公共”互联网(即公共 IP 范围)中实现过。
答案1
所以我一直在阅读有关 CIDR 的资料。
如果我没记错的话,只要两台机器具有不同的前缀长度(不同的子网),就可以为它们分配相同的两个 IP 地址。
这取决于您如何定义“IP 地址”以及如何定义“互联网”。
首先让我们假设 IP v4(因为几十年来也有 IP v6)。
接下来,假设 IP 地址是一个 32 位值,通常分为 4 部分,并写为点分十进制。因此,IP 00000001000000100000001100000100 可以写为 1.2.3.4
在互联网(连接大量内部网的公共网络)上,这应该是唯一的。这就像电话号码,每部电话都有自己的号码。其中一部分用于路由,一部分用于识别网络,但组合是唯一的。
现在有两个例外:
- 网络不是连接到互联网。不可能与互联网上的网络发生冲突。随意分配。(尽管您稍后决定连接到互联网时会遇到问题)。为了避免出现此问题,我们保留了一些网络(请参阅 RFC 1918),这些网络永远不会路由到真正的互联网。
- 称为 NAT 的临时解决方案。它基本上将外部地址转换为一个或多个内部地址。再加上不将内部 IP 路由到 Internet,如果您没有为所有计算机分配足够的 IP,您可以解决一些问题。请注意,这是一个丑陋的黑客行为,它确实破坏了几个协议(例如 FTP)。它真的应该只在紧急情况下使用。
我想知道此类分配是否曾在“公共”互联网(即公共 IP 范围)中实现过。
不会。每个地址都是唯一的,处理 IP 范围时要小心谨慎。要小心避免冲突。
编辑,我想再添加两件事。让我们从一张图片开始。
在这张图片中,我有两个不同的网络,它们具有不同的长度前缀。
在计算机(右侧的“某台计算机”)和目的地之间有很多路由器。我将大部分路由器留在了小云中,但我明确地画了一个。
现在假设这台计算机有一个数据包,其目的地为1.2.3.7
。路由器应该怎么做?两个目的地都是有效的。无法到达其中一个?将数据发送到两个目的地(不必要地使用带宽并可能泄露信息)?
其次,如果左上角云中的计算机想要向左下角云中的计算机发送某些内容怎么办?两个网络中的计算机可能具有相同的编号(IP)。
以上两个例子都说明了为什么地址被设计成唯一的。你可以错误地配置,但确实会出现很多问题,甚至可能招致一些愤怒的网络维护人员的不满。
答案2
嗯,即使是不同的子网,使用相同的 IP 也是不可能的。如果你尝试的话,你会遇到很多有趣的事情(路由问题等)。
我看到有人对此发表了很好的回答在 serverfault.com 这里。
你的问题的答案是不.仅限唯一地址!