当前位置 主页 > 服务器问题 > win服务器问题汇总 >

    Win2008 R2/2012 网络负载平衡NLB相关内容(2)

    栏目:win服务器问题汇总 时间:2018-10-29 09:53

    如果希望彻底解决,可以将NLB群集中的所有服务器连接到一个集线器,然后再将集线器连接到交换机的一个端口。同时禁用前面的MaskSourceMAC功能,这样这个端口只会注册群集的MAC地址。这样的话,当路由器将目的地为群集MAC的数据包发到交换机后,交换机只会通过这个端口转发到集线器,不会到其他端口,HUB再发给所有服务器。

    至于,采用多播后两节点之间不能通讯的问题,在Windows Server 2008 以后是可以的。但考虑性能问题或者是其他业务需要同时访问这两个节点时,还是建议另外使用一个网卡。

    多播:如果使用多播模式,则所有节点在一个多播组中,它们在拥有一个共同的多播MAC地址之外每一个网卡依然会保留原来的MAC地址。因此节点成员之间通讯没有问题。但群集之外的其他客户端想同时访问两台服务器还是不可以的,只能访问其中一个如DNS解析,这是NLB的机制。

    多播的缺点在于:

    有的路由器不支持:路由器接收到要转发给群集IP地址的数据包时,会通过ARP寻求MAC地址,有的路由器只接受单播地址,而不接受多播MAC地址,因此会有问题。解决方法可以考虑在路由器内新建静态ARP映射表,如果不行,就只能使用单播模式。只要能解决在路由器内新建ARP静态映射,兼容性还是很好的。

    。。3.  管理器使用:基本使用在此不多说,但在笔者的实际应用中发现以下问题:

    在工作组环境下,使用网络负载平衡管理器查看连接状态时,一切正常,如下图所示:

    image

    但是在域环境下,也就是如果两个节点是成员服务器的话,则会发现一个节点通过管理器查看是正常的,但另一个节点查看时,会出现有的节点不可访问的现象,如下图所示:

    image

    解决方法:通过使用主机列表连接到现有网络负载平衡群集,具体如下:

    步骤1: 在记事本中键入主机列表:

    例如,现在节点02上无法正确显示所有主机,则我们就到节点02上创建一个文本文件host.txt,内容如下:

    image

    步骤2:通过管理器加载主机列表,如下图所示:

    image

    然后,等待几分钟之后,即可显示完整的订购信息,如下图所示:

    image

    我的理解是,省去了DNS解析的过程,因为现在NLB已经正常起作用了,DNS作为一个客户端与节点1可以正常通讯,则必须与节点2无法通讯,如下图所示:

    image

    如果 NLB 管理器日志显示 Access denied, error connecting to "host",则必须通过使用作为所有主机上管理员组成员的登录名重新连接群集。可以通过以下方法来完成该操作:通过“运行身份”使用不同登录名进行登录,或通过单击 NLB 管理器“选项”菜单中的“凭据”提供 NLB 管理器可使用的备用登录名。另外需要知道,NLB的日志就是管理器下方显示的内容,就是记录到文件中也是这些内容。

    综上所述,建议NLB可以部署在工作组环境,也可以部署在域环境,但相对来说还是工作组环境要简单些,当然还要考虑到实际环境中对域及DNS的要求;如果只有一块网卡,建议使用多播;如果有两块网卡,最好是单播。以上实验如果是在Hyper-v环境下,需要启用网卡的MAC地址欺骗。不建议使用WorkStation这样的单机虚拟软件实现。