Web Farm网络负载平衡实验难点探究
摘要:在Win¿dows Server 中搭建Web Farm网络负载平衡服务器时,遇到了两个难点:第一,使用单播模式创建群集时,与群集IP地址相同网段的其他主机无法访问群集IP地址;第二,不管是单播还是多播模式,与群集IP地址在不同网段的主机都无法访问群集IP地址。在寻求解决方案的过程中,发现很多教材都没有解决这个问题,都只是简单的介绍如何搭建网络负载平衡的环境,并提供操作成功的界面。但是,当按照教材所提供的操作方法时,客户端主机却无法访问群集IP地址。该文讨论的内容将主要是如何在技术上解决群集IP地址无法访问的问题,以保证Web Farm网络负载实验的成功实施。
关键词:群集;负载平衡;群集IP地址;静态路由
1 基本概念
1.1 什么是群集
群集是指一组服务器,这些服务器通过彼此的协同作业,对外提供一个相同的服务或应用程序,以提升服务或应用程序的可用性、可靠性和可扩展性。使用群集的目的是,当群集内的某个服务器出了故障无法访问时,服务请求会转给群集内的其它节点,从而可以实现不中断的服务。
1.2 什么是负载平衡
Windows Server 中的网络负载平衡功能可以增强Internet服务器应用程序的可用性和可伸缩性。通过将运行Windows Server 2008各种服务的两台或多台计算机的资源组合到单个虚拟群集中,NLB便可以提供Web服务器和其他执行关键任务服务器所需的可靠性和性能。
1.3 负载平衡工作原理
如图1所示,每一个群集都是由若干群集节点组成的。如图✈1中,群集节点NLB1与群集节点NLB2都有一个自身的静态IP地址,在创建NLB群集后会创建一台虚拟的群集主机,并有一个虚拟的群集IP地址与之对应,群ย集外的主机通过这个群集IP地址访问该群集中的服务。虽然每个群集外的主机在访问群集中的服务时使用的是相同的群集IP地址,但每个客户端主机访问的实际节点却可能是NLB1或者NLB2。简单的说,群集中的每台主机分担了群集提供的服务。
2 搭建网络负载平衡实验环境
本文以Windows Server 2008为例,以多网卡单播模式创建一个Web Farm网络负载平衡实验的群集。实验的完整拓扑图如图2所示。
实验环境说明:
1)主机DC1和DC2中都安装网络负载平衡服务,分别包含两块网卡,其中网卡172.16.10.101和172.16.10.102用作群集接口,192.168.1.11和192.168.1.12作为群集主机间的通信接口。群集IP地址为192.168.1.88。
2)主机DC1和DC2中都安装IIS服务,IIS站点都绑定到群集IP地址192.168.1.88,站点首页分别显示“Web From DC1!”和“Web From DC2!”,以区分最终访问的页面是来自于哪一个IIS服务器。
3)第三台服务器承担LAN路由功能,实现192.168.1.0网段和192.168.2.0网段的互通。
本文以解决实现网络负载平衡实验中的难点为主,相关服务的安装与配置不作介绍。创建网络负载平衡群集的大致步骤如下:
1)在主机DC1的“网络负载平衡管理器”中,以172.16.10.101接口作为群集节点创建群集,设置群集IP地址为192.168.1.88,并设置群集操作方式为“单模”;
2)在主机DC1的“网络负载平衡管理器”中,将主机DC2添加到群集中,选择172.16.10.102接口作为群集节点的接口;
3)经过上述操作,在两台主机的“网络负载平衡管理器”中可以查看创建好的群集。
3 群集IP地址连通性测试
3.1 同网段测试
1)测试描述:从与群集IP地址同网段的客户端主机,使用ping命令对群集IP地址进行连通性测试。测试结果表ด明,192.168.1.0网段中,除群集节点中的同网段IP可以访问群集IP地址外,其他主机都无法访问群集IP地址。
2)问题解决方法:由于使用了“单播”模式,每个群集节点的群集接口就有了一个相同的MAC地址,即群集MAC地址。如图3所示,打开群集接口的属性,查看“配置”属性,在“高级”选项卡中找到“本地管理的地址”,便可以看到群集MAC地址。只要将“本地管理的地址”属性值设置为“不存在”,就可以解决“从群集IP地址同网段的客户端主机无法访问群集IP地址”的问题。
3.2 跨网段测试
1)测试描述:从与群集IP地址不同网段的客户机,使用ping命令对群集IP地址进行连通性测试。测试结果表明,虽然192.168.1.0网段与192.168.2.0网段是相通的,但192.168.2.0网段的主机无法访问群集IP地址192.168.1.88。
2)问题解决方法:其实,只要知道192.168.2.0网段的主机可以ping通192.168.1.11接口的原因,这个问题也就解决了。在主机DC1中命令提示符中输入route print命令,查看本地机器的路由表。
查看图4路由表的第一条路由记录,可以发现主机DC1可以从192.168.1.11接口、经192.168.1.1网关访问任意网段。这条路由记录就是192.168.2.20可以ping通192.168.1.11的原因。因此,为了解决我们遇到的问题,只需要在本地路由表中添加一条静态路由,允许来自于任意网段的数据经网关192.168.1.1到达群集接口192.168.1.88就即可。 由于虚拟的群集接口是基于群集主机中参与群集的接口虚拟出来的,因此在访问虚拟群集接口192.168.1.88时,需要使用到参与群集的接口172.16.10.101。在图4中所示的接口列表中,根据每个网卡对应的MAC地址确定其接口编号。本例中,主机DC1中参与群集的接口编号为13。使用route add命令在本地路由中添加这条静态路由,命令代码如下:
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 256 if 13
需要提醒是的是,在每一个群集节点中,都需要添加这样一条从群集接口到任意网段的静态路由,否则这个群集主机将不可访问,这个群集节点也就不能够对客户端提供服务。
4 实验WEB负载平衡
在搭建好网络负载平衡服务并确认同网段和不同网段都可以访问群集IP地址后,就可以通过绑定到WEB站点的群集IP地址访问使用WEB服务。
在本实验中,不同的客户端主机访问同一个WEB站点时显示的页面内容来自于两台不同的IIS服务器,因为对的请群集IP地址的访问请被平衡分流到不同的IIS服务器。如果有的客户端能根据群集IP地址访问WEB站点,有的客户端不能访问WEB站点,则很有可能是某个群集节点中没有添加静态路由。
5 结束语
本文通过对网络负载平衡实验过程中出现的问题产生的原因进行分析,从技术上解决了群集IP地址无法访问的问题,从而实现Web Farm网络负载平衡。解决了这个问题,就可以实现其他各种服务和应用程序的网络负载平衡功能。
参考文献:
[1] 邓文达, 易月娥. Windows Server 2012网络管理项目教程[M]. 北京: 人民邮电出版社, 2013.
[2] 戴有炜. Windows Server 2012网络管理与架构[M]. 北京: 清华大学出版社, 2014.
[3] 郝贵发. NAT技术在负载均衡中的应用[J]. 网管员世界, 201✘1.
[4] 买京京. Web服务器集群负载均衡技术研究[D]. 太原: 中北大学, 2008.
[5] 微软网站. 网络负载平衡[EB/OL].https://technet.microsoft.com/zh-cn/library/cc770558.aspx.