Windows NLB群集有两种操作模式:单播模式、多播模式。
一、单播模式
1、单播模式(交换机不允许两个port注册相同的MAC地址):二层交换机的每一个端口(PORT)所注册的MAC地址必须是唯一的,也就是说,每个端口的MAC不能重复,当两台服务器成为群集的时候,那么也就意味着,这两台服务器的网卡启用了NLB群集的功能,那么这两个网卡就有一个相同的MAC地址:00-ab-11-22-33-44即群集MAC。由于两台服务器直接连接在二层交换机的端口上,所以这两个交换机的端口都会被注册成为00-ab-11-22-33-44,以此,交换机的端口MAC产生了冲突,这是不允许的。如图:http://www.limingit.com/sitecn/Training_Courses.aspx?columnid=1674
既然出现了问题,那么,我们就要利用MaskSourceMAC的解决这个问题,也就是将群集MAC地址的最高第2组设为主机ID。那么第一台主机是01,第二台主机是02.如图:
2、单播模式(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即可。
3、单播模式(群集服务器之间无法相互通信的问题):既然是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窥探)的交换机来解决,这个协议可以自动的发现,连接在交换机上的哪个服务器属于一个多播组,那么只要交换机接收到送往群集的数据包,直接会被送往交换机的部分端口,也就是属于多播组的服务器。如下图。
posted on 2013-07-12 17:56
弱弱小女子 阅读(2355)
评论(0) 编辑 收藏