DNS服務(wù)器
在現(xiàn)實世界中,當(dāng)您進行閱覽新聞、在線下單、下載文件或觀看直播時,您需要通過訪問域名來訪問目標(biāo)網(wǎng)站,例如 youtube.com、google.com 等。您只需記住這些網(wǎng)站的名稱,而非它們的 IP 地址,因為與網(wǎng)站名稱相比,IP 地址是很難記住的。因此,您需要一個作為 DNS 服務(wù)器的網(wǎng)站/域名地址本。
DNS 在日常生活中非常重要。每個在線的人都需要訪問它,但同時,這對它來說也是一個非常大的挑戰(zhàn)。如果 DNS 服務(wù)器出現(xiàn)故障,整個 Internet 網(wǎng)絡(luò)都將關(guān)閉。
另外,上網(wǎng)的人分布在世界各地,如果每個人都去同一個地方訪問某個服務(wù)器,延遲會非常大。因此,DNS 服務(wù)器必須設(shè)置為高可用、高并發(fā)和分布式的。
因此,它應(yīng)具有如下樹狀層次結(jié)構(gòu):
根 DNS 服務(wù)器:返回頂級域 DNS 服務(wù)器的 IP 地址。
頂級域 DNS 服務(wù)器:返回權(quán)威 DNS 服務(wù)器的 IP 地址。
權(quán)威 DNS 服務(wù)器:返回對應(yīng)主機的 IP 地址。
DNS 解析過程
為了提高 DNS 解析性能,許多網(wǎng)絡(luò)會根據(jù)位置部署DNS 緩存服務(wù)器。DNS 解析過程如下:(這里以訪問 google.com 為例)
客戶端會發(fā)出DNS 請求,詢問 google.com 的 IP 是什么,它會先在瀏覽器緩存中查找 google.com 的 IP 地址。
然后請求將被發(fā)送到本地 DNS 服務(wù)器。本地 DNS 服務(wù)器由您的網(wǎng)絡(luò)服務(wù)供應(yīng)商(ISP, Internet Service Provider) 自動分配,這通常是您的 ISP 提供的路由器。
本地 DNS 服務(wù)器收到來自客戶端的 DNS 請求,它會在其緩存中查找 google.com 的 IP 地址。如果它可以找到對應(yīng)的條目,它將直接將 IP 地址返回給客戶端。否則,本地 DNS 服務(wù)器會詢問它的根域名服務(wù)器:“你能告訴我 google.com 的 IP 地址嗎”?根域名服務(wù)器作為最高級別的 DNS 服務(wù)器,全球共 13 臺。它不會直接解析域名,而起到一個“指路”的作用。
根 DNS 服務(wù)器收到本地 DNS 的請求,發(fā)現(xiàn)要查找域名的后綴是 .com,然后告訴本地 DNS 服務(wù)器:“好的,你要找的既然是 .com 后綴的域名,它是由 .com 管理的。這里是 .com 區(qū)域的頂級域 DNS 服務(wù)器的 IP 地址,去找它問吧”。
本地 DNS 服務(wù)器轉(zhuǎn)向 .com 區(qū)域的頂級域名服務(wù)器,并請求 google.com 的 IP 地址。頂級 .com 區(qū)域 DNS 服務(wù)器再次為該請求指明了方向。它提供了負(fù)責(zé) google.com 的權(quán)威 DNS 服務(wù)器的 IP 地址。
本地 DNS 服務(wù)器然后轉(zhuǎn)向了權(quán)威 DNS 服務(wù)器并詢問 google.com 的 IP 地址。這次,google.com 的權(quán)威 DNS 服務(wù)器是域名解析結(jié)果的原始來源。它會將 google.com 的 IP 地址直接返回到本地 DNS 服務(wù)器。
然后本地 DNS 服務(wù)器將 IP返回給客戶端并將其緩存。至此,DNS 解析完成。
總結(jié)一下,我畫了下面這張圖:
DNS 負(fù)載均衡
內(nèi)部負(fù)載均衡
DNS 服務(wù)器首先進行內(nèi)部負(fù)載均衡。比如,應(yīng)用要訪問數(shù)據(jù)庫,應(yīng)該在應(yīng)用中配置數(shù)據(jù)庫的 IP 地址,還是應(yīng)該配置數(shù)據(jù)庫的域名呢?
很明顯,應(yīng)該配置域名,因為一旦數(shù)據(jù)庫因為某種原因換到另一臺機器上,如果多個應(yīng)用都配置了這個數(shù)據(jù)庫,一旦 IP 地址改變了,所有這些應(yīng)用都需要重新修改。
但是,如果配置了域名,只要在 DNS 服務(wù)器中將域名映射到一個新的 IP 地址就完成了這項工作,如此大大簡化了運維工作。
在此基礎(chǔ)上,我們可以走得更遠(yuǎn)。例如,如何在訪問它的多個應(yīng)用程序之間進行負(fù)載均衡?只需將其配置為域名即可。在域名解析中,我們只需要配置策略,這次返回第一個 IP,下次返回第二個 IP,就可以實現(xiàn)負(fù)載均衡了。
全局負(fù)載均衡
為了保證我們的應(yīng)用程序的高可用性,它們經(jīng)常被部署在多個計算機數(shù)據(jù)中心,而每個地方都會有自己的 IP 地址。
當(dāng)用戶訪問一個域名時,這個 IP 地址可以輪詢多個數(shù)據(jù)中心。如果某個數(shù)據(jù)中心由于某種原因宕機了,只要在 DNS 服務(wù)器中刪除該數(shù)據(jù)中心對應(yīng)的 IP 地址即可。這樣就可以實現(xiàn)一定程度的高可用。
另外,我們肯定希望紐約的用戶訪問紐約的數(shù)據(jù)中心,西雅圖的用戶訪問西雅圖的數(shù)據(jù)中心,這樣客戶體驗會非常好,訪問速度會超級快。這就是全局負(fù)載均衡的概念。
我們來看看它是如何工作的,假設(shè)全國有多個地區(qū),每個地區(qū)都有三個可用區(qū)域。
當(dāng)客戶端要訪問 app.metaleap.com 時,需要將域名轉(zhuǎn)換為 IP 地址才能訪問,所以需要請求本地 DNS 解析器。
本地 DNS 解析器首先檢查本地緩存是否有此記錄。如果有,直接使用。
如果沒有本地緩存,則需要請求本地 DNS 服務(wù)器。
本地 DNS 服務(wù)器也需要檢查本地是否有緩存,如果有則返回。
如果沒有本地 DNS,需要從根 DNS 服務(wù)器遞歸查找 .com 的頂級域名服務(wù)器,直到找到 metaleap.com 的權(quán)威 DNS 服務(wù)器,交給本地 DNS 服務(wù)器。權(quán)威 DNS 服務(wù)器通常會返回真實 IP 地址。
對于不需要全局負(fù)載均衡的簡單應(yīng)用,metaleap.com 的權(quán)威 DNS 服務(wù)器可以直接將域名 app.metaleap.com 解析為一個或多個 IP 地址,然后客戶端可以使用多個 IP 地址進行輪詢來實現(xiàn)簡單的負(fù)載均衡。
但是對于復(fù)雜的應(yīng)用,尤其是跨區(qū)域、跨數(shù)據(jù)中心的大型應(yīng)用,需要更復(fù)雜的全局負(fù)載均衡機制,這需要專門的設(shè)備或服務(wù)器來做這件事——全局負(fù)載均衡器(GSLB,Global Load Balancer)。
在 metaleap.com 的 DNS 服務(wù)器中,一般通過配置CNAME,給 app.metaleap.com 起一個別名,如 app.vip.metaleap.com,然后告訴本地 DNS 服務(wù)器去請求GSLB來解析域名,GSLB在解析這個域名的過程中,可以通過自己的策略來實現(xiàn)負(fù)載均衡。
圖中繪制了兩層GSLB,分別為數(shù)據(jù)中心和區(qū)域。我們希望不同數(shù)據(jù)中心的客戶可以訪問同一數(shù)據(jù)中心的資源,以提高吞吐量并減少延遲。
結(jié)論
DNS 是網(wǎng)絡(luò)世界的通訊錄,可以通過域名搜索地址,因為域名服務(wù)器是按樹狀結(jié)構(gòu)組織的,所以域名搜索采用遞歸的方式,通過緩存來提升性能。
在域名和 IP 的映射過程中,應(yīng)用程序有機會進行基于域名的負(fù)載均衡,可以是簡單的負(fù)載均衡,也可以是基于地址、數(shù)據(jù)中心和區(qū)域的全局負(fù)載均衡。
審核編輯 :李倩
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9321瀏覽量
86102 -
數(shù)據(jù)中心
+關(guān)注
關(guān)注
16文章
4869瀏覽量
72401 -
DNS
+關(guān)注
關(guān)注
0文章
219瀏覽量
19934
原文標(biāo)題:探討 DNS 解析
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
國外物理服務(wù)器詳細(xì)解析
【教程】DNS域名解析服務(wù)systemd-resolved使用指南
![【教程】<b class='flag-5'>DNS</b>域名<b class='flag-5'>解析</b><b class='flag-5'>服務(wù)</b>systemd-resolved使用指南](https://file.elecfans.com/web2/M00/3E/6A/pYYBAGJhBGGAGyDYAACBPQuBZQI711.png)
云解析的高防DNS是什么?高防DNS有什么作用?
DNS服務(wù)器的起點:根服務(wù)器
DNS客戶端無法支持多個名稱服務(wù)器怎么處理?
請問如何強制DHCP服務(wù)器以空網(wǎng)關(guān)和DNS地址進行響應(yīng)?
是否可以在網(wǎng)狀演示中使用DNS而不是服務(wù)器的IP地址?
如何獲取DNS服務(wù)器IP?
如何檢查DNS配置及其重要性
![如何檢查<b class='flag-5'>DNS</b>配置及其重要性](https://file1.elecfans.com/web2/M00/FA/A2/wKgaomaLjLaAPkKrAAG_I0oYNRg952.png)
評論