1. 程式人生 > >GSLB全局負載均衡詳解

GSLB全局負載均衡詳解

In 技術 狀態 AS 操作 option snmp 流量 server

#GSLB(Gobal Server Load Balancing)

GSLB(廣域網服務器負載均衡)

使用DNS技術,並將負載均衡技術擴展至廣域網範圍。

GSLB提供以下重要功能和優勢:

  • 在站點失效時,確保業務可用
  • 確保業務連續性和應用的可用性
  • 通過將客戶訪問導向最近的站點,提供更快的響應速度並改善用戶體驗
  • 通過將請求分布到多個站點,增加數據中心效率
  • 提供靈活的策略實現流量在多個站點的分布.

###GSLB部署模式:

  • 代理模式(DNS Proxy)

    設備能夠對客戶端請求的A和AAAA記錄類型進行應答,但對其他記錄類型,則轉發至外部DNS服務器。

  • 服務器模式(DNS Server)

    設備對配置的GSLB域的查詢請求直接進行應答。在服務器模式下,GSLB設備能夠應答A、AAAA、MX、NS、PTR、SRV和SOA記錄。對其他類型,會嘗試代理模式。

GSLB協議運行在4149端口。同時支持TCP/UDP協議。

####GSLB配置概念:

  • zone 是一個DNS域,可配置一個或多個域。每個域包含一個或多個GSLB站點。
  • Service:Service即域服務,每個域可以配置一個或多個域服務.
  • Site:Site即站點,站點通常包括一組服務器,或被本地服務器負載均衡(SLB)設備管理的一組服務器。

###GSLB策略:
#####Policy 調度算法:

  • 健康檢查—— 優先選用通過健康檢查的服務IP。
  • Weighted-IP —— 根據Service-IP上手工配置的權重來分配請求,權重高的Service-IP比權重低的Service-IP分配更多的請求。
  • Weighted-Site —— 根據站點上手工配置的權重來分配請求。
  • Capacity —— 根據站點配置的最大會話容量值,優先選用可用會話數量較多的站點。
  • Active-Servers —— 優先選用當前活動服務器數量較多的站點。
  • Geographic —— 優先選用在地理位置上最接近的客戶端的站點。
  • Connection-Load —— 優先選用新建連接數量未超過設定閥值的站點。
  • Num-Session —— 當站點會話數量沒有超出配置的會話容量閥值時,優先選擇有效會話數量較多的站點。
  • Admin-Preference —— 優先選擇手工設定優先級最高的站點。
  • Least-Response —— 優先選擇命中次數最少的站點。
  • Admin-IP TOP Only —— 基於手工設定的權重來選擇站點。
  • 輪詢 —— 按照請求的順序依次選擇站點。
  • 管理員別名—— 優先選擇手工設定優先級最高的DNS CNAME記錄類型。這個度量方法與Admin-Preference類似,但僅應用於DNS CNAME記錄類型。
  • 加權別名 —— 按照CNAME記錄類型上設置的權重值來選擇CNAME解析結果。這個度量方法與Weight-IP類似,但僅應用於DNS CNAME記錄類型。

默認情況下,只有健康檢查、地域和輪詢三種調度算法被啟用,其它調度算法被禁用。

註意:
Alias-Admin-Preference在啟用後,總是擁有最高的算法優先級.

  • Weight-IP和Weight-Site算法
    允許有傾向的使用指定的站點或IP地址。GSLB會根據設定的權重值,更多的選用權重值較高的IP地址或站點。

  • 終極算法(Tie-Breaker)

    GSLB設備使用輪詢算法作為選擇站點的終極算法,即便輪詢算法在GSLB策略中被禁用。

  • Health Check

    健康檢查調度算法檢查真實服務器和服務端口的可用性。GSLB會優先選用那些真實服務器和服務端口能夠正常應答健康檢查的站點。

  • GSLB支持對以下應用類型的健康檢查方法:

    ICMP(三層健康檢查)、TCP、UDP、HTTP、HTTPS、FTP、SMTP、POP3、SNMP、DNS、RADIUS、LDAP、RTSP、SIP.可以在任何一個服務上使用默認的健康檢查或配置新的健康檢查。

  • 健康檢查的優先級
  • GSLB設備上的健康檢查按照以下級別和順序進行:
    網關健康檢查
    端口健康檢查
    IP健康檢查(Service-IP上的三層健康檢查)

  • Geo-Location
    可以配置GSLB,使其在DNS中應答距離客戶端地理上最近的站點VIP.
    Geo-Location的基本配置:

    啟用基於地理位置的GSLB調度算法(該算法默認開啟)。

    導入地理位置數據。可以從文件中導入地理位置數據,或單獨配置地理位置映射關系。

  • Alias-Admin-preference和Weight-alias

    別名管理優先調度算法(Alias-Admin-preference)按照手工設定的管理優先級來選擇CNAME記錄。此算法可應用於DNS代理模式和DNS服務器模式。同樣的,基於權重的別名調度算法(Weighted-Alias)選擇具有較高權重的CNAME記錄,也可應用於DNS代理模式和DNS服務器模式。

這兩種模式都需要進行額外的策略選項:

  • DNS 代理 — 啟用“geoloc-alias“選項。在GSLB從DNS服務器獲取DNS應答後,GSLB按照IP調度算法策略選擇一個DNS A記錄,然後嘗試按照地理位置信息將CNAME記錄插入DNS應答中。當GSLB插入CNAME記錄時,如果別名調度算法被啟用,GSLB可能會移除一些CNAME記錄和相關的Service-IP。

  • DNS服務器 — 當DNS服務器模式可用時,啟用“backup-alias”選項。如果沒有DNS A記錄返回,GSLB嘗試插入所有的備用DNS CNAME記錄。在插入時,如果別名調度算法被啟用,GSLB嘗試移除一些CNAME記錄,並且不返回DNS A記錄。這個選項同樣需要在Service中配置“dns-cname-record as-backup”
  1. DNS Options
    DNS選項對DNS應答給客戶端的IP地址列表提供額外的控制。
    在GSLB策略中,可以對以下DNS選項進行配置:
    • 為服務應用DNS操作(dns action)— 允許GSLB在Service配置中執行特定的DNS動作。
    • 只保留活動服務器(dns active-only)—— 移除Service中未通過健康檢查的IP地址。
    • dns addition-mx —— 當L1000-GL設備配置為DNS代理或緩存模式時,在返回的A記錄附屬部分中,附加MX記錄。
    • 自動構建DNS基礎結構(dns auto-map)—— 啟用自動映射功能,根據L1000-GL設備配置的IP資源自動創建A和AAAA記錄,在VIP和Service-IP之間創建自動映射關系。
    • 失敗時返回別名(dns backup-alias)— 當GSLB沒有收到對服務查詢的應答或沒有活動的DNS服務器時,返回該服務配置的CNAME別名記錄。這個選項對服務模式和代理模式均有效。
    • 失敗時返回備用服務器(dns backup-server)— 如果主服務器失效,指定一個或多個能夠應答給客戶端的備份服務器
    • 緩存DNS服務器響應(dns cache)當應答客戶端時,緩存並DNS解析結果,而不是對每一個客戶端查詢都發送新的DNS請求。
    • CNAME檢測(dns cname-detect)禁用此選項將忽略CNAME應答。當該選項啟用時,L1000-GL設備將對Zone及Service應用CNAME記錄策略,而不是應用IP地址記錄策略。
    • 域委派(dns delegation)啟用子域委派。這個功能允許將父域的部分DNS域名委派給到一個獨立的子域。這個子域由其它一臺或多臺服務器進行解析。
    • 返回外部IP地址(dns external-ip)返回Service上配置的外部IP地址。如果禁用此功能,將返回Service的內部IP地址。
    • 外部SOA(dns external-soa)用外部SOA記錄來替換內部SOA記錄,以阻止外部客戶端獲得那些本應對內部客戶端有效的信息。如果禁用此功能,將會返回內部SOA信息。
    • 按地理位置應用DNS操作(dns geoloc-action)—— 按照客戶端地理位置信息來處理DNS流量。這個選項應作為Service配置的一部分。
    • 基於地理位置返回別名(dns geoloc-alias)—— 用別名替換GSLB中配置的IP地址。
    • dns geoloc-policy 按地理位置應用DNS操作(dns geoloc-policy)—— 返回按照客戶端地理位置信息配置的別名。
    • 提示(dns hint)—— 啟用DNS應答附屬部分的提示功能。針對客戶端請求,提示通常為A或AAAA記錄類型。這些記錄提供了主機名和IP地址之間的映射。
    • 用GSLB服務IP替換DNS服務器響應的IP(dns ip-replace)—— 在Zone配置中,用Service中手工配置的IP地址進行替換。
    • dns ipv6 —— 啟用對IPv6的AAAA記錄的支持。
    • 日誌記錄(dns logging)配置DNS日誌功能。
    • DNS代理配置(dns proxy block)阻止從內部DNS服務器發送出來的DNS查詢。此功能僅工作在DNS代理模式下。
    • 只保留選中的服務器(dns selected-only)—— 僅返回選定的IP地址。
    • 服務器模式(dns server)對GSLB Zone中的服務,使L1000-GL工作在DNS服務器模式。
    • 粘連(dns sticky)—— 對於單個客戶端發送至相同Service的所有DNS請求,返回相同的Service-IP地址。
    • DNS服務器響應TTL(dns ttl)—— 覆寫DNS應答中設置的TTL值。

默認配置下,cname-detect和external-ip選項啟用,其它DNS選項均禁用。
粘連(Sticky),服務器模式(Server),緩存dns響應(Cache),和代理模式(Proxy)選項的執行順序.

如果啟用了以下一個或多個選項,GSLB按照以下順序進行執行:

  • (1) Sticky
  • (2) Server
  • (3) Cache
  • (4) Proxy

GSLB會選用按照第一個配置項確定的可用選項並應答客戶端。
TTL覆寫
基於當前的網絡狀態,GSLB確保為客戶端提供的DNS應答中包含最優的一組IP地址。然而,如果DNS解析記錄的TTL值太大,本地DNS會對該應答緩存一段較長的時間直至緩存過期。因此,盡管L1000-GL設備具有當前準確的解析結果,客戶端仍會收到失效的信息。
為了確保客戶端的本地DNS服務器不會過長的緩存DNS應答,可以配置GSLB設備,在DNS應答返回客戶端之前,覆寫其地址記錄的TTL值。

在GSLB配置中,有兩個地方可以覆寫DNS應答的TTL值:

  • (1) 如果Service上指定了專門的GSLB策略,使用GSLB策略中設定的TTL值。
  • (2) 如果Service上沒有專門的GSLB策略,但Zone配置中設置了TTL值,則使用Zone配置中的TTL值。
  • 默認配置下,TTL覆寫功能未配置。

GSLB全局負載均衡詳解