NLB單播和多播區別

Windows NLB(網絡負載均衡)是 Microsoft 在Windows 2000 Server 開始在操作系統上提供的一種負載平衡技術。NLB 使用一種分佈算法將負載均衡分佈到多臺主機上,從而提高基於 IP 的關鍵型服務(例如 Web、虛擬專用網絡、流媒體、終端服務、代理等等)的可伸縮性和可用性,同時可檢測主機故障並自動將流量重新分配給其他操作主機,從而提供高可用性。


Windows NLB有單播與多播兩種模式,兩種模式原理各有不同,


1、單播模式下,NLB服務會重新對每個節點中啓用NLB的網卡分配MAC地址(此MAC地址稱爲羣集MAC地址),並且所有的NLB節點均使用相同的MAC地址(均使用羣集MAC地址),同時NLB會修改所有發送的數據包中的源MAC地址,這樣就導致交換機不能將此羣集MAC地址綁定在某個端口上。 工作在單播模式下的NLB可以在所有網絡環境下正常運行(兼容性最好);


2、多播模式下,NLB不會修改NLB節點啓用NLB的網絡適配器的MAC地址,而是爲它再分配一個二層多播MAC地址專用於NLB的通訊(此MAC地址稱爲羣集MAC地址),這樣NLB節點之間可以通過自己原有的專用IP地址進行通訊。

二、案例分析 

下面通過一個最近在客戶遇到的實際案例來解釋兩種模式的不同:


近期客戶需要進行網絡改造,但是在改造後一個Windows NLB羣集無法使用。現場查看情況爲此羣集原採用多播模式使用,網絡改造將原二層交換機變更爲三層交換機。通過多播模式的特性分析,多播模式使用多播MAC地址專用於NLB的通訊這樣就出現了一個多播MAC地址對應一個非多播IP(羣集IP)的情況,這是會被不支持的三層交換機和路由器拒絕的一種情況。解決這種問題可以手工在路由器或交換機上添加羣集IP對應多播MAC的靜態數據。


但是經過客戶驗證,網絡改造後的三層交換機不支持添加靜態數據,所以唯一的解決方案只能將多播模式切換爲單播模式。手工將NLB羣集切換爲單播模式後發現羣集IP無法ping通,負載均衡管理器也無法連接管理,羣集承載網站也無法訪問。分析可能由於羣集IP無法被找到所以出現這樣的情況。查看羣集各個節點網卡屬性,發現啓用負載均衡的網卡均只有自己的IP地址,而羣集IP沒有被添加成功,如下圖在TCP/IP高級選項中進行手工添加羣集IP後再驗證,羣集恢復正常,負載均衡也正常工作。

 
三、兩種模式存在的問題及解決辦法 

通過這個案例及單播和多播的特性我們可以發現以下問題:

單播: 

1、由於NLB所使用的羣集MAC地址沒有綁定在某個具體的交換機端口上,所以所有的NLB通訊均通過在交換機的所有端口上廣播進行,這就出現了交換機泛洪的現象,可以通過將所有NLB節點添加到一個VLAN中隔離廣播的辦法解決。


2、由於所有的NLB節點具有相同的MAC地址,所以NLB節點之間不能通過自己原有的專用IP地址進行通訊。 (節點之間就無法ping通)。我們可以採用雙網卡來解決節點間通信問題,一塊網卡用於啓用負責均衡,一塊網卡用於節點間通訊。

多播: 

1、多播模式下NLB節點之間可以通過自己原有的專用IP地址進行通訊,但是羣集IP對應一個多播MAC進行通訊,可能會被不支的路由器或一些交換機拒絕,必須通過在網絡設備中添加靜態數據的方法解決。


2、由於交換機所有端口中都是使用各個節點實際IP與MAC註冊而羣集使用多播MAC,所以交換機收到羣集的數據包發現交換機沒有一個端口是對應羣集多播MAC就仍然會廣播到所有端口,這樣就仍然有交換機泛洪的問題。解決方法也可以採用和單播一樣的使用VLAN解決,此外還可以通過勾選IGMP 多播來解決交換機泛洪,但是需要交換機支持此功能。


最後建議如果NLB節點服務器只有一塊網卡,請使用多播模式;如果NLB節點服務器擁有多塊網卡,或者網絡設備(如二層交換機與路由器)不支持多播模式,則可以採用單播模式。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章