1 概述
企业知名度增加,网站访问量逐渐上升,是每一个网管所盼望的。但同时应用服务器的数据流量和访问量将成倍增加,服务器将不堪重负。
这时,可采用两种方式解决此问题,一是进行硬件升级,购买配置更高、性能更好的服务器,这种方法的优点是简单易行,缺点是投资大, 会造成现有资源的浪费,且下一次业务量的提升还会面临同样问题。另一种方法是采用集群技术,利用两台以上的服务器进行协同工作,在
集群系统中运行的服务器并不一定是高档产品(可以是企业现有的服务器),但服务器的集群却可以提供相当高性能的不停机服务;另外,随着业务量的增大,可随时增加集群系统中运行的服务器数量。集群技术的优点是高可靠性和强大灵活的系统扩充能力。
两台以上的服务器进行协同工作必然涉及到负载均衡问题,目前常用的负载均衡技术主要有:NAT负载均衡、反向代理负载均衡及DNS负载。
NAT负载均衡将一个外部IP地址映射为多个内部IP地址,对每次连接请求动态地转换为一个内部服务器的地址,将外部连接请求引到转换得到地址的那个服务器上[1]。反向代理负载均衡使用代理服务器将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的[2]。DNS负载均衡在DNS中为多个地址配置同一个名字,从而使得不同的客户访问不同的服务器来实现负载均衡。本文将详细介绍DNS负载均衡原理和技术实现。
2 DNS负载均衡原理
DNS负载均衡是通过循环复用实现的,如果发现主机名的多个地址资源记录,则可用它循环使用包含在查询应答中的主机资源记录。在默认情况下,DNS 服务器的服务使用循环复用对资源记录进行排序,这些资源记录是在解析为多个映射的主机名应答中返回的。该功能提供了一种非常简便的方法,用于对客户机使用 Web 服务器和其他频繁查询的多宿主计算机的负载平衡。
要使循环复用正常工作,必须首先在该区域中注册所查询名称的多个主机资源纪录,并启用DNS服务器循环复用。如果DNS服务器禁止循环复用,那么这些查询的响应顺序以应答列表中资源记录在区域中存储时的静态排序为基础。
3 四台服务器的负载均衡实例
可提供的服务:Web、Ftp系统实现的目的:做一个较完善的负载均衡系统,以共享和高效地利用资源设备状况:五台服务器,其中四台服务器组成集群系统,IP地址分别为172.28.20.1、172.28.20.2、172.28.20.3、172.28.20.4;
一台服务器作为控制管理服务器,提供DNS服务,设企业域名为 [url]www.example.com.cn[/url]。
服务器配置:集群系统服务器安装Windows 2000 sever ,须安装Internet信息服务组件;
DNS服务器安装Windows 2000 sever ,须安装DNS组件。
⑴ 分别设置各台服务器IP地址、子网掩码、网关及DNS服务器地址,调通网络。
⑵ 设置DNS服务器
①在DNS中创建正向搜索的标准主要区域,实现域名
DNS服务器上单击开始/程序/管理工具/DNS,打开DNS控制台。
在控制台树中,右键单击 “正向搜索区域”,单击新建区域/新建区域向导/下一步,选择区域类型为“标准主要区域”。如果不是在活动目录的域控制器上创建DNS区域,则区域类型中的“与活动目录集成的区域”选项按钮不可用;单击“下一步”。
输入要创建的区域名称example.com.cn,选择创建新的区域文件,文件名为example.com.cn.dns,单击下一步/完成,区域example.com.cn出现在控制台树中的“正向搜索区域”下。
②在区域example.com.cn中注册查询名称www. example.com.cn的多个主机资源记录。
在DNS控制台树中右键单击区域example.com.cn,单击新建主机,弹出“新建主机”窗口。在“名称”栏输入主机名www,在“IP地址”栏输入对应的IP地址172.28.20.1,单击“添加主机”、“确定”按钮;重复此过程,主机名仍为www, IP地址依次为172.28.20.2、172.28.20.3、172.28.20.4。单击“完成”。
四条名为www的主机记录出现在正向搜索区域“example.com.cn”中,指针依次为172.28.20.1、172.28.20.2、172.28.20.3、172.28.20.4
③启用多宿主名称的循环复用
单击开始/程序/管理工具/DNS/DNS服务器名/属性/高级,在“服务器选项”中,选择“启用循环”复选框,然后单击“确定”。
至此,正向搜索型查询用于IP 地址分别为172.20.20.1、172.28.20.2、172.28.20.3和172.28.20.4的多宿主主机 (www. example.com.cn)配置完成,具体如图1所示。
img: [url]http://www.ahcit.com/back/editor/UploadFile/20061251702664.gif[/url]
图1 DNS服务器配置图
当客户请求访问 [url]www.example.com.cn[/url]时,DNS服务器将循环调度IP地址的次序,将按172.28.20.1、172.28.20.2、172.28.20.3和172.28.20.4的顺序应答第一个客户的要求,下一个客户对同样信息的请求将用旋转后的172.28.20.2、172.28.20.3、172.28.20.4和172.20.20.1这样的顺序应答,旋转过程将持续下去,成功实现DNS负载均衡。
按以上步骤设置好后,有时会有疑问,为什么ping [url]www.example.com.cn[/url],返回的都是同一个IP?原因很简单,这是因为只用1台电脑做
测试,ping了第一次后,电脑就会做一个缓存。用多台电脑来ping,或在一台电脑上ping完每一次后,均运行ipconfig/flnshdns,就可测试
出系统实现目的已达到。
4 需注意的两点问题
⑴ 本地子网优先级
当集群中的服务器不在同一网段时,默认情况下,当客户机查询解析映射到多个 IP 地址的主机名时,DNS 服务使用本地子网优先排序作为
给出同一网络上首选 IP 地址的方法。此功能要求客户应用程序尝试使用连接可用的最近(一般是最快的)IP 地址连接至主机。
DNS 服务按以下方式使用本地子网优先级:
①DNS 服务确定是否需要本地子网的优先级排序查询响应。
如果有多个地址资源记录与要查询的主机名匹配,则 DNS 服务可按其子网位置重新对记录进行排序。如果查询的主机名只与一个 地址资源
记录匹配,或者客户机的 IP 网络地址与多重资源记录响应列表上的任何映射地址的 IP 网络地址匹配,则不需要进行优先排列。
②对于匹配响应列表中的每一个资源纪录,DNS 服务决定了哪些记录(如果有)与查询客户机的子网位置匹配。
③DNS 服务重新对响应列表进行排序,以便将与发出请求的客户机的本地子网匹配的 主机地址资源记录排在响应列表中的第一位。
④按子网的顺序进行优先级排序后,响应列表将返回给发出请求的客户机。
⑵ 不足之处
虽然循环复用 DNS 是一个普遍使用的在 Web 服务器上负载平衡的解决方案,但是,该方式有它自身的缺陷。循环复用 DNS 使用 DNS
将传入的 IP 请求映射到定义的一系列循环形式的服务器。一旦发生服务器故障,循环复用 DNS 继续把请求发送到这个故障服务器,一直
到把该服务器从 DNS 中移走为止。这样许多用户必须等到 DNS 连接超时以后才能成功地访问目标网站。
5 结束语
集群负载均衡被认为是目前十大热门技术之一,它也是一个高端应用,Internet/Intranet中负载均衡方案应用十分广泛,许多大中型网
站都难脱离这种技术。NAT负载均衡、反向代理均衡及DNS负载均衡,将视需要而被采用。利用循环复用DNS实现负载均衡是一种经济又实用的方法,不需要添加昂贵的负载均衡设备,并且服务器可以位于互联网的任意位置,该技术当前使用在包括Yahoo在内的一些Web站点上[2]。
参考文献
[1]:鲁定龙. NAT负载均衡配置示例. [url]http://www.ipgw.net[/url] .2004
[2]:王波. 负载均衡构建高负载网站的利器.中国计算机报. 1999-12-16,总期号:884,本年期号:94
企业知名度增加,网站访问量逐渐上升,是每一个网管所盼望的。但同时应用服务器的数据流量和访问量将成倍增加,服务器将不堪重负。
这时,可采用两种方式解决此问题,一是进行硬件升级,购买配置更高、性能更好的服务器,这种方法的优点是简单易行,缺点是投资大, 会造成现有资源的浪费,且下一次业务量的提升还会面临同样问题。另一种方法是采用集群技术,利用两台以上的服务器进行协同工作,在
集群系统中运行的服务器并不一定是高档产品(可以是企业现有的服务器),但服务器的集群却可以提供相当高性能的不停机服务;另外,随着业务量的增大,可随时增加集群系统中运行的服务器数量。集群技术的优点是高可靠性和强大灵活的系统扩充能力。
两台以上的服务器进行协同工作必然涉及到负载均衡问题,目前常用的负载均衡技术主要有:NAT负载均衡、反向代理负载均衡及DNS负载。
NAT负载均衡将一个外部IP地址映射为多个内部IP地址,对每次连接请求动态地转换为一个内部服务器的地址,将外部连接请求引到转换得到地址的那个服务器上[1]。反向代理负载均衡使用代理服务器将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的[2]。DNS负载均衡在DNS中为多个地址配置同一个名字,从而使得不同的客户访问不同的服务器来实现负载均衡。本文将详细介绍DNS负载均衡原理和技术实现。
2 DNS负载均衡原理
DNS负载均衡是通过循环复用实现的,如果发现主机名的多个地址资源记录,则可用它循环使用包含在查询应答中的主机资源记录。在默认情况下,DNS 服务器的服务使用循环复用对资源记录进行排序,这些资源记录是在解析为多个映射的主机名应答中返回的。该功能提供了一种非常简便的方法,用于对客户机使用 Web 服务器和其他频繁查询的多宿主计算机的负载平衡。
要使循环复用正常工作,必须首先在该区域中注册所查询名称的多个主机资源纪录,并启用DNS服务器循环复用。如果DNS服务器禁止循环复用,那么这些查询的响应顺序以应答列表中资源记录在区域中存储时的静态排序为基础。
3 四台服务器的负载均衡实例
可提供的服务:Web、Ftp系统实现的目的:做一个较完善的负载均衡系统,以共享和高效地利用资源设备状况:五台服务器,其中四台服务器组成集群系统,IP地址分别为172.28.20.1、172.28.20.2、172.28.20.3、172.28.20.4;
一台服务器作为控制管理服务器,提供DNS服务,设企业域名为 [url]www.example.com.cn[/url]。
服务器配置:集群系统服务器安装Windows 2000 sever ,须安装Internet信息服务组件;
DNS服务器安装Windows 2000 sever ,须安装DNS组件。
⑴ 分别设置各台服务器IP地址、子网掩码、网关及DNS服务器地址,调通网络。
⑵ 设置DNS服务器
①在DNS中创建正向搜索的标准主要区域,实现域名
DNS服务器上单击开始/程序/管理工具/DNS,打开DNS控制台。
在控制台树中,右键单击 “正向搜索区域”,单击新建区域/新建区域向导/下一步,选择区域类型为“标准主要区域”。如果不是在活动目录的域控制器上创建DNS区域,则区域类型中的“与活动目录集成的区域”选项按钮不可用;单击“下一步”。
输入要创建的区域名称example.com.cn,选择创建新的区域文件,文件名为example.com.cn.dns,单击下一步/完成,区域example.com.cn出现在控制台树中的“正向搜索区域”下。
②在区域example.com.cn中注册查询名称www. example.com.cn的多个主机资源记录。
在DNS控制台树中右键单击区域example.com.cn,单击新建主机,弹出“新建主机”窗口。在“名称”栏输入主机名www,在“IP地址”栏输入对应的IP地址172.28.20.1,单击“添加主机”、“确定”按钮;重复此过程,主机名仍为www, IP地址依次为172.28.20.2、172.28.20.3、172.28.20.4。单击“完成”。
四条名为www的主机记录出现在正向搜索区域“example.com.cn”中,指针依次为172.28.20.1、172.28.20.2、172.28.20.3、172.28.20.4
③启用多宿主名称的循环复用
单击开始/程序/管理工具/DNS/DNS服务器名/属性/高级,在“服务器选项”中,选择“启用循环”复选框,然后单击“确定”。
至此,正向搜索型查询用于IP 地址分别为172.20.20.1、172.28.20.2、172.28.20.3和172.28.20.4的多宿主主机 (www. example.com.cn)配置完成,具体如图1所示。
img: [url]http://www.ahcit.com/back/editor/UploadFile/20061251702664.gif[/url]
图1 DNS服务器配置图
当客户请求访问 [url]www.example.com.cn[/url]时,DNS服务器将循环调度IP地址的次序,将按172.28.20.1、172.28.20.2、172.28.20.3和172.28.20.4的顺序应答第一个客户的要求,下一个客户对同样信息的请求将用旋转后的172.28.20.2、172.28.20.3、172.28.20.4和172.20.20.1这样的顺序应答,旋转过程将持续下去,成功实现DNS负载均衡。
按以上步骤设置好后,有时会有疑问,为什么ping [url]www.example.com.cn[/url],返回的都是同一个IP?原因很简单,这是因为只用1台电脑做
测试,ping了第一次后,电脑就会做一个缓存。用多台电脑来ping,或在一台电脑上ping完每一次后,均运行ipconfig/flnshdns,就可测试
出系统实现目的已达到。
4 需注意的两点问题
⑴ 本地子网优先级
当集群中的服务器不在同一网段时,默认情况下,当客户机查询解析映射到多个 IP 地址的主机名时,DNS 服务使用本地子网优先排序作为
给出同一网络上首选 IP 地址的方法。此功能要求客户应用程序尝试使用连接可用的最近(一般是最快的)IP 地址连接至主机。
DNS 服务按以下方式使用本地子网优先级:
①DNS 服务确定是否需要本地子网的优先级排序查询响应。
如果有多个地址资源记录与要查询的主机名匹配,则 DNS 服务可按其子网位置重新对记录进行排序。如果查询的主机名只与一个 地址资源
记录匹配,或者客户机的 IP 网络地址与多重资源记录响应列表上的任何映射地址的 IP 网络地址匹配,则不需要进行优先排列。
②对于匹配响应列表中的每一个资源纪录,DNS 服务决定了哪些记录(如果有)与查询客户机的子网位置匹配。
③DNS 服务重新对响应列表进行排序,以便将与发出请求的客户机的本地子网匹配的 主机地址资源记录排在响应列表中的第一位。
④按子网的顺序进行优先级排序后,响应列表将返回给发出请求的客户机。
⑵ 不足之处
虽然循环复用 DNS 是一个普遍使用的在 Web 服务器上负载平衡的解决方案,但是,该方式有它自身的缺陷。循环复用 DNS 使用 DNS
将传入的 IP 请求映射到定义的一系列循环形式的服务器。一旦发生服务器故障,循环复用 DNS 继续把请求发送到这个故障服务器,一直
到把该服务器从 DNS 中移走为止。这样许多用户必须等到 DNS 连接超时以后才能成功地访问目标网站。
5 结束语
集群负载均衡被认为是目前十大热门技术之一,它也是一个高端应用,Internet/Intranet中负载均衡方案应用十分广泛,许多大中型网
站都难脱离这种技术。NAT负载均衡、反向代理均衡及DNS负载均衡,将视需要而被采用。利用循环复用DNS实现负载均衡是一种经济又实用的方法,不需要添加昂贵的负载均衡设备,并且服务器可以位于互联网的任意位置,该技术当前使用在包括Yahoo在内的一些Web站点上[2]。
参考文献
[1]:鲁定龙. NAT负载均衡配置示例. [url]http://www.ipgw.net[/url] .2004
[2]:王波. 负载均衡构建高负载网站的利器.中国计算机报. 1999-12-16,总期号:884,本年期号:94