为了测试win2003负载平衡的效果,这里我使用VM搭建了一个简易的模拟环境:

两台server2003,配置基本相同:

双网卡:网卡1桥接本地活动网卡,网卡2接内部虚拟局域网(lan segment:server)。

主机名:server-1,server-2

server-1:网卡1:192.168.1.202    网卡2:10.10.10.1

server-2:网卡1:192.168.1.203    网卡2:10.10.10.2

负载平衡的对外地址:192.168.1.204

两台机器的网卡2是用来做心跳线的,保证通畅即可,无需太多设置。

server-1:  开始——管理工具——网络负载平衡管理器——在网络平衡负载群集上右键——新建群集如下:

win2003简单负载平衡_负载平衡

这里的IP地址就是我们设置的负载平衡对外地址,域名为对外公开域名。因为与实验无关,我这里没有做改动。

群集操作模式我选择多播。

解释:

 单播 在单播模式下,NLB重新对每个NLB节点中启用NLB的网络适配器分配MAC地址(此MAC地址称为群集MAC地址),并且所有的NLB节点均使用相同的MAC地址(均使用群集MAC地址),同时NLB修改所有发送的数据包中的源MAC地址,从而使交换机不能将此群集MAC地址绑定在某个端口上。 工作在单播模式下的NLB可以在所有网络环境下正常运行,但是由于它的工作特性,具有以下两个限制: 由于NLB所使用的群集MAC地址没有绑定在某个具体的交换机端口上,所以所有的NLB通讯均通过在交换机的所有端口上广播进行,而不管此端口是否连接了NLB节点,这造成了额外的网络流量负担; 由于所有的NLB节点具有相同的MAC地址,NLB节点之间不能通过自己原有的专用IP地址进行通讯。 
  多播 在多播模式下,NLB不会修改NLB节点启用NLB的网络适配器的MAC地址,而是为它再分配一个二层多播MAC地址专用于NLB的通讯(此MAC地址称为群集MAC地址),这样NLB节点之间可以通过自己原有的专用IP地址进行通讯。但是在多播模式中,NLB节点发送的针对群集IP地址MAC地址ARP请求的ARP回复会将群集IP地址映射到多播MAC地址,而许多路由器或者交换机(包括CISCO的产品)会拒绝这一行为。当出现这种情况时,你必须在路由器和交换机上手动添加静态映射,将群集IP地址映射到群集的多播MAC地址。 
    Windows Server 2003提供了一个新的特性,称为IGMP 多播,它可以通过使用IGMP协议支持来使交换机只将NLB通讯发送到连接NLB节点的端口,而不是所有交换机端口。但是此特性必须要求交换机支持IGMP侦听,并且要求群集工作在多播模式下。

http://ivruru.blog.51cto.com

点击“下一步”,进入群集IP地址页面,我这里只有这一个群集,继续“下一步”,定义端口页面,这里我默认为全部接口(1-65535),再“下一步”,进入"连接"页面,开始向群集里添加服务器。

输入“server-1”然后点击“连接”,会看到如下所示:

win2003简单负载平衡_负载平衡_02

选择192.168.1.202地址作为群集地址,完成。

此时打开server-2(反正我的是一直都在开着),以管理员身份登陆。回到server-1,在你刚才创建的群集上右键,添加主机到群集,再次来到连接页面,输入server-2,点击连接。然后转到server-2 ,开始——管理工具——网络负载平衡管理器——在网络平衡负载群集上右键——连接到现存的,输入server-1,点击连接。

等候几分钟,群集状态如下:

win2003简单负载平衡_2003_03

表明负载平衡已建立成功。若server—1未显示成功,关掉负载平衡管理器,按照server-2的连接方式重新连接一次即可!

 

这里验证方式可以在两台机器上建立IIS,测试是否实现了负载平衡。注意:IIS服务器地址应指向负载均衡地址。

如果要在虚拟机下测试的话,需要注意,两台机器的SID不能一样,否则 无法连接成功!

SID的去除方法详见本博客文章http://hero2012.blog.51cto.com/2153266/1167327