在部署了網路HTTP://www.aliyun.com/zixun/aggregation/13996.html">負載均衡(NLB)的網路中,當某個客戶針對NLB虛擬位址發起連接請求時, NLB通過某種NLB演算法來確定(通常是根據發起請求的用戶端源位址來決定)為客戶服務的NLB節點。 在NLB節點沒有變動之前,對於某個客戶,將總是由某個對應的NLB節點為它提供服務。 ISA防火牆企業版中的集成NLB依賴于Windows伺服器系統的NLB服務,對於客戶發起的請求,也是採用相同的方式進行處理。
例如,對於一個具有三個NLB節點(ISA1、ISA2、ISA3)的ISA防火牆NLB陣列, 當一個客戶(10.1.1.1)發起連接請求時,NLB通過NLB演算法確定由ISA1為此客戶服務;而當另外一個客戶(10.1.1.2)發起連接時,NLB通過NLB演算法確定由ISA2為此客戶服務。 在NLB節點沒有變動時,客戶10.1.1.1的連接請求將會始終通過NLB節點ISA1來進行處理;而客戶10.1.1.2的連接請求則會始終通過NLB節點ISA2來進行處理。
當某個NLB節點出現故障時,NLB將在所有節點上重新進行彙聚,並重新根據NLB演算法來確定為客戶提供服務的NLB節點。 例如,此時ISA1節點出現故障,無法再提供NLB服務;則NLB重新進行彙聚,如果客戶10.1.1.1再發起連接請求,則就是ISA2或者ISA3來為它進行服務。
當NLB節點失效時,NLB可以讓其他NLB節點來為客戶提供服務。 但是,如果NLB節點的NLB服務沒有失效但是所提供的其他服務失效時,怎麼辦呢?
如下圖所示,兩台ISA防火牆屬於相同的NLB陣列,分別通過不同的外部鏈路連接到Internet,並且對內部網路提供NLB服務。 兩台ISA防火牆允許內部網路中的使用者通過自己來訪問外部網路,正在為不同的客戶提供服務;如果此時,ISA1上的外部鏈路突然斷開,會出現什麼情況呢?
此時,由於ISA1上的NLB服務並沒有出現故障,所以NLB會認為ISA1仍然是有效的NLB節點,並且同樣會分配客戶給它。 但是,由於外部鏈路斷開,ISA1所服務的客戶卻不能再連接到Internet了。 這當然就不能有效的實現網路負載均衡中的容錯特性。