博文目录
一、网络负载平衡概述
二、NLB的群集操作模式
三、使用NLB群集的注意事项
四、部署NLB

一、网络负载平衡概述

网络负载平衡(Network Load Balancing,NLB)技术就是将访问压力均衡分布到多台服务器上,以此提高整个服务器集群的响应能力。

1、NLB

Windows的网络负载平衡群集允许用户将传入的请求传播到最多达32台的服务器上,即可以使用最多32台服务器共同分担对外的网络请求服务,它们对外只需要提供一个IP地址(或域名)。即使是在负载很重的情况下,也能做出快速响应,如果其中一台或几台服务器不可用,服务不会中断。

网络负载平衡自动检测到服务器不可用时,能够迅速地在剩余的服务器中重新指派与客户机进行通信。此保护措施能够帮助用户为关键的业务程序提供不中断的服务,可以根据网络访问量的增多来增加网络负载平衡服务器的数量。网络负载平衡可在普通的计算机上实现。在Windows server 2016中,网络负载平衡的应用程序包括Internet信息服务(IIS)、代理服务器、虚拟专用网、终端服务器、Windows Media Services(Windows 视频点播、视频广播)等服务。同时,网络负载平衡有助于改善服务器性能和可伸缩性,以满足不断增长的来自Internet客户端的需求。

2、NLB的工作原理

在NLB群集中,每台服务器都会有一个属于自己的静态IP地址,同时NLB群集中的所有服务器还有一个共同的IP地址——NLB群集IP地址。

每个服务器都运行所需的服务器应用程序(如web、FTP或虚拟专用网等)的单个副本,当客户端向NLB群集(NLB的虚拟群集IP地址)发起请求时,NLB在群集的多个服务器中分发传入的客户端请求。可以根据需要配置每个服务器处理的负载权重,也可以向群集中动态地增加服务器以均衡群集的辅助。此外,NLB还可以将所有流量引导至某个服务器,该服务器称为“默认主机”。

对于负载平衡的应用程序,当服务器出现故障或脱机时,会自动在仍然运行的计算机之间重新分发负载,并断开与出现故障或脱机的服务器之间的活动连接。

3、NLB群保群集中的故障服务器不影响现有连接

NLB群集中的服务器会互相交换检测信息,以此保持群集成员身份的数据一致性和健康度。默认情况下,当服务器持续5秒钟未能发出检测信息时,NLB群集即认为该服务器出现了故障,并将剩下的> * 服务器聚合在一起执行以下操作。

  • 确定哪些服务器仍然是群集中的活动成员;

  • 选择优先级最高的服务器作为新的默认主机;

  • 确保所有新的客户端请求由仍然活动的服务器来处理;

4、网络负载平衡的可伸缩性

可伸缩性是度量计算机、服务或应用程序如何更好地改进以满足持续增长的性能需求的标准。对于NLB群集而言,可伸缩性是指当群集的全部负载超过其能力时逐步将一个或多个服务器添加到现有群集中的功能。NLB可执行以下操作。

  • 平衡NLB群集上对各个TCP/IP服务的负载请求;

  • 在一个群集中最多支持32台计算机;

  • 平衡群集中多个服务器的负载请求;

  • 在负载增加时,支持在不关闭群集的情况下向群集中添加服务器;

  • 在负载减少时,支持从群集中删除服务器;

  • 通过全部实现管道化提高性能并降低开销。管道允许向NLB群集发送请求,而无须等待响应上一个发送的请求;

5、网络负载平衡的高可用性

通过最大程度地减少停机时间,高可用性能够可靠地提供服务。NLB可自动执行以下操作。

  • 检测发生故障或脱机的群集服务器并对其进行恢复;

  • 在添加或删除服务器时平衡网络负载;

  • 在10秒之内恢复并重新分发负载;

二、NLB的群集操作模式

1、单播

NLB会对参与服务的计算机分配一个独立的MAC地址;通过MAC地址响应客户端的请求,MAC地址被称为群集MAC;单播模式更多兼容路由器和交换机网络设备使用;使用比较少,群集MAC地址不能捆绑到交换机的端口上;

工作在单播模式下的NLB可以在所有网络环境下正常运行,但是由于它的工作特性,具有以下两个限制:

  • 由于NLB所使用的群集MAC地址没有绑定在某个具体的交换机端口上,因此所有的NLB通信均通过在交换机的所有端口上广播进行,而不管此端口是否连接了NLB节点,这样造成了额外的网络流量负担。

  • 由于所有的NLB节点具有相同的MAC地址,因此NLB节点之间不能通过自己原有的专用IP地址进行通信。

2、多播

在多播模式下,NLB不会修改NLB节点启用NLB的网络适配器的MAC地址,而是为它再分配一个二层多播MAC地址专用于NLB的通信,这样NLB节点之间可以通过自己原有的专用IP地址进行通信。
在多播模式下,NLB节点发送的针对群集IP地址、MAC地址、ARP请求的ARP回复会将群集IP地址映射到多播MAC地址,而许多路由器或交换机会拒绝这一行为。使用比较广泛。

3、IGMP多播

NLB网络负载平衡会监听到发送NLB节点的数据包;NLB节点的数据都会汇聚到连接服务器的交换机上;交换机产生流量洪水,交换机故障NLB故障稳定性差;使用比较少。

三、使用NLB群集的注意事项

  • 正确保护网络负载平衡主机和经过负载平衡的应用程序。

  • 如果可能,在每个群集主机上至少使用两个网络适配器,但并非必要条件。

  • 正确设置网卡的单播或多播模式。

  • 在群集适配器上只使用TCP/IP协议。

  • 不要在启用了网络负载平衡的网卡上添加TCP/IP协议之外的其他协议。

  • 确保群集中的所有主机属于同一个子网,并且客户机能够访问该子网。群集主机的专用IP地址或群集IP地址都要属于同一个子网。

  • 使用网络负载平衡管理器配置NLB群集。

  • 不用启用网络负载平衡远程控制选项。网络负载平衡的远程控制可能存在安全隐患,包括数据被篡改、拒绝服务和信息泄露等。

  • 启用日志记录。

  • 独立使用NLB群集和故障转移群集。

四、部署NLB

1、案例环境如下:

server 2016部署网络负载平衡(NLB)
server 2016部署网络负载平衡(NLB)

2、环境分析:

NLB群集的每个节点上需要安装两个网卡,分别用于群集对外服务和群集内部通信。本案例为NLB群集准备的两台服务器上都安装了两块网卡(VMnet2和VMnet3)。VMnet2为群集内通信,VMnet3为对外服务。

除了要准备群集节点的地址以外,还需要规划群集的IP地址和域名,并且在DNS服务器上添加群集域名的主机记录,确保用户能正确访问群集。本案例群集域名为www.benet.com IP地址为192.168.100.254/24。

Windows server 2016的NLB群集既可以在工作组环境下搭建,又可以在域环境下搭建,本案例采用工作组环境。

3、开始部署:

DC3_node1配置如下:

DC3_node1添加两块网络,然后开机即可
server 2016部署网络负载平衡(NLB)

VMnet2配置群集内通信IP地址(为了便于区分VMnet2的名字我改为了private,VMnet3的名字我改为了public)
server 2016部署网络负载平衡(NLB)

server 2016部署网络负载平衡(NLB)

VMnet3配置对外服务IP地址及DNS
server 2016部署网络负载平衡(NLB)

打开服务器管理器界面单击“管理”按钮,然后单击“添加角色和功能”按钮
server 2016部署网络负载平衡(NLB)

保持默认下一步即可
server 2016部署网络负载平衡(NLB)

保持默认下一步即可
server 2016部署网络负载平衡(NLB)

保持默认下一步即可
server 2016部署网络负载平衡(NLB)

选择“Web服务器”复选框,然后单击“添加功能”,单击下一步
server 2016部署网络负载平衡(NLB)

默认下一步
server 2016部署网络负载平衡(NLB)

默认下一步
server 2016部署网络负载平衡(NLB)

默认下一步
server 2016部署网络负载平衡(NLB)

确认无误后,单击安装即可
server 2016部署网络负载平衡(NLB)

安装完成
server 2016部署网络负载平衡(NLB)

添加web根目录,D盘创建一个文件夹,进入文件夹创建一个文本文档(记事本)写入www.node1.com!!! 然后另存为以index.html保存即可。
server 2016部署网络负载平衡(NLB)
server 2016部署网络负载平衡(NLB)

web根目录创建完成后开始配置WEB服务
server 2016部署网络负载平衡(NLB)

将默认zha站点禁用,不要删除,停止就可以了
server 2016部署网络负载平衡(NLB)

添加站点
server 2016部署网络负载平衡(NLB)

我这里就跟站点起名叫WEB,物理路径就是浏览刚才创建web根目录的哪个位置即可,连接为特定用户,用本地管理员登录,然后测试即可
server 2016部署网络负载平衡(NLB)
server 2016部署网络负载平衡(NLB)

添加一个主机名
server 2016部署网络负载平衡(NLB)
这时web站点就已经部署完成了,开始部署NLB

D4_node2配置如下:

配置和第一台服务器配置是基本相同的,同样添加两块网卡,VMnet2的IP地址:172.16.1.2/24 VMnet3的IP地址:192.168.100.20/24 DNS:192.168.100.30
添加WEB服务器,创建web根目录,实际环境WEB根目录内容是一样的,我这里方面看到效果这台服务器根目录内容就写www.node2.com!!! 方面客户端访问看出效果。(我就不截图了自行配置,不明白可以根据上面一步步配置)配置WEB服务器和注册新站点和上面配置都是一样的,自行配置吧!

DC5_DNS配置如下:
server 2016部署网络负载平衡(NLB)
server 2016部署网络负载平衡(NLB)

前面基本无脑下一步我就不截图了,自行配置,我这就截重点了,添加DNS服务器
server 2016部署网络负载平衡(NLB)

默认下一步
server 2016部署网络负载平衡(NLB)

默认下一步
server 2016部署网络负载平衡(NLB)

安装DNS
server 2016部署网络负载平衡(NLB)

server 2016部署网络负载平衡(NLB)

开始配置DNS服务器
server 2016部署网络负载平衡(NLB)
server 2016部署网络负载平衡(NLB)
server 2016部署网络负载平衡(NLB)
server 2016部署网络负载平衡(NLB)
server 2016部署网络负载平衡(NLB)
server 2016部署网络负载平衡(NLB)
server 2016部署网络负载平衡(NLB)

新建主机
server 2016部署网络负载平衡(NLB)

IP地址就是群集地址
server 2016部署网络负载平衡(NLB)

客户端一会访问的话就用浏览器访问www.benet.com 就行了
server 2016部署网络负载平衡(NLB)
基本环境已经部署完成了,只剩下网络负载平衡了,客户端最后配置IP地址访问就行了。

开始配置NLB节点1(也就是DC3_node1):
默认下一步我就不一一截图了,不明白的看上面的截图把,我这里直接开始添加网络负载平衡。
server 2016部署网络负载平衡(NLB)

开始安装
server 2016部署网络负载平衡(NLB)

安装完成
server 2016部署网络负载平衡(NLB)

开始配置网络负载平衡
server 2016部署网络负载平衡(NLB)

新建群集
server 2016部署网络负载平衡(NLB)

输入节点1的计算机对外服务的IP地址,单击“连接”按钮,连接成功后下一步
server 2016部署网络负载平衡(NLB)

默认下一步
server 2016部署网络负载平衡(NLB)

添加群集IP地址
server 2016部署网络负载平衡(NLB)

添加Internet名称,操作模式我选择的多播
server 2016部署网络负载平衡(NLB)
server 2016部署网络负载平衡(NLB)

单击编辑,可以修改端口号,以及协议,我在这里就不修改了,有需求自行修改即可
server 2016部署网络负载平衡(NLB)
NLB节点1配置完成,开始配置NLB节点2

NLB节点2配置如下(D4_node2):
自行安装网络负载平衡服务,不明白可以看节点1是怎么安装的,我这就直接开始配置了

节点2就不需要新建群集,直接连接现存的,也就是刚才配置的节点1
server 2016部署网络负载平衡(NLB)

这里连接需要等待2~3分钟左右,耐心等待就行了
server 2016部署网络负载平衡(NLB)

连接sha上之后,添加主机到群集
server 2016部署网络负载平衡(NLB)

输入本机IP地址连接即可
server 2016部署网络负载平衡(NLB)

默认下一步
server 2016部署网络负载平衡(NLB)

单击完成即可
server 2016部署网络负载平衡(NLB)

自行查看以下两台服务器的优先级是不一样的,客户端一会访问自行访问优先级高的,优先级高的故障之后,自动切换到下一级的服务器上。
server 2016部署网络负载平衡(NLB)
server 2016部署网络负载平衡(NLB)
至此NLB也就配置完成了,NLB最多可以有32个节点,我这里就模拟两个节点看一下效果,配置都是一样的,下面开始配置客户端访问验证。

win 7配置如下:
server 2016部署网络负载平衡(NLB)
server 2016部署网络负载平衡(NLB)

正常访问的话是优先级高的那台服务器
server 2016部署网络负载平衡(NLB)

模拟优先级高的那台服务器故障,(服务器关机),然后再次访问会发现自动切换到了优先级为1的服务器上
server 2016部署网络负载平衡(NLB)