引言
本文将介绍如何配置Forefront TMG服务器的负载均衡功能,以便将载荷均衡地分配到多个内部Web服务器。其中还会概要介绍一些Forefront TMG 及Windows Server 2008 R2网络负载均衡(NLB,Network Load Balancing)的基本知识。
流量分配的方法
Forefront TMG 可以将网络流量分发到相同配置的Web服务器,通常这些服务器起到一个硬件负载平衡器的特殊作用。Web服务器把网络流量在内部网络的不同主机间分发,而不是使用Windows操作系统经典的NLB功能。
尽管可以使用负载平衡硬件设备来分配网络内部Web服务器的流量,但Forefront TMG 的web farm体系结构在负载均衡方面有很多优点:
一些硬件负载均衡器使用源IP地址来平衡网络需求,但这种方法只适合于负载均衡服务器位于网络地址转换(NAT,Network Address Translation)设备之后的情况。标准的Web服务器发布环境中,Forefront TMG并不转发原始IP地址。外部客户端的IP地址总被TMG服务器的IP地址掩盖。如果要转发外部客户端的原始IP,负责发布的服务器必须将它的默认网关设置为Forefront TMG,而这样的设置并不适用于某些环境。
另一种方法是利用Windows集成的NLB机制进行流量分配。这种技术允许基于端口规则分发网络流量。NLB群集中的所有节点使用一个Forefront TMG用于转发流量的虚拟IP地址,而NLB算法在NLB群集成员间平衡负载。
NLB基础
NLB是一种并不只限于Windows使用的集群技术。它属于Windows Server 200x操作系统家族的一部分,可以将网络流量分发到多达32个网络主机。NLB使用一种分布式算法,将传入流量分发到Windows NLB群集中的所有节点。因此,它可提供故障转移和负载平衡功能。
每个Windows Server 2008版本都可启用网络负载均衡功能。下图为仅有一个节点的Windows Server 2008 R2网络负载均衡管理器。
图 1
NLB与Forefront TMG
使用Forefront TMG网络服务器的负载均衡功能时应该注意,TMG负载不平衡时,Forefront TMG服务器可能会成为单点故障(Single Point of Failure,SPoF)。Forefront TMG企业版使用NLB技术来平衡TMG服务器间的负载,推荐使用的首选模式是集成模式。当然,也可以使用Forefront TMG标准版,但该版本未得到微软官方支持,使用中会有一些限制。
负载平衡机制
轮询(Round-robin)
来自不同IP地址的Web服务器请求将被分发给Web farm各成员。轮询机制确保用户对Web应用服务的请求均匀地分发到在线的Web farm各成员。发生故障时,可以探测到未响应的服务器,负载将在可用的服务器之间分配。
Session affinity
Session affinity通常用来发布Exchange Server 200x或SharePoint服务/服务器站点的OWA(Outlook Web Access)。如果要在Exchange Server 2007或更高版本中发布RPC over HTTP(S)服务或Outlook Anywhere,则不应使用Session affinity。RPC over HTTP(S)为Outlook客户通过互联网完全访问Exchange服务器提供服务,RPC流量通过HTTPS通信隧道传输。
IP affinity
利用IP affinity,Web服务器流量基于IP分配到Web farm的所有成员。如果一台服务器没有响应,流量将被发送到另一个Web farm的成员。
如果远程客户端位于NAT服务器之后,则不应使用IP affinity,这是因为web server farm只能得到TMG服务器的IP地址。在这种情况下,如果有可能,应该使用session affinity。
IP affinity适用于Exchange环境中实现RPC over HTTP(现也称为Outlook Anywhere)的情况,这种情况下不能使用session affinity。同样,在使用Exchange Active Sync进行发布时,由于客户端不能完全理解HTTP 1.1协议,因此也不能使用IP affinity。
如果要创建网络服务器负载均衡发布规则,首先启动TMG管理控制台,选择“防火墙策略”,然后创建一个网站发布规则。
图2: 启动网络发布向导
为新策略规则命名并对网络流量放行。
点击“publish a server farm of load balanced Web servers”。
图3: 发布一个服务器farm
因为未使用HTTPS发布内部Web服务器,因此需要指定相应的选项。
图4: 仅使用HTTP
如果只对特定路径发布Web服务器,需要输入内部网站名称并指定路径。
接下来,创建一个新farm,输入该farm的名称,将内部Web服务器添加到Web server farm,并指定Forefront TMG平衡传入网络请求的方式。如下图所示:
图5: 指定farm成员
Forefront TMG创建一个连接校验,用以监测farm成员。如果它不能连接某一台服务器,则创建一个报警信息。用户可自定义报警操作,后面文章中还将介绍相关内容。
图6: 连接校验
这时,将出现一个弹出窗口,询问是否要激活系统策略规则,以允许来自Forefront TMG的HTTP请求发送到网络服务器。
图7:系统策略规则
下一步,创建指定的监听器,用来监听传入流量。
Forefront TMG向用户发出警告,提示通过HTTP发送身份认证请求时当前配置可能会不安全。
图8:允许系统策略规则
为使客户端通过身份验证,在监听器属性窗口的“高级身份验证选项”必须选择许可。如下图所示:
图9:许可通过HTTP传输的客户端身份验证
Web服务器发布规则创建之后,选择规则属性,单击“Web Farm”标签来验证配置的正确性。
图10: Web Farm属性
监测Web Server Farm的状态
如果想知道哪些网络web server farm成员可用或不可用,当创建web server farm时,Forefront TMG会自动创建连接验证。连接验证用来检测farm成员的状态,并以类似于电子邮件的通知信息向TMG服务器的报警配置报告,报告内容写入事件日志。
Web server farm内的服务器有五种不同的状态:
•Active-这是farm内一台web服务器的正常状态。这表明,该服务器可以访问,并能接受请求。
•Out-of-service-这种状态表明,web服务器在指定的时间内未对连接验证做出响应。没有请求发送到farm成员。
•Draining-这种状态表明,web服务器处在即将耗尽的过程中。现有连接将被结束,而新请求也将不再送往该服务器。在将web server farm内的一台服务器放置在维护模式时,该功能非常有用。
•Removed-该状态表明web服务器已经从Farm中移除,不能接受请求。
•Unable to verify-这表明服务器的状态无法得到验证。
网络服务器维护
将一台网络服务器手工放置到维护模式时,转至“服务器” 选项卡,选择服务器,点击“Drain”按钮,以便通知Forefront TMG该节点对负载平衡请求不可用。对于session affinity,服务器将继续处理当前会话,但不再接受新连接。如果使用IP affinity,则服务器停止接受请求,但该服务器的现有连接仍在处理。
图11: Farm内的服务器
报警操作
Web server Farm内的服务器不可用情况下,要配置报警操作,首先转至监测节点,然后在任务窗格中选择报警属性,指定服务器不可用时要执行的操作。
图12:监控与报警
结语
本文概要介绍了不使用传统的硬件负载均衡器或基于Windows 2008 R2的NLB解决方案,仅用Forefront TMG的Web服务器负载均衡技术将网络流量分发到几台内部网络服务器的实现方法。Forefront TMG的网络服务器负载均衡功能适用于成员数量有限、具备基本性能的网络服务器群。但相比之下,传统的硬件负载均衡器,可能会有一些更高级的功能。