負載平衡的網絡轉發(fā)技術

字號:

隨著互聯(lián)網的迅速發(fā)展,應用服務器工作量的日益增加,對負載均衡技術的需求也就越來越多。而在眾多的負載平衡技術中,網絡負載平衡技術由于其優(yōu)勢,成為了目前使用最為廣泛的技術,具體的產品也最為廣泛:如F5的BIG-IP、RadWare的Web Server Director、IBM的WebSphere Edge Server、TriLoad負載平衡服務器等。
    目前主要有三種網絡負載平衡轉發(fā)技術,分別是網絡地址轉換、直接路由和IP隧道技術,采用不同的方法將客戶端發(fā)送的包轉發(fā)到目的服務器上,并確保目的服務器的返回包可以順利到達客戶端。
    ● 網絡地址轉換
    
    網絡地址轉換模式
    在目標網絡地址轉換(DNAT)模式下,提供服務的IP被定義在平衡服務器上,應用服務器只需要定義各自的內部IP地址,但是必須將負載平衡服務器定義為缺省路由,以保證返回客戶端的包經過負載平衡服務器,完成第二次地址轉換后再送回客戶端。
    原理:
    1. 客戶發(fā)出服務請求
    2. 負載平衡服務器接收到請求,將數據包中目的IP地址改為選中的應用服務器IP地址,然后重新發(fā)出數據包
    3. 應用服務器收到后,將應答包發(fā)回給負載平衡服務器
    4. 負載平衡服務器收到應答包后將其中的源地址改回成服務IP,發(fā)回客戶端
    網絡地址轉換的優(yōu)點是實際服務器可以運行支持TCP/IP協(xié)議的任意操作系統(tǒng),實際服務器可以使用私有地址,只需在平衡服務器上配置服務IP地址。而且現(xiàn)在的防火墻都支持地址轉換功能,因此,容易為用戶接受。
    缺點是網絡地址轉換的性能擴展能力有限,因為請求包和應答包都必須通過平衡服務器,當服務器的節(jié)點數量達到20或更多時,平衡服務器可能成為整個系統(tǒng)的瓶頸。因此,這種方式主要適用于網絡負載不是很高的場合。
    ● 直接路由
    和那種請求包和應答包都必須通過平衡服務器的網絡地址轉換不同,平衡服務器在直接路由模式下,將請求調度到不同的實際服務器,實際服務器直接將結果發(fā)回客戶端。在大多數應用中,請求的字節(jié)數遠小于應答的字節(jié)數,所以與網絡地址轉換相比平衡服務器能處理更多的請求。采用直接路由能更大程度提高平衡服務器的節(jié)點數和網絡吞吐量。甚至于平衡服務器使用100M全雙工的網卡,系統(tǒng)的數據吞吐量仍可以超過1Gbps。
    直接路由的特點是運用網絡分層原理,通過將目標IP包封裝在指定MAC地址的以太網數據包中欺騙TCP堆棧,因此實際服務器和負載平衡服務器必須在同一個物理網段中,并且在應用服務器上必須將服務IP定義在loopback虛擬網卡上。
    原理:
    1. 客戶發(fā)出服務請求
    2. 負載平衡服務器接收到請求,將數據包中網卡物理地址(MAC)改為選中的應用服務器的MAC地址,然后重新發(fā)出數據包
    3. 目標應用服務器收到后,將應答包通過路由器直接發(fā)回客戶端(不經過負載平衡服務器)
    直接路由是效,網絡延時最小的負載平衡技術,但是,為達到MAC地址的欺騙,負載平衡服務器和所有應用服務器必須在同一個物理網段。而且,現(xiàn)在出現(xiàn)操作系統(tǒng)缺省是關閉這種特性的,如FreeBSD,必須顯示打開相應的內核開關才可以。不過,目前的主流操作系統(tǒng),都可以滿足直接路由的需求,如Windows、Linux、AIX、Solaris、FreeBSD等。
    
    直接路由轉換模式
    ● IP隧道
    與直接路由的方法類似,區(qū)別僅僅在于不是通過MAC欺騙來轉發(fā)數據包,而是通過建立負載平衡服務器和應用服務器之間的IP隧道來完成。
    因為這些服務器的連接是通過IP隧道,平衡服務器和實際服務器可以在不同的局域網甚至是廣域網。缺點是所有服務器必須使用IP隧道(IP封裝)協(xié)議,比直接路由的效率要低,而且,不是所有的操作系統(tǒng)都支持。
    在實際環(huán)境中,需要根據實際的情況來選擇采用合適的轉發(fā)技術的產品,甚至在某些場合,需要混合不同的轉發(fā)方式。