额。。全球IPv4耗尽,下月开始收费!

C语言与CPP编程 2024-01-30 08:31

击上方“C语言与CPP编程”,选择“关注/置顶/星标公众号

干货福利,第一时间送达!

最近有小伙伴说没有收到当天的文章推送,这是因为微信改了推送机制,有一部分小伙伴刷不到当天的文章,一些比较实用的知识和信息,错过了就是错过了,建议大家加个星标⭐️,就能第一时间收到推送。

编译 | 苏宓 
出品 | 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 错误:

好吧,我放弃了。我猜 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

EOF

你好,我是飞宇,本硕均于某中流985 CS就读,先后于百度搜索字节跳动电商以及携程等部门担任Linux C/C++后端研发工程师。

最近跟朋友一起开发了一个新的网站:编程资源网,已经收录了不少资源(附赠下载地址),如果屏幕前的靓仔/女想要学习编程找不到合适资源的话,不妨来我们的网站看看,欢迎扫码下方二维码白嫖~

同时,我也是知乎博主@韩飞宇,日常分享C/C++、计算机学习经验、工作体会,欢迎点击此处查看我以前的学习笔记&经验&分享的资源。

我组建了一些社群一起交流,群里有大牛也有小白,如果你有意可以一起进群交流。

欢迎你添加我的微信,我拉你进技术交流群。此外,我也会经常在微信上分享一些计算机学习经验以及工作体验,还有一些内推机会

加个微信,打开另一扇窗

C语言与CPP编程 C语言/C++开发,C语言/C++基础知识,C语言/C++学习路线,C语言/C++进阶,数据结构;算法;python;计算机基础等
评论
  • 耳机虽看似一个简单的设备,但不仅只是听音乐功能,它已经成为日常生活和专业领域中不可或缺的一部分。从个人娱乐到专业录音,再到公共和私人通讯,耳机的使用无处不在。使用高质量的耳机不仅可以提供优良的声音体验,还能在长时间使用中保护使用者听力健康。耳机产品的质量,除了验证产品是否符合法规标准,也能透过全面性的测试和认证过程,确保耳机在各方面:从音质到耐用性,再到用户舒适度,都能达到或超越行业标准。这不仅保护了消费者的投资,也提升了该公司在整个行业的产品质量和信誉!客户面临到的各种困难一家耳机制造商想要透
    百佳泰测试实验室 2024-12-20 10:37 272浏览
  • Supernode与艾迈斯欧司朗携手,通过Belago红外LED实现精准扫地机器人避障;得益于Belago出色的红外补光功能,使扫地机器人能够大大提升其识别物体的能力,实现精准避障;Belago点阵照明器采用迷你封装,兼容标准无铅回流工艺,适用于各种3D传感平台,包括移动设备、物联网设备和机器人。全球领先的光学解决方案供应商艾迈斯欧司朗(瑞士证券交易所股票代码:AMS)近日宣布,与国内领先的多行业三维视觉方案提供商超节点创新科技(Supernode)双方联合推出采用艾迈斯欧司朗先进Belago红
    艾迈斯欧司朗 2024-12-20 18:55 196浏览
  • 光耦合器,也称为光隔离器,是用于电气隔离和信号传输的多功能组件。其应用之一是测量电路中的电压。本文介绍了如何利用光耦合器进行电压测量,阐明了其操作和实际用途。使用光耦合器进行电压测量的工作原理使用光耦合器进行电压测量依赖于其在通过光传输信号的同时隔离输入和输出电路的能力。该过程包括:连接到电压源光耦合器连接在电压源上。输入电压施加到光耦合器的LED,LED发出的光与施加的电压成比例。光电二极管响应LED发出的光由输出侧的光电二极管或光电晶体管检测。随着LED亮度的变化,光电二极管的电阻相应减小,
    腾恩科技-彭工 2024-12-20 16:31 211浏览
  • 光耦固态继电器(SSR)作为现代电子控制系统中不可或缺的关键组件,正逐步取代传统机械继电器。通过利用光耦合技术,SSR不仅能够提供更高的可靠性,还能适应更加复杂和严苛的应用环境。在本文中,我们将深入探讨光耦固态继电器的工作原理、优势、挑战以及未来发展趋势。光耦固态继电器:如何工作并打破传统继电器的局限?光耦固态继电器通过光电隔离技术,实现输入信号与负载之间的电气隔离。其工作原理包括三个关键步骤:光激活:LED接收输入电流并发出与其成比例的光信号。光传输:光电传感器(如光电二极管或光电晶体管)接收
    腾恩科技-彭工 2024-12-20 16:30 155浏览
  • 汽车行业的变革正愈演愈烈,由交通工具到“第三生活空间”。业内逐渐凝聚共识:汽车的下半场在于智能化。而智能化的核心在于集成先进的传感器,以实现高等级的智能驾驶乃至自动驾驶,以及更个性、舒适、交互体验更优的智能座舱。毕马威中国《聚焦电动化下半场 智能座舱白皮书》数据指出,2026年中国智能座舱市场规模将达到2127亿元,5年复合增长率超过17%。2022年到2026年,智能座舱渗透率将从59%上升至82%。近日,在SENSOR CHINA与琻捷电子联合举办的“汽车传感系列交流会-智能传感专场”上,艾
    艾迈斯欧司朗 2024-12-20 19:45 288浏览
  • 百佳泰特为您整理2024年12月各大Logo的最新规格信息。——————————USB▶ 百佳泰获授权进行 USB Active Cable 认证。▶ 所有符合 USB PD 3.2 标准的产品都有资格获得USB-IF 认证——————————Bluetooth®▶ Remote UPF Testing针对所有低功耗音频(LE Audio)和网格(Mesh)规范的远程互操作性测试已开放,蓝牙会员可使用该测试,这是随时测试产品的又一绝佳途径。——————————PCI Express▶ 2025年
    百佳泰测试实验室 2024-12-20 10:33 194浏览
  •                                                窗        外       年底将近,空气变得格外寒冷,估计这会儿北方已经是千里
    广州铁金刚 2024-12-23 11:49 161浏览
  • ALINX 正式发布 AMD Virtex UltraScale+ 系列 FPGA PCIe 3.0 综合开发平台 AXVU13P!这款搭载 AMD 16nm 工艺 XCVU13P 芯片的高性能开发验证平台,凭借卓越的计算能力和灵活的扩展性,专为应对复杂应用场景和高带宽需求而设计,助力技术开发者加速产品创新与部署。随着 5G、人工智能和高性能计算等领域的迅猛发展,各行业对计算能力、灵活性和高速数据传输的需求持续攀升。FPGA 凭借其高度可编程性和实时并行处理能力,已成为解决行业痛点的关
    ALINX 2024-12-20 17:44 211浏览
  • 随着工业自动化和智能化的发展,电机控制系统正向更高精度、更快响应和更高稳定性的方向发展。高速光耦作为一种电气隔离与信号传输的核心器件,在现代电机控制中扮演着至关重要的角色。本文将详细介绍高速光耦在电机控制中的应用优势及其在实际工控系统中的重要性。高速光耦的基本原理及优势高速光耦是一种光电耦合器件,通过光信号传递电信号,实现输入输出端的电气隔离。这种隔离可以有效保护电路免受高压、电流浪涌等干扰。相比传统的光耦,高速光耦具备更快的响应速度,通常可以达到几百纳秒到几微秒级别的传输延迟。电气隔离:高速光
    晶台光耦 2024-12-20 10:18 219浏览
  • //```c #include "..\..\comm\AI8051U.h"  // 包含头文件,定义了硬件寄存器和常量 #include "stdio.h"              // 标准输入输出库 #include "intrins.h"         &n
    丙丁先生 2024-12-20 10:18 129浏览
  • 国产数字隔离器已成为现代电子产品中的关键部件,以增强的性能和可靠性取代了传统的光耦合器。这些隔离器广泛应用于医疗设备、汽车电子、工业自动化和其他需要强大信号隔离的领域。准确测试这些设备是确保其质量和性能的基本步骤。如何测试数字隔离器测试数字隔离器需要精度和正确的工具集来评估其在各种条件下的功能和性能。以下设备对于这项任务至关重要:示波器:用于可视化信号波形并测量时序特性,如传播延迟、上升时间和下降时间。允许验证输入输出信号的完整性。频谱分析仪:测量电磁干扰(EMI)和其他频域特性。有助于识别信号
    克里雅半导体科技 2024-12-20 16:35 180浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦