公网IP是唯一的吗?

ami*_*ami 2 router ip

公共 IP 是唯一的吗?我的意思是我们有两种IP:私有IP和公共IP,如果公共IP属于路由器,那么每个连接到一台路由器的IP地址是否都有?

fed*_*smo 13

一般而言,答案是肯定的,公共 IP 是全球唯一的。

在 IPv4 上下文中,已知不唯一的 IP (v4) 是私有 IP,它们位于以下范围内:

  • 从 10.0.0.0 到 10.255.255.255。
  • 从 172.16.0.0 到 172.31.255.255。
  • 从 192.168.0.0 到 192.168.255.255。

    RFC1918

您的家用路由器在“互联网端”接口上的 IP 是公共的,由您的 ISP 提供。您在家中的 WiFi 端或以太网 LAN 连接中使用的 IP 是私有的,因此它们不是唯一的,但这不是问题,因为它们在被 NAT 或被 NAT 转换之前永远不会离开您的家。

编辑:

现在,正如下面评论中提到的,我刚才所说的有一个例外。有一些技术可以让我们对一对一通信的原始互联网协议范式更加灵活,以允许一对最近。例如,当谈论需要高可用性、冗余或低延迟的服务(如 DNS 或 CDN 服务)时,就会使用这些技术。给定某个 IP(IPv4 或 IPv6),世界上可能有不止一个服务器配置为响应该 IP,但只有一个服务器会响应。

RFC4786

此外,IPv6 引入了一种新的寻址系统来应对这些“新需求”,并定义了“任播地址”

IP 版本 6 (IPv6) 定义了一种新的地址类型,称为“任播”地址,它允许将数据包路由到响应相同地址的多个不同节点之一[2, 3]。任播地址可以分配给一个或多个网络接口(通常在不同的节点上),网络将寻址到该地址的每个数据包传送到“最近”接口,这是基于所使用的路由协议确定的“距离”概念.

rfc2526

关于 IPv6 任播地址

任播地址是分配给通常属于不同节点的一组接口的地址。发送到任播地址的数据包被传送到由任播地址标识的最近接口(由所使用的路由协议定义)。任播地址在语法上与单播地址没有区别,因为任播地址是从单播地址空间分配的。将单播地址分配给多个接口使单播地址成为任播地址。分配了任播地址的节点必须明确配置为识别该地址是任播地址。

思科源

  • 您可以说私有 IP 也是独一无二的。它们无法从网络外部访问,并且在该本地网络内它们是唯一的。因此,无论您身在何处,私有 IP 对于您的设置也是独一无二的。 (4认同)
  • 不过,实际的公共 IP 可能是 NAT,其中许多客户共享相同的公共 IP。对于不向个人客户分配静态 IP 而无需支付额外费用的 IP,有时就是这种情况。 (4认同)
  • 挑剔。您指定的三个 RFC1918 范围和 127/8。 (3认同)
  • Nitpick 2:和 169.254.0.0/16,根据 RFC 3927。(链路本地 IP) (3认同)
  • @Reyssor:是的,这称为 [anycast](https://en.wikipedia.org/wiki/Anycast),其中多个网络具有相同的 IP 块。见丹尼尔 B 的回答 (2认同)

Dan*_*l B 6

不,这不对。这实际上很常见。这背后的技术称为任播,并被许多内容分发网络使用,例如 CloudFlare。

任播是一种网络寻址和路由方法,其中来自单个发送者的数据报被路由到一组潜在接收者中拓扑最近的节点,尽管它可能被发送到多个节点,所有节点都由相同的目标地址标识

然后,也有可能(暂时)窃取他人的 IP 地址。如果您是自治系统操作员,这相对容易。您可以简单地宣布您正在托管一些 IP,并且流量将神奇地定向到您。当然,合法拥有者也会广播这些公告,所以效果充其量只是暂时的,不完整的。

只有在单播寻址中,IP 地址才是唯一的。