負載均衡學習之DNS域名解析負載均衡

DNS域名解析負載均衡

DNS(Domain Name System)是網際網路的一項服務,它作為域名和IP地址相互映射的一個分散式資料庫,能夠使人更方便的訪問互聯網。人們在通過瀏覽器訪問網站時只需要記住網站的域名即可,而不需要記住那些不太容易理解的IP地址。

在DNS系統中有一個比較重要的的資源類型叫做主機記錄也稱為A記錄,A記錄是用於名稱解析的重要記錄,它將特定的主機名映射到對應主機的IP地址上。

如果你有一個自己的域名,那麼要想別人能訪問到你的網站,你需要到特定的DNS解析服務商的伺服器上填寫A記錄,過一段時間後,別人就能通過你的域名訪問你的網站了

Domain Name System

一種能進行主機名到IP地址轉換的目錄服務,這就是域名系統(Domain Name System),DNS協議運行在UDP之上,使用埠53

DNS採用分散式設計方案,DNS伺服器分為四類:

  • 根DNS伺服器。
  • 頂級域DNS伺服器。這些伺服器負責頂級域名,如com,org,net,edu和gov以及國家的頂級域名,如uk,fr,ca,jp。
  • 權威DNS伺服器。這些伺服器記錄了主機名到IP地址的映射關係。
  • 本地DNS伺服器(local DNS server)
  • DNS查詢有兩種方式:

  • 遞歸查詢
  • 迭代查詢
  • 從請求主機到本地DNS伺服器的查詢是遞歸的,其餘的查詢是迭代的

    DNS解析過程:

    神奇的解釋權機制(SOA)

    根伺服器擁有一切域名的起始解釋權,但是如果你去問根伺服器它是不會直接告訴你最終答案的。因為如果它要存儲所有的記錄,那它也太累了,這個負載和開銷是驚人的。那它會告訴你什麼呢?它會告訴你應該去問誰,也就是它授權下一級伺服器來解答你的問題。擬人化這個過程

  • 我: root, root 告訴我, segmentfault.com 怎麼走?
  • root: 呵呵,你可以去問.com的dns伺服器,地址是xxxxxx
  • 我: .com, .com 告訴我,segmentfault.com 怎麼走?
  • .com: 呵呵,你可以去問segmentfault.com的dns伺服器(dnspod之類的),地址是xxxxxx
  • 我: dnspod, dnspod 告訴我,segmentfault.com 怎麼走?
  • dnspod: 拿著 xxxxxx,走你
  • DNS負載均衡工作原理

    利用DNS工作原理處理負載均衡的工作原理圖:

    由上圖可以看出,在DNS伺服器中應該配置了多個A記錄,如:

    www.apusapp.com IN A 114.100.20.201;

    www.apusapp.com IN A 114.100.20.202;

    www.apusapp.com IN A 114.100.20.203;

  • 1
  • 2
  • 3
  • 每次域名解析請求都會根據對應的負載均衡演算法計算出一個不同的IP地址並返回,這樣A記錄中配置多個伺服器就可以構成一個集群,並可以實現負載均衡。上圖中,用戶請求www.apusapp.com,DNS根據A記錄和負載均衡演算法計算得到一個IP地址114.100.20.203,並返回給瀏覽器,瀏覽器根據該IP地址,訪問真實的物理伺服器114.100.20.203。所有這些操作對用戶來說都是透明的,用戶可能只知道www.apusapp.com這個域名

    優缺點

    DNS域名解析負載均衡有如下優點:

  • 將負載均衡的工作交給DNS,省去了網站管理維護負載均衡伺服器的麻煩。
  • 技術實現比較靈活、方便,簡單易行,成本低,使用於大多數TCP/IP應用。
  • 對於部署在伺服器上的應用來說不需要進行任何的代碼修改即可實現不同機器上的應用訪問。
  • 伺服器可以位於互聯網的任意位置。
  • 同時許多DNS還支持基於地理位置的域名解析,即會將域名解析成距離用戶地理最近的一個伺服器地址,這樣就可以加速用戶訪問,改善性能。
  • DNS域名解析也存在如下缺點:

  • 目前的DNS是多級解析的,每一級DNS都可能緩存A記錄,當某台伺服器下線之後,即使修改了A記錄,要使其生效也需要較長的時間,這段時間,DNS仍然會將域名解析到已下線的伺服器上,最終導致用戶訪問失敗。
  • 不能夠按伺服器的處理能力來分配負載。DNS負載均衡採用的是簡單的輪詢演算法,不能區分伺服器之間的差異,不能反映伺服器當前運行狀態,所以負載均衡效果並不是太好。
  • 可能會造成額外的網路問題。為了使本DNS伺服器和其他DNS伺服器及時交互,保證DNS數據及時更新,使地址能隨機分配,一般都要將DNS的刷新時間設置的較小,但太小將會使DNS流量大增造成額外的網路問題。
  • 有哪些DNS服務商支持負載均衡呢?

    這是一種比較高級的服務,一般域名註冊商的dns伺服器不會支持,目前我已知支持它的服務商有

    1. AWS Route 53
    2. NSONE
    3. Dyn
    4. dnspod
    5. 萬網——https://wanwang.aliyun.com/

    推薦閱讀:

    伺服器雙IP如何解析
    如何使用Unicode域名進行網路釣魚攻擊?
    NameCheap域名解析教程 —— BasicDNS
    dns的soa記錄與ns記錄到底有什麼不同?

    TAG:學習 | 域名 | 域名解析 | 負載均衡 | 解析 |