关于NLB的群集操作模式知识 (转载)
单播:单播模式是指各节点的网络适配器被重新指定了一个虚拟MAC(由02-bf和群集IP地址组成确保此MAC的唯一性)。由于所有绑定群集的网络适配器的MAC都相同,所以在单网卡的情况下,各节点之间是不能通讯的,这也是推荐双网卡配置的原因之一。为了避免交换机的数据洪水,应该结合VLAN使用。
多播:网络适配器在保留原有的MAC地址不变的同时,还分配了一个各节点共享的多播MAC地址。所以,即使单网卡的节点之间也可以正常通讯,但是大多数路由和交换机对其支持不是太好。
IGMP多播:IGMP多播(只有在选中多播时,才可以选择此项),在继承多播的优点之外,NLB每隔60秒发送一次IGMP信息,使多播数据包只能发送到这个正确的交换机端口,避免了交换机数据洪水的产生。
NLB群集的两种操作模式
Windows NLB群集有两种操作模式:单播模式、多播模式。
单播模式(交换机不允许两个port注册相同的MAC地址):二层交换机的每一个端口(PORT)所注册的MAC地址必须是唯一的,也就是说,每个端口的MAC不能重复,当两台服务器成为群集的时候,那么也就意味着,这两台服务器的网卡启用了NLB群集的功能,那么这两个网卡就有一个相同的MAC地址:00-ab-11-22-33-44即群集MAC。由于两台服务器直接连接在二层交换机的端口上,所以这两个交换机的端口都会被注册成为00-ab-11-22-33-44,以此,交换机的端口MAC产生了冲突,这是不允许的。如图:
既然出现了问题,那么,我们就要利用MaskSourceMAC的解决这个问题,也就是将群集MAC地址的最高第2组设为主机ID。那么第一台主机是01,第二台主机是02.如图:
单播模式(Switch Flooding——交换机泛红):我们已经知道,交换机的每一个端口都是唯一的,路由器接收到群集IP的数据包时,它会通过ARP地址来查询群集MAC地址,不过,交换机端口(port)没有群集MAC地址,因为我们已经通过MaskSourceMAC功能解决交换机端口MAC相同的问题,当然交换机端口也没有所谓的群集MAC地址,这个时候,交换机就会进行泛红,其实说白了,就是向每个端口除接收端口进行广播,这样会造成额外的网络负担,说的通俗点就是,会造成大大的占用网络带宽。如图:
虽然泛红现象可以造成额外的网络负担,不过,群集中的主机都能接收到发来的数据包。那么我们如何解决交换机泛红问题呢?我们可以先将两台群集主机连接在一台HUB(集线器)上,然后再禁用MaskSourceMAC功能,这样,只有HUB连接的交换机端口注册群集MAC,这样就不会产生泛红问题了。如图:
禁用MaskSourceMAC功能的方法:开始——运行——regedit——HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WLBS\Parameters\Interface\Adapter-GUID,将Adapter-GUID值改为0即可。
单播模式(群集服务器之间无法相互通信的问题):既然是NLB群集,并且支持着WEB服务,也就意味着,每一台群集主机上的web内容都是一样的,我们可以利用DFS复制技术将两台群集里的web内容进行同步,那么就必须让两台主机进行通信。如果我们选择单播模式,并且选择一块网卡,那么就会产生两台群集主机不通信的问题。如图:
上图所示,当左边的主机要与右边的主机进行通信的时候,它会通过ARP请求数据包来询问其主机的MAC地址,而右边主机回复的MAC地址是群集MAC,也就是和左边的MAC是一样的,所以这个时候,无法进行通信。那么解决方法就是,将每台群集主机安装两块网卡,并且安装的两块网卡不启用群集服务,这样通信就不会出现问题了。如图:
多播模式的概念:多播,说白了,就是将数据包发送给多台计算机,这些计算机同属于一个个多播组,他们拥有一个共同的多播MAC地址。
多播模式的特点:
1、NLB群集中每一台服务器的网卡仍然会保留原来的唯一的MAC地址,所以,群集成员服务器之间是可以正常通信的,那么这么一来,在交换机的端口上注册的就是原来的唯一的MAC地址。
2、NLB群集的服务器都共用一个群集MAC地址,这是一个多播MAC地址,群集里的服务器都是通过多播MAC地址来监听外部的请求的。
多播的缺点:
1、有的路由器不支持,当路由器接收到送往群集IP地址202.106.0.100的数据包时,路由器就会进行ARP广播,来查询202.106.0.100的MAC地址,其实就是ARP广播群集MAC,此时,我们选择的是多播,所以群集的MAC也就是一个多播(群集)MAC地址,而回复给路由器的就是一个多播MAC地址,那么路由器有可能不承认这个回复信息,换句话说,路由器有可能不接受这样的结果,因为,路由器要解析的是单播地址202.106.0.100,现在解析到的是一个多播MAC,那么,要想解决这个问题,我们可以手动在路由器上新建一个静态的ARP条目,202.106.0.100对应一个群集MAC——00-ab-11-22-33-44,这是一个解决办法,但是,如果路由器不支持这样的做法,那么我们只好更换路由器,或改为单播模式。如下图。
2、依然存在我们前面所说过的Switch Flooding现象,当我们选择多播模式以后,每个交换机的端口都是唯一的,但是,路由器接收到送往群集的数据包时,路由器依然会ARP广播,欲广播群集的MAC地址,那么现在有这样的一个情况,交换机的任何一个端口都没有群集MAC,所以,这个时候,交换机只能进行广播来获取群集MAC地址,这样就产生了泛红的问题,依然会增大网络带宽,增加了网络负载。在多播模式下如何解决这个问题呢,那么就是利用一台支持IGMP snooping(Internet group membership protocol窥探)的交换机来解决,这个协议可以自动的发现,连接在交换机上的哪个服务器属于一个多播组,那么只要交换机接收到送往群集的数据包,直接会被送往交换机的部分端口,也就是属于多播组的服务器。如下图。
参考文献: