有意识地关闭我的网站Taking down my site on purpose:
文章反思了个人网站托管与数据同步的挑战,指出多设备环境下数据迁移的普遍难题。作者回顾早期网络因缺乏统一寻址协议而导致文件跨网传输需依赖中间节点手动转发的问题,引出互联网如何通过 IP 路由实现自动数据传输的历史背景。
如果你有多台计算机,很快就会遇到一个问题:一台上有数据,另一台却需要它。 为此,人们从一开始就在尝试把它们连接起来。
然而,这带来了一个经典难题:每个网络都使用自己的寻址方式、底层协议、头部信息等…… 如果你想把文件从一个网络传到另一个网络,就必须找一台同时连接两个网络的机器,然后手动转发。
为了能在不同网络之间自动路由数据,我们必须就一种通用的设备编号方案达成一致。 到了 20 世纪 80 年代,大家最终选定了 32 位的“IPv4”地址。
这是我服务器的地址(按字节拆分):
65.109.172.162当时计算机体积庞大且价格昂贵,所以 32 位绰绰有余: 毕竟谁也没想到世界上会突然出现几十亿台联网设备啊……
这种设计还允许按地理位置和 2 的幂次方大小的块来分配地址,这让互联网具备了可扩展性——因为每台路由器不必知道每台具体设备的细节:
当你的 ISP 网络看到我的地址时,它不需要知道 65.109.172.162 是哪个具体的电脑, 只需要知道所有以 65.109 开头的流量都应该发往芬兰就行了。
……但这也意味着实际可用的最大设备数量远小于完整的 32 位地址空间。
到 2011 年左右,我们基本用光了这些地址。
为了让互联网继续运转,人们开始让多台设备共享同一个 IPv4 地址。 你家里的每一台设备几乎都是通过一套相当复杂的“NAT”机制共用一个公网 IPv4 地址的。
……但这也还是不够用。
最近,ISP 也开始让多个用户共享同一个公网地址。 这显然会给在家托管服务(比如网站、多人游戏等)带来麻烦, 对普通用户来说也有问题:你可能会因为别人做的事而被某个网站惩罚。
如果你见过“您已被封禁”的提示, 或者每次访问都要做验证码, 甚至莫名其妙地打不开页面…… 那很可能就是下面这种情况:
在你之前拥有这个 IP 的人要么做了坏事, ——更可能的是—— 被黑了,成了罪犯用来隐藏流量的无意识代理。
记住,IP 地址是网站唯一能用来识别发送者的信号。 除非他们想强制所有人注册账号,否则 IP 屏蔽就是唯一选择。
解决方案其实很简单: 既然 32 位已经不够用了……那就用更长的地址呗。
早在 1995 年,128 位的 IPv6 地址就已经被标准化了: 长度是 IPv4 的四倍。 它能提供多少个唯一地址呢?
340,282,366,920,938,463,463,374,607,431,768,211,456不用说,这个数字大得惊人。这是我的 IPv6 地址:
2a01:04f9:c011:841a:0000:0000:0000:0001更大的地址还有很多其他好处: 虚拟主机的需求减少, 地址层级结构可以更清晰, 还可以在 /64 块中嵌入 MAC 地址,实现无状态(且可预测)的 IP 分配。
问题解决了吗?
并没有。
尽管 IPv6 已经存在了 30 年(几乎和 Gopher 一样老), 但大多数人仍然无法接入支持 IPv6 的网络:
10 Users don't have IPv6 support
20 ... so websites are forced to support IPv4.
30 ... so users don't notice they are missing anything.
40 ... and don't complain to their ISP
50 GOTO 10正因为如此,尽管解决方案早已问世, 1980 年代的错误决策仍在让你的网络体验变得更差、更贵。
为了帮助打破这个循环,我决定在我的网站上暂时移除 IPv4 支持。 虽然这会切断大部分读者的访问, 但我只会每月禁用一天:
从今天起,6 号将成为 IPv6 Day。
任何通过 IPv4 访问我的网站的尝试都会收到一条消息,告知你所在的网络仍然不支持 30 年前的标准。
如果你真的想在第六天访问我的网站,请使用手机: 所有主流运营商早已跟上时代步伐, 因为为每个设备分配独立地址能提升性能并简化管理。 (实际上有不少运营商已全面运行仅支持 IPv6 的网络,并通过 NAT64 代理访问仅支持 IPv4 的服务器。)
显然,一个网站宕机只是普通的网站故障。 要使此方案生效,需要许多人共同实施。 如果你的网站允许 97% 的正常运行时间,可以考虑采用类似做法。
如果停机时间不可接受,不如加个横幅提示 IPv4 用户?
相关:
需要完整排版与评论请前往来源站点阅读。