1前言
在如今的互聯(lián)網(wǎng)時(shí)代,我們的日常生活和工作基本脫離了域名和DNS,比如通過(guò)網(wǎng)站開(kāi)店購(gòu)物,使用百度/谷歌搜索信息,通過(guò)APP看直播游戲。隨著移動(dòng)互聯(lián)網(wǎng)的爆發(fā),為了提高用戶使用網(wǎng)站或應(yīng)用的體驗(yàn),大多數(shù)企業(yè)都購(gòu)買了CDN服務(wù)進(jìn)行內(nèi)容加速,CDN服務(wù)的核心調(diào)度也離不開(kāi)DNS??梢哉f(shuō),DNS與我們的生活和工作息息相關(guān)。如果DNS失敗,將導(dǎo)致互聯(lián)網(wǎng)服務(wù)的廣泛癱瘓,給大多數(shù)互聯(lián)網(wǎng)企業(yè)帶來(lái)巨大損失。
那么我們的電腦怎么開(kāi)網(wǎng)站呢?這跟DNS有什么關(guān)系?為什么大多數(shù)應(yīng)用服務(wù)都需要DNS來(lái)支持?人為什么需要DNS和域名?DNS如何將域名解析成IP地址?如果你對(duì)這些問(wèn)題感興趣,我們來(lái)討論一下DNS的前世。
2 2DNS和域名的由來(lái)
通常,互聯(lián)網(wǎng)計(jì)算機(jī)是通過(guò)IP地址來(lái)識(shí)別和通信的,如112.45.23.56的IP地址,這是不容易讓人記住的,因此產(chǎn)生了域名等字符型識(shí)別。通過(guò)域名,我們可以更方便的記住一臺(tái)電腦的地址,比如42.62.101.185通過(guò)www.fastcp.cn的IP地址。這有點(diǎn)像我們身份證和名字的關(guān)系。身份證號(hào)碼代表我們獨(dú)特的身份。但是因?yàn)殚L(zhǎng),難記,所以用名字代替身份證號(hào)。但是在現(xiàn)實(shí)生活中,身份證號(hào)碼是我們工作的有效標(biāo)識(shí)。通常,我們打開(kāi)的網(wǎng)站由協(xié)議、域名、網(wǎng)站路徑和文件名組成。因此,當(dāng)一個(gè)計(jì)算機(jī)瀏覽器需要打開(kāi)一個(gè)網(wǎng)址時(shí),它必須首先將網(wǎng)址中的域名解析成一個(gè)IP地址,然后從這個(gè)IP地址請(qǐng)求網(wǎng)站內(nèi)容。在解析IP地址的過(guò)程中,DNS必須作為分布式數(shù)據(jù)庫(kù)使用。
在DNS產(chǎn)生之前,人們使用的是HOSTS。用于域名和IP地址之間映射的TXT文件。然而,隨著網(wǎng)絡(luò)上主機(jī)的爆炸式增長(zhǎng),出現(xiàn)了域名沖突、一致性差、流量和負(fù)載過(guò)大等問(wèn)題,使得無(wú)法及時(shí)解析所需的IP地址。1983年,保羅·莫卡培里斯發(fā)明了DNS協(xié)議。1987年正式發(fā)布給RFC 1034和RFC 1035。有興趣的同學(xué)可以下載英文版的RFC閱讀。
DNS(域名系統(tǒng))是互聯(lián)網(wǎng)基礎(chǔ)資源的核心服務(wù),主要用于承載IP地址和互聯(lián)網(wǎng)域名之間的轉(zhuǎn)換。通過(guò)DNS,人們可以更方便快捷地訪問(wèn)互聯(lián)網(wǎng)。DNS是一個(gè)分布式域名的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的各個(gè)部分都可以本地控制和訪問(wèn)。比如CN域名由CNNIC(中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心)管理和控制。DNS解決了流量負(fù)載大、域名沖突、一致性差的問(wèn)題。直到現(xiàn)在,DNS系統(tǒng)仍然在各個(gè)行業(yè)和業(yè)務(wù)中發(fā)揮著巨大的作用。
“如果我能控制你的DNS,我就控制你的世界!”
3DNS系統(tǒng)的組成
DNS系統(tǒng)是為了將域名解析為IP地址而存在的,它由域名空、資源記錄、名稱服務(wù)器和解析器組成。
域名空包含用于存儲(chǔ)資源記錄的空的樹(shù)結(jié)構(gòu)。
資源記錄是與域名相關(guān)的數(shù)據(jù),比如IP和域名的對(duì)應(yīng)關(guān)系。
名稱服務(wù)器用于存儲(chǔ)DNS區(qū)域域名空之間的數(shù)據(jù),并處理解析器發(fā)送的請(qǐng)求。
解析器是用于發(fā)送域名解析請(qǐng)求并將結(jié)果返回給用戶的程序。
當(dāng)計(jì)算機(jī)需要解析域名時(shí),計(jì)算機(jī)通過(guò)調(diào)用本地解析器進(jìn)行DNS查詢。解析器向域名服務(wù)器發(fā)送DNS查詢請(qǐng)求,域名服務(wù)器查詢?cè)搮^(qū)域域名空中的數(shù)據(jù),獲取待查詢域名的資源記錄,并返回給解析器,解析器將返回的結(jié)果反饋給計(jì)算機(jī)或?yàn)g覽器。
4DNS域名空
DNS是通過(guò)域名進(jìn)行索引的,域名是互聯(lián)網(wǎng)上一臺(tái)計(jì)算機(jī)或計(jì)算機(jī)組的名稱,由一串以“點(diǎn)”分隔的字符組成。如下圖所示,域名的結(jié)構(gòu)是一個(gè)倒樹(shù),圖中每個(gè)域名都是一個(gè)分支。這個(gè)反向樹(shù)叫域名空。
一般來(lái)說(shuō),對(duì)于穩(wěn)定的資源記錄,建議將TTL值設(shè)置為較大的值,而對(duì)于經(jīng)常需要更改值的資源記錄,建議設(shè)置較小的值,如60秒。
7DNS解析器
DNS解析器一般指DNS客戶端,用于發(fā)送DNS請(qǐng)求,并將結(jié)果返回給用戶。通常指電腦、手機(jī)、終端設(shè)備、解析軟件工具(如dig、nslookup等)。)
8 8DNS的工作原理
在了解了DNS系統(tǒng)的組成之后,我們?cè)賮?lái)看看DNS是如何工作的,也就是DNS是如何把一個(gè)域名解析成IP地址的。如下圖所示,這是一個(gè)完整的DNS解析過(guò)程:
如上圖所示,一個(gè)完整的DNS域名解析過(guò)程如下:(如果DNS解析器所在的計(jì)算機(jī)或?yàn)g覽器有自己的緩存,它會(huì)先查詢自己計(jì)算機(jī)和瀏覽器的本地緩存,當(dāng)HOST文件中沒(méi)有本地緩存和域名記錄時(shí),就會(huì)觸發(fā)上面的過(guò)程。)
9DNS緩存機(jī)制
通過(guò)上一章提到的DNS請(qǐng)求過(guò)程,在域名解析過(guò)程中,DNS域名服務(wù)器會(huì)將請(qǐng)求域名空之間的數(shù)據(jù)保存到緩存中。DNS緩存可以加快DNS解析,類似于CPU和內(nèi)存的關(guān)系。在每次請(qǐng)求中,DNS服務(wù)器都會(huì)先查詢其緩存中是否有需要查詢的內(nèi)容,如果有,會(huì)自動(dòng)返回緩存中的內(nèi)容,如果沒(méi)有,會(huì)進(jìn)行DNS遞歸或迭代查詢。
DNS緩存不能永久保存,否則當(dāng)DNS記錄發(fā)生變化時(shí),可能無(wú)法及時(shí)更新,導(dǎo)致用戶無(wú)法打開(kāi)對(duì)應(yīng)的域名地址。一般DNS緩存都是有生命周期的,簡(jiǎn)稱TTL值。TTL值是由每個(gè)域名的授權(quán)服務(wù)器管理員的配置決定的,也就是上一章提到的資源記錄的TTL值。默認(rèn)情況下,本地DNS服務(wù)器獲取的資源記錄的TTL值由授權(quán)服務(wù)器配置。但為了減輕遞歸服務(wù)器的壓力,各大運(yùn)營(yíng)商會(huì)通過(guò)手段將大部分域名的TTL值改為更大的值,為用戶帶來(lái)更好的體驗(yàn)。
10DNS查詢
在DNS域名解析過(guò)程中,整個(gè)解析過(guò)程由DNS解析器和DNS服務(wù)器完成。在所有的解析過(guò)程中,很可能會(huì)出現(xiàn)遞歸查詢、迭代查詢、正向查詢、反向查詢等等。
(1)遞歸查詢是指DNS客戶端或解析器向本地本地DNS發(fā)起的查詢。
(2)迭代查詢是指本地本地DNS向授權(quán)服務(wù)器逐步發(fā)起的查詢,即本地DNS向root、cn、com、Baidu.com等發(fā)起的查詢。
(3)正向查詢是指按域名查詢IP地址,即查詢A或AAAA記錄等。
(4)反向查詢是指通過(guò)IP地址查詢主機(jī)名。反向查詢只由查詢的名稱服務(wù)器處理,即收到請(qǐng)求后,如果本地?cái)?shù)據(jù)庫(kù)或緩存中有記錄,則返回;如果沒(méi)有記錄,查詢將被直接放棄,并且不會(huì)進(jìn)行迭代請(qǐng)求。
11如何查詢我現(xiàn)在使用的本地域名系統(tǒng)地址?
(1)如果你是Windows用戶,可以打開(kāi)命令提示符,輸入nslookup或ipconfig /all命令查看你的DNS地址;
(2)如果你是MAC/linux用戶,可以通過(guò)終端輸入cat /etc/resolv.conf或ifconfig查看你的DNS地址;
(3)如果你是手機(jī)用戶,可以通過(guò)你已連接的Wi-Fi信息中的IP地址查看你的DNS地址。
(4)當(dāng)然也可以修改DNS,一般可以改成全局DNS地址,比如114.114.114.114。
DNS是隱藏在互聯(lián)網(wǎng)背后的好幫手。幾乎所有的互聯(lián)網(wǎng)應(yīng)用基本上都需要DNS的支持或幫助才能達(dá)到最佳的通信效果。本文是對(duì)DNS的基本討論。接下來(lái)將基于DNS協(xié)議、DNS架構(gòu)、安全、建設(shè)、運(yùn)維、DNS工具、智能DNS、全局根節(jié)點(diǎn)、頂級(jí)域名、CDN相關(guān)外圍話題。
1.《dns服務(wù)器 互聯(lián)網(wǎng)基礎(chǔ)服務(wù)之DNS—基礎(chǔ)篇》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無(wú)關(guān),侵刪請(qǐng)聯(lián)系頁(yè)腳下方聯(lián)系方式。
2.《dns服務(wù)器 互聯(lián)網(wǎng)基礎(chǔ)服務(wù)之DNS—基礎(chǔ)篇》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來(lái)源地址,http://f99ss.com/caijing/1611662.html