1. 程式人生 > >趣談網路協議---DNS協議:網路世界的地址簿

趣談網路協議---DNS協議:網路世界的地址簿

DNS 伺服器 DNS 伺服器,一定要設定成高可用、高併發和分散式的。 在這裡插入圖片描述

  • 根 DNS 伺服器:返回頂級域 DNS 伺服器的 IP 地址。
  • 頂級域 DNS 伺服器:返回區權威 DNS 伺服器的 IP 地址。
  • 權威 DNS 伺服器:返回相應主機的 IP 地址。

DNS 解析流程

為提高 DNS 解析效能,很多網路都會就近部署 DNS 快取伺服器。

  1. 客戶端向本地 DNS 傳送 DNS 請求,解析 www.163.com 的 IP 地址。本地 DNS 由網路服務商(ISP)自動分配。
  2. 本地 DNS 在快取中找到與域名對應的 IP,返回;否則,請求根 DNS。根 DNS 是最高層次的,全球共13套,不直接解析域名,但能指出下一步訪問誰。
  3. 根 DNS 發現是字尾 .com,返回 .com 的頂級 DNS 的地址。
  4. 本地 DNS 轉向問頂級 DNS。
  5. 頂級 DNS 返回 www.163.com 區域的權威 DNS 的地址。
  6. 本地 DNS 轉向問權威 DNS,權威 DNS 解析了 IP 後返回。
  7. 本地 DNS 將 IP 地址返回給客戶端。 在這裡插入圖片描述

負載均衡

1、內部負載均衡

配置域名解析策略,這次返回第一個 IP,下次返回第二個 IP,就可以實現負載均衡了。

2、全域性負載均衡

使用者訪問某個域名時,用 IP 地址輪詢訪問多個數據中心。如何一個數據中心掛了,在 DNS 伺服器中將其對應的 IP 刪掉,實現高可用。

每個使用者訪問離自己最近的資料中心。 在這裡插入圖片描述

全域性負載均衡器(GSLB, Global Server Load Balance)。在 yourcompany.com 的 DNS 伺服器中,一般通過配置 CNAME 的方式,給 object.yourcompay.com 起一個別名,如 object.vip.yourcompany.com,然後告訴本地 DNS 伺服器,去請求 GSLB 解析這個域名,GSLB 就可以在這個解析域名的過程中,通過自己的策略實現負載均衡。

圖中有兩層 GSLB,因為分運營商和地域。這樣,不同運營商的客戶可不跨運營商訪問,提高吞吐量,減少時延。

  1. 第一層 GSLB,通過檢視請求它的本地 DNS 伺服器所在運營商,知道使用者所在運營商。假設時移動,通過 CNAME 的方式,通過另一個別名
    object.yd.yourcompay.com
    , 告訴 本地 GSLB 伺服器去請求第二層的 GSLB。
  2. 第二層 GSLB,通過檢視請求它的本地 DNS 伺服器所在地址,知道使用者的地理位置,將離使用者近的 Region 裡的6個內部負載均衡(SLB,Server Load Balancer) 的地址返回給本地 DNS 伺服器。
  3. 本地 DNS 伺服器將結果返回給本地 DNS 解析器。
  4. 本地 DNS 解析器快取結果後,返回給客戶端。
  5. 客戶會得到屬於相同運營商且距離較近的 Region 1 裡的6個IP地址,隨機/輪詢訪問即可。