为了测试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: 开始——管理工具——网络负载平衡管理器——在网络平衡负载群集上右键——新建群集如下:
这里的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侦听,并且要求群集工作在多播模式下。
点击“下一步”,进入群集IP地址页面,我这里只有这一个群集,继续“下一步”,定义端口页面,这里我默认为全部接口(1-65535),再“下一步”,进入"连接"页面,开始向群集里添加服务器。
输入“server-1”然后点击“连接”,会看到如下所示:
选择192.168.1.202地址作为群集地址,完成。
此时打开server-2(反正我的是一直都在开着),以管理员身份登陆。回到server-1,在你刚才创建的群集上右键,添加主机到群集,再次来到连接页面,输入server-2,点击连接。然后转到server-2 ,开始——管理工具——网络负载平衡管理器——在网络平衡负载群集上右键——连接到现存的,输入server-1,点击连接。
等候几分钟,群集状态如下:
表明负载平衡已建立成功。若server—1未显示成功,关掉负载平衡管理器,按照server-2的连接方式重新连接一次即可!
这里验证方式可以在两台机器上建立IIS,测试是否实现了负载平衡。注意:IIS服务器地址应指向负载均衡地址。
如果要在虚拟机下测试的话,需要注意,两台机器的SID不能一样,否则 无法连接成功!
SID的去除方法详见本博客文章http://hero2012.blog.51cto.com/2153266/1167327