返回首页
当前位置: 网站首页>>网络安全>>防火墙>>

实现ISA防火墙网络负载均衡的故障转移

时间:2006-11-02 来源:电脑报 作者: 点击:
在部署了网络负载均衡(NLB)的网络中,当某个客户针对NLB虚拟地址发起连接请求时,NLB通过某种NLB算法来确定(通常是根据发起请求的客户端源地址来决定)为客户服务的NLB节点。在NLB节点没有变动之前,对于某个客户,将总是由某个对应的NLB节点为它提供服务。ISA防火
  

在部署了网络负载均衡(NLB)的网络中,当某个客户针对NLB虚拟地址发起连接请求时,NLB通过某种NLB算法来确定(通常是根据发起请求的客户端源地址来决定)为客户服务的NLB节点。在NLB节点没有变动之前,对于某个客户,将总是由某个对应的NLB节点为它提供服务。ISA防火墙企业版中的集成NLB依赖于Windows服务器系统的NLB服务,对于客户发起的请求,也是采用相同的方式进行处理。

例如,对于一个具有三个NLB节点(ISA1、ISA2、ISA3)的ISA防火墙NLB阵列,当一个客户(10.1.1.1)发起连接请求时,NLB通过NLB算法确定由ISA1为此客户服务;而当另外一个客户(10.1.1.2)发起连接时,NLB通过NLB算法确定由ISA2为此客户服务。在NLB节点没有变动时,客户10.1.1.1的连接请求将会始终通过NLB节点ISA1来进行处理;而客户10.1.1.2的连接请求则会始终通过NLB节点ISA2来进行处理。

当某个NLB节点出现故障时,NLB将在所有节点上重新进行汇聚,并重新根据NLB算法来确定为客户提供服务的NLB节点。例如,此时ISA1节点出现故障,无法再提供NLB服务;则NLB重新进行汇聚,如果客户10.1.1.1再发起连接请求,则就是ISA2或者ISA3来为它进行服务。

当NLB节点失效时,NLB可以让其他NLB节点来为客户提供服务。但是,如果NLB节点的NLB服务没有失效但是所提供的其他服务失效时,怎么办呢?

如下图所示,两台ISA防火墙属于相同的NLB阵列,分别通过不同的外部链路连接到Internet,并且对内部网络提供NLB服务。两台ISA防火墙允许内部网络中的用户通过自己来访问外部网络,正在为不同的客户提供服务;如果此时,ISA1上的外部链路突然断开,会出现什么情况呢?

此时,由于ISA1上的NLB服务并没有出现故障,所以NLB会认为ISA1仍然是有效的NLB节点,并且同样会分配客户给它。但是,由于外部链路断开,ISA1所服务的客户却不能再连接到Internet了。这当然就不能有效的实现网络负载均衡中的容错特性。

那么,出现这种情况时,该怎么办呢?

答案很简单,当出现这种情况时,停止ISA1上的NLB服务,这样,NLB会认为ISA1上的NLB服务已经失效,将重新汇聚NLB,并且重新分配客户。从而原来属于ISA1的客户可以通过仍然运行正常的ISA2来访问外部网络。

要实现ISA防火墙NLB的故障转移比较简单,微软已经考虑到了。你可以通过配置ISA防火墙的连接性验证工具来实现当外部链路出现故障时进行相关的操作,但是要停止ISA防火墙上的NLB服务不是一件容易的事情。由于ISA防火墙上的NLB服务是和ISA防火墙服务集成的,所以你不能通过Windows的NLB stop命令来停止ISA防火墙上的NLB服务;微软也没有相关的关于如何停止ISA防火墙上的NLB服务的说明。在这种情况下,只能通过停止ISA防火墙服务来停止ISA防火墙上的NLB服务。

但是停止ISA防火墙服务后,无法依靠ISA防火墙本身启动ISA防火墙服务,这样又给故障恢复时的处理带来难题。当外部链路恢复的时候,还是需要你手动启动ISA防火墙服务才能将这台ISA防火墙正常加入NLB阵列中运行,这造成了额外的管理负担。不过你可以通过第三方的链路监测软件实现NLB的故障转移和自动恢复,例如KS-Soft Advanced Host Monitor或者GFI Network Server Monitor。你可以配置它们当外部链路出现问题时停止ISA防火墙服务,而当外部链路恢复时启动ISA防火墙。

在此我给大家演示一下如何实现ISA防火墙NLB的故障转移,网络拓朴结构如下图所示:

内部网络地址范围为10.1.1.0/24,部署了两台ISA企业版防火墙FlorenceFirenze,操作系统均为Windows server 2003 SP1,IP地址分别为10.1.1.110.1.1.2。对内部网络配置了NLB,NLB虚拟地址为10.1.1.254

两台ISA防火墙上的NLB服务均工作正常。

Berlin是内部网络中的客户,IP地址为10.1.1.8,默认网关配置为NLB的虚拟地址10.1.1.254

我已经创建了允许内部网络的所有用户访问外部网络的访问规则,已经确认所有网络连接工作正常。在进行整个部署之前,你必须预先考虑好如何配置有效的连接性验证方式,以及什么时候触发警告。如果要验证外部链路是否连接正常,你可以Ping离你最近的外部网络中的某台持续在线的服务器或路由器的IP地址。在此我通过配置连接性验证工具Ping我的DNS服务器61.139.2.69实现,如果连续两次不能Ping通时,则停止ISA防火墙服务。

本文中的操作步骤如下:

  • 配置连接性验证工具;

  • 配置警告操作;

  • 测试;

 

 

 

配置连接性验证工具

打开ISA管理控制台,展开阵列,点击监视节点,点击右边面板的连接性标签,最后点击创建新的连接性验证程序链接;

在弹出的欢迎使用新建连接性验证程序向导页,输入连接性验证程序的名称,在此我命名为Ping 61.139.2.69,点击下一步

 

连接性验证细节页,在监视到此服务器或 URL 的连接栏,输入IP地址为61.139.2.69,然后在验证方法栏,选择发送一个 Ping 请求,点击下一步

注:关于连接性验证工具的使用及详细描述,请参见理解ISA 2004的连通性验证工具一文;

正在完成连接性验证程序向导页,点击完成

此时,我们的连接性验证工具就创建好了,如下图所示,验证结果均正常。

[1] [2] 下一页  

------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容