DNS 域名系統(tǒng)

域名系統(tǒng) (DNS) 是面向域名和其他互聯(lián)網(wǎng)資源的分層命名系統(tǒng)。DNS 可以看作是互聯(lián)網(wǎng)的地址簿;它的一項(xiàng)主要功能是將域名映射到主機(jī) IP 地址。
DNS 以采用客戶端/服務(wù)器模式的分布式數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行維護(hù)。解析程序(客戶端程序)查詢?cè)摂?shù)據(jù)庫(kù)以獲取信息。域名服務(wù)器(服務(wù)器程序)使用從本地存儲(chǔ)的資源記錄中獲取的信息進(jìn)行響應(yīng)。

DNS 命名空間

DNS 命名空間看作一個(gè)具有一個(gè)根、若干節(jié)點(diǎn)和若干子樹(shù)的反轉(zhuǎn)樹(shù)。
每個(gè)節(jié)點(diǎn)會(huì)被分配一個(gè)文本標(biāo)簽(根節(jié)點(diǎn)除外,根節(jié)點(diǎn)會(huì)被分配一個(gè)空的零長(zhǎng)度標(biāo)簽)。每個(gè)子樹(shù)代表 DNS 數(shù)據(jù)庫(kù)的一部分,可以將其看作一個(gè)網(wǎng)域或子網(wǎng)域。

域名是由英文句點(diǎn)連接的文字標(biāo)簽的序列,可引導(dǎo)至樹(shù)中的某個(gè)特定節(jié)點(diǎn)。域名最長(zhǎng)可以有 63 個(gè)字符。

網(wǎng)域

網(wǎng)域是有自己的自主權(quán)和管轄權(quán)的管理單元。網(wǎng)域可以看作是 DNS 域名命名空間內(nèi)的子樹(shù)。
網(wǎng)域可以按級(jí)別(頂級(jí)、二級(jí))或者按引用名來(lái)引用。

根地區(qū)
根地區(qū)是 DNS 域名命名空間中的頂級(jí)地區(qū)。根地區(qū)包含所有互聯(lián)網(wǎng)網(wǎng)域。

頂級(jí)網(wǎng)域
頂級(jí)網(wǎng)域 (TLD) 有時(shí)也稱為一級(jí)網(wǎng)域,是 DNS 根地區(qū)的子網(wǎng)域。頂級(jí)網(wǎng)域包括通用頂級(jí)網(wǎng)域 (gTLD) 和國(guó)家/地區(qū)代碼頂級(jí)網(wǎng)域 (ccTLD)。

二級(jí)網(wǎng)域
二級(jí)網(wǎng)域 (SLD) 是頂級(jí)網(wǎng)域的子網(wǎng)域。

三級(jí)網(wǎng)域
三級(jí)網(wǎng)域是二級(jí)網(wǎng)域的子網(wǎng)域,以此類推。

unnamed (2).png
子網(wǎng)域

子網(wǎng)域是網(wǎng)域內(nèi)的子樹(shù)。子網(wǎng)域的名稱將包含它所屬的網(wǎng)域的名稱。例如,www.google.comgoogle.com 網(wǎng)域的子網(wǎng)域;而 google.com 是 .com 網(wǎng)域的子網(wǎng)域。所有網(wǎng)域都是根網(wǎng)域的子網(wǎng)域。

unnamed (3).png
域名服務(wù)器

DNS域名服務(wù)器是響應(yīng)關(guān)于網(wǎng)域資源信息的請(qǐng)求的系統(tǒng)。
域名服務(wù)器會(huì)被分配給 DNS 節(jié)點(diǎn),具有一個(gè)或多個(gè)網(wǎng)域的管轄權(quán),并為這些網(wǎng)域存儲(chǔ)資源記錄。
域名服務(wù)器的一項(xiàng)主要功能是將域名和主機(jī)名轉(zhuǎn)換為 IP 地址(使用資源記錄)。而 IP 地址又用于定位網(wǎng)域、主機(jī)和互聯(lián)網(wǎng)上的其他資源。

資源記錄

資源記錄提供關(guān)于網(wǎng)域的信息,并標(biāo)識(shí)網(wǎng)域中的資源。資源記錄存儲(chǔ)在域名服務(wù)器上。

地區(qū)

地區(qū)是包含一個(gè)或多個(gè) DNS 網(wǎng)域或子網(wǎng)域的管理單元。
地區(qū)文件是包含一條或多條資源記錄的文本文件。
地區(qū)記錄是資源記錄。

查詢過(guò)程

使用dig顯示整個(gè)查詢過(guò)程。

// 第一段是查詢參數(shù)和統(tǒng)計(jì)
; <<>> DiG 9.9.5-3ubuntu0.8-Ubuntu <<>> baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52636
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 5, ADDITIONAL: 5

// 第二段是查詢內(nèi)容:查詢域名baidu.com的A記錄,A是Address
;; QUESTION SECTION:
;baidu.com.         IN  A

// 第三段是DNS服務(wù)器的答復(fù)
// baidu.com有兩個(gè)A記錄,即2個(gè)ip地址
// 600是TTL值(Time to live 的縮寫),表示緩存時(shí)間,即600秒之內(nèi)不用重新查詢。
;; ANSWER SECTION:
baidu.com.      600 IN  A   39.156.69.79
baidu.com.      600 IN  A   220.181.38.148

// 第四段顯示baidu.com的NS記錄(Name Server的縮寫),即哪些服務(wù)器負(fù)責(zé)管理baidu.com的DNS記錄
// 結(jié)果顯示baidu.com共有5條NS記錄,即5個(gè)域名服務(wù)器,向其中任一臺(tái)查詢就能知道baidu.com的IP地址是什么
;; AUTHORITY SECTION:
baidu.com.      86400   IN  NS  ns4.baidu.com.
baidu.com.      86400   IN  NS  ns3.baidu.com.
baidu.com.      86400   IN  NS  ns2.baidu.com.
baidu.com.      86400   IN  NS  dns.baidu.com.
baidu.com.      86400   IN  NS  ns7.baidu.com.

// 第五段是上面5個(gè)域名服務(wù)器的IP地址,這是隨著前一段一起返回的
;; ADDITIONAL SECTION:
ns3.baidu.com.      168799  IN  A   112.80.248.64
dns.baidu.com.      48351   IN  A   202.108.22.220
ns4.baidu.com.      170631  IN  A   14.215.178.80
ns7.baidu.com.      86151   IN  A   180.76.76.92
ns2.baidu.com.      52043   IN  A   220.181.33.31

// 第六段是DNS服務(wù)器的一些傳輸信息
// 機(jī)的DNS服務(wù)器是127.0.1.1,查詢端口是53(DNS服務(wù)器的默認(rèn)端口),以及回應(yīng)長(zhǎng)度是229字節(jié)
;; Query time: 2 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Wed Jul 01 10:04:37 CST 2020
;; MSG SIZE  rcvd: 229
DNS查詢算法

主機(jī)向本地域名服務(wù)器的查詢一般都是采用遞歸查詢,即如果主機(jī)所詢問(wèn)的本地域名服務(wù)器不知道被查詢域名的IP地址,那么本地域名服務(wù)器就以DNS客戶的身份,向其他根域名服務(wù)器繼續(xù)發(fā)出查詢請(qǐng)求報(bào)文,而不是讓該主機(jī)自己進(jìn)行下一步的查詢。因此,遞歸查詢返回的查詢結(jié)果或是所要查詢的IP地址,或是報(bào)錯(cuò)。

本地域名服務(wù)器向根服務(wù)器的查詢通常采用迭代查詢,即當(dāng)根域名服務(wù)器收到本地域名服務(wù)器發(fā)出的迭代查詢請(qǐng)求報(bào)文時(shí),要么給出所要查詢的IP地址,要么告訴本地域名服務(wù)器“下一次應(yīng)向那個(gè)域名服務(wù)器進(jìn)行查詢”。然后讓本地域名服務(wù)器進(jìn)行后續(xù)的查詢。根域名服務(wù)器通常把自己知道的頂級(jí)域名服務(wù)器的IP地址告訴本地域名服務(wù)器,讓本地域名服務(wù)器再向頂級(jí)域名服務(wù)器查詢。頂級(jí)域名服務(wù)器在收到本地域名服務(wù)器的查詢請(qǐng)求后,要么給出所要查詢的IP地址,要么告訴本地域名服務(wù)器下一步應(yīng)當(dāng)向哪一個(gè)權(quán)限域名服務(wù)器進(jìn)行查詢。本地域名服務(wù)器就這樣進(jìn)行迭代查詢。

DNS負(fù)載均衡

當(dāng)一個(gè)網(wǎng)站有足夠多的用戶的時(shí)候,假如每次請(qǐng)求的資源都位于同一臺(tái)機(jī)器上面,那么這臺(tái)機(jī)器隨時(shí)可能會(huì)蹦掉。處理辦法就是用DNS負(fù)載均衡技術(shù),它的原理是在DNS服務(wù)器中為同一個(gè)主機(jī)名配置多個(gè)IP地址,在應(yīng)答DNS查詢時(shí),DNS服務(wù)器對(duì)每個(gè)查詢將以DNS文件中主機(jī)記錄的IP地址按順序返回不同的解析結(jié)果,將客戶端的訪問(wèn)引導(dǎo)到不同的機(jī)器上去,使得不同的客戶端訪問(wèn)不同的服務(wù)器,從而達(dá)到負(fù)載均衡的目的。例如可以根據(jù)每臺(tái)機(jī)器的負(fù)載量,該機(jī)器離用戶地理位置的距離等等。

參考文獻(xiàn)

DNS 簡(jiǎn)介
DNS 原理入門
DNS的概念、用途、查詢算法
DNS 介紹

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容