關於Windows Network Load Balance

本文也發表在自己的blog網站:http://itguide.cc


單網卡單播:Cluster的MAC地址被分配給主機的網卡,主機網卡本身的MAC地址無法被使用;

特點:

  1. 網卡自己的MAC地址被禁用。cluster的MAC地址自動替換了網卡本身的MAC地址;

  2. 網卡變成了cluster業務專用網卡;

  3. 主機本身的網卡的IP地址和cluster的IP地址都被解析成cluster的MAC地址;

  4. 由於所有cluster主機都使用同一個MAC地址(cluster的MAC地址),所以cluster主機之間無法通信。但這些主機都可以處理來自子網外的通信請求,也能處理同子網的攜帶其他不同MAC地址的報文。

 

單網卡組播:cluster的MAC地址被分配給主機的網卡,單主機本身網卡的內置MAC也被保留使用,兩個MAC地址都再用。

  1. 網卡本身的MAC地址也被保留;

  2. cluster的IP地址解析成cluster的MAC地址;

  3. 網卡本身的IP地址解析成網卡本身的MAC地址;

重點:

  1. NLB不支持unicast/multicast混合在同一個cluster中。同一個cluster中的網卡只能全都工作在同一個模式下,不論哪種cluster,對網卡的數量都沒有限制;

  2. unicast是默認的NLB形式;

  3. 如果啓用了multicast,單網卡可以處理client-to-cluster traffic和機器本身的traffic。

  4. multicast支持,不論有幾個網卡,它都沒有單網卡的那幾個限制。


多網卡單播:unicast模式下cluster的MAC地址被分配給用於cluster的NIC適配器,cluster適配器的本身的MAC地址不被使用。因爲這個原因,主機之間的通信(並不是說NLB的心跳traffic)無法通過cluster adapter進行。

用於cluster adapter的NIC:

  1. cluster的IP地址解析成adapter的Cluster MAC地址(NLB自動生成);

  2. 如果cluster adapter的專用IP地址被使用了,這個IP地址也會解析成Cluster MAC;

  3. Cluster adapter使用virtual IP地址處理client-to-cluster的流量。同一個cluster的host-to-host流量無法通過這個adapter,因爲每個主機的MAC地址在cluster中是相同的。參考ARP https://technet.microsoft.com/en-us/library/cc758357(v=ws.10).aspx

用於管理的NIC:

  1. NLB不使用這個adapter;

  2. 這個adapter的IP地址解析成adapter本身(built-in)的MAC地址;

  3. 這個adapter處理本機業務的traffic,包括子網內部和外部的流量;

 

多網卡組播:Cluster的MAC地址被分配給cluster adapters,但cluster adapter本身(built-in)地址被保留,因此兩個地址都被使用,cluster MAC地址用於處理cluster數據,本身的MAC地址用於處理本機業務數據,這就是和unicast的區別。

特性:

  1. Adapters used as cluster adapters

    1. Cluster IP地址解析成cluster的MAC地址(NLB自動生成);

    2. 如果cluster adapter的專用IP地址在使用,這個IP地址解析成adapter的本身的(built-in)MAC地址;

    3. multicast模式下,cluster adapter可以處理client-to-cluster的流量,也可以處理主機本身的流量,包括所有流入流出本子網的traffic;

  2. 用於管理的adapter:

    1. NLB不使用這個adapter;

    2. adapter的IP地址解析成adapter本身的MAC地址;

    3. 這個adapter可以被用於處理本機業務流量,包括流入流出該子網的流量。

 

注意事項:

  1. NLB不支持在同一個cluster混合unicast/multicast。在各自的cluster裏,所有的adapters必須只能工作在unicast或者是multicast;

  2. 不管unicast或者是multicast,對網卡的數量沒有限制,不同的主機可以有不同數量的網卡;

  3. NLB負責解析cluster IP地址成它關聯的multicast cluster的MAC地址,這是在路由器的ARP完成的。在少數情況下,一些路由器可能不支持使用multicast MAC地址。在這種情況下,cluster無法被從本地子網外訪問到。爲了糾正這個問題,你必須在router上建立一個靜態的ARP。着需要參考你的路由器的文檔,看看如何配置;

  4. 如果你禁用了multicast支持(導致了主機變成unicast模式),NLB自動instructs驅動,屬於cluster adapter來覆蓋adapter的自身的,內置的network address,改變它的MAC地址成cluster的MAC地址。這就是用於所有cluster主機的地址。你不需要手動配置network adapter來識別這個地址。(注意一些網卡不支持更改MAC地址,如果遇到這種情況,你得換個支持更改MAC地址的網卡才行)

  5. Multicast支持默認是不啓用的。如果你不想使用多播支持,建議你考慮使用至少2個網卡(1個專門用來處理cluster,一個專門用於本機的數據流量)以達到優化性能及網卡的能力被充分利用


單網卡在Unicast情況下的限制:

本來要去往某個節點的流量被髮送給所有cluster的主機節點,造成很大浪費;

更重要的是,如果你的主機只有一個網卡,並且在unicast模式下,你無法使用NLB manager來管理和配置其他的主機;(實際測試過城中發現,單網卡形況下,使用NLB manager會有警告提示。)

這些限制可能對很多情況下不太重要。如果cluster主機只能從outside訪問到(因爲兩個主機之間無法通信),非cluster的流量又不是很頻繁(例如,某節點的網站夜間更新通常很少,)這種情況下,使用單網卡也足夠了。另外,單網卡肯定好用。

 

如何鑑別Cluster的mode?

  1. 通過檢查ARP:Ping cluster的IP地址,Ping cluster的網卡的IP地址,檢查本機的ARP信息,看看cluster的IP的MAC地址和網卡的MAC地址是否相同,相同則爲unicast。

  2. 使用 "nlb" 或 "wlbs"命令:如果MulticastSupportEnable的狀態爲enabled就是multicast,否則就是unicast;


總結:

  1. 不管單播還是組播,對網卡數量都沒有要求,1個就夠了;

  2. 如果可以的話,每個機器使用多個網卡還是好的,主要用途是將cluster業務用專門的網卡,本機數據業務用本機專門的網卡走;

  3. 組播的優勢比單播的多一些;

  4. 單播單網卡情況下,cluster的主機之間是無法進行數據通信的,所以不要測試A機器ping B機器的IP,通還是不通,意義都不大;

  5. 如果你的cluster主機之間沒啥必要的通信,就推薦你用單網卡unicast;

  6. 如果你想用multicast,那麼最好用IGMP multicast,這能降低廣播風暴;

  7. 如果你喜歡NLB最佳實戰,那麼多網卡是首選,unicast或者multicast都可以,但是不管你怎麼搭配,請你自己一定理解什麼是unicast/multicast,他們優缺點都是什麼。

  8. 如果要使用multicast進行測試,那麼跨網段的情況下,默認是不能訪問到NLB cluster資源的,需要IT部門在公司的高級設備中進行配置,所以不建議使用。


參考文檔:

  1. https://technet.microsoft.com/en-us/library/cc785431(v=ws.10).aspx

  2. https://technet.microsoft.com/en-us/library/cc784524(v=ws.10).aspx

  3. Limit switch port flooding: https://technet.microsoft.com/en-us/library/cc737869(v=ws.10).aspx

  4. NLB requirement: https://technet.microsoft.com/en-us/library/cc785431(v=ws.10).aspx

  5. NLB Best practice: https://technet.microsoft.com/en-us/library/cc740265%28v=ws.10%29.aspx

 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章