IPv4 只剩 100 天了

  • Alex Blewitt
  • 张龙

2010 年 11 月 28 日

话题:Java架构语言 & 开发

互联网是基于名为 IPv4 的网络协议的,该协议是 TCP(HTTP 及聊天应用使用)与 UDP(视频与音频应用使用)的基石。它使用了 4 字节的 IP 地址(如 192.168.54.32)来识别通道中的端点(大多数人和应用都会使用 DNS 名,它会将 www.infoq.com 转换为数字化的 IPv4 地址,如 63.246.7.184)。

然而遗憾的是,IPv4 地址空间很快就要耗尽了。根据@ipv4countdown所述,剩下的 IPv4 地址将在 100 天之内用尽;其余下的总数量不到 1.6 亿,也就是说剩下的地址大约为 9.137.0.0 个。我们已经用完了(或者说无法再分配)245.0.0.0 个 IPv4 地址,因此他们的使用速度将是非常迅速的。该数据显示在Hurricane Electric的一个倒计时盘中,Hurricane Electric 则是一个 IPv6 供应商。

目前还有一些 IPv4 地址可供使用。一些早先的网络先驱还留有大量的 IP 地址(可能还未使用);由于收购的原因,单个组织可能持有互联网的某个重要部分。然而,这仅仅会将 IPv4 地址将会耗尽这个不争的事实延期几个月而已。xkcd于 2006 年绘制的这个互联网地图展示了顶层的 8 个地址(也就是 1.0.0.0),像是 Apple、DEC、贝尔实验室以及波音等公司都会获得 IPv4 地址的 1/256,这让人感到担心。

一些人认为可以使用 NAT(搭配上 UPnP)来解决问题,减少对公共 IP 地址的需求量,但事实却并非如此。移动网络通常都会使用 IPv4 NAT 为每个设备分配一个“私有”类型的网络,比如人们在热点通常会找到 10.x.x.x 网络或是 192.168.x.x 网络。这些虽然不是公共地址,但路由本身仍旧需要使用 IPv4 地址以正常运作。

从长远来看,唯一的解决方案就是 IPv6。它会极大地增加网络空间,过去十年所开发的大多数网络工具都支持 IPv6,同时操作系统本身也对其提供了良好的支持。关键问题在于 IPv6 向用户公布的时间太晚了,支持 IPv6 的 xDSL 调试解调器还不多(大多数只支持 IPv4)。英国电信公司已经开始布局其21 世纪网络了(将电话迁移到 IP 主干网上),20 世纪的网络协议让人觉得很可笑。

IPv6 本身使用了不同于 IPv4 地址的点符号。与 4 个点分十进制不同的是,IPv6 使用了 128 位,表示为 1234:5678:90ab:cdef:1234:5678:90ab:cdef 这样一组数字。为了保持向后兼容性,IPv4 地址可以写为 0000:0000:0000:0000:0000:0000:63.246.7.184(这也有助于说明 IPv6 相对于 IPv4 所带来的大量数字)。幸好,对于任意一个以 0 开头的数字来说,0 是可以被推测出来的,因此 0:0:0:0:0:0:63.246.7.184 也表示与上面相同的地址。0 的任意连续序列都可以使用两个冒号进行替换,这样::63.246.7.184 也表达了相同的含义。

现在有几个转换机制。首先,网站既可以有 IPv4 地址(叫做 A),也可以有 IPv6 地址(叫做 AAAA)。拥有这两个地址的站点可以通过任意一种网络进行访问;系统会尝试这两个地址并返回第一个(某些系统一开始会查询 IPv6 地址,然后才是 IPv4——然而,最新的 Mac OSX 更新切换了这两者的优先级)。

IPv6 的另一个优势在于网卡可以实现自我配置。借助于探测机制,IPv6 客户端可以通过来自于 IPv6 路由器的广播探测到 IPv6 地址。接下来,客户端会使用其 Mac 地址(或是随机数)填充地址的底部,赋予本地系统唯一的地址。虽然这种机制对于客户端来说没有问题,但服务器端通常需要使用特定的 IP 进行配置以便它能够注册到 DNS 上。

某些特殊的地址目前已经在使用了。FF01:: 用作本地节点的多路广播网络(也就是说特定的机器),而 FF02:: 与 FF05:: 则分别用于本地链接(相同的网络)和本地站点的多路广播。其他的还有::1,它代表本机地址(127.0.0.1)。本地地址(自动探测到的)以 FE80:: 开头。如果你有一台支持 IPv6 网络的计算机,那么你就已经获得了一个 FE80:: 地址,与 IPv4 不同的是,每个网卡一次可以有多个 IPv6 地址。此外,IPv4 每次只会使用一个 IP 地址作为“广播”地址,而 IPv6 通常会使用本地链接或是其他广播机制代替特定的地址来广播数据。

当 IPv4 地址空间耗尽之际,各个国家将会讨论他们国内的供应,这可能要持续 6 到 12 个月。一旦完成,将不会再有新的 IP 地址可供分配,任何新的连接都只能隐藏在 NAT 之后或是迁移到 IPv6。

幸好,网络供应商与 ISP 早就注意到了这一点,他们已经在 IPv6 上投入了很多,但却没有大张旗鼓地宣传。然而,明后年提供 IPv6 连接是个当务之急;问题在于:是不是有些晚了?

查看英文原文:100 days of IPv4 left

Java架构语言 & 开发