標籤:

DNS如何實現全局負載均衡?


DNS全局負載均衡通過智能DNS解析來實現,通常在不同的地區設立多個數據中心,每個數據中心又使用多個運營商的線路。

智能DNS可以通過多種負載均衡策略來將客戶端需要訪問的域名解析到不同的數據中心不同的線路上,比如通過IP地理信息資料庫解析到最近的線路,或者權衡不同線路的繁忙度解析到空閑的線路等等。

除了使用智能DNS解析軟體或者雲服務,多數對可靠性和性能要求高的用戶都會使用硬體的全局負載均衡解決方案。我曾做過數個國有大型銀行、企業的全局負載均衡項目,使用F5和Radware來實現的。

下例的全局負載均衡解決方案中,域名服務商或者授權伺服器將域名的NS記錄指向有智能DNS解析功能的全局負載均衡(GSLB)設備,然後由GSLB設備來進行A記錄解析,如果在多地部署了GSLB設備,它們都應該添加到NS記錄中以保證高可用性,域名服務商處輪詢地返回GSLB地址或者一次性返回全部地址。GSLB設備會對各個數據中心的各個運營商線路公網IP進行健康檢查,並根據全局負載均衡策略來選擇最優的地址解析給用戶。

解析的步驟示意如下圖:

1)
用戶向本級配置的本地DNS伺服器發出查詢請求,如果本地DNS伺服器有該域名的緩存記錄,則返回給用戶,否則進行第2步;

2)
本地DNS伺服器進行遞歸查詢,最終會查詢到域名註冊商處的授權DNS伺服器,這裡可能有多個步驟,圖中只反映最後一步;

3)
授權DNS伺服器返回一條NS記錄給本地DNS伺服器。根據授權DNS伺服器上的不同設置,這條NS記錄可能是指向隨機一個GSLB設備的介面地址或者是所有GSLB設備的介面地址;

4)
本地DNS伺服器向其中一個GSLB地址發出域名查詢請求,如果請求超時會向其它地址發出查詢;

5)
GSLB設備返回一條A記錄給本地DNS伺服器。根據全局負載均衡策略設定的不同可能返回一個或多個VIP地址;

6)
本地伺服器將查詢結果通過一條A記錄返回給用戶,並將緩存這條記錄。

通過DNS解析報文中的TTL(Time To
Live)欄位可以控制客戶端緩存這條記錄的時間,在緩存時間內客戶端會使用舊的查詢結果,當緩存時間超時後才可能重新發出查詢,TTL值過大會導致故障發生時切換時間過長,TTL值太小會造成查詢頻繁,對設備和網路的壓力增大。

如果不了解關於NS記錄、A記錄的知識,請自行百度。


1,DNS配置view功能,即不同來源(local dns)響應(分配)不同節點
2,有管理節點負載能力(簡單化就是健康狀態和load balance)

第一步做精,都要研發和運維付出好多


1、全局的運營商+區域層面的負載均衡,主要功能是就近原則的調度
2、機房或集群內部的負載均衡,主要實現流量均攤、合理利用資源等

第二種可以實現簡單的輪詢、連接數均衡,可以做成複雜的使用服務能力評估的平衡。


通過NS記錄將域名解析指給多台智能DNS,以保障解析高可用,通過IP地址庫及指定演算法進行智能解析,可根據不同運營商、地理位置、內部應用情況進行智能解析分配


推薦閱讀:

TAG:DNS | 負載均衡 |