网络负载均衡技术(Network Load Balancing,NLB)采用完全分配算法来为集群中的服务器分配进入的访问流量,当集群中的某台服务器失效时,NLB会自动转发数据到其他可用的服务器上。这个过程完全是NLB自动进行的,对于客户而言,只是在初始化连接时稍为有点延迟。通过NLB,你可以把最多31台服务器配置成为一个集群,使你的网络具有高度的扩展性和稳定性,为客户提供不间断的服务。在Windows 2000高级服务器版和Windows 2003服务器企业版中,均集成了网络负载均衡技术。
在ISA Server 2004企业版中,利用ISA Server 2004全新的多网络核心,集成了网络负载均衡技术。阵列中的任何一个物理连接的网络都可以实现NLB,并且,通过良好的控制界面,你只需要简单的几个步骤,就可以实现网络负载均衡。
默认情况下,在安装ISA Server 2004企业版后,集成NLB并未启用(NLB由操作系统系统提供)。你需要在ISA Server 2004管理控制台中启用集成NLB。当阵列启用NLB后,你可以为阵列的任何一个物理连接的网络启用NLB。微软推荐你除了用于域内通信的网络外,为其他任何物理连接的网络启用NLB。
在启用NLB时,你需要为此网络在原有的IP地址外指定一个不冲突的虚拟IP地址,这个虚拟IP地址是给此集群中的所有服务器共用。当在集成NLB模式下,ISA Server会自动修改网络适配器的TCP/IP属性来添加对应的虚拟IP地址。此网络适配器原有的IP地址称为专用IP地址,启用了NLB的ISA Server服务器的每个网络适配器必须拥有一个专用IP地址用于集群内部之间的通信。虚拟IP地址必须和专用IP地址属于同个子网,并且具有相同的子网掩码。
NLB允许一个子网内的所有集群成员服务器同时检测到进入的的通往集群IP地址(虚拟IP地址)的网络流量,在每个集群主机上,NLB驱动扮演这网络适配器驱动和TCP/IP协议栈之间的过滤器角色,来在主机之间分配流量。ISA Server 2004接管了这一点,允许在更复杂的网络环境中配置NLB,例如在包含VPN、CARP和防火墙客户等等的网络中。
当你启用集成NLB模式时,ISA Server会对指定的网络进行网络负载均衡,并自动决定哪个网络适配器应该被NLB所用,每个网络只能使用一个网络适配器。ISA Server使用以下算法来选择NLB使用的网络适配器:
这样,你可以通过修改网络适配器的名字来控制使用哪个网络适配器,修改后需要重启Microsoft Firewall服务。
下图是我们的试验网络,在这个试验中,我们将对外部网络(Internet)配置NLB(虚拟IP地址为61.139.0.254),然后在虚拟IP地址上发布内部网络Client1上的Web站点,然后在外部网络的主机Sydeny上访问发布的Web站点,测试在一台集群的主机发生故障时网络的负载均衡功能。
网络连接已经确认正常工作,Florence和Istanbul已经安装了ISA Server服务,共享安装在Florence上的配置存储服务器,并且同属FLORENCE阵列,在FLORENCE阵列防火墙策略中,已经建立了一条允许所有网络访问所有网络的所有服务的访问规则(仅在试验环境中使用,商用网络中切忌不可)。此次试验不涉及DNS,各台服务器的DNS服务器设置为空,各服务器的TCP/IP设置如下:
Florence
Internal:
External:
Istanbul
Internal:
External:
Client1
Sydeny
我们按照以下步骤进行试验:
NLB是在阵列成功配置的基础上才能使用的,关于如何安装阵列,请参见ISA中文站技术文章“ISA Server 2004企业版Beta安装指南”,本文不涉及ISA Server 2004企业版的安装及阵列的配置。
作者:风间子