dns服務(wù)器
5.1 DNS服務(wù)器的概念和原理DNS 是域名系統(tǒng)的縮寫, 它是嵌套在階層式域結(jié)構(gòu)中的主機(jī)名稱解析和網(wǎng)絡(luò)服務(wù)的系統(tǒng)。當(dāng)用戶提出利用計(jì)算機(jī)的主機(jī)名稱查詢相應(yīng)的 IP 地址請(qǐng)求的時(shí)候, DNS 服務(wù)器從其
5.1 DNS
服務(wù)器的概念和原理
DNS 是域名系統(tǒng)的縮寫, 它是嵌套在階層式域結(jié)構(gòu)中的主機(jī)名稱解析和網(wǎng)絡(luò)服務(wù)的系統(tǒng)。當(dāng)用戶提出利用計(jì)算機(jī)的主機(jī)名稱查詢相應(yīng)的 IP 地址請(qǐng)求的時(shí)候, DNS 服務(wù)器從其數(shù)據(jù)庫提供所需的數(shù)據(jù)。
§ DNS 域名稱空間:指定了一個(gè)用于組織名稱的結(jié)構(gòu)化的階層式域空間
§ 資源記錄:當(dāng)在域名空間中注冊(cè)或解析名稱時(shí),它將 DNS 域名稱與指定的資源信息對(duì)應(yīng)起來
§ DNS 名稱服務(wù)器: 用于保存和回答對(duì)資源記錄的名稱查詢
§ DNS 客戶:向服務(wù)器提出查詢請(qǐng)求,要求服務(wù)器查找并將名稱解析為查詢中指定的資源記錄類型
,5.1.1 DNS 域名空間
DNS 域名空間是一種樹狀結(jié)構(gòu)如圖 5.1。
目前由InterNIC 管理全世界的 IP 地址,在 InterNIC 之下的 DNS 結(jié)構(gòu)分為多個(gè)Domain, 如圖 5.1中 root domain下的七個(gè) top-level domain 都?xì)w InterNIC 管理,上圖中還顯示了由 InterNIC 分配給微軟的域名空間。Top-level domain 可以再細(xì)分為 second-level domain 如 "Microsoft" 為公司名稱, 而 second-level domain 又可以分成多級(jí)的
subdomain 如 "example 、www" ,在最下面一層被稱為 hostname(主機(jī)名稱) 如 "host-a" ,一般用戶使用完整的名稱來表示 (FQDN),如
"host-a.example.Microsof
t.com" 。
DNS 域名
DNS 利用完整的名稱方式來記錄和說明 DNS 域名,就象用戶在命令行顯示一個(gè)文件或目
錄的路徑,如
"C:WinntSystem32DriversEtcServices.txt" 。同樣在在一個(gè)完整的 DNS 域名中包含著多
級(jí)域名。
如 "host-a.example.microsoft.com." 其中 "host-a" 是最基本的信息(一臺(tái)計(jì)算機(jī)的主機(jī)名稱)"example" 表示主機(jī)名稱為host-a 的計(jì)算機(jī)在這個(gè)子域中注冊(cè)和使用它的主機(jī)名稱 ,"microsoft" 是 "example" 的父域或相對(duì)的根域 (即 second-level domain),"com" 是用于表示商業(yè)機(jī)構(gòu)的top-level domain ,最后的句點(diǎn)表
示域名空間的根 (root)。
,區(qū)域(zone)
區(qū)域 (zone) 是一個(gè)用于存儲(chǔ)單個(gè) DNS 域名的數(shù)據(jù)庫,它是域名稱空間樹狀結(jié)構(gòu)的一部分, DNS 服務(wù)器是以 zone 為單位來管理域名空間的,zone 中的數(shù)據(jù)保存在管理它的 DNS 服務(wù)器中。當(dāng)在現(xiàn)有的域中添加子域時(shí),該子域既可以包含在現(xiàn)有的 zone 中,也可以為它創(chuàng)建一個(gè)新 zone 或包含在其它的 zone 中。一個(gè) DNS 服務(wù)器可以管理一個(gè)或多個(gè) zone ,同時(shí)一個(gè) zone 可以由多個(gè) DNS 服務(wù)器來管理。 用戶可以將一個(gè)
domain 劃分成多個(gè) zone 分別進(jìn)行管理以減輕網(wǎng)絡(luò)管理的負(fù)荷,如圖 5.2
所
,示,microsoft.com 是一
個(gè)域,用戶可以將它劃分
為兩個(gè) zone :
microsoft.com 和
example.Microsoft.com,
zone 的數(shù)據(jù)分別保存在
單獨(dú)的 DNS 服務(wù)器中。因
為
zone"example.Microsoft
.com" 是從
"domain" 延伸而來,所以用戶可以將 domain"microsoft.com" 稱為
zone"example.Microsoft.com" 的 zone root domain。
5.1.2 DNS 查詢的工作方式
當(dāng) DNS 客戶機(jī)向 DNS 服務(wù)器提出查詢請(qǐng)求時(shí),每個(gè)查詢信息都包括兩部分信息: § 一個(gè)指定的 DNS 域名,要求使用完整名稱
(FQDN)
§ 指定查詢類型,既可以指定資源記錄類型又
可以指定查詢操作的類型
,如指定的名稱為一臺(tái)計(jì)算機(jī)的完整主機(jī)名稱"host-a.example.microsoft.com.", 指定的查詢類型為名稱的A (address) 資源記錄。可以理解為客戶機(jī)詢問服務(wù)器" 你有關(guān)于計(jì)算機(jī)的主機(jī)名稱為'hostname.example.microsoft.com.' 的地址記錄嗎?當(dāng)客戶機(jī)收到服務(wù)器的回答信息時(shí),它解讀該信息,從中獲得查詢名稱的 IP
地址。
DNS 的查詢解析可以通過多種方式實(shí)現(xiàn)。客戶機(jī)利用緩存中記錄的以前的查詢信息直接回答查詢請(qǐng)求, DNS 服務(wù)器利用緩存中的記錄信息回答查詢請(qǐng)求, DNS 服務(wù)器通過查詢其它服務(wù)器獲得查詢信息并將它發(fā)送給客戶機(jī)。這種查
詢方式稱為遞歸查詢。
另外, 客戶機(jī)通過 DNS 服務(wù)器提供的地址直接嘗試向其它 DNS 服務(wù)器提出查詢請(qǐng)求。這
種查詢方式稱為反復(fù)查詢。
當(dāng) DNS 客戶機(jī)利用 IP 地址查詢其名稱
時(shí),被稱為反向查詢。
本地查詢:
,下圖 5.3顯示了 DNS 查詢的完整過程:
當(dāng)在客戶機(jī)中 Web 瀏覽器中輸入一個(gè) DNS 域名,則客戶機(jī)產(chǎn)生一個(gè)查詢并將查詢傳給 DNS 客戶服務(wù)利用本機(jī)的緩存信息進(jìn)行解析,如果查
詢信息可以被解析則完成了查詢。
本機(jī)解析所用的緩存信息可以通過兩種方
式獲得:
§ 如果客戶機(jī)配置了 host 文件,在客戶機(jī)啟動(dòng)是 host 文件中的名稱與地址映射將被加載
到緩存中。
§ 以前查詢時(shí) DNS 服務(wù)器的回答信息將在緩
存中保存一段時(shí)間
如果在本地?zé)o法獲得查詢信息,則將查詢請(qǐng)求發(fā)送給 DNS 服務(wù)器。查詢請(qǐng)求首先發(fā)送給主 DNS 服務(wù)器,當(dāng) DNS 服務(wù)器接到查詢后,首選在服務(wù)器管理的區(qū)域的記錄中查找,如果找到相應(yīng)的記錄,則利用此記錄進(jìn)行解析。如果沒有區(qū)
,域信息可以滿足查詢請(qǐng)求,服務(wù)器在本地的緩存中查找,如果找到相應(yīng)的記錄則查詢過程結(jié)束。 如果在主 DNS 服務(wù)器中仍無法查找到答案,則利用遞歸查詢進(jìn)行名稱的全面解析,這需要網(wǎng)絡(luò)中的其它 DNS 服務(wù)器協(xié)助,默認(rèn)情況下
服務(wù)器支持遞歸查詢。
為了 DNS 服務(wù)器可以正常
的進(jìn)行遞歸查詢,首選需要
一些關(guān)于在 DNS 域名空間
中的其它 DNS 服務(wù)器的信
息以便通信。信息以 root
hints 的形式提供一個(gè)關(guān)于
其它 DNS 服務(wù)器的列表。
利用 root hints DNS 服務(wù)
器可以進(jìn)行完整的遞歸查
詢。
如圖5.4顯示了利用遞
歸查詢來查詢名稱為
"host-b.example.microsof
t.com." 的計(jì)算機(jī)的過程:
首選,主DNS 服務(wù)器
解
,析這個(gè)完整名稱,以確定它
屬于那個(gè) top-level
domain, 即 "com" 。接著它
利用轉(zhuǎn)寄查詢的方式向
"com" DNS 服務(wù)器查詢以獲
得 "microsoft.com" 服務(wù)
器的地址,然后以同樣的方
法它從 "microsoft.com"
服務(wù)器獲得
"example.microsoft.com"
服務(wù)器的地址,最后它與名
為
"example.microsoft.com." 的DNS 服務(wù)器進(jìn)行通信,由于用戶所要查詢的主機(jī)名稱包含在該服務(wù)器管理的區(qū)域中,它向主 DNS 服務(wù)器方發(fā)送一個(gè)回答,主 DNS 服務(wù)器將這個(gè)回答轉(zhuǎn)發(fā)給提出查詢的客戶機(jī),到此遞歸查詢過程結(jié)束。
返回多個(gè)查詢響應(yīng)
在前面所描述的查詢都假設(shè)在查詢過程結(jié)束時(shí)只一個(gè)肯定回答信息返回給客戶機(jī),然而在
,實(shí)際查詢時(shí)還可能返回其它回答信息: § 授權(quán)回答 (authoritative answer):在返回給客戶機(jī)的肯定回答中加入了授權(quán)字節(jié),指明
信息是從查詢名稱的授權(quán)服務(wù)器獲得的 § 肯定回答 (positive answer):由被查詢的RR (resource records)或一個(gè)RRs 列表組成,與查詢的DNS 名稱和查詢信息中的記錄類型相匹
配。
§ 提名回答 (referral answer ):包含未在查詢中指定的附加資源記錄,它返回給那些不支持遞歸查詢的客戶機(jī),這些附加信息可以幫助客戶
機(jī)繼續(xù)進(jìn)行轉(zhuǎn)寄查詢
§ 否定回答 (negative answer ):當(dāng)遇到以
下情況之一時(shí),服務(wù)器發(fā)送否定回答 § 授權(quán)服務(wù)器報(bào)告所查詢的名稱不在 DNS 域
名空間內(nèi)
§ 授權(quán)服務(wù)器報(bào)告所查詢的名稱在 DNS 域名空間內(nèi),但沒有記錄與查詢指定的名稱想匹配
緩存與 TTL
當(dāng) DNS 服務(wù)器通過外界查詢到 DNS 客戶機(jī)所需的信息后,它會(huì)將此信息在緩存中保存一份,以便下次客戶機(jī)再查詢相同的記錄時(shí),利用