虽然普通大众现在终于有机会一睹 Windows Server 2008 R2 和 Windows 7 的芳容,但有一些幸运儿自 5 月份起就在使用候选发布版 (RC) 代码,8 月份已经在使用批量生产 (RTM) 版本。不管您身处哪个群体,都可能已被铺天盖地的宣传所淹没。例如,您可能受邀参加一个 Windows 7 预览招待会,就像我一样(我的女婿举办了一个招待会,但只是因为他想要从 Microsoft 免费获得这份软件)。即使您幸免于这种大肆宣传的干扰,您也可能无法避开众多媒体的报道,报道中对这两种产品的新功能毁誉参半,而这两种产品均源于新的代码树并构成了新的操作系统。
BranchCache 和 DirectAccess 无疑是这些版本中最耀眼的功能,非常值得您的关注。Microsoft 寄望 BranchCache 向分支机构员工提供与公司总部同事一样的文件处理体验。而通过 DirectAccess,Microsoft 将目标指向通过虚拟专用网络 (VPN) 连接到公司网络的远程用户。
一如既往,对于 Microsoft 的新产品,您可以只选择您需要的功能。这一次,您可以只实现 BranchCache 和 Windows 7 客户端及 2008 R2 服务器。下面我们对每项新功能逐一进行深入探讨。
BranchCache
BranchCache 将通过在 Windows Server 2008 R2 服务器或用户工作站上本地缓存常用文件来改善分支机构的体验,而不是强制用户通过位于集中位置的网络共享来访问文件。BranchCache 非常棒,但也有一些需要注意的问题。
IT 部门可以在分布式缓存模式或托管式缓存模式下部署 BranchCache(请参见图 1)。IT 部门可通过组策略配置模式,这样,若要在一个分支机构使用托管模式而在另一个分支机构使用分布式模式,则需实现两个策略并相应规划组织单位 (OU) 结构。Microsoft 建议在不超过 50 个客户端的站点中部署分布式缓存模式,但这要取决于 WAN 链接的速度和带宽以及其他因素。分布式缓存模式需要更大的硬盘并可能需要更多内存和其他资源,因此有时使用托管式缓存模式更为有利,尤其是在站点中已有一台 2008 R2 服务器的情况下。另外,分布式缓存模式只适用于本地子网。因此,如果某站点中有多个子网,则每个子网上的客户端都必须缓存文件,这样该子网上的其他客户端才能下载该文件。但是,托管式缓存模式可以服务于站点上的多个子网,这成为选择托管式缓存模式的另一个理由。
图 1 分支机构可以在分布式模式或托管式模式下使用 BranchCache。
在分布式缓存模式下,分支机构中不存在文件服务器。实际上,通过设置策略,所有用户计算机都可以成为 BranchCache 客户端,也就是说,它们能够缓存分支站点中其他客户端可以下载的文档(如果这些文档是最新版本)。
例如,假设 Caroline 从中心站点一台启用了 BranchCache 的文件服务器请求文档 Reports.docx。BranchCache 发送描述该文件内容的元数据。然后,将使用元数据中的哈希值在本地子网中搜索内容。如果未找到搜索内容,则在该用户计算机的本地驱动器上缓存一个副本。在当日晚些时候,Tyler 需要修改 Reports.docx,因此他访问总部文件服务器上的共享位置以便获取一个副本进行编辑。该文件服务器返回元数据,该客户端随后搜索内容,它在 Caroline 的计算上找到搜索的内容并从该计算机进行下载。通过使用从元数据中的哈希值派生的加密密钥,这一过程可安全进行。第二天,Abigail 需要修改同一文档。过程是相同的,但她打开的将是缓存在 Tyler 的计算机上的副本。同样,版本信息仍然保留在服务器上。客户端访问服务器以确定在客户端的站点上是否存在最新版本的副本。
用户在处理各种文档时将应用三种 BranchCache 方案,这只是其中一种。另外两种方案如下:
- 一个分支机构工作人员向总部文件服务器请求一个没有在本地计算上缓存的文档。该用户收到一个副本,该副本随后缓存于本地。
- 一个分支机构工作人员向文件服务器请求一个在本地站点进行缓存的文档,但缓存该文档的计算机已关机。该客户端从文件服务器获得一个新副本,然后将该副本缓存在自己的计算机上。后续请求将转向最近缓存的这个副本。
在每一种情况下,文档都同时保存到总部文件服务器上。这样,如果 Caroline 回来访问该文档而现在拥有最新版本的 Abigail 的计算机已关机,则她将从总部服务器接收该文档。
在托管式缓存模式下,IT 部门可为分支机构中的 Windows 2008 R2 文件服务器配置 BranchCache,方法是安装 BranchCache 功能并配置一个组策略以通知客户端使用托管式缓存模式。针对分布式缓存模式描述的过程在这里同样适用,只不过文件缓存在本地配置的 BranchCache 服务器上,而不是用户计算机上。
注意:当从一台启用 BranchCache 的服务器请求文件时,由总部站点文件服务器维护的内容元数据将发送到每个客户端。这是为了确定是否有任何本地客户端或服务器(具体取决于使用哪种缓存模式)拥有最新副本。
分支站点上启用了 BranchCache 的服务器可用于其他目的,例如,可用作 Web 或 Windows Server Update Services (WSUS) 服务器。在这些情况下有一些特别的注意事项,相关内容请参见 Microsoft BranchCache 部署指南和 Microsoft BranchCache 前期应用指南。
BranchCache 配置
若要配置 BranchCache,您需要了解组策略对象 (GPO) 的工作方式,并了解如何在 OU 结构中对组策略对象进行配置以影响每个站点中的计算机。请记住,BranchCache 方案中涉及的所有服务器都必须为 Windows Server 2008 R2,所有客户端都为 Windows 7 客户端。过程如下:
步骤 1:通过服务器管理器安装 BranchCache 功能。
步骤 2:如果您正在文件服务器上使用 BranchCache,则需要针对远程文件安装文件服务角色以及 BranchCache(请参见图 2)。
图 2 BranchCache 安装需要针对远程文件角色启用文件服务和 BranchCache。
步骤 3:配置 BranchCache GPO。转到“计算机配置”|“策略”|“管理模板”|“网络”|“BranchCache”。您将看到 5 个可能的设置:
- 启用 BranchCache。必须针对所有分支缓存启用这个选项(请参见图 3)。请注意,如果启用 BranchCache 而不启用“分布式”或“托管式”缓存模式策略设置,则会使本地 Windows 7 客户端在本地缓存文件。这在多个用户使用同一台计算机的情况下十分有用。
图 3 在组策略管理控制台中针对分支机构缓存启用 BranchCache。
- 设置 BranchCache 分布式缓存模式。这适用于 GPO 中的所有客户端。
- 设置 BranchCache 托管式缓存模式。指定用于承载缓存的服务器。这些角色是相互排斥的。只能为站点配置一个角色。
- 针对网络文件配置 BranchCache。如果未配置也未禁用,则会定义 80 毫秒的延迟阈值。如果文件请求时间超过 80 毫秒,则该文件将进入缓存。启用此设置,然后根据需要更改延迟值。
- 设置用于客户端计算机缓存的磁盘空间百分比。默认情况下,将设置为用户磁盘空间的 5%。您需要调试这个设置,从而按合理的比例分配缓存空间和用户所需空间。如果您拥有大小差异很大的磁盘配置,这可能会成为一个问题,因为某些配置的缓存容量会高于另一些配置的缓存容量。
步骤 4:在 BranchCache 策略中配置 GPO 设置“LanMan 服务器”。在步骤 3 中的同一 GPO 区域,转到“LanMan 服务器”设置,然后查看“分支缓存的哈希发布”属性。有以下三个选项:
- 禁止对所有共享文件夹进行哈希发布。
- 允许对所有共享文件夹进行哈希发布。
- 仅允许对启用分支缓存的共享文件夹进行哈希发布。
在 2008 R2 服务器上运行“文件服务”服务器角色的服务器(应为 BranchCache 内容服务器)必须还要针对“网络文件服务”角色运行 BranchCache,并且必须启用哈希发布。还将单独对文件共享启用 BranchCache。可对服务器单独启用哈希发布(例如,针对非域服务器配置),或通过组策略对服务器组启用哈希发布。这样,就可以对所有共享文件夹启用、对部分共享文件夹启用或者完全禁用 BranchCache。
步骤 5:在 Windows 防火墙中配置 GPO 设置以允许使用入站 TCP 端口 80(适用于客户端计算机)。
步骤 6:完成每项配置之后,如果用户的文件存在文件共享,则转到“服务器管理器”|“文件服务”|“共享和存储管理”。文件共享列在中间窗格中。右键单击共享并选择“属性”,然后单击“高级”。在“缓存”选项卡上,启用 BranchCache(请参见图 4)。注意:如果没有 BranchCache 选项,则说明没有正确安装 BranchCache 功能,或者已将该策略设置为禁用,如前所述。
图 4 使用“共享和存储管理”控件对 BranchCache 启用文件共享。
BranchCache 客户端配置
默认情况下,所有 Windows 7 客户端都启用 BranchCache,这意味着在客户端上不必执行启用操作。不过,仍需执行一些与客户端相关的步骤:
- 配置防火墙设置。除了前面所做的一些说明,托管式缓存模式还有另外一些要求。请参阅本文末尾列出的有关 BranchCache 的 Microsoft 文档。
- 客户端所在 OU 中须包含一项策略,该策略启用 BranchCache 并定义要使用的缓存模式。有关详细信息,同样请参阅本文末尾列出的文档。
BranchCache:优点
下面是我所喜欢的 BranchCache 的一些方面:
- 如果用户已登录,那么即使应用程序退出,该功能也可以使用后台智能传输系统 (BITS) 在后台启用文件传输。这对于通过慢速链接相连的分支机构而言是一个非常好的功能。如果系统需要重新启动,则文件传输会在系统启动完成后继续进行。当然,为了使用这一功能,编写的应用程序必须能够利用 BITS。
- BranchCache 可通过 Netsh 命令行实用工具进行配置,并且在 TechNet 站点“适用于 Windows Server R2 的 BranchCache”上有完整的文档记录。
- 您可以通过用于客户端、文件服务器和缓存主机的计数器来监视 BranchCache 性能。这些不仅对于性能诊断有帮助,而且据我所知,观察这些计数器也是查看客户端是否真正获得缓存副本的唯一方法。
- BranchCache 环境可通过组策略进行控制。
BranchCache:缺点
BranchCache 肯定会有它的一席之地,但要留意它的以下缺点:
- 由于分布式缓存模式实质上将每个工作站都转变为文件服务器,因此,承载大量经常访问的文件的客户端计算机在性能方面可能会受到影响。实际影响程度有多大需要进行一些测试。
- 在某些情况下,客户端可能需要额外磁盘空间以获取足够的缓存大小。
- 此时,缓存客户端将与其他客户端争用网络资源。
- 在初始缓存过程中或在缓存中没有可用的文件时,可能会出现意外的延迟。只有 Windows 7 客户端和 Windows Server 2008 R2 服务器可以参与使用此功能,因此,此功能的全面普及可能需要一段时间。
如果您可以确定在分支机构中布置文件服务器的合理性,何不使用分布式文件共享 (DFS)?您可以使用分布式文件系统复制 (DFS-R) 功能来复制文件并使用 DFS 来维护一个命名空间,而不会经历在四处缓存文件的混乱情况。您可能会发现对网络文件进行缓存的优点,而且 BranchCache 或许适用于 DFS 共享。或者,您或许会发现缓存效率高于 DFS-R 效率的某种性能边界。另一方面,BranchCache 对服务器的影响将小于完备 DFS 配置的影响。关键是您必须弄清自己的需要,并研究 BranchCache 所提供的选项。当然,每个环境都是不同的,在一些分支机构中出现的问题不一定在其他分支机构中也出现。不存在适用于所有情况的唯一答案。
DirectAccess
通过 DirectAccess,Microsoft 解决了用户自 Windows 2000 以来一直存在的不佳 VPN 体验问题(虽然 VPN 技术自初始实施以来有了很多改进,但仍未提供良好的使用体验)。客户端在配置 DirectAccess 之后可以从远程位置访问 Intranet 站点,而不必手动建立 VPN 链接。另外,对 IT 人员的好消息是,他们可以通过 Internet 连接(而不必通过 VPN)来管理远程计算机。即使没有 DirectAccess,远程用户也可以利用新的自动重新连接 VPN 功能。因此,如果我正在家里工作并已连接到我们公司的 Intranet,而 Internet 链接断开,那么 VPN 将在 Internet 链接恢复时重新建立连接,而不必麻烦我重新连接并重新输入凭据,但在以前没有 DirectAccess 的时候我经常需要这样做。
实际上,DirectAccess 对于用户是透明的。当一个已启用的客户端上的用户单击 Intranet 链接时,DirectAccess 会负责处理连接的建立和断开。用户不必打开连接管理器、输入其凭据、等待连接等。
在远程连接处于活动状态时,默认情况下用户有一个“拆分隧道”配置(请参见图 5)。通过该配置,可以同时访问 Intranet、本地网络(用于使用打印机等设备)和 Internet。在一个没有拆分隧道的典型 VPN 方案中,连接到 Internet 意味着首先跳转到 Intranet 上,然后再通过公司网络网关进行连接。另外,我无法访问我的本地网络,虽然有一些变通的解决方法。因此,与传统 VPN 相比,这是 DirectAccess 设计可为远程用户提供更多“办公室”体验的又一方面。
图 5 DirectAccess 实现了一个拆分隧道配置以同时连接到公司网络和 Internet。
从 IT 人员的角度来看,一旦计算机连接在 Internet 上(请记住,DirectAccess 一旦安装则始终启用),就可以十分方便地应用补丁程序、策略和其他更新,并通过 IPsec 连接保证安全。
DirectAccess 要求
在基本 DirectAccess 配置中,DirectAccess 服务器位于边界网络上,向远程用户提供到内部资源的连接,这些内部资源包括应用程序服务器、证书颁发机构 (CA)、DNS 和域控制器 (DC)。CA 和应用程序服务器必须配置为接受 IPv6 通信。下面是 DirectAccess 配置的基本组件:
- 在 Active Directory 域中,DirectAccess 客户端只能访问 Windows 2008 或 2008 R2 DC。
- 组策略定义必须强制执行 DirectAccess 设置,以便能够:
- 确定 DirectAccess 客户端。
- 配置名称解析策略表 (NRPT)。
- 从 DNS 全局限制列表删除站内自动隧道寻址协议 (ISATAP)。
- DirectAccess 服务器必须:
- 是 Active Directory 域的成员。
- 在 Windows Server 2008 R2 上运行。
- 配置两个网络适配器(一个用于 Intranet 连接,另一个用于 Internet 连接)。
- 具有两个可在外部解析的连续静态 IPv4 地址。
- 安装有 DirectAccess 管理功能(通过服务器管理器),运行安装向导以进行配置。
- IIS/Web 服务器实现了用于确定是否可以访问 Intranet 资源的功能。应用程序服务器必须配置为允许通过启用 DirectAccess 的客户端进行访问。
- 为了与所需 CA 一起使用,请安装 Active Directory 证书服务并颁发证书以进行身份验证。
- 必须在整个 Intranet 范围提供本机 IPv6 网络或转换技术。
- 通过用于安全身份验证的 IPsec 策略和 DirectAccess 连接加密,客户端可在用户登录之前对用户进行身份验证。
- 您可在 Microsoft DirectAccess 前期应用指南中找到必要的防火墙例外。
如您所见,DirectAccess 的实施并非坦途。仅 IPv6 一项要求就必然会引发忧虑,它要求大多数组织都实现转换技术,但 2008 R2 已有相应组件。另外,您必须通过公钥基础结构 (PKI) 实现安全性,提供身份验证服务,并向应用程序服务器设置 IPv6 标识。在运行 DirectAccess 安装向导之前,您还需要配置安全组,建立防火墙策略,设置 DNS 并满足其他一些先决条件。
DirectAccess 服务器
DirectAccess 服务器将执行通过服务器管理器的 DirectAccess 安装向导定义的多种功能(请参见图 6)。
图 6 通过服务器管理器启动 DirectAccess 安装。
DirectAccess 向导执行 4 项基本任务。通过该向导,您可以:
- 确定需要启用 DirectAccess 的客户端。您可以在这里列出其他域或林中的安全组(如果已配置信任)。您必须在运行该向导之前定义相应的安全组。
- 针对 DirectAccess 服务器定义连接性和安全性(证书)。您将确定哪个网络接口位于 Internet 一端,以及哪个接口连接到 Intranet。在运行 DirectAccess 安装向导之前,先安装 CA 并创建证书。另外,还要定义智能卡策略。
- 确定在 DirectAccess 环境中使用的 DNS、DC 以及(可选)管理服务器和其他基础结构服务器。您还必须确定一个高可用性服务器作为网络位置服务器。DirectAccess 服务器可充当这一角色。
- 确定配置为从 DirectAccess 客户端接受连接的应用程序服务器。默认设置为没有额外的端到端授权,但您可以选择基于 IPsec 策略的安全选项。
DNS 和 NRTP
如前所述,DirectAccess 客户端可直接访问 Intranet。为了实现这一点,您必须实现 NRPT,它将按 DNS 命名空间而不是按网络接口来定义 DNS 服务器。我将这种设置视为在 Windows 2003 和 2008 DNS 服务器上进行条件转发的方式,您可在这些服务器上使用相应 IP 地址来定义 DNS 命令空间以连接到服务器。利用 NRPT,客户端可以避免往常的 DNS 迭代,可以直接访问 DirectAccess 服务器。
NRPT 的工作方式如下(请参见图 7):
- 一个名称查询请求与公司 Intranet 的一个已配置命名空间匹配,该请求指向 DirectAccess 服务器。
- NRPT 包含 IP 地址和该 DirectAccess 服务器的完全限定域名 (FQDN)。当使用该 IP 地址时,将对 DNS 服务器的连接进行加密以获得安全连接。
- 当使用 FQDN 时,它必须通过 Internet 进行解析,并查找公司 DNS 服务器。
- 如果客户端针对 NRPT 中没有定义的命名空间(如 www.microsoft.com)发送一个名称解析请求,则该请求遵循通过 Internet 进行的正常名称解析过程。
图 7 NRPT 支持按 DNS 命名空间而不是按接口来定义 DNS 服务器。
NRPT 是在 DirectAccess 安装过程中在“基础结构服务器安装”页上配置的,安装向导将填写 DNS 服务器的 IPv6 地址。名称解析策略(2008 R2 的一个新增组策略设置)定义了特定策略设置(如 IPsec)、DNS 服务器以及当命名空间不在所查询的网络中时发生名称解析回退的方式。您将在“计算机配置”|“Windows 设置”|“名称解析策略”中找到该策略(请注意,必须输入带有前导点“.”的域命名空间,例如 .emea.corp.net)。
可以使用 Netsh 命令公开 NRPT 内容:Netsh name show policy。
此命令将显示所定义的命名空间。
防火墙例外
防火墙例外将取决于您如何实现 IPv6 网络以及是否使用转换技术。另外,远程客户端必须连接到的任何文件或应用程序服务器都需要相应配置 Windows 防火墙。下面的图 8 和图 9 分别显示了 DirectAccess 服务器 Internet 一端和 Intranet 一端的防火墙例外。显然,您只需针对正在使用的技术来设置例外。(请注意,虽然图 9 列出了 IPv4+NAT-PT,但 Windows 2008 R2 不实现此设置。)
转换技术 | 允许使用的协议 |
Teredo | UDP 3544 |
6to4 | IP 协议 41 |
IP-HTTPS | TCP 443 |
本机 IPv6 | ICMPv6,协议 50 |
协议 | IPv6 技术 | ||
ISATAP | 本机 IPv6 | IPv4 + NAT-PT | |
协议 41 | X | ||
TCP | X | X | |
UDP | X | X | |
ICMPV6 | X | ||
所有 IPv6 连接 | X | ||
UDP 500 IKE/AuthIP | X | X |
连接 - IPv6
由于 IPv6 允许 DirectAccess 客户端保持与公司网络上资源的连续连接,因此,这些客户端必须都运行该协议。即使拥有完全实现的 IPv6 网络,允许远程连接可能也需要使用一种转换技术,该转换技术将允许 DirectAccess 客户端通过在 IPv4 数据包内封装 IPv6 来连接到 IPv4 资源。这些技术包括 6to4、IP-HTTPS 和 Teredo。 ISATAP 也是一种封装技术,但仅在内部使用。我在这里不进行详细介绍,但图 10 显示了基本的连接选项。
图 10 DirectAccess 客户端的首选连接选项
如果客户端分配有: | 首选连接方法为: |
可全局路由 IPv6 地址 | 可全局路由 IPv6 地址 |
公共 IPv4 地址 | 6to4 |
专用 (NAT) IPv4 地址 | Teredo |
如果客户端无法使用以上方法进行连接 | IP-HTTPS |
信息来源:Microsoft
在 Intranet 一端,如果没有本机 IPv6,则 DirectAccess 允许使用 ISATAP,ISATAP 将从 IPv4 地址生成一个 IPv6 地址,并实现其自身的邻居发现。ISATAP 使用已启用 DirectAccess 的客户端来访问 IPv4 网络上的资源。例如,当 ISATAP 客户端启动时,它必须找到一个 ISATAP 路由器。它将通过针对 ISATAP.<域名> 发出 DNS 查询进行查找。因此,对于 Corp.net,它将查找 ISATAP.corp.net。Windows 2008 DNS 实现了 GlobalQueryBlockList,这是一项默认情况下包含 ISATAP 的附加安全功能。该功能将使其忽略任何 ISATAP.<域名> 请求。因此,您必须将 ISATAP 从列表中清除。为此,可以使用 DNSCMD 命令或创建一个注册表项。
在命令提示符下,输入 dnscmd /config /globalqueryblocklist wpad,然后按 Enter。这会将 GlobalQueryBlockList 定义为仅包含 WPAD(从而删除 ISATAP)。您还可通过访问位于以下位置的注册表项来完成此工作:
HKLM:\System\Current Control Set\Services\DNS\Parameters。编辑 GlobalQueryBlockList 并删除 ISATAP。
您还可以单独在各个主机上或在整个网络上实现 6to4,并通过 IPv4 网络传输 IPv6 数据包。有趣的是,如果 6to4 是针对整个网络实现的,则它仅需要一个 IPv4 地址。它不支持 IPv4 主机和纯 IPv6 主机之间的通信。
Teredo 也提供要路由到 IPv4 网络的 IPv6 数据包,但仅在客户端位于没有针对 IPv6 进行配置的网络地址转换 (NAT) 服务器后面时才使用这些数据包。它在允许从 NAT 进行转发的 IPv4 数据报中存储 IPv6 数据包。
Windows 7 和 Server 2008 R2 实现了一个称为 IP-HTTPS 的协议,该协议在 IPv4 HTTPS 中通过隧道传送 IPv6 数据包。虽然与其他协议相比 IP-HTTPS 的性能较差,但您可以添加更多 IP-HTTPS 服务器以在一定程度上提高性能。IP-HTTPS 是一个比较容易实现的协议,可以进行 IPv6-over-IPv4 网络连接。
在设计 DirectAccess 客户端配置时,您可以使用 DNS 和 NRPT 将 Internet 通信和 Intranet 通信分开,或者可以使用称为“强制隧道”的功能并强制通过隧道进行全部通信。需要 IP-HTTPS 的强制隧道功能可通过组策略设置“计算机配置”\“策略”\“管理模板”\“网络”\“网络连接”\“通过内部网络路由所有流量”来启用。需要将此策略应用于 DirectAccess 客户端。如前所述,DirectAccess 客户端可在连接到 Intranet 之后访问本地资源。对于 IP-HTTPS 客户端也是如此,但假如用户尝试访问 Internet 站点,则将通过 Intranet 对其进行路由。
当然,IPv6 要求和复杂配置是 DirectAccess 的弊端,但用户体验的改善以及 IT 人员远程管理客户端的便利要远远超过这些弊端。
大有前途
远程工作者的数量正在日益增加,他们可能在分支机构、家庭办公室或在旅途中工作。BranchOffice 和 DirectAccess 对于分支机构和其他远程工作者而言大有前途,明智的 IT 经理和管理员应对它们加以研究。这两种功能的安装都不能一蹴而就,其中的选项和功能都需要加以选择。另外,这些功能只能在 Windows 7 客户端和 Windows Server 2008 R2 服务器上实现,这肯定会影响实现的时间线。明智的 IT 经理和管理员应对所提供的 Microsoft 文档进行研究,并在测试实验室中对这些功能进行配置以确保成功。
本文来源:微软TechNet中文站
【编辑推荐】