鸡啄米在配置Windows Server 2003网络负载平衡(NLB)系统时,遇到了若干小问题,现小总结下跟大家分享。

       一、为什么网络负载平衡系统中只有部分主机能够正常通信?

       首先,我在配置包含两台主机的NLB群集时,网络负载平衡的属性页中选择的模式是“多播”,并勾选了“IGMP多播”,但是用网络调试助手测试,在群集外的第三台主机上只能与群集中一台主机通信,没有实现正常的负载平衡,通过查看域控主机的事件查看器查看事件日志,在“系统”分类下发现如下错误:

NLB 群集 *.*.*.* : 主机 2 的端口规则数量或类型跟这个主机的不一样。请检查所有属于群集的主机上的 NLB 配置,并确定它们都含有相同数量和类型的端口规则。 

       于是我就检查第二台主机网络负载平衡属性页的“端口规则”标签,果然跟第一台主机的设置不完全一致(在端口规则列表中双击一行就可以弹出其详细规则信息),区别在筛选模式的“多个主机(M)相似性”上,一个选的是“无”,一个是“单一”,都改为“无”后,群集设置成功。

       至于筛选模式,大家可以看下面这段话: 

NLB 支持有限形式的会话粘滞:

单一关联。启用“单一”关联时,不会使用客户端的端口号,映射算法使用客户端的完整 IP 地址来确定负载分布。其结果是,所有来自相同源 IP 地址的请求都会映射到群集中的相同主机。由于不存在超时值(这是基于调度程序的实现的典型特点),这种情况会一直保持下去,直到群集成员关系更改。

C 类关联。在“单一”关联中,没有使用客户端端口号来计算负载分布。启用“C 类”关联时,映射算法是以客户端 IP 地址的“C 端口”(上面的 24 位)作为依据来分配负载的。在“单一”关联中,如果群集成员关系更改的话,会话可能不会保留。

TCP 会话。NLB 在 TCP 连接的有效期内保留 TCP 会话的粘性。但是,来自相同客户端的多个 TCP 连接可能会由相同的群集成员来处理,也可能不由相同成员处理。

IPSec 会话和 VPN 会话。在 Windows Server 2003 上,NLB 具有针对 IPSec 会话和 VPN 会话的专门支持。即使群集成员关系更改,NLB 也会保留这些会话。

       二、为什么切换单播和多播模式时提示IP地址冲突?

       另外,我在切换单播和多播模式时,总是提示 IP 地址发生冲突,这又是怎么回事呢?继续查找资料,终于发现答案。

       原来这是因为,单播和多播模式下MAC地址是不同的,修改群集模式时该主机的MAC地址发生改变,而与群集其他主机的MAC地址就不相同了,这样就导致了IP地址冲突的问题。

       解决办法是,先从TCP/IP属性中删掉群集IP地址,然后再进行群集模式等设置的修改,并保证所有群集主机的模式(单播或多播)相同,最后再在TCP/IP属性中添加群集IP地址。

       三、网络负载平衡系统的一些其他常见问题

       下面是Windows Server网络负载平衡设置中的一些其他常见问题:

       1、安装网络负载平衡并重新启动群集主机之后,出现一条消息:"系统已检测到有一个 IP 地址与网络上的其他系统发生冲突..."

  - 原因:网络上已存在相同的 IP 地址。

  - 解决方案:选择一个新的 IP 地址,或者删除重复的地址。

  - 原因:您在主机上配置了不同的群集操作模式("单播"或"多播"),这样会使两个不同的 MAC 地址映射到同一个 IP 地址。

  - 解决方案:确保将所有主机配置为具有相同的群集操作模式。

  - 原因:将 NLB 绑定到网络适配器之前,已经配置了群集的 IP 地址。

  - 解决方案:从 TCP/IP 属性中删除群集的 IP 地址,在相应的适配器上启用 NLB,然后配置群集的 IP 地址。

  - 原因:您已将群集的 IP 地址添加到尚未启用 NLB 的网络适配器中。

  - 解决方案:从不正确适配器的 TCP/IP 属性中删除群集的 IP 地址,在相应的适配器上启用 NLB,然后配置群集的 IP 地址。

  2、使用 ping 从外部网络访问群集的 IP 地址时没有响应。

  验证是否可以使用 ping 从路由器之外的计算机访问群集主机的专用 IP 地址。如果该测试失败,并且您使用了多个网络适配器,则此问题与 NLB 无关。如果您对专用 IP 地址和群集 IP 地址使用了一个网络适配器,请考虑以下原因:

  - 原因:如果您使用了多播支持,您可能会发现路由器无法通过使用地址解析协议 (ARP) 将主要 IP 地址解析为多播媒体访问控制 (MAC) 地址。

  - 解决方案:验证是否可以使用 ping 从群集子网上的客户端访问群集,以及是否可以从路由器之外的计算机访问群集主机的专用 IP 地址。如果这些测试都工作正常,则可能是路由器出现了故障。您应该能够通过向路由器中添加静态 ARP 条目来避开此问题。还可以关闭 NLB 多播支持,并使用单播网络地址(在没有集线器的情况下)。

  - 原因:在多播或单播模式中使用 NLB 时,路由器需要接受代理 ARP 响应(在 Ethernet 框架中用不同网络源地址接收的 IP 到网络地址的映射)。

  - 解决方案:确保您的路由器打开了代理 ARP 支持。还可以设置静态 ARP 条目以保持禁用路由器中的代理 ARP 支持。

  - 原因:群集的 Internet 控制消息协议 (ICMP) 被路由器或防火墙阻止。

  - 解决方案:允许 ICMP 通讯通过路由器或防火墙。请注意,这可能会使您的系统暴露于其他的安全风险。

  3、使用 ping 从一台群集主机访问另一台主机的专用 IP 地址时没有响应。

  - 原因:在多播或单播模式中使用 NLB 时,路由器需要接受代理 ARP 响应(在 Ethernet 框架中用不同网络源地址接收的 IP 到网络地址的映射)。

  - 解决方案:确保您的路由器打开了代理 ARP 支持。还可以设置静态 ARP 条目以保持禁用路由器中的代理 ARP 支持。

  - 原因:群集的 Internet 控制消息协议 (ICMP) 被路由器或防火墙阻止。

  - 解决方案:允许 ICMP 通讯通过防火墙或路由器。请注意,这可能会使您的系统暴露于其他的安全风险。

  尝试使用网络负载平衡管理器连接到群集中的某个主机时,收到错误"不能访问主机"。

  - 原因:主机的 Internet 控制消息协议 (ICMP) 被路由器或防火墙阻止,或者在主机的网络适配器上被禁用。

  - 解决方案:在主机的网络适配器上启用 ICMP 或者允许 ICMP 通讯通过防火墙或路由器。请注意,这可能会使您的系统暴露于其他的安全风险。还可以使用 NLB 管理器的 /noping 选项。

  4、使用 Telnet 或尝试从群集主机浏览群集之外的计算机时,没有响应。

  - 原因:验证是否可以使用 ping 访问群集之外的计算机。如果此测试成功,则可能没有在 TCP/IP 属性中首先列出主机的专用 IP 地址。

  - 解决方案:如果 ping 未能访问群集之外的计算机,请参考以下问题(在此疑难解答主题的前面部分进行了描述):

  - 使用 ping 从外部网络访问群集的 IP 地址时没有响应。

  - 使用 ping 从另一群集主机访问主机专有的 IP 地址时没有响应。

  从群集之外的计算机调用网络负载平衡远程控制命令时,一个或多个群集主机中没有响应。

  - 原因:没有将远程控制命令发送到群集的 IP 地址。

  - 解决方案:必须将命令发送到群集的主要 IP 地址,可以在"网络负载平衡属性"对话框中指定该操作。确保将远程命令发送到正确的 IP 地址。

  - 原因:Internet 协议安全 (IPSec) 对远程控制通讯进行了加密。如果 NLB 远程控制命令是从配置了 IPSec(以便 IPSec 对远程控制通讯进行加密)的计算机发送的,则这些命令将无法正常运行。

  - 解决方案:禁用 IPSec。

  - 原因:防火墙未正确保护 NLB UDP 控制端口。默认情况下,会将远程控制命令发送到群集 IP 地址上的 UDP 端口 1717 和 2504。

  - 解决方案:确保这些端口尚未被路由器或防火墙错误阻止。还可以通过修改相应的 NLB 参数来更改端口号。

  5、使用主机的专用 IP 地址将其指定为远程控制命令的目标时,没有应答。但是,按其优先级 (ID) 指定主机正常运行。

  - 原因:没有主机具有专用 IP 地址。

  - 解决方案:为每个主机指定一个专用 IP 地址。有关详细信息,请参阅配置网络负载平衡主机参数。

  6、拒绝某些用户(并非所有用户)连接群集。

  - 原因:正在进行负载平衡的应用程序没有响应。

  - 解决方案:这是一个应用程序特定的问题,与 NLB 无关。请参考您的应用程序文档来更正此问题。您可能需要停止并重新启动应用程序。

  - 原因:如果群集配置为单播模式,则某个交换机可能已经知道了 NLB 网络适配器的 MAC 地址。

  - 解决方案:清除该交换机的端口到 MAC 地址的映射。

  - 原因:在一个或多个主机上,未将群集的 IP 地址添加到 TCP/IP 中。

  - 解决方案:如果没有使用 NLB 管理器配置您的群集,则必须使用群集的 IP 地址手动配置 TCP/IP。

  - 原因:某个主机正在由于使用了 drainstop 或 stop 命令而离开群集,因此聚合未正常完成。

  - 解决方案:等待聚合完成。

  7、无法通过使用 net config 和 Windows Management Instrumentation (WMI) 查看或更改网络负载平衡的属性。

  - 原因:若要查看或更改"网络负载平衡属性",必须是 Administrators 组的成员。

  - 解决方案:以运行 NLB 的计算机上的本地 Administrators 组成员的用户身份登录。

除非特别注明,鸡啄米文章均为原创
转载请标明本文地址:http://www.jizhuomi.com/software/310.html
2013年3月20日
作者:鸡啄米 分类:软件开发 浏览: 评论:6