我很高兴我的新 Linode 托管服务器也提供了 IPv4 和 IPv6 地址。
当使用 Linode 作为 NS 时,默认 DNS 记录同时显示A
和AAAA
记录
example.com 86400 IN A 203.0.113.4
example.com 86400 IN AAAA 2001:db8::ff00:1111:2222:3333
这很好,从 v4 和 v6 都可以使用 Web 应用程序。
但是,我意识到许多 ISP(至少在我所在的地方)还没有提供 IPv6 连接。
因此,浏览器通过 IPv6 从此类区域访问将成功执行 AAAA (v6) 请求。但是,使用该 v6 地址的 http(s) 连接将失败。
我有理由担心最近的浏览器会发生这种情况吗?
我应该从 DNS 区域中删除 IPv6 地址以确保仅 IPv4 访问吗?
--
注意:这与关注DNS 解析问题的问题不同
您要问的问题是 2009-2010 年左右的一个主要问题。它可能将 IPv6 的采用推迟了几年。没有人愿意先行,因为他们担心他们的网站可能会显得不稳定,并且用户会转移到没有 IPv6 支持的竞争网站。
许多公司都在努力解决这些问题。可以说,与@HåkanLindqvist 相关联的Happy Eyeballs 方法是解决问题的最重要贡献。
2011 年,有足够的信心认为问题已得到解决,各大网站都进行了一次名为World IPv6 Day的 24 小时协调测试。协调的测试运行旨在确保任何仍有问题的用户不会错误地得出结论,即问题出在一个特定站点而不是他们自己的连接。
结果非常成功,一年后,主要网站在World IPv6 Launch中永久启用了 IPv6 。
我们接近临界点,NAT 引起的问题将比 IPv6 损坏引起的问题更大。目前两者都足够小,很难衡量我们是否已经越过了那个临界点。
我的建议是,一旦您拥有本地双栈连接,就立即配置双栈 DNS 记录。越早开始,解决可能遇到的任何问题的时间就越长。您希望它在真正成为关键任务时保持稳定。
不要在 6to4 或 Teredo 地址上部署服务器,如果这些是您在服务器上获取 IPv6 的唯一选择,我会建议切换到更好的提供商。
但是,如果您的服务器具有公共 IPv4 地址,我建议您直接在您自己的服务器上配置 6to4 和 Teredo 中继。部署这些中继将为使用 6to4 或 Teredo 的客户端提供更可靠的服务器连接。
偶尔仍有客户端的 IPv6 连接中断。但是在过去的两年里,这些客户会在主要网站上遇到问题,所以你可以期望他们以某种方式解决他们自己的问题。他们不太可能只看到您的网站存在问题。
但是,您必须注意您自己站点的 IPv6 连接性。如果您的站点出现 IPv6 连接中断,您可能会影响少数具有正常 IPv6 连接和预先快乐的眼球浏览器的用户。那些只会看到您的网站有问题,但其他一切都会正常工作。
仅仅因为目前 IPv6 的用户较少,并不意味着它可以安全地部署,并且监控少于 IPv4。如果有的话,我说您需要对 IPv6 连接进行更多监控,因为您更有可能不会注意到任何问题。
要在其他答案和评论中添加一些内容:
不,它(几乎)永远不会尝试建立 IPv6 连接。系统知道它没有 IPv6 连接。
getaddrinfo()
不会向应用程序返回任何 IPv6 地址。(它AAAA
无论如何都会进行查询的原因是因为该网站可能有一个AAAA
真正有效的记录,例如本地主机 IP 地址,::1
。)这只是极少数系统的问题:那些错误地认为自己具有 IPv6 连接性并且运行几年前的浏览器的系统。如上所述,感谢世界 IPv6 日和世界 IPv6 发布,其中大部分已经修复,因为 Facebook 和 Google 倒闭时街头流血,浏览器实现了 Happy Eyeballs,因此连接失败只需花费几块钱百毫秒。