Microsoft Internet Security and Acceleration (ISA) Server 2006 提供了網路負載平衡 (NLB) 整合,可用來設定與管理在 ISA Server 陣列上執行的 Microsoft Windows Server® 2003 之 NLB 功能。當您透過 ISA Server 設定 NLB 時,NLB 會整合 ISA Server 功能。這個動作能提供單獨使用 Windows NLB 時所無法使用的重要功能。
此外,ISA Server 會監視 NLB 設定,並依電腦的狀態來適當中斷該電腦上的 NLB 連線。若電腦處於不允許傳送流量的狀態,這項功能就可以避免 NLB 繼續運作。例如,當電腦的網路介面卡故障,或當您停止 Microsoft Firewall 服務時,ISA Server 就會阻止 NLB 導向的流量通過該電腦。解決此問題後,ISA Server 就會重新允許流量通過該電腦。
ISA Server 會搭配 Windows NLB 自動設定雙向關連,而到目前為止,這對多重網路都適用。這樣可以保證來往方向的流量都是由同一部陣列伺服器處理。
本文件說明 ISA Server 2006 NLB 整合。
網路負載平衡 (NLB) 可讓單一子網路上的叢集主機,同時偵測叢集「網際網路通訊協定 (IP)」位址的連入網路流量。在每一個叢集主機上,NLB 驅動程式會當做網路介面卡驅動程式與 TCP/IP 堆疊之間的篩選器,將流量分散到各主機。ISA Server 會在此時取得控制權,以在複雜的部署實例 (包括虛擬私人網路、快取陣列路由通訊協定 (CARP) 和防火牆用戶端) 中啟用 NLB。
透過在 ISA Server 防火牆陣列上啟用整合式 NLB,您會在網路層級上建立 NLB 設定的架構。換言之,ISA Server 會以每個網路為單位來負載平衡流量。在想要負載平衡的特定網路上啟用 NLB 後,ISA Server 即會判定該網路所應使用的網路介面卡。如果有多張網路介面卡,ISA Server 會根據按字母順序排列的名稱選取網路介面卡。
ISA Server 會對所有流量執行狀態性檢查。因此,ISA Server 會使用 Windows NLB 來確定每個工作階段的連入和連出流量都是由相同的陣列成員處理。因為這會讓 ISA Server 對流量執行狀態性檢查,所以十分重要。
| • | 整合式 NLB 使用由多台主機電腦一起運作的叢集,提供高可用性和延展性的伺服器。 |
| • | 當主機故障或離線時,整合式 NLB 可將連入的網路流量重新導向到工作中的叢集主機,以提供高度的可用性。故障主機的現有連線雖會中斷,但您仍可以使用服務。在大部份情況下,用戶端軟體會自動重試失敗的連線,而幾秒內用戶端就能收到回應。 |
| • | 整合式 NLB 也能讓您調節效能,方法是使用指派給 NLB 叢集的一個或多個虛擬 IP 位址 (叢集 IP 位址) 將連入的網路流量分散在主機中。然後,叢集中的主機就能夠同時回應不同的用戶端要求。 |
| • | 整合式 NLB 利用完全分散的演算法,以統計的方式,根據連入用戶端的 IP 位址,將連入的用戶端對應到叢集主機。偵測到送達的封包時,所有主機會同時執行此對應,以快速決定要處理封包的主機。當主機數變更時,雖然對應也會變更,但 NLB 仍會繼續保留現有的 TCP 連線。 |
| • | 整合式 NLB 將 NLB 的優點整合到產品當中。啟用整合 NLB 時,陣列中的每個網路皆可設定成 NLB 叢集。NLB 演算法會套用到網路,如此就能平衡整個啟用 NLB 網路的負載。 |
您可以使用 NLB 整合模式中的 ISA Server 或透過 Windows Server 2003 設定網路負載平衡。您可以在下列其中一種模式下設定陣列的 NLB:
| • | 整合 NLB。 在此模式下,您可以使用 [ISA Server 管理] 來設定 NLB,及指定應負載平衡的特定網路。在這個模式中,您擁有易於管理的整合設定、陣列完整性維護、多重網路、虛擬私人網路 (VPN) 支援及疑難排解資訊等優點。啟用 NLB 整合時,支援的 NLB 設定如下:單點傳播模式及單一關連。 |
| • | 非整合 NLB。 在此模式中,您可以使用 Windows 型 NLB 工具來設定 NLB。非整合式 NLB 並不提供 ISA Server 整合式網路負載平衡的優點。 |
安裝 Microsoft ISA Server 2006 時,預設不會啟用 NLB 整合。為陣列啟用 NLB 整合後,即可在陣列層級的網路上啟用及設定 NLB。
對於任何包含多個陣列成員的陣列,您可以將 ISA Server 設定為以整合式 NLB 模式運作。在陣列上啟用 NLB 整合後,建議您為陣列中的每個連線網路 (陣列內部網路除外) 設定及啟用 NLB。陣列內部網路是用於陣列成員之間的通訊,不應進行負載平衡。此外,您還應啟用用於連線至已中斷連線的網路且已實體連接到 ISA Server 的網路上的 NLB。例如,如果已中斷連線的網路在外部網路之後,則應在外部網路上啟用 NLB。
為陣列啟用 NLB 整合時,您可以監視每個陣列成員的 NLB,並在適當的情況下清空或停止特定陣列成員的 NLB。
請勿在實體未連接到陣列的網路上啟用 NLB。強烈建議您在實體連接到陣列的所有網路 (陣列內部網路除外) 上啟用 NLB。
如果陣列未啟用整合式 NLB 模式,您可以使用 Windows 型 NLB 工具為作業系統設定 NLB。但是,如果您選擇設定 NLB 而不使用 ISA Server NLB 整合,您無法享受 ISA Server 負載平衡所特有的優點。
如果使用 ISA Server 整合設定 NLB,然後停用整合式 NLB 模式,則仍會保留每個陣列成員上所設定的現有 Windows NLB 設定。您可以在每台陣列成員電腦上使用 Windows NLB 工具,進一步修改這些 NLB 組態設定。
如果使用 Windows 型 NLB 工具設定 NLB,然後啟用整合式 NLB,ISA Server 中提供的位址會覆寫您之前使用 Windows 新增的位址。
設定整合 NLB 模式時,ISA Server 會負載平衡指定網路的流量。在特定網路上啟用 NLB 後,ISA Server 即會自動判定網路中的哪張介面卡適用於 NLB。每個網路都只能有一張這類介面卡。
ISA Server 會使用下列演算法來選擇 NLB 所適用的網路介面卡:
1. | 在具有靜態 IP 位址設定的負載平衡網路中,識別所有網路介面卡。這些網路介面卡並非由「動態主機設定通訊協定 (DHCP)」指派。 |
2. | 按名稱的字母順序排序網路介面卡。 |
3. | 選擇第一張 IP 位址與所指定之虛擬 IP 位址位於同一子網路的網路介面卡。 |
這表示,只要重新命名網路介面卡,然後重新啟動 Microsoft 防火牆服務,就可以控制所要選取的網路介面卡。
網路規則定義了網路之間的關聯性。此關聯性可以定義為網路位址轉譯 (NAT) 或路由。
當一個網路到另一個網路的流量是設定為以 NAT 傳送時,會在連出通訊中使用專用 IP 位址。流量永遠會回到同一個陣列成員。
當流量是設定為以路由傳送時,目的地電腦會提供來源電腦的 IP 位址。因此,當目的地電腦在通訊時,就必須使用該虛擬 IP 位址以作為其預設閘道。由於 NLB 已與 ISA Server 整合,所以 NLB 專門設計用於選擇適當的陣列成員。
設定網路的 NLB 時,至少必須為該網路指定一個虛擬 IP 位址。啟用 NLB 整合時,ISA Server 會修改網路介面卡的網路屬性和 TCP/IP 屬性。使用 [ISA Server 管理],您可以為每個負載平衡的網路設定多個虛擬 IP 位址。在部份實例 (如 NLB 發行實例) 中,您可能想要有多個虛擬 IP 位址。
每個陣列成員上的每張網路介面卡都有一個專用的 IP 位址。專用 IP 位址實際上是啟用 NLB 的網路之網路介面卡的原始主 IP 位址。在整合 NLB 模式下,每張網路介面卡都必須有它自己的專用 IP 位址。
NLB 使用的網路介面卡必須具有專用的 IP 位址。若無此專用的 IP 位址,透過此網路介面卡通訊的陣列成員與其他主機可能無法正常運作。專用 IP 位址和虛擬 IP 位址必須屬於相同的子網路,且必須有相同的子網路遮罩。
指定虛擬 IP 位址時,ISA Server 會將此 IP 位址設為連接到陣列中適用網路之所有網路介面卡的第二個 IP 位址。如果第一個 IP 位址與虛擬 IP 位址不同,則 ISA Server 也會在這些網路介面卡的 TCP/IP 內容中,將第一個 IP 位址設為專用的 IP 位址。
當您透過 ISA Server NLB 內容新增網路介面卡 IP 位址時,除該伺服器上介面卡專用 IP 位址之外,ISA Server 陣列上的每個介面卡還會被指派同一個 IP 位址。例如,如果在外部網路上新增 IP 位址 206.73.118.1,則每個陣列成員的外部網路介面卡都將具有此新增位址。這樣一來,可降低為陣列上所有介面卡手動指派位址時可能發生的 IP 位址不相符之風險。
虛擬 IP 位址不能與專用 IP 位址 (為適用的網路介面卡列出的第一個位址) 相同。
主要虛擬位址不應列在其他虛擬 IP 位址的清單中。
根據特定的部署實例,ISA Server 執行 NLB 的方式會有不同。本節說明如何為各種拓撲部署及設定 NLB。
當您設定 ISA Server 並將伺服器加入現有陣列時,如果已為整個陣列啟用 NLB,ISA Server 就會為這個新陣列成員啟用 NLB 整合。不過,因為下列原因,您可能不想要在安裝完成時自動啟動 NLB 服務:
| • | 當新陣列成員加入 NLB 叢集時,現有連線可能會停止。因此,建議您在網路活動較為不繁忙時,才排定在新的陣列成員上啟動 NLB。 |
| • | 建議您重新檢視新的陣列成員設定之後再將它加入 NLB 叢集。之後您就可以在該陣列成員上啟動 NLB。 |
為了確保 ISA Server 不會在新的陣列成員上自動啟動 NLB,請建立一個批次檔來重複執行單一命令 nlb suspend 。在您安裝新的陣列成員時,重複執行這個批次檔。
NLB 和 CARP 都可增進各台陣列伺服器的效能,每台伺服器提供不同的負載共用功能。
NLB 整合允許負載平衡所有進入陣列的網路流量類型。不像 CARP,網路負載平衡不會只限於 Web 要求。NLB 使用的虛擬 IP 位址,會在所有陣列伺服器間共用。每個陣列成員根據 NLB 演算法,都可以選取傳送到虛擬 IP 位址的封包。要傳送任何物件給特定陣列成員,目的地就必須使用固定、非虛擬的 IP 位址。
在傳送指令碼給用戶端,或將伺服器端要求轉寄給其他陣列成員,CARP 都不會包含虛擬 IP 位址。相反的,它會使用網路指定的專用 IP 位址。CARP 可在陣列成員之間共用快取磁碟,從而可在快取中儲存更多物件。
您可以在相同網路上同時啟用 CARP 和 NLB,但是,應在瀏覽器使用自動偵測或設定指令碼的組織中執行此操作。
為具有已發行伺服器的陣列設定 NLB 時,網路會根據用戶端的 IP 位址 (而非已發行伺服器的 IP 位址) 來進行負載平衡。
例如,假設您要將啟用 NLB 網路上的一部伺服器,發佈到另一個啟用 NLB 網路的用戶端。當用戶端存取已發行的伺服器時,就會根據用戶端的 IP 位址 (而非已發行伺服器的 IP 位址) 來進行負載平衡。
啟用 NLB 整合後,ISA Server 可讓您為陣列上的網路介面卡新增其他虛擬 IP 位址。新增的其他 IP 位址可用於 NLB 發行實例。
例如下列郵件發佈實例:您想要為一部郵件伺服器,在外部網路上設定一個虛擬 IP 位址,並為另一部郵件伺服器設定第二個虛擬 IP 位址。
在另一個實例中,要將兩個 Web 伺服器發行到網際網路上的兩個不同公用名稱上時 (例如 https://www.contoso.com 和 https://www.fabrikam.com),您可能需要多個虛擬 IP 位址。您還需要兩個網頁接聽程式,每個接聽程式自己都要有與公用網站名稱相符的數位憑證。由於兩個接聽程式都會接聽連接埠 443,因此還必須使其分別接聽不同的虛擬 IP 位址。新增虛擬 IP 位址就能實現此目的。
其餘虛擬 IP 位址不能與網路介面卡上的第一個專用 IP 位址或第二個虛擬 IP 位址相同。
在啟用 NLB 的複雜網路拓撲中,多個 ISA Server 陣列成員可以透過多張網路介面卡來連接,且設定存放區伺服器可以安裝在其中一個陣列成員上。在這種情況下,從一個陣列成員連接到設定存放區伺服器的要求可能會失敗。
在此實例中,為確保連線要求不會失敗,請執行下列步驟:
1. | 建立指向設定存放區伺服器的陣列內部網路上 IP 位址之新網域名稱系統 (DNS) 項目。 |
2. | 使用 Setspn.exe 工具,將陣列內部名稱登錄到 Kerberos 資料庫中。 |
3. | 變更陣列內容以使用新的 DNS 項目。 |
例如,若設定存放區伺服器安裝於名為 fw1.contoso.com 的電腦上,請登錄 fw1a.contoso.com,其中 fw1a.contoso.com 指向設定存放區伺服器的陣列內部 IP 位址。
若要在 Kerberos 資料庫中登錄新名稱,請執行下列命令:
| • | setspn -a ldap/fw1a.contoso.com FW1A |
| • | setspn -a ldap/fw1a.contoso.com:2171 FW1A |
將設定存放區伺服器陣列內容修改為 fw1a.contoso.com。
當遠端存取用戶端初始到陣列的 VPN 連線時,其中一個陣列成員會建立 VPN 連線並分配該用戶端的 IP 位址。之後,該遠端用戶端所有的流量就會通過該陣列成員。
在遠端網站網路上啟用 NLB 後,ISA Server 會自動指派一個陣列成員來處理 VPN 通道。在這個動作中,不會在兩個網站間建立平行通道。如果指派的伺服器失敗 (不論原因為何),就會在另一部伺服器上重新建立通道。
兩個陣列間可以使用網站間 VPN 通道進行通訊。不過,每個網站都必須知道另一個網站的專用 IP 位址。若為點對點通道通訊協定 (PPTP) 及第二層通道通訊協定 (L2TP) 遠端網站網路,則您必須指定遠端網站的專用 IP 位址以作為其他遠端閘道。
您可以使用 ISA Server 的 NLB 功能,來設定及管理在 ISA Server 陣列上執行的 Windows Server 2003 的 NLB 功能。當遠端網站網路是啟用 NLB 的陣列時,來自此 ISA Server 防火牆陣列的初始連線,將會連線到電腦的虛擬 IP 位址。將從遠端陣列的一個專用 IP 位址中建立通道。因此,您必須將所有專用 IP 位址指定為其他遠端通道端點。
此外,以下是網站間 VPN 部署的整合 NLB 模式下所支援的動作:
| • | 將用戶端要求自動路由到主控 VPN 連線的陣列成員。 |
| • | 如果擁有網站間 VPN 連線的伺服器失敗,就會自動將連線轉移到另一個 ISA Server 陣列成員。 |
NLB 會維持現有的 PPTP 和網際網路通訊協定安全性 (IPsec) 通道連線。這表示在 VPN 實例中,即使對應會隨著主機的改變而變更,NLB 仍會繼續保留通道。
設定 VPN 網站間網路時必須考量下列需求:
| • | 如果使用多重伺服器 ISA Server 陣列,而且打算使用 NLB,您必須使用 ISA Server 整合式 NLB。如果您是使用 Windows NLB,將不支援網站間連線。 |
| • | 如果您不是使用 ISA Server 來提供 NLB 功能,就必須設定您的公司路由器,以確保指派給特定電腦 (執行 ISA Server 服務) 之特定集區的用戶端流量,會透過該伺服器路由傳回。 |
| • | 如果您確實已在提供靜態位址的 ISA Server 陣列上設定 NLB,ISA Server 就會自動處理用戶端流量的路由傳送工作。在此情況下,請將路由器的所有靜態路由,設定為使用 ISA Server 陣列的虛擬 IP 位址。 |
| • | 當您使用 ISA Server 整合式 NLB 時,它會為每一個網站間連線選擇一部伺服器,並為該連線提供容錯移轉保護。啟用 NLB 時,必須在外部網路上設定 NLB,網站間連線才能正常運作。此外,在每一個與遠端網路間擁有路由關聯性的網路中都應啟用 NLB。 |
| • | 在已啟用 NLB 的多重伺服器 ISA Server 陣列中,我們建議您不要在其中一個陣列成員上安裝設定存放區伺服器。在陣列成員上安裝設定存放區伺服器時,該陣列成員將無法處理網站間連線,而遠端網站將遺失與設定存放區伺服器的連線。請在 ISA Server 陣列後方的其他電腦上安裝設定存放區伺服器。 |
建立與 ISA Server 電腦陣列的網站間連線之後,只有一個陣列成員是真正的連線擁有者。連線擁有者是 VPN 通道端點。
當啟用 NLB 之後,ISA Server 會自動指派連線擁有者。不需要其他設定。ISA Server 會使用演算法來最佳化連線擁有者的指派作業,以儘可能建立一個平衡的網路。建立通道後,即使新增或移除了其他伺服器,指派為連線擁有者的伺服器仍保持不變。若無法使用指派的連線擁有者,ISA Server 會自動將連線傳給另一個陣列成員。利用這種方式,ISA Server 可支援 VPN 網站間連線的容錯移轉。
停用 NLB 時,必須指派遠端網站網路的連線擁有者。若無法使用連線擁有者,則可能是未連線到遠端網站。
您連線的遠端網站網路是啟用 NLB 的陣列時,指定給遠端通道端點的位址必須是啟用 NLB 陣列的虛擬 IP 位址。
當您建立遠端網站網路時,請指定遠端網站內的所有位址。
此外,若為 IPsec 網路、HTTP Proxy,或網站之間的 NAT 流量,您必須包含與遠端網站網路相關之網路介面卡的所有專用 IP 位址。這是因為系統會對來自遠端網站的 HTTP Proxy 和 NAT 流量的來源 IP 位址,進行位址轉譯 (在遠端)。因此,本機網站會將流量視為來自遠端網站的主要 IP 位址,而實際上是來自其專用的 IP 位址。
在整合 NLB 模式中,ISA Server 會檢查 NLB 叢集中所有的伺服器是否都能完整運作,且是否能透過各種網路適當傳送流量。特別是在整合式 NLB 模式中,ISA Server 會負責確保所有 NLB 叢集皆可運作,或特定陣列成員上的所有 NLB 叢集皆不能運作。
您可以監視每一個陣列成員的 NLB,視情況在特定陣列成員上清空及停止 NLB。
如果 NLB 無法在伺服器的某個網路上運作,則 ISA Server 會停止這部伺服器所有網路上的 NLB。當伺服器回復可用的狀態時,ISA Server 會將其新增回陣列。具體而言,當下列情況為真時,ISA Server 會判定 NLB 叢集可使用陣列成員:
| • | 可以使用 ISA Server 電腦。 |
| • | Microsoft 防火牆服務執行中。 |
| • | 所有啟用 NLB 網路上的所有網路介面卡均已成功設定 NLB。 |
在每部伺服器上,NLB 都是設定成只有在該伺服器正在執行防火牆服務時,才會啟動。
在整合式 NLB 模式中,NLB 狀態可能為下列其中一項:
| • | 尚未設定。 此狀態表示沒有已啟用 NLB 的網路。 |
| • | 正在設定。 此狀態表示 ISA Server 目前正在設定陣列成員或變更其 NLB 狀態。 |
| • | 執行中。 此狀態表示 NLB 正在特定的陣列成員伺服器上執行。此伺服器將受限於負載平衡的 NLB 演算法。 |
| • | 清空中/停止中。 此狀態表示此陣列成員只會服務作用中的連線。對於未來所有連至此陣列的連線所進行的負載平衡,不會將此伺服器加入 NLB 演算法中。請注意,在清空/停止陣列成員時,狀態永遠會指示為「清空中/停止中」。 |
| • | 已停止。 此狀態表示此陣列成員不會服務任何連線。 |
| • | 因為本機問題,所以已停止。 此狀態表示因為設定問題,或因為先前設定 NLB 時發生錯誤,所以 ISA Server 無法設定 NLB。 |
| • | 由於 VPN 問題,所以已停止。 此狀態表示因為路由及遠端存取服務未回應,或因為沒有設定陣列成員的位址集區,所以 NLB 已停止。 |
| • | 暫停。 此狀態表示 NLB 已停止,且即使重新啟動 ISA Server 或 ISA Server 電腦,NLB 仍會維持停止狀態。 |
| • | 無法使用。 此狀態表示 ISA Server 無法判定陣列成員上的 NLB 服務狀態。 |
使用 ISA Server 管理,您可以對陣列中的每部伺服器手動暫停、停止、清空或啟動 NLB 服務。例如,若要從 NLB 叢集移除伺服器,請停止該伺服器上的 NLB 服務。如果您想要暫停成員伺服器上的 NLB 以執行部份維護工作,則必須暫停該伺服器上的 NLB 服務。接下來,當您完成維護時,可以繼續執行 NLB,而負載平衡即會考慮重新加入成員伺服器。
以 ISA Server 設定及部署啟用 NLB 的網路時,請遵循下列指導方針:
| • | ISA Server NLB 是以 Windows Server 2003 的 NLB 功能為基礎。部署 ISA Server 的 NLB 時,請遵循 Windows Server 2003 容量準則。如需相關資訊,請參閱 Microsoft TechNet 網站 上的 <網路負載平衡叢集:容量規劃>(英文)。 |
| • | 基於安全性的考量,建議您以路由器保護 NLB 叢集。如需相關資訊,請參閱 Microsoft TechNet 網站 上的 <網路負載平衡:Windows 2000 及 Windows Server 2003 的安全性最佳作法>(英文)。 |
| • | 謹慎計劃如何使用網路裝置來連接陣列成員。如需相關資訊,請參閱 Microsoft 說明及支援 上的 Microsoft 知識庫文件。 |
| • | 如果設定存放區伺服器是安裝在某個陣列成員 (具有 ISA Server 服務的電腦) 上,請設定「設定存放區」伺服器的名稱為解析成該陣列成員的陣列內部位址。 |
| • | 啟用 NLB 時,它僅使用乙太網路通訊協定通訊來同步化陣列成員。此低階流量不受 ISA Server 保護。為了協助保護該流量,建議您在網際網路和啟用 NLB 的陣列之間放置 Layer-3 路由器。此 Layer-3 路由器不允許低階乙太網路通訊協定通過,因此能協助保護陣列免受來自網際網路的惡意乙太網路流量攻擊,而使 NLB 作業遭到破壞。 |
| • | 當您變更啟用 NLB 網路介面卡的好記名稱時,必須重新啟動 Microsoft 防火牆服務。 |
| • | 啟用 NLB 時,請將路由器放到啟用 NLB 陣列的前面。設定路由器,讓它封鎖原始 IP 流量。否則,所有陣列成員都會同時處理該流量。 |
| • | Microsoft TechNet 網站 上的 <ISA Server 2004 Enterprise Edition 中的網路負載平衡疑難排解>(英文)。 |
| • | Microsoft 下載中心 的 <Internet Security and Acceleration (ISA) Server 2004 Enterprise Edition 的 RemoveAllNLBSettings 工具>(英文)。 |
| • | Microsoft TechNet 網站 上的 <Internet Security and Acceleration (ISA) Server 2006 的快取和 CARP>。 |