W i n d o w s Server 2016中將網絡負載平衡作為網絡策略和訪問服務中的一個組件。服務器管理->添加角色和功能->網絡策略和訪問服務->網絡負載平衡,按要求添加必須的其他組件后,將開始安裝,如圖1所示。
1.若需要使用“域”服務,在安裝“網絡負載平衡”管理器前,先添加“Active Directory 域服務”角色,并進行林、域相關配置。
2.若服務器需要使用IIS或者ASP.NET,那么在安裝網絡負載平衡前建議先添加Web服務器(IIS)服務器角色和.NET Framework 3.5功能。

圖1 安裝負載平衡服務
3.要建立“網絡負載平衡群集”,需要先在“高級共享設置”中打開“啟用網絡發現”功能。
4.若 使 用VMware、Hyper-V等虛擬化工具,在網絡中實現信息共享時無法查找到其他虛擬主機,可嘗試檢查虛擬機設置時“網絡適配器”是否使用同一種“網絡連接方式”,且已打開“網絡共享服務”功能。
5.若使用虛擬化工具克隆主機,在群集連接主機時顯示“指定主機沒有可用于安裝新的群集的任何接口”,這可能是在克隆主機時多臺主機使用同一個MAC造成的,此時可以嘗試卸載網絡適配器的驅動程序,然后再進行驅動軟件更新。
6.在“網絡負載平衡管理器”中建立群集,群集連接主機時顯示“RPC連接服務器不可用”等錯誤信息,可嘗試檢查主機有否打開“Remote Procedure Call(RPC)” 和“Remote Procedure Call(RPC)Locator”服務,并查檢“Remote Procedure Call(RPC)的屬性——依存關系——依賴服務”的“狀態”是否已經全部設置為“已經啟動”或“啟動類型”設置為“自動”。
7.若在群集連接主機時顯示出現錯誤提示“在主機‘MyPC上的NLB管理器'不能繼續,因為沒有安裝Microsoft群集服務”。可以檢查服務器上是否已經成功安裝 “網絡負載平衡”服務,然后打開“本地連接-屬性”,選擇“網絡負載平衡”,查看其狀態。
本次實驗的網絡拓撲如圖2所示。

192.168.1.254是 外部IP地址(用戶訪問的IIS服務地址),實際上訪問192.168.1.254的請求會轉發給后面的兩臺Web服務器。

圖2 網絡拓撲圖
分別在上面2臺Web服務器上安裝網絡負載平衡之后,我們就可以在其中任意一臺上來新建群集,然后將另外一臺加入到這個群集中即可,本實驗在Web-01(192.168.1.130)上來新建這個群集。在建立群集之前,我們要確保這2臺Web服務器使用靜態IP地址,否則無法將他們加入到群集中。
1.在Web-01(192.168.1.130)上從Windows管理工具中打開網絡負載平衡管理器右擊“網絡負載平衡群集”,選擇“新建群集”。
2.在“新 群 集:連接”窗口中將IP地址192.168.1.130添加為主機,點擊下一步。
3.進入“新群集:主機參數”,直接下一步。
4.進 入“新群集:群集IP地址”,添 加 窗 口中 的“添 加”將192.168.1.254添加到窗口中然后點擊下一步。
5.進入“新群集:群集參數”,選擇“多播”然后點擊下一步。
單播模式:所有節點服務器的MAC都會被改成集群MAC(虛擬MAC地址),發送數據的時候源MAC將變成集群MAC。缺點:交換機的MAC表無法綁定該MAC歸屬那個端口,所有數據包都進行廣播,造流量負擔;所有集群節點服務器具有相同IP地址和MAC地址,無法相互間通訊。
多播模式:不會修改節點服務器的MAC地址,各主機節點都保留原有的MAC地址,此外再外加專用于網絡負載平衡通訊的集群MAC地址,使各節點之間可以通過專用IP地址進行相互通信。但并非所有的路由器或交換機都支持多播模式,使用時需要謹慎處理。
IGMP多播模式:建立在多播模式功能之上,在默認情況下每隔60秒發送一次IGMP信息。它可以確保發送給網絡負載平衡群集的通訊只通過服務于群集主機的端口,而不是所有交換機端口。

6.進入“新群集:端口規則”,選中全部,再點擊編輯。
7.將端口范圍改成從80到 80,協議選“TCP”,相關性選“無”。
多主機:該參數指定了群集中多個主機處理與端口規則相關的網絡通訊,該篩選模式提供了可縮放性能以及容錯。所有數據由多臺服務器處理,可以指定在主機之間均衡分布負載,或每個主機處理指定的負荷量。在多主機相似性選項中,存在三種相關性選擇:
(1)“無”選項:指定來自同一客戶端IP地址的多條連接可由不同的主機(無客戶端的相似性)進行處理,由負載均衡器根據算法進行處理,基本上請求平均分配。第一次請求可能指向主機A,第二次請求可能指向主機B,為了實現在多臺主機之間共享session,系統應該預先把session作出持久化處理。
(2)“單一”選項:指定網絡負載平衡應該將來自同一客戶端IP地址的多個請求導向同一臺群集主機,即同一個客戶端的請求歸屬原來處理的服務器。
(3)“網絡”選項:根據IP的C類地址范圍來決定分配,指定網絡負載平衡將來自同一個TCP/IP的C類IP地址范圍的多個請求定向到同一臺群集主機,也就是同一網段的請求,會分配到某一服務器上。
單一主機:該參數指定群集中的單個主機根據指定的處理優先級來處理相關端口規則的網絡通訊。該篩選模式為處理網絡通訊提供了端口專用的容錯性能。所有數據由一臺服務器處理,根據優先級選出服務器。
禁用該端口范圍:該參數指定阻止相關端口規則的所有網絡通訊。在這種情況下,網絡負載平衡驅動程序將篩選所有相應的網絡數據包或數據報。該篩選模式可讓您阻止傳送到特定范圍的端口的網絡通訊。
8.單 擊“確 定”按 鈕回到主窗口,然后單擊“完成”按鈕,此時完成了集群的創建并且已經將Web-01(192.168.1.130)加入到集群中。
9.此時我們還需要手動將 Web-02(192.168.1.131)也加入到群集中,在群集(192.168.1.254)上右鍵點擊“添加主機到群集”。
10.在“將主機添加到群集:連接”窗口中的主機中輸入192.168.1.131然后單擊“下一步”按鈕即可。
在網站架構的不斷演變中,負載平衡起著非常重要的作用,不僅僅為我們的網站不斷提升可靠性和可擴展性,同時通過一些性能比較強大的硬件設備還能提供緩存,以及session機制。
現在用到的負載平衡是Windows Server 2016自帶的一個組件,它是最簡單實現負載平衡的方式,功能不是特別的完善,而且一旦網絡負載平衡服務本身發生錯誤那么將導致所有的網站都不能訪問,此時我們可以通過引入APR(Application Request Router)來解決這個問題。