摘要:根域名服務器是最高層次的,全球共有套,它不直接用于域名解析,而是指明怎樣去查找對應。對象存儲一般會有三個備份,從而實現對存儲讀寫的負載均衡。小結是網絡世界的地址簿。
????為什么在地址欄輸入域名,就能直接訪問到對應服務器?全局負載均衡和內部負載均衡又是什么?這些都和 DNS 解析息息相關,讓我們一起來解密 DNS 解析。
????其實說起 DNS 解析,應該都知道它很像地址簿。就像我們去一家新開的沃爾瑪超市,通過地址簿查出來沃爾瑪在哪條路多少號,然后再去找。
????在網絡世界中,也是這樣的。我們可以記住網站的名稱,但是很難記住網站的 IP 地址,因此需要一個“地址簿”,幫我們將網站名稱轉換成 IP。這個“地址簿”就是 DNS 服務器。
DNS 服務器????對于 DNS 服務器而言,全球每個人上網,都需要訪問它。
????而全球的網民數,據最新統計,已經有 40 億,每個人都訪問它,可想而知 DNS 服務器會有很大的訪問流量壓力(高并發)。
????而且,它還非常重要,一旦出了故障,整個互聯網都將癱瘓(高可用)。
????此外,上網的人分布在全世界各地,如果大家都去同一個地方的某一臺服務器,時延將會非常的(分布式)。
????因此,DNS 服務器一定要具備高可用、高并發、分布式的特點。
????基于此,DNS 服務器設計成樹狀的層次結構。如下圖:
根 DNS 服務器:返回頂級域 DNS 服務器的 IP 地址;
頂級域 DNS 服務器:返回權威 DNS 服務器的 IP 地址;
權威 DNS 服務器:返回相應主機的 IP 地址。
DNS 解析流程????上面說了 DNS 服務器面臨大流量訪問的壓力,因此,為了提高 DNS 的解析性能,很多網站都會就近部署 DNS 緩存服務器。所以,我們常見的 DNS 解析流程就變成了:
客戶端發出 DNS 請求給本地域名服務器。我們訪問博客園,客戶端會問本地域名服務器, www.cnblogs.com 的 IP 是什么?(本地域名服務器,如果網絡是通過 DHCP 配置,本地 DNS 是由你的網絡服務商,如電信、聯通等自動分配,它通常就在網絡服務商的機房里);
本地 DNS 收到來自客戶端的請求,查找“地址簿”,返回 IP 或請求根域名服務器。我們可以理解為服務器上緩存了一張域名與 IP 對應的大表,如果能找到 www.cnblogs.com,就直接返回對應的 IP 地址。如果沒有找到,本地 DNS 會去問它的根域名服務器;
根 DNS 收到來自本地 DNS 的請求,返回 .com 對應的頂級域名服務器的地址。根域名服務器是最高層次的,全球共有 13 套,它不直接用于域名解析,而是指明怎樣去查找對應 IP。它發現請求的域名后綴是 .com,就會返回 .com 對應的頂級域名服務器的地址;
本地 DNS 服務器收到頂級 DNS 服務器地址,請求頂級 DNS 服務器查詢域名 IP;
頂級 DNS 服務器返回權威 DNS 服務器地址。頂級域名服務器就是大名鼎鼎的,負責 .com、.net、.org 這些二級域名,比如 cnblogs.com,它會返回對應的權威 DNS 服務器地址;
本地 DNS 服務器收到權威 DNS 服務器地址,請求權威 DNS 服務器查詢域名 IP。而 cnblogs.com 的權威 DNS 服務器就是域名解析結果的原出處;
權威 DNS 服務器返回對應 IP。權威 DNS 服務器查詢“地址簿”,獲取到域名對應 IP 地址,返回給本地 DNS 服務器;
本地 DNS 服務器收到 IP,返回給客戶端;
客戶端與目標建立連接。
????至此,我們完成了 DNS 的解析過程,整個過程如下圖:
負載均衡????站在客戶端角度,上述過程是一次 DNS 遞歸查詢過程。因為本地 DNS 全權為它代勞,它只要坐等結果就好了。在這個過程中,DNS 除了可以通過名稱映射為 IP 地址外,它還可以做另外一件很重要的事 - 負載均衡。
????還是拿我們逛沃爾瑪超市為例。它可能在一個城市里會有多家店,我們要逛沃爾瑪,可以就近找一家,而不用都去同一家,這就是負載均衡。
DNS 做負載均衡也有花樣可以玩。
1)DNS 做內部負載均衡
????所謂的內部負載均衡,其實很好理解。就像我們的應用訪問數據庫,在應用里配置的數據庫地址。如果配置成 IP 地址,一旦數據庫換到了另外一臺機器,我們就要修改配置。如果我們有很多臺應用同時連一個數據庫,一換 IP,就需要將這些應用的配置全部修改一遍,是不是很麻煩?所以,我們可以將數據地址配置成域名。在更換數據庫位置時,只要在 DNS 服務器里,將域名映射為新的 IP 地址就可以了。
????在這個基礎上,我們可以更進一步 。例如,某個應用要訪問另外一個應用,如果配置另外一個應用的 IP 地址,那么這個訪問就是一對一的。但是當被訪問的應用因流量過大撐不住的時候,我們就需要部署多個應用。這時候,我們就不能直接配置成 IP,而是要配置域名了。只要在域名解析的時候,配置好策略,這次返回一個 IP,下次返回第二個 IP,就實現了負載均衡。
2)DNS 做全局負載均衡
????為了保證我們應用的高可用性,往往會將應用部署在多個機房,每個地方都會有自己的 IP 地址。當用戶訪問某個域名的時候,這個 IP 地址可以輪詢訪問多個數據中心。如果一個數據中心因為某種原因掛了,只要將這個 IP 地址從 DNS 服務器中刪掉就可以了,用戶不會訪問到宕機的服務器,保證了應用的可用性。
????另外,我們肯定希望用戶能訪問就近的數據中心。這樣客戶訪問速度就會快很多,體驗也會好很多,也就實現了全局負載均衡的概念。
負載均衡示例????我們通過 NDS 訪問數據中心對象存儲上的靜態資源為例,來看一看整個過程。
????假設全國有多個數據中心,托管在多個運營商,每個數據中心有三個可用區。對象存儲可以通過跨可用區部署,實現高可用性。在每個數據中心中,都至少部署兩個內部負載均衡器,內部負載均衡器后面對接多個對象存儲的前置服務器(Proxy-server)。那么,請求過程如下圖:
當一個客戶端要訪問 object.yourcompany.com 的時候,需要將域名轉換為 IP 地址進行訪問,所以它要請求本地 DNS 解析器;
本地 DNS 解析器先查看本地的緩存是否有這個記錄。如果有,就直接用,省略后續查詢步驟,提高相應時間;
如果本地無緩存,就需要請求本地的 DNS 服務器;
本地 DNS 服務器一般部署在數據中心或者你所在的運營商網絡中。本地 DNS 服務器也需要看本地是否有緩存,如果有,就直接返回;
本地沒有,通過第 5、6、7 步驟獲取到 IP 地址,緩存到本地 DNS 解析器中,然后在返回給客戶端。
????對于不需要做全局負載均衡的簡單應用來講,yourcompany.com 的權威 DNS 服務器可以直接將 object.yourcompa.com 這個域名解析為一個或者多個 IP 地址,然后客戶端可以通過多個 IP 地址,進行簡單的輪詢,實現簡單的負載均衡。
????但是對于復制的應用,尤其是跨地域跨運營商的大型應用,就需要更加復雜的全局負載均衡機制,因而需要專門的設備或者服務器來做這件事情,這就是全局負載均衡器(GSLB,Global Server Load Balance)。
????在 yourcompany.com 的 DNS 服務器中,一般是通過配置 CNAME 的方式,給 object.yourcompany.com 起一個別名。例如 object.vip.yourcompany.com,然后告訴本地 DNS 服務器,讓它請求 GSLB 解析這個域名,GSLB 就可以在解析這個域名的過程中,通過自己的策略實現負載均衡。
上圖中畫了兩層的 GSLB,是因為分運營商和地域。我們希望不同運營商的客戶,可以訪問對應運營商機房中的資源,這樣不跨運營商訪問,有利于提高吞吐量,減少時延。兩層 GSLB 的過程如下:
第一層 GSLB,通過查看請求它的本地 DNS 服務器所在的運營商,就知道用戶所在的運營商。假設是移動,通過 CNAME 的方式,通過另一個別名 object.yd.yourcompany.com,告訴本地 DNS 服務器去請求第二層的 GSLB;
第二層 GSLB,通過查看請求它的本地 DNS 服務器的地址,知道用戶所在的地理位置,然后將距離用戶位置比較近的一個 Region 的六個內部負載均衡的地址,返回給本地 DNS 服務器;
本地 DNS 服務器將結果返回給本地 DNS 解析器;
本地 DNS 解析器將結果緩存后,返回給客戶端;
客戶端開始訪問屬于相同運營商的,且距離比較近的 Region1 中的對象存儲。當然,客戶端得到了六個 IP 地址,它可以通過負載均衡的方式,隨機或者輪詢選擇一個可用區進行訪問。對象存儲一般會有三個備份,從而實現對存儲讀寫的負載均衡。
小結DNS 是網絡世界的地址簿。可以通過域名查地址,因為域名服務器是按照樹狀結構組織的,因而域名查找是使用遞歸查詢的方式,并通過緩存的方式加快效率;
在域名和 IP 的映射中,給了應用基于域名做負載均衡的機會,可以是簡單的負載均衡,也可以是根據地址和運營商做的全局負載均衡。
參考:
維基百科-域名系統 詞條;
知乎-域名解析;
劉超 - 趣談網絡協議系列課;
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29852.html
摘要:根域名服務器是最高層次的,全球共有套,它不直接用于域名解析,而是指明怎樣去查找對應。對象存儲一般會有三個備份,從而實現對存儲讀寫的負載均衡。小結是網絡世界的地址簿。 ????為什么在地址欄輸入域名,就能直接訪問到對應服務器?全局負載均衡和內部負載均衡又是什么?這些都和 DNS 解析息息相關,讓我們一起來解密 DNS 解析。 ????其實說起 DNS 解析,應該都知道它很像地址簿。就像我...
摘要:構成數據鏈路數據單元數據幀或幀,并對幀定界同步收發順序的控制。以太網規定,一組電信號構成一個數據包,叫做幀。因此,整個幀最短為字節,最長為字節。協議規定網絡地址的協議,叫做協議。現在廣泛采用的是協議第四版,簡稱。 前言 勞于讀書,逸于作文。 原文地址:internet協議入門 博主博客地址:Damonare的個人博客 博主之前寫過一篇博客:網絡協議分析,在這篇博客里通過抓包,具體的分析...
摘要:也就是說,在域名解析的時候,不會將用戶導向真正的網站,而是指向這個緩存的服務器。什么是其實很簡單是基于協議和域名解析的流量調度解決方案。這就相當于每家基于協議,自己實現自己的域名解析,做一個自己的地址簿,而不使用統一的地址簿。 【前五篇】系列文章傳送門: 網絡協議 12 - HTTP 協議:常用而不簡單 網絡協議 13 - HTTPS 協議:加密路上無盡頭 網絡協議 14 - 流媒體...
閱讀 1265·2021-10-14 09:50
閱讀 1566·2019-08-30 15:54
閱讀 1022·2019-08-30 11:22
閱讀 2916·2019-08-30 10:50
閱讀 1800·2019-08-29 18:39
閱讀 3048·2019-08-29 13:07
閱讀 2078·2019-08-28 17:54
閱讀 751·2019-08-26 17:44