前言
隨著客戶端增長,單台伺服器力不從心。與其昂貴更換高階主機,不如用 **NLB (Network Load Balancing)** 將多台伺服器合為一個虛擬集群,對外呈現單一 IP,自動分流請求,最多支援 32 節點,性能線性擴展。
NLB 核心概念
- 每節點擁有**獨立靜態 IP**,集群共享一個 **Cluster IP**。
- 客戶端只訪問 Cluster IP,NLB 驅動程式將連線分派至各節點。
- 支援 **單播** 與 **多播** 模式;生產環境建議**單播**(多播易導致路由器問題)。
部署前提條件(雙節點範例)
| 項目 | 節點 1 | 節點 2 | 叢集 |
| 靜態 IP | 10.115.223.1 | 10.115.223.2 | 10.115.223.10 (Cluster IP) |
| 子網掩碼 | 255.255.254.0 |
| 預設閘道 | 10.115.223.254 |
| DNS | 10.115.223.1 |
| DNS 記錄 | 建立 A 記錄指向 Cluster IP |
| 服務軟體 | 完全相同(如 IIS 6.0) |
步驟 1:設定靜態 IP 並安裝 IIS 6.0
- 「網路連線」→ 本地連線右鍵→屬性→TCP/IP→指定上表 IP。
- 控制台→新增/移除程式→新增/移除 Windows 元件→應用程式伺服器→IIS→勾選「萬維網服務」→安裝。
- 兩節點同樣操作。
步驟 2:節點 1 安裝配置 NLB
- 本地連線右鍵→屬性→勾選「網路負載平衡」→屬性。
- 叢集參數分頁:
- Cluster IP:
10.115.223.10,掩碼 255.255.254.0
- 完整網域名稱:輸入已建立 DNS 對應的 FQDN
- 叢集操作模式:選 **單播**
- 可選:勾選「允許遠端控制」
- 主機參數分頁:
- 專用 IP:
10.115.223.1,掩碼 255.255.254.0
- 優先權 (Priority ID):**每節點必須不同**,如節點 1 設 1。
- 確定返回。
步驟 3:將 Cluster IP 加入節點 1 TCP/IP 進階設定
- 本地連線→TCP/IP 屬性→進階→IP 位址區「新增」
- IP:
10.115.223.10,掩碼 255.255.254.0
- 確定關閉所有對話框。
**驗證**:CMD 執行 ipconfig /all 應顯示兩組 IP。若出現 0.0.0.0 稍等 5 分鐘 NLB 收斂後再查。
步驟 4:配置節點 2(流程同節點 1,差異處)
- 專用 IP:
10.115.223.2
- 優先權:設 2(與節點 1 不同)
- 同樣將 Cluster IP 加入 TCP/IP 進階設定。
- 過程中可能彈出「TCP/IP 配置錯誤」等警告,**無需理會**,系統自動處理。
步驟 5:驗證叢集運作
- 同網段任意電腦開 IE,分別輸入節點 1 IP、節點 2 IP → 應見各自首頁。
- 輸入 Cluster IP
10.115.223.10 → 應見**其中一台**首頁(證明負載分流生效)。
⚠️ **節點間無法互 Ping** 是 NLB 特性(單播模式下 MAC 衝突導致),非故障。
叢集管理工具
- 網路負載平衡管理器 (nlbmgr):**首選圖形化工具**,支援多叢集管理、主機清單匯入匯出(檔案→儲存/載入主機清單)。
- NLB.exe 命令列工具:
%SystemRoot%\System32\NLB.exe,適合腳本自動化。
- 系統事件日誌:故障首查位置,記錄所有 NLB 相關事件。
總結
NLB 以極低成本實現 Web/FTP/媒體流等無狀態服務的高可用與擴展。關鍵在於:**相同服務軟體、靜態 IP、單播模式、優先權唯一、Cluster IP 雙重綁定**。善用管理器與事件日誌,讓叢集運維輕鬆可控。