基於DNS的GSLB,基於應用重定向的GSLB,基於主機路由注入的GSLB

               基於DNS的GSLB,基於應用重定向的GSLB,基於IP地址假裝(三角傳輸)的            GSLB,  基於主機路由注入的GSLB(Anycast)後端

引言
在過去的幾年中,隨着互聯網的快速發展和企業應用WEB化,服務器負載均衡(SLB)技術已經再也不陌生。服務器負載均衡根據用戶數據請求中的4-7層信息將其智能轉發到後端少則數臺多則成百上千臺應用服務器,而且確保根據事先定義的策略選擇最佳的服務器進行轉發,從而必定程度上解決了應用的可用性、擴展性等問題。可是,隨着用戶對應用可用性和擴展性需求的進一步增長,愈來愈多的用戶不知足於在單一數據中心提供服務,開始考慮容災、用戶就近訪問等問題。這正是負載均衡設備中的全局服務器負載均衡技術(GSLB)所要解決的問題。儘管GSLB技術早在數年前就是大部分負載均衡設備提供的必備功能,但因爲用戶需求較小、功能不夠完善、性能不足、價格高昂等因素,目前部署GSLB的用戶在負載均衡整個用戶羣中所佔比例仍是很小。相信在將來幾年中,GSLB的應用比例將快速增長。本文針對GSLB相關技術及解決方案進行介紹。
GSLB技術
市場上存在的GSLB技術能夠概括爲如下幾類:
基於DNS的GSLB
絕大部分使用負載均衡技術的應用都經過域名來訪問目的主機,在用戶發出任何應用鏈接請求時,首先必須經過DNS請求得到服務器的IP地址,基於DNS的GSLB正是在返回DNS解析結果的過程當中進行智能決策,給用戶返回一個最佳的服務IP。用戶應用流程與沒有GSLB時未發生任何變化。這也是市場上主流的GSLB技術。
基於應用重定向的GSLB
基於應用重定向的GSLB是在負載均衡設備收到用戶應用請求並選擇最佳服務IP後,經過應用層協議將用戶請求重定向到所選擇的最佳服務IP。這種方式只適用於支持應用重定向的協議(如HTTP、MMS),且性能較差。
基於IP地址假裝(三角傳輸)的GSLB
有個別負載均衡設備廠商採用這種技術來實現GSLB。當用戶應用請求到達一臺負載均衡設備時,這臺負載均衡設備計算出對於該用戶最佳的服務IP(定義在另外一臺同一廠商負載均衡設備上)並將用戶請求轉發給該IP。第二臺負載均衡設備直接將響應返回用戶,但必須將源地址修改成第一臺負載均衡設備的服務IP。這種方式要求全部站點必須爲同一廠家的負載均衡設備,另外地址假裝的數據包會可能被互聯網中的路由設備過濾掉。由於全部用戶請求都要通過廣域網三角方式傳輸而不是發到最佳的負載均衡設備,用戶訪問效果和性能都比較差。
基於主機路由注入的GSLB(Anycast)
在多個站點定義相同的服務IP,並由負載均衡設備或路由器將該IP的主機路由發送出去,這樣網絡中會存在多條到達該主機地址的路由。因爲路由設備老是選擇最近(Metric最小)的路由轉發數據,用戶的訪問請求老是被轉發到最近的負載均衡設備。這種方式要在不一樣站點廣播相同的主機路由,因爲運營商的限制問題很難實現。另外這種方式策略很是簡單,只能根據最短路由選擇,客戶沒法定義靈活的選擇策略。
根據上面的分析,後面的三種方式都有不少侷限性或性能較差,這也是爲何基於DNS的GSLB成爲主流技術的緣由。在基於DNS的GSLB具體實現中,不一樣廠家的功能會有所不一樣,也有部分用戶本身開發智能DNS實現相似功能。整體來講,一個完善的基於DNS的GSLB設備能夠知足如下需求:
支持任何IP應用。
各服務站點可使用不一樣廠家的本地服務器負載均衡設備或直接使用真實服務器。
GSLB控制設備可直接做爲受權DNS,也能夠配置爲DNS代理方式。DNS代理方式在作GSLB決策控制同時能夠對後端DNS服務器進行負載均衡。當業務量增長時能夠經過增長後端的真實DNS服務器數量進行擴展。
內置國際IANA機構提供的全球各區域地址分配表,且用戶自定義區域能夠包含足夠多的IP前綴。同時區域定義支持樹狀分層結構,如China.Beijing.HaiDian。這些功能在GSLB控制設備進行靜態基於區域選擇服務站點時是必須的。
支持返回A記錄和CNAME等記錄。尤爲在多級GSLB控制時,返回CNAME是必須具有的。
支持豐富的GSLB策略,常見的如往返時間(RTT)、權重、活動服務器等。
具備靈活的自定義腳本用於過濾各類非法DNS請求或***。
強大的DDoS***防禦功能。一旦GSLB控制設備被***癱瘓,全部業務都沒法提供。
基於DNS的GSLB工做原理
下面咱們對基於DNS的GSLB的工做原理進行簡單介紹。
 安全

 

 


上圖中,中心控制節點配置一臺GSLB Controller及數臺指定域名(abc.com)的受權DNS服務器,GSLB Controller除了進行GSLB控制外還能夠對DNS服務器及其餘應用服務器進行負載均衡。設置2個站點(以中國電信和中國網通爲例)提供應用服務。其工做流程以下:
1) 用戶發起請求訪問http://www.abc.com,關於www.abc.com 的DNS請求被送往 Local DNS服務器;
2) Local DNS經過根DNS服務器查詢到abc.com 的受權DNS服務器,Local DNS向受權DNS服務器發DNS請求。
3) GSLB Controller 截獲DNS服務器返回的應答,並基於一組策略選擇最佳的站點VIP 地址,返回給Local DNS服務器。
GSLB Controller也能夠根據事先定義的策略返回CNAME記錄,在大規模的多級GSLB設計中會用到這種方式。Local DNS會遞歸發送DNS請求到負責指定CNAME域的下一級GSLB Controller。
4) Local DNS服務器返回該DNS應答到用戶。
5) 用戶根據解析到的IP地址創建鏈接進行正常訪問。
從GSLB處理流程能夠看出,其核心在GSLB策略。接下來簡單介紹一下經常使用的一些GSLB策略。
1) 各內容站點的「健康情況」
GSLB Controller對各內容站點負載均衡設備上定義的VIP或服務器(沒有本地負載均衡的狀況)進行第四層TCP/UDP健康檢查和第七層應用健康檢查。未能經過健康檢查的站點不會被選爲最佳的內容節點。
2) 地理區域或用戶自定義區域
一個區域爲若干條IP地址前綴。根據用戶本地DNS的IP地址,將特定IP範圍的用戶優先分配到某個經過健康檢查的站點。值得一提的是,因爲DNS自己的工做原理所限,GSLB Controller只能看到用戶本地DNS的IP地址,而不是用戶終端的IP地址。當用戶使用錯誤的本地DNS(如教育網用戶配置網通的DNS服務器)時,GSLB Controller返回的DNS應答將不是最佳的站點。這是基於DNS的GSLB的一個弱點,但因爲絕大部分運營商如今限制其餘運營商的客戶使用本身的DNS,出現這種錯誤配置的比例很是小。
3) IP地址權重
能夠爲DNS應答中的每一個IP地址分配權重,權重決定與其餘候選IP相比分配到該IP的流量比例。
4) 站點(Site)權重
能夠爲每一個Site分配權重,權重決定與其餘候選Site相比分配到該Site的流量比例。
5) 會話能力閾值
經過廠商自由的GSLB協議,GSLB Controller能夠得到每一個站點負載均衡設備當前可用會話數和會話表大小的最大值,當前會話數/最大會話數比值超過定義的閾值時,該站點再也不被選擇。
6) 活動服務器
指一個GSLB節點綁定到一個VIP上的活動真實服務器數量。能夠配置策略優先選擇活動服務器最多的IP地址。
7) 往返時間(RTT)
RTT策略是基於區域以外最經常使用的策略。有兩種模式的RTT測量:Active RTT測量與Passive RTT測量。在實際部署中,因爲網絡限制和性能緣由,Active RTT每每沒法使用,Passive RTT更實用一些。
a) Active RTT 測量
- 當GSLB Controller收到來自LDNS的DNS請求時,GSLB Controller會通知全部站點負載均衡設備對該LDNS進行RTT測量。根據採集到的RTT值,GSLB Controller會選擇RTT值最小的站點的VIP返回給LDNS。
- 因爲Active RTT採用DNS Query或ICMP進行RTT測量,在有些網絡中可能會被安全策略所過濾而沒法工做。
- Active RTT測量會產生額外的DNS Query或ICMP流量,在有些網絡中用戶不但願有太多相似的非用戶流量。
b) Passive RTT測量
- Passive RTT測量不會主動去進行測量,也不會產生額外的數據流量,而是在用戶向返回的VIP創建鏈接時進行採集。
- Passive RTT測量指從內容站點收到一個用戶發出鏈接請求(發送TCN SYN)到接收到用戶的確認(收到TCP ACK)所經歷的時間。而不是簡單的PING的響應時間,能夠更精確的衡量訪問最快的站點。
- Passive RTT的測量值真正反映了用戶的上網感覺 ,在運營商網絡中也不會產生額外流量。也不會受到其餘運營商或網絡的安全策略的影響。
與基於區域的策略相同,用戶配置錯誤的DNS時,基於RTT的選擇也將不是最佳的。
8) 當前可用會話數
9) 站點管理優先級(Admin Preference)
爲每一個站點預設優先級,選擇優先級較高的站點。
10) 最少選擇
選擇從前被選擇的次數最少的節點。
11) 輪詢(Round Robin)
採用輪詢方式選擇站點。
總結
 服務器

儘管基於DNS的GSLB在特殊狀況下(用戶配置錯誤DNS)準確性會下降,但其豐富的策略、可擴展的性能、適用任何IP應用協議、不受互聯網訪問策略影響以及無改變的業務流程等優點使其成爲最主流的GSLB技術,諸多廠家也都在這一技術上不斷進行完善。網絡

R.S.負載均衡

本文出自 「ADC技術博客」 博客,請務必保留此出處http://virtualadc.blog.51cto.com/3027116/624466ide

相關文章
相關標籤/搜索