Redian新闻
>
服务器支持 IPv6 的原因 | Linux 中国

服务器支持 IPv6 的原因 | Linux 中国

科技
 
导读:假设,网站不支持 IPv6 并不会造成很多困难,那么为什么网站需要支持 IPv6 呢?         
本文字数:4969,阅读时长大约:7分钟

我一直在努力学习关于 IPv6 的相关知识。一方面,IPv6 的基础概念是很简单的(没有足够的 IPv4 地址可以满足互联网上的所有设备,所以人们发明了 IPv6!每个人都能有足够的 IPv6 地址!)

但是当我试图进一步理解它时,我遇到了很多问题。其中一个问题是:为什么 twitter.com🔗 twitter.com 不支持 IPv6。假设,网站不支持 IPv6 并不会造成很多困难,那么为什么网站需要支持 IPv6 呢?

我在 Twitter 上询问了很多人 为什么他们的服务器支持 IPv6🔗 twitter.com,我得到了很多很好的答案,我将在这里总结一下。事先说明一下,因为我对 IPv6 基本上毫无经验,所以下面所总结的理由中可能会有写得不准确的地方,请大家多多包涵。

首先,我想解释一下为什么 twitter.com🔗 twitter.com 可以不支持 IPv6,因为这是最先让我困惑的地方。

怎么知道 twitter.com🔗 twitter.com 不支持 IPv6 呢?

你可以使用 dig 命令以 AAAA 的选项查询某一个域名的 IPv6 地址记录,如果没有记录,则表明该域名不支持 IPv6。除了 twitter.com🔗 twitter.com,还有一些大型网站,如 github.com🔗 github.com 和 stripe.com🔗 stripe.com 也不支持 IPv6。

  1. $ dig AAAA twitter.com
  2. (empty response)
  3. $ dig AAAA github.com
  4. (empty response)
  5. $ dig AAAA stripe.com
  6. (empty response)

为什么 twitter.com🔗 twitter.com 仍然适用于 IPv6 用户?

我发现这真的很令人困惑。我一直听说因为 IPv4 地址已经用完了,从而很多互联网用户被迫要使用 IPv6 地址。但如果这是真的,twitter.com🔗 twitter.com 怎么能继续为那些没有 IPv6 支持的人提供服务呢?以下内容是我昨天从 Twitter 会话中学习到的。

互联网服务提供商(ISP)有两种:

1. 能为所有用户拥有足够 IPv4 地址的 ISP
2. 不能为所有用户拥有足够 IPv4 地址的 ISP

我的互联网服务提供商属于第 1 类,因此我的计算机有自己的 IPv4 地址,实际上我的互联网服务提供商甚至根本不支持 IPv6。

但是很多互联网服务提供商(尤其是北美以外的)都属于第 2 类:他们没有足够的 IPv4 地址供所有用户使用。这些互联网服务提供商通过以下方式处理问题:

◈ 为所有用户提供唯一的 IPv6 地址,以便他们可以直接访问 IPv6 网站
◈ 让用户 共享 IPv4 地址,这可以使用 CGNAT(“运营商级 NAT🔗 en.wikipedia.org(carrier-grade NAT)”)或者“464XLAT”或其他方式。

所有互联网服务提供商都需要 一些 IPv4 地址,否则他们的用户将无法访问 twitter.com🔗 twitter.com 等只能使用 IPv4 的网站。

为什么网站要支持 IPv6?

现在,我们已经解释了为什么可以 不支持 IPv6。那为什么要支持 IPv6 呢?有下面这些原因。

原因一:CGNAT 是一个性能瓶颈

对我而言,支持 IPv6 最有说服力的论点是:CGNAT 是一个瓶颈,它会导致性能问题,并且随着对 IPv4 地址的访问变得越来越受限,它的性能会变得更糟。

有人也提到:因为 CGNAT 是一个性能瓶颈,因此它成为了一个有吸引力的拒绝服务攻击(DDoS)的目标,因为你可以通过攻击一台服务器,影响其他用户对该服务器的网站的可用性。

支持 IPv6 的服务器减少了对 CGNAT 的需求(IPv6 用户可以直接连接!),这使得互联网对每个人的响应速度都更快了。

我认为这个论点很有趣,因为它需要各方的努力——仅仅你的网站支持 IPv6,并不会让你的网站更好地运行,而更重要的是如果 几乎每个网站 都支持 IPv6,那么它将使每个人的互联网体验更好,尤其对于那些无法轻松访问 IPv4 地址的国家/地区。

实际上,我不知道这在实践中会有多大的关系。

不过,使用 IPv6 还有很多更自私的论点,所以让我们继续探讨吧。

原因二:只能使用 IPv6 的服务器也能够访问你的网站

我之前说过,大多数 IPv6 用户仍然可以通过 NAT 方式访问 IPv4 的网站。但是有些 IPv6 用户是不能访问 IPv4 网站的,因为他们发现他们运行的服务器只有 IPv6 地址,并且不能使用 NAT。因此,这些服务器完全无法访问只能使用 IPv4 的网站。

我想这些服务器并没有连接很多主机,也许它们只需要连接到一些支持 IPv6 的主机。

但对我来说,即使没有 IPv4 地址,一台主机也应该能够访问我的站点。

原因三:更好的性能

对于同时使用 IPv4 和 IPv6(即具有专用 IPv6 地址和共享 IPv4 地址)的用户,IPv6 通常更快,因为它不需要经过额外的 NAT 地址转换。

因此,有时支持 IPv6 的网站可以为用户提供更快的响应。

在实际应用中,客户端使用一种称为“Happy Eyeballs”的算法,该算法能够从 IPv4 和 IPv6 中为用户选择一个最快的链接。

以下是网站支持 IPv6 的一些其他性能优势:

◈ 使用 IPv6 可以提高搜索引擎优化(SEO),因为 IPv6 具有更好的性能。
◈ 使用 IPv6 可能会使你的数据包通过更好(更快)的网络硬件,因为相较于 IPv4,IPv6 是一个更新的协议。

原因四:能够恢复 IPv4 互联网中断

有人说他碰到过由于意外的 BGP 中毒,而导致仅影响 IPv4 流量的互联网中断问题。

因此,支持 IPv6 的网站意味着在中断期间,网站仍然可以保持部分在线。

原因五:避免家庭服务器的 NAT 问题

将 IPv6 与家庭服务器一起使用,会变得简单很多,因为数据包不必通过路由器进行端口转发,因此只需为每台服务器分配一个唯一的 IPv6 地址,然后直接访问服务器的 IPv6 地址即可。

当然,要实现这一点,客户端需要支持 IPv6,但如今越来越多的客户端也能支持 IPv6 了。

原因六:为了拥有自己的 IP 地址

你也可以自己购买 IPv6 地址,并将它们用于家庭网络的服务器上。如果你更换了互联网服务提供商,可以继续使用相同的 IP 地址。

我不太明白这是如何工作的,是如何让互联网上的计算机将这些 IP 地址路由转发给你的?我猜测你需要运行自己的自治系统(AS)或其他东西。

原因七:为了学习 IPv6

有人说他们在安全领域中工作,为保证信息安全,了解互联网协议的工作原理非常重要(攻击者正在使用互联网协议进行攻击!)。因此,运行 IPv6 服务器有助于他们了解其工作原理。

原因八:为了推进 IPv6

有人说因为 IPv6 是当前的标准,因此他们希望通过支持 IPv6 来为 IPv6 的成功做出贡献。

很多人还说他们的服务器支持 IPv6,是因为他们认为只能使用 IPv4 的网站已经太“落后”了。

原因九:IPv6 很简单

我还得到了一堆“使用 IPv6 很容易,为什么不用呢”的答案。在所有情况下添加 IPv6 支持并不容易,但在某些情况下添加 IPv6 支持会是很容易的,有以下的几个原因:

◈ 你可以从托管公司自动地获得 IPv6 地址,因此你只需要做的就是添加指向该地址的 AAAA 记录
◈ 你的网站是基于支持 IPv6 的内容分发网络(CDN),因此你无需做任何额外的事情

原因十:为了实施更安全的网络实验

因为 IPv6 的地址空间很大,所以如果你想在网络中尝试某些东西的时候,你可以使用 IPv6 子网进行实验,基本上你之后不会再用到这个子网了。

原因十一:为了运行自己的自治系统(AS)

也有人说他们为了运行自己的自治系统(我在这篇 BGP 帖子🔗 jvns.ca 中谈到了什么是 AS),因此在服务器中提供 IPv6。IPv4 地址太贵了,所以他们为运行自治系统而购买了 IPv6 地址。

原因十二:IPv6 更加安全

如果你的服务器  有公共的 IPv6 地址,那么攻击者扫描整个网络,也不能轻易地找出你的服务器地址,这是因为 IPv6 地址空间太大了以至于不能扫描出来!

这显然不能是你仅有的安全策略,但是这是安全上的一个大大的福利。每次我运行 IPv4 服务器时,我都会惊讶于 IPv4 地址一直能够被扫描出来的脆弱性,就像是老版本的 WordPress 博客系统那样。

一个很傻的理由:你可以在你的 IPv6 地址中放个小彩蛋

IPv6 地址中有很多额外的位,你可以用它们做一些不重要的事情。例如,Facebook 的 IPv6 地址之一是“2a03:2880:f10e:83:face:b00c:0:25de”(其中包含 face:b00c)。

理由还有很多

这就是到目前为止我所了解的“为什么支持 IPv6?”的理由。

在我理解这些原因后,相较于以前,我在我的(非常小的)服务器上支持 IPv6 更有动力了。但那是因为我觉得支持 IPv6,对我来说只需要很少的努力。(现在我使用的是支持 IPv6 的 CDN,所以我基本上不用做什么额外的事情)

我仍然对 IPv6 知之甚少,但是在我的印象中,支持 IPv6 并不是不需要花费精力的,实际上可能需要大量工作。例如,我不知道 Twitter 在其边缘服务器上添加 IPv6 支持需要做多少繁杂的工作。

其它关于 IPv6 的问题

这里还有一些关于 IPv6 的问题,也许我之后再会探讨:

◈ 支持 IPv6 的缺点是什么?什么会出错呢?
◈ 对于拥有了足够 IPv4 地址的 ISP 来说,有什么让他们提供 IPv6 的激励措施?(另一种问法是:我的 ISP 是否有可能在未来几年内转为支持 IPv6?或者他们可能不会支持 IPv6?)
◈ Digital Ocean🔗 docs.digitalocean.com (LCTT 译注:一家建立于美国的云基础架构提供商,面向软件开发人员提供虚拟专用服务器(VPS))只提供 IPv4 的浮动地址,不提供 IPv6 的浮动地址。为什么不提供呢?有更多 IPv6 地址,那提供 IPv6 的浮动地址不是变得更 便捷 吗?
◈ 当我尝试 ping IPv6 地址时(例如 example.com🔗 example.com 的 IP 地址2606:2800:220:1:248:1893:25c8:1946),我得到一个报错信息 ping: connect: Network is unreachable。这是为什么呢?(回答:因为我的 ISP 不支持 IPv6,所以我的电脑没有公共 IPv6 地址)

这篇 来自 Tailscale 的 IPv4 与 IPv6 文章🔗 tailscale.com 非常有意思,并回答了上述的一些问题。


via: https://jvns.ca/blog/2022/01/29/reasons-for-servers-to-support-ipv6/

作者:Julia Evans 选题:lujun9972 译者:chai001125 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出


LCTT 译者 :chai001125
🌟🌟
翻译: 3.0 篇
|
贡献: 8 天
2022-10-06
2022-10-14
https://linux.cn/lctt/chai001125
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。

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

戳这里提交新闻线索和高质量文章给我们。
相关阅读
10 大可以摧毁你的 Linux 的命令 | Linux 中国多伦多周边小镇猎奇揽胜今天在家休息 学着做点蒜香面包 因我爱买这款面包我家的Wi-FiRosalía 登意大利版《VOGUE》封面!Java 无服务器函数入门 | Linux 中国5 款适用于 Linux 的笔记应用 | Linux 中国巴塞爾,行走在博物館之間!你应该知道的 22 个基本的 Linux 网络命令 | Linux 中国如何在 Arch Linux 中启用 Snap 支持 | Linux 中国关于 Linux 和 Git 的创造者 Linus Torvalds 的 20 件趣事 | Linux 中国Tuxedo 已对所有用户开放基于 Ubuntu 的 TUXEDO OS | Linux 中国7 个基于 Fedora Linux 的最佳发行版 | Linux 中国用惯 Linux 的人第一次用 Windows 或 macOS 会怎样? | Linux 中国一个适用于苹果芯片的原生 Linux GPU 驱动程序几乎就绪! | Linux 中国在 Linux 上截屏的 3 种方法 | Linux 中国如何检查: 是 Xorg 还是 Wayland 显示服务器? | Linux 中国如何在 Linux 中更改 GRUB 主题 | Linux 中国如何在 Linux 中实时监控日志文件(桌面和服务器) | Linux 中国桌面 Linux 市场份额(2022 年 7 月) | Linux 中国姐姐小C的123Sunamu:在 Linux 桌面上显示当前播放音乐的歌词 | Linux 中国“作弊”:只需要知道这一个 Linux 命令就够了 | Linux 中国如何使用 Linux sed 命令自动进行文件编辑 | Linux 中国Fedora Linux 的各种版本 | Linux 中国微软决定放弃 Teams 的 Linux 应用,而用渐进式网页应用取代 | Linux 中国Blackbox:极简主义 Linux 用户的美观终端 | Linux 中国图解如何升级到 Linux Mint 21 | Linux 中国Linux 内核 6.1 发布,包含初始 Rust 支持 | Linux 中国Linux Mint 的更新管理器现在支持 Flatpak | Linux 中国在 Linux 中使用 Etcher 创建可启动 USB – 下载和使用指南 | Linux 中国在 Manjaro 和其他基于 Arch Linux 的发行版上安装 Spotify | Linux 中国优化 Kubernetes 中的 Java 无服务器函数 | Linux 中国Linux 优先的 AI 图像提升器 Upscayl 发布了第一个版本 | Linux 中国3 个可在 Linux 上玩旧 NES 游戏的 NES 模拟器 | Linux 中国
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。