首先,給大家介紹壹下NLB的工作原理:當客戶向NLB群集(NLB的虛擬IP地址)發起請求時,其實客戶的請求數據包是發送到所有的NLB節點,然後運行在NLB節點上的NLB服務根據同樣的NLB算法來確定是否應該由自己進行處理,如果不是則丟棄客戶的請求數據包,如果是則進行處理。
如何將請求數據包發送到所有的NLB節點是NLB運行的關鍵之處,單播和多播這兩種操作模式就是用於實現這壹需求。NLB不支持單個NLB群集中的單播/多播的混合環境;在每壹個NLB群集中,該群集中的所有節點都必須配置為多播或單播,否則,此NLB群集將無法正常工作。
單播和多播的運行方式和不同之處分別為:
單播
在單播模式下,NLB重新對每個NLB節點中啟用NLB的網絡適配器分配MAC地址(此MAC地址稱為群集MAC地址),並且所有的NLB節點均使用相同的MAC地址(均使用群集MAC地址),同時NLB修改所有發送的數據包中的源MAC地址,從而使交換機不能將此群集MAC地址綁定在某個端口上。
工作在單播模式下的NLB可以在所有網絡環境下正常運行,但是由於它的工作特性,具有以下兩個限制:
由於NLB所使用的群集MAC地址沒有綁定在某個具體的交換機端口上,所以所有的NLB通訊均通過在交換機的所有端口上廣播進行,而不管此端口是否連接了NLB節點,這造成了額外的網絡流量負擔;
由於所有的NLB節點具有相同的MAC地址,NLB節點之間不能通過自己原有的專用IP地址進行通訊。
多播
在多播模式下,NLB不會修改NLB節點啟用NLB的網絡適配器的MAC地址,而是為它再分配壹個二層多播MAC地址專用於NLB的通訊(此MAC地址稱為群集MAC地址),這樣NLB節點之間可以通過自己原有的專用IP地址進行通訊。但是在多播模式中,NLB節點發送的針對群集IP地址MAC地址ARP請求的ARP回復會將群集IP地址映射到多播MAC地址,而許多路由器或者交換機(包括CISCO的產品)會拒絕這壹行為。當出現這種情況時,妳必須在路由器和交換機上手動添加靜態映射,將群集IP地址映射到群集的多播MAC地址。
Windows Server 2003提供了壹個新的特性,稱為IGMP 多播,它可以通過使用IGMP協議支持來使交換機只將NLB通訊發送到連接NLB節點的端口,而不是所有交換機端口。但是此特性必須要求交換機支持IGMP偵聽,並且要求群集工作在多播模式下。