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