解析BranchCache数据传输机制

2017-11-22 02:41
网络安全和信息化 2017年1期
关键词:组策略分支机构右键

对于很多规模较大的企业来说,会在各地建立分公司或者办事处等分支机构,来尽可能的拓展公司的业务。相对应,在公司总部分支机构之间也必然会通过网络连接,进行组织机构的管理和数据传输。当然,在具体实现时需要规划活动目录域环境的分布式布局,即在域环境创建主站点和分支机构站点,使其彼此之间顺利访问和通讯,组成协调统一的整体结构。

在分支机构和主站点之间经常会传输数据,例如在总部文件服务器上存储着大量的文件,各分支机构会频繁的从中下载文件等。数据的传输就必然会占用相应的带宽。如何才能尽可能的降低带宽的消耗,又能够加快数据的传输速度呢?使用BranchCache技术,就可以有效的解决该问题。

站点之间的网络连接方式

有些公司为了保证网络连接的稳定性,会采用专线传输的方式,即由网络运营商在总部和分支机构之间设置专用线路。专线的速度,可连通性以及稳定性都很优秀,不过价格比较昂贵。为了降低使用成本,一些公司会采用MPLS VPN的方式,在总部和分支机构之间建立网络连接。和普通的VPN相比,MPLS VPN是由运营商为客户架设的VPN链路,其维护也通常由运行商负责,这是比较常用的连接模式。当然,有的公司因为实力有限,会采取自架VPN的方法,来解决总部和分支机构的网络通讯问题,即在双方分别配置带有VPN功能的硬件防火墙,通过Intenet来实现VPN远程连接功能,并利用IPSec加密技术保证数据传输的安全性,不过自架的VPN完全有用户自己管理,其稳定性和可靠性都存在问题。

浅析BranchCache模式及其功能

不管对于哪一种网络连接方式,在实际使用时如何有效节省分支机构和总部之间的链路带宽,提高利用率减少不必要的浪费,是网络管理方面不可忽视的问题。尤其对于昂贵的专线链路来说尤其重要。

例如,在总部机构架设了一台文件服务器,当分支机构的客户端从该服务器上下载数据时,使用BranchCache技术就可以有效节省两者之间的链路带宽。对于BranchCache技术来说,通常包含分布式缓存和托管主机缓存两种模式。

对于分布式缓存来说,当分支机构的A用户从总部的文件服务器下载所需的数据后,保存到本机PC1上。

当分支机构中的用户C也向从文件服务器下载同样的数据时,其实际上只是从文件服务器是下载对应文件的标识信息,并据此从PC1中的缓存搜索数据,之后才将数据复制到本机PC2上。

对于托管主机缓存模式来说,当用户A从文件服务器下载所需的数据后,会将数据内容推送到分支机构本地的某台服务器上,当然,在PC1本地缓存中也存在这些数据。当用户C下载同样的数据时,会从本地服务器上查找并将数据复制到PC2上。

和分布式缓存模式不同,该模式在分支机构中放置了一台服务器,所有客户端从文件服务器下载的数据,全部复制一份存储到该服务器上。

对于分布式缓存模式来说,如果对应的客户机在下载完成后关机的话,其他的客户端就无法从其缓存中复制数据了,这是其缺点之一。

不管采用哪一种缓存模式,都可以有效降低分支机构和总部之间的链路带宽。注意,对于BranchCache来说,其支持的服务器操作系统版本为Windows Server 2008 R2及其以上版本,对于客户端来说,其支持Windows 7企业版及其以上版本。

实现分布式BranchCache模式

对于某个企业来说,其使用分布式BranchCache模式,在总部和分支机构之间传输数据,在总部内部网络中,存在IP为172.16.0.30的文件服务器,其安装的是Windows Server 2008 R2。在分支机构内部网络中使用的网段为192.168.0.0/24,其处于名称为xxx.com的域环境中。在总部端的文件服务器上打开服务器管理器。在左侧的“功能”项的右键菜单上点击“添加功能”项,在向导界面中的选择功能列表中选择“BranchCache”项,点击安装按钮,来安装该组件。在服务器管理其左侧选择“角色”→“文件服务”项,在其右键菜单上点击“添加角色”项,在选择角色服务窗口中选择“网络文件BranchCache”项,点击安装按钮,来安装该角色。

服务器端配置分布式缓存模式

为了便于配置BranchCache,可以在域控上打开Active Directory用户和计算机窗口,在其中新建一个OU(例如名称为“filesrv”),将文件服务器放置到该OU中。再创建一个OU(例如名为“fzkh”),用来放置分支机构中客户机和用户。在域控上打开组策略管理器,针对名为“filesrv”的容器来配置组策略。在其右键菜单上点击“在这个域中创建GPO并在此处链接”项,在弹出窗口中输入该GPO的名称(例如“pzcy”),点击确定按钮,完成创建。

在该GPO右键菜单上点击“编辑”项,在组策略管理编辑器窗口左侧打开“计算机配置”→“策略”→“管理模版”→“网络”→“Lanman服务器”在右侧双击“分支缓存的哈希发布”项,在其属性窗口中选择“已启用”项(如图1所示)。

对哈希发布操作来说,提供了仅允许对启用分支缓存的共享文件夹进行哈希发布,禁止对所有共享文件夹进行哈希发布,允许对所有共享文件夹进行哈希发布等模式。

对于哈希算法来说,当分支机构的某个用户从文件服务器下载某个文件后,当另外一个用户从文件服务器下载文件时,其会对文件进行哈希计算,当计算的哈希值和分支机构中的某台客户机缓存中的文件哈希值一致,就不会从文件服务器上下载文件,而直接从本地客户机上直接复制该文件。这里在“哈希发布操作”列表中选择第一项即可。

图1 启用分支缓存的哈希发布

图2启用BranchCache

图3 设置和BranchCache相关的组策略

之后在文件服务器上执行“gpupdate /force” 命令,刷新组策略。打开共享和存储管理程序,在共享列表中选择某个文件夹,在其右键菜单上点击“属性”项,在弹出窗口中点击“高级”按钮,在高级窗口中的“缓存”面板中选择“启用BranchCache”项,表示该共享文件夹中的所有内容都支持BranchCache。该选项和上述选择的“仅允许对启用分支缓存的共享文件夹进行哈希发布”是紧密相关的。按照同样的方法,可以设置所有相关的共享文件夹(如图2所示)。

客户端配置分布式缓存模式

当服务器端配置完成后,接下来就需要对客户端进行设置了。例如,在分支机构的PC1上执行“gpedit.msc”程序,在组策略编辑器中打开“计算机配置”→“管理模版”→“网络” →“BranchCache”项,在右侧双击“启 用BranchCache”项,在打开窗口中选择“已启用”项,激活该功能(如图3)。双击“设置BrachCache分布式缓存模式”项,在打开窗口中选择“已启用”项,表示使用分布式缓存模式。双击“配置网络文件的BranchCache”项,在打开窗口中输入回程网络延迟值,单位为毫秒。如果大于该值,网络文件将由分支机构中的客户端计算机进行缓存。

通过网络文件BranchCache机制,分支机构中的计算机可以缓存启用了BranchCache的文件服务器上的数据,之后就可以和分支机构中的其他客户机安全共享数据。

在默认情况下,当广域网链接的回程网络延迟时间大于80毫秒时,将在分支机构中的缓存网络文件。双击“设置用于客户端计算机缓存的磁盘百分比”项,在打开窗口中选择“已启用”项,可以设置专门用于使用BranchCache缓存检索内容的磁盘百分比。如果禁用或者没有配置该参数的话,则默认缓存占用磁盘总空间的5%。当然在域环境中,可以通过组策略来统一配置以上策略。

在域控上打开组策略管理器,选择具体的OU(例如“fzkh”),在其右键菜单上选择“在这个域中创建GPO并在此处链接”项,在弹出窗口中输入该GPO的名称(例如“khbranch”),在该 GPO 的右键菜单上点击“编辑”项,在组策略管理器中选择上述分支,对其中的项目逐一配置。

注意,在客户端进行相互访问时,默认情况下,需要使用到TCP 80,445等端口,例如客户端之间的数据复制是通过TCP 80端口进行的。

图4 创建针对BranchCache服务放行的规则

因此,如果客户端启用了防火墙的话,需要在火墙上开启这些端口。选择“计算机配 置”→“策略” →“Windows设置”→“安全设置”→“高级安全Windows防火墙”→“高级安全Windows防火墙”→“入站规则”项,在其右键菜单中点击“新增规则”项,在向导界面中的“预定义”列表中分别针对“BranchCache -对等机发现” 和“BranchCache-内容检索”项,创建放行规则(如图4所示)。

这样,就可以保证客户端之间顺利的复制数据。设置完成后,在客户端上分别执行“gpupdate/force”命 令,来刷新组策略。在客户端上执行“netsh branchcache show status all”命令,显示所有和BranchCache相关的设置信息。在返回信息中显示BranchCache服务状态,本地缓存状态,发布缓存状态,网络状态等内容。

例如,在“当前状态”栏中显示“正在运行”项,表示已经启用了BranchCache功能。在“服务模式”栏中显示BranchCache运行模式,这里为分布式缓存。在“当前正使用的缓存大小”栏中显示已经缓存的数据容量,在“最大缓存大小”栏中显示缓存占用的磁盘比例。

利用分布式缓存模式传输文件

当服务器端和客户端都配置完毕后,在PC1 上访问总部的文件服务器,下载自己所需的共享文件。在此期间,在PC1上执行“netstat-an”命令,可以查看到本机和文件服务器之间是通过TCP 445端口连接的。

当复制完成以后,在PC2上同样访问文件夹服务器,当下来相同的文件时,可以发现其复制速度明显加快。这是因为当PC1从文件服务器下载文件时,是通过广域网链路实现的,其传输的速度自然无法域局域网相比。当PC2复制同样的文件时,其实是从PC1的缓存中复制的,即在局域网中传输数据,其速度自然大大加快了。在PC2复制文件的过程中,在PC1上执行“netsh branchcache show status all”,在返回信息中的“当前正使用的缓存大小”栏中显示已经目前缓存的数据

实现托管主机缓存模式

相对于BranchCache分布式缓存模式来说,托管主机缓存模式在网络结构上就要复杂一些,即在分支机构中选择一台文件服务器,客户端从公司总部文件服务器下载的文件,全部复制一份保存在该服务器上。这样,当别的客户机需要相同的文件时,可以直接从该服务器上复制。在一般情况下,分支机构中的该文件服务器始终处于开机状态,可以随时为所有的客户机提供服务,这有效避免了分布式缓存模式的上述缺点。

例如,在分支机构中选择IP为192.168.0.11的主机(例如名称为“fzsrv”)作为文件服务器,来实现主机托管缓存模式,其上安装的是Windows Server 2008 R2,该服务器同样要加入到域环境中。因为在该模式下,在分支机构内部,客户机和该文件服务器之间的通讯是基于HTTPS连接实现的。这就需要证书的支持。

实际上,相对于分布式BranchCache模式来说,托管主机缓存模式在总部文件服务器上的配置几乎相同,所不同的就是证书的管理。因此,关于总部文件服务器的配置,可以按照上面讲述的方法进行。这里为了便于说明,在域控上安装Active Directory证书服务,注意要选择“证书办法机构Web注册”项。当然,在实际应用时,最好配置单独的证书服务器。

服务器端配置托管主机缓存模式

虽然在域环境中,可自动建立信任关系。不过为了稳妥起见,最好将这种信任关系强制发布。

在域控上运行“gpmc.msc” 程序,在组策略管理窗口左侧选择“域名” →“Default Domain Policy”项,在其右键菜单上点击“编辑”项,在组策略管理编辑器左侧选择“计算机配置”→“策略”→“Windos设置”→“安全设置”→“公钥策略”项,在右侧双击“证书服务客户端-自动注册”项,在打开窗口中的“配置型号”列表中选择“已启用”项(如图5所示),点击确定按钮,在其属性窗口中选择“续订过期证书,更新未决证书并删除吊销的证书”和“更新使用证书模版的证书”项,点击确定保存配置信息。这样,当分支机构中的文件服务器登录到域环境后,就会自动建立信任关系。

图5 允许客户端自动注册证书

在分支机构文件服务器上运行“mmc”程序,在管理控制台中点击菜单“文件”→“添加/删除管理单元”项,在打开窗口中选择“证书”项,点击添加按钮,选择“计算机账户”项,在控制台左侧选择“证书”→“收信人的根证书颁发机构”→“证书”项,在右侧可以看到其已经信任了域中的根证书颁发机构。

在分支机构的文件服务器上打开服务器管理器,在左侧的“功能”项的右键菜单上点击“添加功能”项,在向导界面选择“BranchCache”项,点击安装按钮,来安装该组件。

在CMD窗口中执行“netsh Branchcache set Service mode=hostedServer” 命令, 将BranchCache服务设置为托管主机模式,系统会自动启用名为“BranchCache -内容检索”和“BranchCache-托管缓存服务器”的防火墙规则组。

图6 设置证书模版属性

在总部域控上打开管理控制台,点击菜单“文件”→“添加/删除管理单元”项,在打开窗口中选择“证书颁发机构”,“证书模版”项,点击添加按钮,选择“计算机账户”项,在控制台左侧选择“证书”→“收信人的根证书颁发机构”→“证书”项,在右侧可以看到其已经信任了域中的根证书颁发机构。

在左侧选择“证书颁发机构”→“证书模版”项,在右侧的“Web服务器”项的右键菜单上点击“复制模版”项,在打开窗口中选择合适的系统版本,点击确定按钮。在模版的属性窗口中的“常规”面板(如图6所示)中输入该模版的名称(例 如“Branchkey”),选择“在 Active Directory中发布证书”和“如果Active Directory中有一个重复证书,不要自动重新注册”项。

在“安全”面板中点击“添加”按钮,在选择窗口中点击“位置”按钮,在打开窗口中只选择“计算机”项,之后导入分支机构文件服务器(例如名称为“fzsrv”),选择该计算机,在权限列表中的“允许”列中选择“读取”,“注册”,“自动注册”项,点击应用按钮,激活以上设置。在控制台左侧选择“证书颁发机构”→“颁发机构名称”→“证书模版”项,在其右键菜单上点击“新建”→“要颁发的证书模版”项,在启用证书模版窗口中选择上述新建的模版(例如“Branchkey”),点击确定按钮将其发布出去。

客户端配置托管主机缓存模式

在分支机构文件服务器上执行“gpupdate /force”命令。刷新组策略。打开MMC控制台,在左侧选择“证书”→“个人”项,在其右键菜单上点击“所有任务”→“申请新证书”项,在向导界面中点击下一步按钮,选择“Active Directory注册策略”项,点击下一步按钮,选择上述发布的名为“Branchkey”的证书模版。

打开其“详细信息”栏,点击属性按钮,在打开窗口中的“使用者”列表中选择“公共名”项,在“值”栏中输入分支机构文件服务器的FQDN全名,例如“fzsrv.xxx.com”。点击“添加”按钮,将其导入到右侧列表中。点击应用按钮保存配置。

点击注册按钮,即可连接到注册服务器来获得请求证书。在MMC控制台左侧选择“个人”→“证书”项,可以显示获得的证书。在其右键菜单上点击“打开”项,在弹出窗口中的“详细信息”面板中选择“指纹”项,显示该证书的指纹信息,所谓指纹,就是一串特殊的字符。将指纹数据复制出来,并保存到某文本文件中。

注意,需将字符间的空间删除,使之成为连续的字符串。假设保存为“zhiwen.txt”文件,在分支机构文件服务器上执行“netsh http add sslcert ipport=0.0.0.0:443 certhash=xxxxxxxxx appid={d673f5ee-a714-454d-8de2-492e4c1bd8f8}”命令,其中的“xxxxxxxxx”代表上述删除空格的指纹信息。该命令执行后,系统会显示“成功添加SSL证书”的提示信息,说明该证书和BranchCache建立关联。

图5 允许客户端自动注册证书

执 行“netsh branchcache show status all”命令,在返回信息中的“绑定到托管缓存端口的SSL证书”的值变成了“已配置”,这样,总部服务器和分支机构服务器的配置就基本完成了。在分支机构客户端同样需要配置相关的组策略,为了实现批量调整,可以在按照上述方法在域控上为客户端配置和BranchCache相关的策略,具体方法基本相同,所不同的是,不需要启用BranchCache分布式缓存模式,而要双击“设置BranchCache托管缓存模式”项,在打开窗口中选择“已启用”项,在“填入托管缓存的位置”栏中输入分支机构文件服务器的名称,例如“fzsrv.xxx.com”。在分支机构客户端主机(例如PC1等)上登录到域环境,执行“gpupdate /force”命令,来更新组策略。执行“netsh branchcache show status all”命令,在返回信息中的“服务模式”栏中显示“托管缓存客户端”,说明其已经运行在BranchCache托管模式下。

当PC1访问总部文件服务器上,并下载所需的文件后,该文件会现在该客户机上建立缓存,之后才将其副本会自动存储到分支机构的文件服务器中,执行“netstat-an”命令,可以看到客户端使用TCP 80端口来发现BranchCache托管服务器,之后使用TCP 443端口向其传输数据。当PC2等客户端从总部的文件服务器下载同文件时,会自动从本机构内的文件服务器上查找并下载该文件。在局域网内高速传输文件便可避开在广域网中的文件传输过程。

猜你喜欢
组策略分支机构右键
承德银行分支机构反洗钱工作实施细则
轻松整理Win10右键菜单
补齐设置短板 用好Microsoft Edge
自定义“开始”右键控制菜单
通过PowerShell获取组策略安全报告
重庆市中医药行业协会举行分支机构工作推进会
如何完全卸载OneDrive
用右键菜单管理右键菜单
用人单位分支机构的职工如何确定缴费地
给Windows 10右键菜单做“手术”