NLB.docx
《NLB.docx》由会员分享,可在线阅读,更多相关《NLB.docx(9页珍藏版)》请在冰点文库上搜索。
NLB
网络负载平衡(NetworkLoadBalancing)的工作原理
NLB的工作原理
NLB算法的特点:
∙在NLB群集中,每台服务器都会有一个属于自己的静态IP地址,同时NLB群集中的所有服务器还有一个共同的IP地址—NLB群集地址;
∙当客户向NLB群集(NLB的虚拟IP地址)发起请求时,其实客户的请求数据包是发送到所有的NLB节点(即:
NLB算法需要NLB群集中的所有主机都能看到发往群集的每一个数据包。
),然后运行在NLB节点上的NLB服务根据同样的NLB算法来确定是否应该由自己进行处理,如果不是则丢弃客户的请求数据包,如果是则进行处理。
∙网络负载平衡使得单个子网上的所有群集主机可以同时检测群集IP地址的传入网络通信。
在每个群集主机上,网络负载平衡驱动程序充当群集适配器驱动程序和TCP/IP堆栈间的过滤器,以便在主机间分配通信。
要确保上面算法的特点,单播(Unicast),多播(Multicast)实现NLB就会有以下的特点:
NLB中的单播(Unicast)
在单播模式下,NLB重新对每个NLB节点中启用NLB的网络适配器分配MAC地址(此MAC地址称为群集MAC地址),并且所有的NLB节点均使用相同的MAC地址(均使用群集MAC地址),同时NLB修改所有发送的数据包中的源MAC地址,确保使交换机不能将此群集MAC地址绑定在某个端口上。
工作在单播模式下的NLB可以在所有网络环境下正常运行,但是由于它的工作特性,具有以下两个限制:
∙由于NLB所使用的群集MAC地址没有绑定在某个具体的交换机端口上,所以所有的NLB通讯均通过在交换机的所有端口上广播进行,而不管此端口是否连接了NLB节点,这造成了额外的网络流量负担;
∙由于所有的NLB节点具有相同的MAC地址,NLB节点之间不能通过自己原有的专用IP地址进行通讯。
∙
单播模式的优点也很明显:
它可以无缝地与大多数路由器和交换机协同工作。
如下图所示:
单播的其他注意项:
∙在Windowsserver2003SP1中,微软修改了NLB单播模式的驱动,从而支持阵列成员通过自己原有的专用IP地址进行通讯,详细信息请参见KB898867,UnicastNLBnodescannotcommunicateoveranNLB-enablednetworkadaptorinWindowsServer2003。
∙若我们在NLB创建时选择单播的模式,在“群集IP配置”中的“网络地址”是以“02-BF”开头,后面紧跟IP地址的十六进制表示,该网络地址与实际主机的MAC地址相同,后续加入的主机也将修改为此MAC地址。
参考:
单播模式下的单个网络适配器
单播模式下的多个网络适配器
NLB中的多播(Multicast)
在多播模式下,NLB不会修改NLB节点启用NLB的网络适配器的MAC地址,而是为它再分配一个二层多播MAC地址专用于NLB的通讯(此MAC地址称为群集MAC地址),这样NLB节点之间可以通过自己原有的专用IP地址进行通讯。
但是在多播模式中,NLB节点发送的针对群集IP地址MAC地址ARP(AddressResolutionProtocol,地址解析协议)请求的ARP回复会将群集IP地址映射到多播MAC地址,而许多路由器或者交换机(包括CISCO的产品)会拒绝这一行为。
当出现这种情况时,你必须在路由器和交换机上手动添加静态映射,将群集IP地址映射到群集的多播MAC地址。
这种模式的优点是可以通过在交换机的“内容可寻址存储器”(CAM)表中创建静态项,从而使得入站流量仅到达群集中的主机。
还有一个缺点就是很多路由器不会自动将单播IP地址(群集的虚拟IP地址)与多播MAC地址关联起来。
如果进行静态配置的话,一些路由器可以存在这种关联。
若我们在NLB创建时选择多播的模式,在“群集IP配置”中的“网络地址”是以“03-BF”开头,后面紧跟IP地址的十六进制表示。
如下图所示:
IGMPMulticast(IGMP多播)
NLB算法需要NLB群集中的所有主机都能看到发往群集的每一个数据包。
NLB不允许交换机将群集的MAC地址关联到交换机的某个特定端口,从而实现了这个目的。
但是,这种做法也会带来不想要的副作用,就是发往NLB群集的所有数据包会在交换机上的所有端口上造成数据“洪水”。
这不仅非常麻烦,而且必将会造成网络资源的浪费。
为了解决这个问题,一个被称作IGMP支持的新特性被引入到了WindowsServer2003之中。
该特性有助于将数据“洪水”限制到交换机上与NLB计算机相连接的端口上。
通过这种方式,非NLB的计算机不会看到发往NLB群集的数据,而与此同时,所有的NLB计算机都可以看到发往群集的数据,因此满足了NBL算法的要求。
但是,应该指出的是:
IGMP支持只有在NLB被配置多播(multicast)模式时才能启用。
在选择多播模式时,后面还有个复选项“IGMPMulticast(IGMP多播)”,若复选此项,就像多播操作模式一样,NLB保留原厂MAC地址不变,但是向网络适配器中增加了一个IGMP多播地址。
此外,NLB主机会发出这个组的IGMP加入消息。
如果交换机探测到这些消息,它可以使用所需的多播地址来填充自己的CAM表,这样入站流量就不会扩散到VLAN上的所有端口。
这是这种群集模式的主要优点。
缺点是有一些交换机不支持IGMP探测。
除此之外,路由器仍然支持单播IP地址到多播MAC地址的转换。
在IGMP多播模式下,将采用“01–00-5E”开头的MAC地址。
在多播的模式下,实体主机之间可以互相通信。
如下图所示:
NLB对路由器的要求
当群集已配置为在多播模式下工作时,如果网络负载平衡客户端正在通过路由器访问一个群集,请确保路由器满足以下要求:
∙接受地址解析协议(ARP)应答,此应答在ARP结构的有效负载部分有一个媒体访问控制(MAC)地址,但正如以太网报头所确定的,它看上去像来自具有另一个MAC地址的站点。
∙接受单播IP地址的ARP应答,此应答在其ARP结构的有效负载部分有一个多播MAC地址。
单播模式对路由器没有要求。
参考:
多播模式下的单个网络适配器
多播模式下的多个网络适配器
附:
单播(Unicast),多播(Multicast),广播(Broadcast)的区别:
单播:
主机之间“一对一”的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制。
如果10个客户机需要相同的数据,则服务器需要逐一传送,重复10次相同的工作。
但由于其能够针对每个客户的及时响应,所以现在的网页浏览全部都是采用IP单播协议。
网络中的路由器和交换机根据其目标地址选择传输路径,将IP单播数据传送到其指定的目的地。
单播的优点:
1.服务器及时响应客户机的请求
2.服务器针对每个客户不通的请求发送不通的数据,容易实现个性化服务。
单播的缺点:
1.服务器针对每个客户机发送数据流,服务器流量=客户机数量×客户机流量;在客户数量大、每个客户机流量大的流媒体应用中服务器不堪重负。
2.现有的网络带宽是金字塔结构,城际省际主干带宽仅仅相当于其所有用户带宽之和的5%。
如果全部使用单播协议,将造成网络主干不堪重负。
现在的P2P应用就已经使主干经常阻塞,只要有5%的客户在全速使用网络,其他人就不要玩了。
而将主干扩展20倍几乎是不可能。
多播(组播):
主机之间“一对一组”的通讯模式,也就是加入了同一个组的主机可以接受到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。
主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。
这样既能一次将数据传输给多个有需要(加入组)的主机,又能保证不影响其他不需要(未加入组)的主机的其他通讯。
组播的优点:
1.需要相同数据流的客户端加入相同的组共享一条数据流,节省了服务器的负载。
具备广播所具备的优点。
2.由于组播协议是根据接受者的需要对数据流进行复制转发,所以服务端的服务总带宽不受客户接入端带宽的限制。
IP协议允许有2亿6千多万个(268435456)组播,所以其提供的服务可以非常丰富。
3.此协议和单播协议一样允许在Internet宽带网上传输。
组播的缺点:
1.与单播协议相比没有纠错机制,发生丢包错包后难以弥补,但可以通过一定的容错机制和QOS加以弥补。
2.现行网络虽然都支持组播的传输,但在客户认证、QOS等方面还需要完善,这些缺点在理论上都有成熟的解决方案,只是需要逐步推广应用到现存网络当中。
广播:
主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。
有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号,但只将一个频道的信号还原成画面。
在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机。
广播的优点:
1.网络设备简单,维护简单,布网成本低廉
2.由于服务器不用向每个客户机单独发送数据,所以服务器流量负载极低。
广播的缺点:
1.无法针对每个客户的要求和时间及时提供个性化服务。
2.网络允许服务器提供数据的带宽有限,客户端的最大带宽=服务总带宽。
例如有线电视的客户端的线路支持100个频道(如果采用数字压缩技术,理论上可以提供500个频道),即使服务商有更大的财力配置更多的发送设备、改成光纤主干,也无法超过此极限。
也就是说无法向众多客户提供更多样化、更加个性化的服务。
3.广播禁止在Internet宽带网上传输。
参考资料:
LoadBalancingandASP.NET
WebFarmingwiththeNetworkLoadBalancingServiceinWindowsServer2003
http:
//www.west-
网络负载平衡算法Works内部怎样
WEBfarm-LoadBalancinginA
http:
//www.c-
Howtotestwebloadbalance
将迁移到LoadBalance和NAS上的步骤
微软知识库中的关于负载均衡的HowTo文章汇总
TechNet关于网络负载平衡群集 的内容
中文
英文
下面文章中间谈到了负载均衡的工作原理
NLB配置中单播与多播区别
NLB群集
UsingNLBwithISAServerPart2:
Layer2FunwithUnicastandMulticastModes
http:
//www.isaserver.org/articles/basicnlbpart2.html
IP多播概述
TCP/IP学习笔记之九---广播和多播
网络负载平衡关键特性
NetworkLoadBalancing
http:
//www.msxfaq.de/verschiedenes/nlb.htm
NetworkLoadBalancingTechnicalOverview
网络技术基础知识一之ARP协议概说