前言:
BranchCache是 Windows 7 和 Windows Server 2008 R2 中的一个功能,当用户从分支机构位置访问总部的内容时,它可以降低广域网 (WAN) 利用率并增强网络应用程序响应能力。启用 BranchCache 之后,会在分支机构内缓存从 Web 服务器或文件服务器检索到的内容的副本。如果分支机构内的另一个客户端请求相同的内容,则该客户端可以直接从本地分支网络进行下载,而不需要通过使用广域网 (WAN) 检索该内容。总的来说是为了优化分支机构网络流量。
根据缓存所处的位置,BranchCache 可以在以下两种模式之一下操作:托管缓存模式或分布式缓存模式。托管缓存模式通过将运行 Windows Server 2008 R2 的一台计算机部署为分支机构中的一台主机来执行操作。会为客户端配置主机的完全限定域名,这样它们可以在可用时从托管缓存中检索内容。如果在托管缓存中不提供该内容,则会通过使用 WAN 从内容服务器进行检索,然后将其提供给托管缓存,这样后续客户端可以受益。
对于用户数量少于 50 的分支机构,可以采用分布式缓存模式配置 BranchCache。在此模式下,本地 Windows 7 客户端保持该内容的一个副本,并使其对请求相同数据的其他已授权客户端可用。这消除了在分支机构中配备一台服务器的需求。但是,与托管缓存模式不同,此配置仅适合跨单一子网的情形(即,必须通过使用 WAN 在分支机构中每个子网检索一次该内容)。此外,休眠的客户端或以其他方式从网络断开连接的客户端不能向请求客户端提供内容。
Branchcache工作原理
分布式缓存模式:在分布式缓存模式下,Windows 7 客户端缓存它们通过使用 WAN 检索到的内容,然后在收到请求时将该内容直接发送给其他已授权的 Windows 7 客户端。下图显示分布式缓存模式,并提供缓存和检索过程的简单图示。通过使用 WAN 从内容服务器检索内容的第一个客户端,对于请求相同内容的其他客户端来说,成为分支机构内该内容的一个源。当第二个客户端请求相同的内容时,它会从内容服务器下载内容元数据。第二个客户端接着发送一个请求,请求本地网络上的段哈希,以确定是否任何其他客户端已缓存该数据。找到第一个客户端之后,第二个客户端会从其本地检索该内容。
分布式缓存模式使用以下过程来缓存和检索数据:
a.Windows 7 客户端连接到内容服务器并请求某个文件(或某个文件的一部分),完全就像它过去没有使用 BranchCache 时检索文件一样。
b.内容服务器对客户端进行身份验证和授权,然后服务器返回一个客户端用于在本地网络上搜索该文件的标识符。因为这是任何客户端第一次尝试检索该文件,它尚未在本地网络上进行缓存。因此,客户端直接从内容服务器检索该文件并缓存它。
c.第二个 Windows 7 客户端从内容服务器请求相同的文件。内容服务器对用户进行身份验证和授权,与未使用 BranchCache 时它对客户端进行身份验证和授权的方式完全相同。如果成功,它会在通常已发送数据的相同通道上返回内容元数据。
d.第二个客户端通过使用 Web 服务发现 (WS-Discovery) 多播协议在本地网络上发送一个请求,请求所需的文件。有关 WS_Discovery 的详细信息,请参阅白皮书“Web 服务动态发现”。
e.先前已缓存该文件的客户端将该文件发送给请求客户端。数据是通过使用某个密钥加密的,该密钥是作为内容元数据的一部分,从由内容服务器发送的哈希派生的。
f.客户端解密数据,计算从第一个客户端接收到的块上的哈希,并确保它等于内容服务器作为内容元数据的一部分提供的块哈希。这可确保内容未被修改。
Branchcache工作要求
您的系统必须满足以下要求才能使用 BranchCache:
a.客户端计算机必须运行 Windows 7,并启用了 BranchCache 功能。
b.服务器必须运行 Windows Server 2008 R2,并启用了 BranchCache 功能
实验拓扑
Setup
1, 建立contoso.com的域以及分支结构的域,分支结构的客户端加入域(参考:http://bbs.51cto.com/thread-1034839-1.html)
2, 在总部DC上(严谨点说是企业里提供文件服务的那台服务器,我这里DC是域控并提供文件服务)安装文件服务角色里的网络文件Branchcache和功能里的Branchcache
3, 在DC上建立共享文件夹Branchcache,共享后在高级里选中“启用Branchcache”
4, 打开组策略,新建一个Ou名字叫“Branchcache_Server”,并定位到计算机配置—策略—管理模板—网络—Lanman服务器,启用分支缓存的哈希发布,完成后应用到我们提供文件服务的服务器所在的OU上,并gpupdate /force 一下
5, 新建一个组策略对象,名叫“Branchcache_Client”并编辑策略,定位到—计算机配置—策略—管理模板—网络—Branchcache,分别启用
“启用Branchcache”
“设置Branchcache分布式缓存模式”
“配置网络文件的Branchcache”
在分布式缓存模式下,BranchCache 将 HTTP 协议用于客户端计算机之间的数据传输,并将 WS-Discovery 协议用于缓存内容发现。必须配置客户端防火墙才能允许在使用分布式缓存模式的计算机上传入 HTTP 和 WS-Discovery 通信。
注:配置为使用托管缓存模式的客户端也使用 HTTP 协议,但不使用 WS-Discovery 协议。必须将在托管缓存模式下操作的客户端配置为允许从托管缓存服务器传入 HTTP 通信。
允许使用80、3702号端口,具体配置如下:
定位到计算机配置—策略—Windows设置—安全设置—高级安全Windows防火墙—入站规则,新建允许2条入站策略
“Branchcache-对等机发现(使用WSD)”
“Branchcache-内容检索(使用http)”
完成后应用到分支机构的需要缓存内容的计算机所在的OU上
6, 为了单域多站点的复制能够快速响应,我们直接打开dssite进行立即复制
7, 待2边复制完成后,计算机都gpupdate /force ,最好重启一下,全部应用策略后,使用netsh branchcache show status all 能显示BranchCache 服务状态、本地缓存的位置、本地缓存的大小、BranchCache 使用的 HTTP 和 WS-Discovery 协议的防火墙规则的状态
对branchcache使用命令行工具语法,请参考:netsh branchcache /?
8, 我们先使用win7-2到dc上去复制一个文件,然后再次查看Branchcache的状态:说明已经进行了缓存
9,我们使用win7-1访问DC,并考贝同样的内容,我们使用netstat –n 可以看出,win7-1是通过80端口从win7-1上复制而来!
IT之梦---你---我---他
2013年05月20日
转载于:https://blog.51cto.com/itmydream/1205188