微软:在 Windows 8 系统中使用 IPv6 连接到网络

随着 IPv6 在全球范围内的启动,我们认为正好借此时机介绍一下我们在 Windows 8 Release Preview 中为支持 IPv6 而投入的精力。核心网络项目管理团队的 Christopher Palmer 撰写了本博文。

--Steven

IPv4 是用于 Internet 连接的 Internet 协议,已经使用了数十年之久。但是,IPv4 当初在设计时未曾考虑到 Internet 的负载和规模会达到当今的水平,因此随着 Internet 的发展,IPv4 已经开始略显疲态,即便如此,它仍在以超大的规模为 Internet 提供着助益,应该说,最初的设计者所具有的远见卓识不得不令我们折服。Internet 服务提供商开始发现 IPv4 的维护成本正在逐步上升,为了支持呈现爆炸式增长的各种电脑和设备,需要对该协议进行彻底的更新。

多年来,整个业界(包括 Microsoft 在内)一直都在致力于推出一种跨各种设备、服务和网络基础设施的全新版本 Internet 协议,即 IPv6。自 Windows XP SP3 开始的 Windows 版本都提供了 IPv6 支持,为过渡到 IPv6 铺平了道路。我们在设计 Windows 8 时也考虑到了这一点,并致力于确保当这场巨变发生时,您和您的应用将继续获得可靠的连接。

IPv4 的局限

首先,我们来介绍一些基础知识。每当您浏览 www.bing.com 等网站时,这些容易记忆的域名将转化为一个 IP 地址,例如:23.3.105.97。IP 地址的概念类似于电话号码。就像您的所有联系人都会有一个电话号码,连接到 Internet 的任何设备都将具有一个或多个 IP 地址。域名系统 (DNS) 就相当于 Internet 的“电话号码簿”。只要您给出一个名称,DNS 就会将该名称解析为一组 IP 地址。

IPv4 仅能提供大约 40 亿个 IP 地址。在 20 世纪 70 年代,这看起来是个天文数字。但根据目前的预测,截至 2015 年连接到 Internet 的设备将达到 150 亿台(电脑、电话、家用电器、汽车乃至家具!)。IPv4 所能提供的地址远远无法满足将这么多设备连接到 Internet 的需要。

近年来,随着对 IPv4 地址的需求与日俱增,Internet 社区也找出了一些“共享”这些虚拟资源的方法。共享 IPv4 地址最常见的方法是使用网络地址转换 (NAT)。大多数家用路由器都具备此功能,允许家中的计算机和其他设备共享一个公共的 IPv4 地址。

通常,ISP 会为每个家庭提供一个 IP 地址。然而,这种做法也已经开始变得日益艰难。由于 IP 地址即将耗尽,为每家提供一个唯一的 IPv4 也将变得不可行。很快,整个城市或国家/地区可能都将退居到大规模的网络地址转换之后。Internet 服务提供商必须开发成本高昂、结构复杂的基础设施,才能继续支持 IPv4。对于最终用户,IP 地址耗尽意味着基于位置的服务(例如,Bing)将无法正常工作,并且点对点应用程序的性能也将下降。

IPv6 是大势所趋

Microsoft 以及其他科技公司一直在致力于开发 IPv6,以确保最终用户能够继续获得高质量的 Internet 访问,避免 IPv4 地址耗尽所带来的性能和连接性局限。

IPv6 最直接的优势在于其为用户提供了超过 3×1038 个 IP 地址,这个庞大的数字意味着每位用户可以拥有数十亿个 IP 地址,或者说寰宇中每颗星星都可以拥有一个唯一的 IP 地址。这将为 Internet 提供无限的成长和发展空间。IPv6 还将提供许多安全和性能改进,例如内置的 IPsec 支持。(您想知道 IPv5 发生了些什么?Bing 可以帮助您找出该协议版本被“放弃”的原因)。

将整个 Internet 升级到 IPv6 并非一夕之功。我们花费了多年的时间才取得了如今的进展,而今后我们仍需多年才能完成这项任务。目前,只有大约 1% 的设备能够仅使用 IPv6 连接到 Internet。

在过渡期间,大部分网络可以划分为三种类别:

  • 仅 IPv4 的网络。此类网络可能就是您如今正在使用的网络,因为大部分 Internet 服务提供商刚刚开始部署 IPv6 支持。许多连接到 Internet 的设备可能也仅支持 IPv4。
  • IPv4 和 IPv6 网络(双协议栈)。这意味着您的 Internet 服务提供商将同时使用 IPv4 和 IPv6 地址来配置您的电脑。这种模式常见于正在过渡中的电缆和拨号网络。
  • 仅 IPv6 的网络。这意味着您的 Internet 服务提供商将使用 IPv6 地址来配置您的设备。由于许多网站仍然仅在 IPv4 Internet 上提供,ISP 必须借助某种转换设备才能允许您通过 IPv6 网络访问 IPv4 Internet。这种设备称为 NAT64。这种模式将在移动环境中大行其道,因为在移动设备和运营商的基础设施之间仅使用一种 Internet 协议更易于部署,并且较之双协议栈配置成本更低。此外,IPv4 地址耗尽对移动运营商的影响最为严重。以下是此配置的原理图:
  • 微软:在 Windows 8 系统中使用 IPv6 连接到网络您可能很好奇自己正在使用哪种类型的连接。本博文底部提供的一个小组件可以满足您的这种好奇心。

    Windows 8 旨在确保各种类型的网络配置中的连接性。您可在 Windows 8 中使用 Windows PowerShell 内的 Resolve-DNSname cmdlet 来启动 DNS 查找功能。打开 PowerShell 并运行以下命令,随后您即可看到返回的 IPv6 和 IPv4 记录。只有支持 IPv6 的网站才能具有 IPv6 记录。

    微软:在 Windows 8 系统中使用 IPv6 连接到网络

    仅支持 IPv4 的网络中的 Windows 8

    在仅支持 IPv4 的网络中,系统仅将为设备配置 IPv4 地址。像往常一样,这一模型仍将在 Windows 8 中保留。此外,Windows 主机还将通过连接各种过渡技术(例如 Teredo)中的流量而提供 IPv6 连接,其中 IPv6 数据包将在 IPv4 UDP 数据包中封装。由于仅支持 IPv6 的服务器和服务已经逐渐深入各个市场,因此当服务器不提供 IPv4 地址时,Windows 8 将自动试图进行 IPv6 连接。请注意系统仅在处于无域的网络中时才能默认启用 Teredo,而且如果您的网络阻塞 UDP 时,Teredo 可能不可用。

    双协议栈网络中的 Windows 8

    在过渡期间,双协议网络将成为一个常见的部署模型。在双协议栈网络中,所有设备将配置以 IPv4 和 IPv6 地址。

    我们在这一过渡期间的关注重点一直都是最大程度减小过渡对日常用户的影响。无论用户是使用 IPv4 或 IPv6 连接,都不应受到影响。用户应该获得快速而可靠的 Internet 体验,而且用户在使用过程中很少能感觉到 IPv6 的过渡,因此您可尽情享受网站内容。

    与此同时,推进 IPv6 过渡也将成为我们的首要任务。在这一方面,如果 IPv6 和 IPv4 模型同时可用,Windows 更偏好使用原生 IPv6 连接。

    总的来说,我们已经确定了确保可靠的用户体验和启用 IPv6 过渡的双重目标。正如您可能已经想到的,有些时候这也将产生一些微妙的弊端,而这一直是 Internet 社区中热议的话题之一。

为了实现这些偶尔相互冲突的目标,包括 Bing.com、Microsoft.com 和 Xbox.com 在内的全球主要网站在去年组织了一场名为世界 IPv6 日的活动。在这为期一天的 IPv6 Internet 测试活动中,参与其中的网站将在 IPv4 以外开启 IPv6。

而且测试结果较为不错,大部分的内容都运行正常。诸如服务器、最终用户设备和内容交付网络等所有与 Internet 正常功能有关的内容都可在大规模范围内正常运行。

然而,我们也注意到有很少一部分用户(约占全球用户的 0.01%)似乎由于路由器或 ISP 问题而错误配置成 IPv6。由于 IPv6 仍是一项较新的技术,偶尔将发生错误,因此这也不足为奇。但是对于这些较为不幸的用户而言,这一问题将对日常 Internet 使用体验产生较大影响。

面向双协议栈网络连接算法的工程弹性

为了让设备能真正支持双协议栈网络,应用程序必须确保仅可使用 IPv4 和 IPv6 发送流量,但是操作系统必须足够智能来识别当前任务适用的协议。更为具体地说,由于您的设备可能拥有多个 IPv4 和 IPv6 地址,而且您试图抵达的目标也可能拥有多个 IPv4 和 IPv6 地址,因此协议栈必须足够智能来识别进行连接的特定源和目标地址。这一功能被称为地址排序,而且也是我们在 Windows 8 中增强的一个领域。地址排序后的原理是确定哪一地址对有可能形成最佳连接,因此应用程序无需等待。

当 Windows 试图连接双协议栈网站时,Windows 将对其自有和网站 IP 地址进行排序,以确定应使用哪一地址对进行连接。(对于标准进程而言,地址排序已得以标准化,并以 RFC 3484 形式呈现。)

以下图表显示了 Windows 使用地址排序的方式。

微软:在 Windows 8 系统中使用 IPv6 连接到网络

在过去,地址排序需要依靠由路由器正确配置的 Windows。Windows 会分析由路由器提供的路由信息,并将该信息与地址排序相结合,以确保快速连接到命名的资源。RFC 3484 标准指定,如果您的路由器配置了 IPv6,则应优先使用 IPv6。

世界 IPv6 日显示,一些客户配置了 IPv6 路由信息,但他们实际上并不具备 IPv6 Internet 连接。这可能是由某些 Internet 服务提供商的错误配置或存在缺陷的家用路由器导致的结果。Windows 会尝试使用 IPv6 连接到网站,并预期能够生效,但事实上却无法成功!最终,Windows 会检测到该连接尝试失败,并还原到 IPv4 连接。然而,对于用户来说,连接到双协议栈网站时可能会出现 10-15 秒的延迟。这个问题显然会对 Web 浏览器产生影响,但任何连接到网络的应用也都将面对这个问题。

为了寻求解决此问题的工程方案,我们需要考虑一些重要的问题。首先,许多企业部署了复杂的路由拓扑。我们必须确保自己的更改不会破坏此类环境中的连接性。其次,我们的解决方案不能仅适用于 Internet Explorer,还要适用于依靠 Windows 来帮助连接到网络资源的其他应用。在 IPv6 的过渡期,这些应用要依靠我们来智能地连接到网络。我们的解决方案还要同时满足现有桌面应用和新 Metro 风格应用的需要。

当您连接到一个宣告具备 IPv6 路由能力的新网络时,Windows 8 会测试 IPv6 连接性,如果 IPv6 确实能够正常工作,则将仅使用 IPv6。此方案是对我们 RFC 3484 实施的修改。在该方案中,我们不再根据策略排序地址,而是将网络的实际状态作为算法的输入。在配置错误的网络中,此方案不仅将改进浏览器的体验,也将改进使用标准 Windows API 连接到双协议栈目标的应用的体验。

Windows 8 会在您首次连接到新的网络时执行网络连接测试;然后缓存此信息,并每隔 30 天重新测试。连接测试的实质是一个发往由 Microsoft 托管的仅 IPv6 服务器的简单 HTTP GET 请求。(对于标准爱好者,这在我们的 RFC 3484 实施中位于目标地址排序的规则 5 和规则 6 之间。)Windows 会针对 IPv4 连接执行类似的网络连接测试。如果 IPv4 和 IPv6 都能正常工作,则将首选 IPv6。

为了确保 Windows 8 不会在企业网络中造成问题,该功能设置了两种安全机制:

  • 如果该企业提供了针对具体目标的特定路由信息,则 Windows 8 将尊重该设置,忽略由 Windows 确定的连接。在企业环境中,Windows 假设配置此类路由的网络管理员明确地认为使用此类路由的效果较好。
  • 此更改未在使用 Web 代理的网络中实施。在此类网络中,代理负责提供 Internet 连接,因此 IPv6 端到端连接性测试毫无用处。在这种情况下,Windows 8 将改为简单地以尽可能最高效的方式向代理打开连接。

这样,我们就能确保在 IPv6 过渡期,Windows 8 的应用和体验能够继续可靠且高速地连接到 Internet,即使您的本地网络配置错误也是如此。

准备好迎接仅 IPv6 网络的到来

在仅 IPv6 网络中,改善用户体验的最佳方式就是增加可通过 IPv6 获得的服务和体验数量。在此类网络中,访问 IPv4 Internet 需要通过 NAT64。这些设备的故障将导致连接失败,并且其性能局限将导致丢包。它们还会中断某些多人游戏所需的 IPv4 点对点连接。

在 Microsoft 内部,我们在企业和 Internet 设置方面为支持 IPv6 部署的推广投入了大量精力。我们最重要的工作之一是确保我们的服务器产品支持 IPv6。IPv6 支持是我们通用工程标准 (CEC) 的一部分。我们的企业产品,例如,Exchange Server 和 SharePoint,将支持双协议栈或仅 IPv6 配置的 IPv6 网络,这是整个公司对客户的部分承诺。自 2007 年起,Microsoft 构建的大部分产品都具备 IPv6 支持,您也可以在 Technet 上查找其他 Microsoft 产品中的 IPv6 支持。通过我们的努力,开发人员和解决方案提供商将可以在自己的产品中提供 IPv6 支持。

微软:在 Windows 8 系统中使用 IPv6 连接到网络

Microsoft 也针对为我们自己的服务提供 IPv6 支持投入了大量精力。今年早些时候,Internet Society 宣布了 IPv6 在全球范围内启动,这在将 Internet 升级到 IPv6 的过程中是一个重要的里程碑。6 月,Bing 和其他网站将开始永久性地通过 IPv6 提供流量。硬件供应商正在努力在家用路由设备中提供 IPv6 支持,并且许多 ISP 将开始大规模的 IPv6 部署。CDN(内容传递网络)也已经开始在其网络中提供 IPv6 支持。

随着 Windows 8 的发布,我们的一些基础设施服务将部署 IPv6 支持。

Windows 更新是每天向数百万用户提供不间断支持和更新的重要服务。越来越多的电脑开始连接到移动宽带网络,在此类网络中,仅 IPv6 将成为流行的配置。我们必须确保您在此类网络中能够可靠地进行下载。

为此,Windows 更新服务现已同时支持 IPv6 和 IPv4。Windows 更新利用 CDN 在全球范围内分发更新,我们目前正在和他们通力合作以提供 IPv6 支持。如果可能,Windows 8 将使用 IPv6 来下载 Windows 更新,因此用户在下载更新时将始终获得尽可能最佳的连接。

我们正在与 CDN 合作,努力将 IPv6 支持扩展到 Windows 8 以外。该工作完成后,如果可能,windows 7 和 Windows Vista 也将自动使用 IPv6 连接到 Windows 更新。

一路领先

Windows 8 是始终连接且直接可用的产品,而我们的 IPv6 支持对于确保未来数年的连接能力来说至关重要。由于 IPv4 并非针对处理当今的大规模连接而设计,为了解决这个问题,Internet 的根基正在经历一场天翻地覆的革新。针对每个网站、每款多人游戏和每段视频通话的每次连接都将逐渐转移到 IPv6。

作为该过渡的一部分,Microsoft 通过确保 Windows 8 能够提供最具弹性的 Internet 连接,同时提供 IPv6 就绪的产品和服务,在该领域迈出了领先的一步。

- Chris

下面将自动检测你当前网络是否支持IPv6:

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: