Bendi新闻
>
全球 IPv4 耗尽,下月开始收费!开发者尝试迁移:IPv6 是一场“灾难”,没有可以直接用的东西

全球 IPv4 耗尽,下月开始收费!开发者尝试迁移:IPv6 是一场“灾难”,没有可以直接用的东西

9月前

编译 | 苏宓   出品 | CSDN(ID:CSDNnews)


IPv4 即将迎来付费时代:
  • 去年 7 月,亚马逊云科技宣布自 2024 年 2 月 1 日起,所有公共 IPv4 地址将按每小时 0.005 美元的价格收费,约合每月 4 美元,而且无论其是否附加到服务中,都要收费;
  • 基于容器的部署平台 Fly.io 也在不久前更新社区公告,称会在 2 月 1 日之后,对每个专用 IPv4 每月收取约 2 美元的费用;
  • 开源数据处理服务平台 Supabase 计划推出一个 IPv4 的付费附加服务,每月费用为 4 美元。
随着时间一天天临近,围绕「IPv4 收费,迁移到 IPv6」的讨论愈发激烈。
近日,开源数据处理服务平台 Supabase CEO 兼联合创始人 Paul Copplestone 也发起一则关于“做好准备,IPv6 即将到来”的呼吁。然而,由于 IPv4 讯息和 IPv6 讯息标头有很大不同,因此这两种协议无法互操作,同时升级到 IPv6 之路也面临多重挑战,甚至在有开发者进行了尝试使用,最终得出一个结论:IPv6 是一场“灾难”,我们未来虽可以解决困难,但目前准备仍然不足。

全球 IPv4 地址消耗殆尽,升级到 IPv6 提上日程

众所周知,随着互联网的不断发展,设备的数量急剧增加,导致 2019 年负责英国、欧洲、中东和部分中亚地区互联网资源分配的欧洲网络协调中心(RIPE NCC)无奈宣布,其最后的 IPv4 地址空间储备池在 2019 年 11 月 25 日 UTC + 1 15:35 完全耗尽,全球 42 亿个 IPv4 地址已分配完毕。
耗尽之后,对于想要继续使用公共 IPv4 地址的用户而言,他们主要靠回收和未使用地址段的释放才能用上 IPv4,其中这些地址要么来自倒闭的组织,要么来自于那些已经迁移到 IPv6 时不再需要的地址。
不难想象,获取日益稀缺的 IPv4 中间过程变得复杂,成本自然而然涨起来了。
此前,亚马逊云科技也曾透露过,在过去五年中,由于难以获得公共 IPv4 地址,单个地址的获取成本上涨了 300% 以上。
所以正如文章伊始所述,各大公司不得不采取收费政策,一方面为了鼓励大家在使用公共 IPv4 地址时更加节俭,另一方面,想要借此推动行业内采用 IPv6。
Paul Copplestone 表示,“虽然亚马逊云科技每月收取约 4 美元,对个人来说相对较少,但我的假设是,AWS 是许多基础设施公司(如 Supabase)的基础层——我们为每个 Postgres 数据库提供完整的 EC2 实例,因此这将使我们的 AWS 账单增加数百万美元。”
也有一些分析师表示,对于任何规模的 AWS 客户来说,这些费用都可以忽略不计,他们也许都不会在自己的账单上注意到这笔新增的支出。然而,对于许多中小企业和初创企业来说,这笔费用很容易就占到账单的 10-30%。

三种选择
那么在避不开这笔费用时,公司又有什么样的方法来尽可能地减少支出?
对此,Paul Copplestone 分享了 AWS 上的基础设施公司的三种选择:
  • 将成本转嫁给客户头上。这一点其实很好理解,就如 AWS、Fly.io 所做的,当涉及到租用或者购买 IPv4 地址时,制定新的收费政策,让客户为此付费买单。对于一个 IPv4 地址,AWS 新的收费金额为每年 43.80 美元(0.05*一天 24 小时*一年 365 天)。
  • 提供变通办法(例如代理)。此外,相关企业也可以为客户提供 IPv4 代理服务,通过代理将 IPv6 流量映射为 IPv4 流量。这种方式允许 IPv6 设备访问 IPv4 资源,同时减少对 IPv4 地址的直接需求;或者通过网络地址转换(NAT)技术优化 IPv4 地址的利用。共享一个 IPv4 地址,同时使用不同的端口来区分不同的服务或用户。
  • 只提供 IPv6,希望所有人都能跟上使用。

IPv6 普及存在的挑战
从长远角度来看,第三种方式即“只提供 IPv6”是最节约成本、解决后顾之忧的方案。因为作为 IPv4 的替代者,IPv6 提供了更好的支持移动设备、更灵活的地址分配、更简化的头部结构以及更好的安全性。
更为值得注意的是,IPv6 的地址空间极其庞大,可以提供大约 3.4 x 10^38 个地址,也有不少人调侃道——“IPv6 让全球每一粒沙子都有地址”,其数量远远超过 IPv4,从而满足未来互联网设备的增长需求。
IPv6 的到来显然是件好事,但是据 Google 统计的数据显示,IPv6 推出十多年时间,截至 2024 年 1 月 15 日,互联网上使用 IPv6 的用户未达五成,占比 41.23%。
至于其中原因,Paul Copplestone 将其归因为两个方面:
  • ISP 支持力不足
  • 缺乏工具支持

ISP 支持力不足
“你的互联网服务提供商支持 IPv6 吗?”
在 Paul Copplestone 看来,全球采用 IPv6 的最大挑战是 ISP(互联网服务提供商,Internet Service Provider)的支持。
简单来看,当你输入一个网站的域名时,它会被转换成一个 IP 地址。传统上,这些地址都是 IPv4 地址:
example.com → 93.184.216.34
这些域名最终将被转换为 IPv6:
example.com → 2607:f8b0:4006:819::200e
ISP 收到该地址后,负责把所有流量路由到正确的目的地。
遗憾的是,许多 ISP 还没有为此做好准备——它们需要更新的交换机、更新的软件以及与 IPv4 的互操作性。所有这些都需要花钱,而在过去 10 年中,这种投资并不值得。
如果你的互联网服务供应商不支持 IPv6,当域名/服务器开始解析为 IPv6 而不是 IPv4 时,你将会受到以下影响,以及报一些错误:
  • 你在 AWS 中设置了 Web 服务器吗?是的话,你将无法通过 SSH 连接到它。
  • 你是否使用直接连接从本地计算机连接到 Supabase 数据库?是的话,你需要使用连接池,它将解析为 IPv4(供应商将为这些 IPv4 地址付费)。
  • 你是从 Vercel 连接到任何 AWS 服务器的吗?如果不为服务器设置 IPv4 地址,连接很快就会失败。

缺乏工具支持
此外,许多开发者工具都还没有针对 IPv6 进行设置。Paul Copplestone 使用自家的开源 Firebase 替代方案 Supabase 来举例说明,他们的数据团队要想他们的工具链支持 IPv6,需要进行以下更改:
  • 为 VPC 网络添加 IPv6 支持。
  • 为 Airflow VM 添加 IPv6 支持。
  • 为 Docker 和 Compose 添加 IPv6 支持。
这些看起来都很简单的一句话,但要真正地实现,非常麻烦。下面是配置 Docker 的步骤:
1. 更新 /etc/docker/daemon.json:
"ipv6": true,"fixed-cidr-v6": "fd00:ffff::/80","ip6tables": true,"experimental": true
2. 重新启动 Docker 服务:
systemctl restart docker
3. 创建一个临时 IPv6 网络并进行测试:
docker network create --ipv6 --subnet fd00:ffff::/80 ip6netdocker run --rm -it --network ip6net busybox ping6 google.com -c3
4. 检查 IPv6 iptables 配置(FORWARD)
ip6tables -L
5. 添加 IPv6 网络配置到组成配置文件 docker-compose.yaml 中
# enable IPv6 to default networknetworks: default: enable_ipv6: true ipam: config: - subnet: fd00:c16a:601e::/80 gateway: fd00:c16a:601e::1
6. 检查是否在容器中运行
docker exec -it "airflow_airflow-worker_1" bashcurl -6 https://ifconfig.co/ip
对于像 Docker 这样无处不在的工具来说,这实在是太复杂了。

迁移到 IPv6,困难重重
话虽如此,在真实尝试过程中,DevOps 工程师 Mathew Duggan 坦言,还是被迁移到 IPv6 所遇见困难吓到了:“几乎没有任何东西可以开箱即用。主要的依赖程序立即停止运行,而变通方法也无法满足生产需要。队向 IPv6 迁移的过程非常坎坷,这主要是因为几乎没有人做过这项工作。我们多年来都没有做这项工作,现在我们需要付出代价。
Mathew Duggan 尝试将自己的博客(https://matduggan.com/ipv6-is-a-disaster-and-its-our-fault/)迁移到 IPv6,使用 CDN 管理 IPv4 流量。
他表示,“实际设置过程很简单。我配置了一个 Debian 设备,并选择了 ‘IPv6’。然后,我得到了第一个‘惊喜’。这台设备没有获得 IPv6 地址,只是得到了一个 /64 的地址,即 18,446,744,073,709,551,616。好消息是,我的小型 ARM 服务器可以通过扩展,在所有公共地址上运行我曾工作过的每家公司所有网络基础设施。“
然而当他尝试像普通服务器一样设置它时,问题来了。
问题一:无法通过 SSH(Secure Shell Protocol)登录
「这是一个可以预见的问题」,Mathew Duggan 说道,这是因为他工作或家里的 ISP 都不支持 IPv6,所以才需要设置自己的服务器,但现在却完全不起作用。
于是,Mathew Duggan 只能先附加一个 IPv4 地址,然后通过 SSH 登录,再设置 Cloudflared 来运行隧道。
让他失望的是,Cloudflare 系统并不会自行处理其中的转换工作。所以删除 IPv4 地址时,隧道意外崩溃了。
默认情况下,Cloudflared 工具使用的是 IPv4,我们需要编辑 systemd 服务文件,添加:--edge-ip-version 6。这样,隧道才能正常启动,Mathew Duggan 也能通过 SSH 登录了。
问题 2:无法使用 GitHub
当 Mathew Duggan 的服务器开始运行后,他尝试运行服务器设置脚本时,结果立刻就报错了。它正在尝试访问 hishtory 的安装脚本,这是一个很棒的 shell 历史工具。它试图从 GitHub 提取安装文件,但失败了。
Mathew Duggan 产生了疑惑,“这肯定不对。GitHub 一定支持 IPv6?”
结果意外发现这个整个互联网都在用的发布软件服务 GitHub 竟然不支持 IPv6。
最后迫于无奈,Mathew Duggan 使用了 TransIP Github 代理服务器,效果还不错。但是随后 Python 出现了 urllib.error.URLError 错误:<urlopen error [Errno 101] Network is unreachable>。
“好吧,我放弃了。我猜 Debian 中的 Python 3 版本不喜欢 IPv6,但我现在没心情排查它”,Mathew Duggan 说道。
问题 3 :无法设置 Datadog
接下来,Mathew Duggan 想设置 Datadog 来监控这台服务器。
Bug 再次出现,当他访问 Datadog,登录并开始操作时,系统立即崩溃了。他只是简单设置是运行 curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script_agent7.sh,现在 S3 支持 IPv6,那么问题究竟出在哪里?
经过排查,Mathew Duggan 发现问题不是出现在 S3 或服务器上,因为他可以正常使用 AWS 提供的 S3 连接测试。后来他通过 apt 手动操作解决了问题。
直至此时,Mathew Duggan 清晰地感知到,纯使用 IPv6 根本没有前途。如果不上代理和技术补丁,那几乎没有什么东西能正常工作。
后来,为了从 IPv6 访问 IPv4 资源,他选用了NAT64 服务(https://nat64.net/)作为支持。
此外,他也查找了很多工具,结果发现大多数工具都已经失效,如下列表单中的 Dresel 链接无法工作;Trex 在测试中出现了问题;August Internet 彻底消失;大多数 Go5lab 测试设备离线;Tuxis 倒是可以工作,但在 2019 年推出之后似乎就没升级过。只有一个 Kasper Dupont 支持度还是可以的。

IPv6 的普及任重而道远
在 Paul Copplestone 和 Mathew Duggan 看来,现在虽然已经到了向 IPv6 迁移的时期,但是大多数基础设施和软件还没有为这种变化做好准备。Duggan 警告称,需要针对 IPv6 进行培训和准备,这将是数字专业人员面临的重大挑战。
对此,也有不少开发者感同身受,来自 HN 上的网友纷纷吐槽道:
  • “我仍然在诅咒 IPv6 的设计者没有让它向后兼容 IPv4。IPv6 的设计无疑更好,但由于缺乏向后兼容性,向 IPv6 过渡绝对是个大难题。我知道设计者认为过渡只需要几年时间,但将近 30 年过去了......我们还是在这。”
  • IPv6 并不能真正解决地址耗尽的问题,除非 IPv6 地址成为一等公民,而只有当我们不再需要依赖 IPv4 地址时才会发生这种情况。
那么不迁移到 IPv6,停留在 IPv4 上,它可能无法满足日益增长的需求,导致性能下降和服务不稳定,同时许多组织采用 NAT 技术来共享有限的 IPv4 地址,这也为其增加了网络管理的复杂性,可能导致一些应用程序或服务的功能受限。
基于此,越来越多的组织加入到实施 IPv6 迁移的浪潮之中。
来源:
https://supabase.com/blog/ipv6
https://matduggan.com/ipv6-is-a-disaster-and-its-our-fault/

https://news.ycombinator.com/item?id=39032665

END

官方站点:www.linuxprobe.com

Linux命令大全:www.linuxcool.com

刘遄老师QQ:5604215

Linux技术交流群:2636170

(新群,火热加群中……)

想要学习Linux系统的读者可以点击"阅读原文"按钮来了解书籍《Linux就该这么学》,同时也非常适合专业的运维人员阅读,成为辅助您工作的高价值工具书!


微信扫码关注该文公众号作者

来源:Linux就该这么学

相关新闻

特稿丨走在世界前列!这一“全球最大”是怎么做到的?全球唯一没有“癌症”的国家:禁止携带苹果,对中国免签!比马代纯净,美到窒息却鲜有人知......科幻惊悚片!北极冻土层里的僵尸病毒正在复苏:全球下一场疫情?全球“变凉”?极端天气的转变:厄尔尼诺减弱,拉尼娜7月恐回归!时尚圈最火的“玻璃手提包”,2w块一个!一摔就碎,却风靡全球...网友:到底是谁在买啊!?触目惊心!一场大火,15人丧命!新州突发类似事件,或为“历史首次”!消防局紧急提醒:这种东西家家都有!班主任透漏:正在“早恋”的学生,往往都会买这三样东西,一抓一个准!黄仁勋重磅官宣!“全球最强大的芯片”已开始投产电子签+直飞!比芬兰更有性价比!被称为“北方威尼斯”的它,是全球审美第一?刚刚,GitHub 遭遇全球宕机,Copilot 也瘫痪了!开发者:今天可以光明正大摸鱼了重磅!这一西方国家狂“送”绿卡!预计超15000张!新西兰要收紧移民?“这是全球趋势!”下一场全球大流行病:困在北极冰层中的古代僵尸病毒正在复活!这类人群最危险...全球唯一没有中国人的“国家”,全国仅32人,3个足球场大,地图上找不到,游玩超3小时必须离开想带点“东西”来芝加哥!女子的行李在机场被海关拦下 结果……儿子参加的这场“全球赛事”,彻底刷新了我的育儿观!万亿巨头宣布:全球下架!曾承认“或引发罕见副作用”,有人接种后永久脑损伤全球销量6000万的开发板:“树莓派”上市了——曾坐马斯克的大火箭上太空唯一​靠“屎”暴富的国家:曾是全球第一,人人不上班,跑车遍地!如今全民讨饭,刚与中国复交​全球“差评”最多的国家:对中国免签,却曾禁止中国人入境!骗子遍地,每年有千万人前往,还是此生必去全球第三!新西兰上榜“关系最混乱国家”榜单!房子比结婚更重要?有网友吐槽:“孩子班上90%的家长离异!”黄胜利:我们教育最核心、最基础的东西,是“让人成为更好的自己”那个碾压清北学霸跻身全球前30的中专生:是“小镇做题家”还是超强“扫地僧”?一场含“叠”量较高的索尼发布会,让全球玩家化身“急急国王”?确诊脑癌后进行“自疗”,澳男当自己的“小白鼠”意外痊愈!成全球首例尝试新疗法的病例
logo
联系我们隐私协议©2024 bendi.news
Bendi新闻
Bendi.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Bendi.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。