TOC

为什么我还没有用上 IPv6?

  1. IPv6 是个好东西
  2. 我们都知道 IPv6 是个好东西
  3. 我们都想用上 IPv6

那么问题来了,为什么现在还没有大规模普及 IPv6 呢?我想了半天,得到了一个答案:因为我没做好准备。
确切的说,应该是:无数个我一样的人没有做好准备。

IPv4 很简单的一串数字,虽然世界上大部分人可能都不知道它是个啥,但肯定也存在相当比例能够理解这个概念的人,这对于一项技术的普及很有必要。
但是 IPv6,我作为一个开发者都说不清楚,更别提其他普通用户了。

PS: 之前的文章:《我们天天都接触的 IP 地址到底是什么东西?

IPv4 的问题

  1. 数量太少,不够用
  2. 分配不均,欧美发达国家的网络资源远超我们,更别提其他更落后地区了

第一个问题的解决办法:

  1. CIDR/VLSM 的出现使的 IP 的分配更加灵活,资源利用率更高,缓解了一部分问题
  2. ISP 给我们分的是私有 IP,再给我们做 NAT,我们也能访问公网,不过两个用户如果想要直连(P2P)就没门了。

第二个问题估计是无解,没有人愿意把吃到嘴里的肥肉吐出来,除非花钱。

IMG
IMG

地球上总人均应该是 37 亿可分配地址 / 78 亿人 = 0.47 个IP/人。
但是美国拿走了将近 44% 的 IP 地址,人均 4.9 个,甚至一家公司就可以拿到上千万个地址。
日本 1.5,中国 0.24 不到,一票非洲兄弟 0.00 更加惨不忍睹。

IPv6 的好处

更大的地址空间
更小的路由表
更高的安全性

IPv6 的问题

  1. 和 IPv4 不兼容,注定了这个迁移的过程是痛苦且漫长的。

IPv6 的阻碍

  1. 迁移到 IPv6 需要投入很大的成本, 包括 ISP,网络服务提供商,个人,都需要为之付出
  2. 现在的 NAT 方案也还能用,大部分用户都能接受(我保证 IPv6 出来之后会有很多新的玩法,只是大家还没尝过甜头)
  3. ISP 花了真金白银买了大量 IPv4 地址

现实就是,到目前为止,大部分网络应用都不能完全支持 IPv6 流量
还是那句话,我作为一个程序员,到现在为止,都还不知道需要如何支持 IPv6。

现有的系统在 IPv6 环境下,可能有出现严重的可用性问题,甚至是安全隐患,所以需要花大量时间和精力来投入改造。

IPv6 的格式

ipv6

世界上有多少个 IPv6 地址?

比较一下:

  • IPv4,比如 1.1.1.1,一共有 4 个字节,也就是 2^32 个地址,大约 43 亿。
  • IPv6,比如,一般写作八组十六进制数,一组四位(也就是两个字节),共 16 个字节,也就是 2^128 个地址,大约 340 万亿亿亿亿,数量级是 10 的 38 次方。
  • 知乎上看到有人估算地球上沙子的数量,有各种答案,也不知道谁对,但即便地球就是由沙子构成,按一克 650 粒沙子的算法,也就 10 的 30 次方而已。

所以说可以给
知道 IPv6 有多少了吧,我相信在人类开始向太阳系外移民之前,应该是用不完的。