DNS的查詢方式

原文轉自:http://blog.sina.com.cn/s/blog_4078ccd60101cj6r.html

當客戶端程序要通過一個主機名稱來訪問網絡中的一臺主機時,它首先要得到這個主機名稱所對應的IP地址,因爲IP數據報中允許放置的是目地主機的IP地址,而不是主機名稱。可以從本機的hosts文件中得到主機名稱所對應的IP地址,但如果hosts文件不能解析該主機名稱時,只能通過向客戶機所設定DNS服務器進行查詢了。

說明:在UNIX系統中,可以設置hostsdns的使用次序。

可以以不同的方式對DNS查詢進行解析。第一種是本地解析,就是客戶端可以使用緩存信息就地應答,這些緩存信息是通過以前的查詢獲得的;第二種是直接解析,就是直接由所設定的DNS服務器解析,使用的是該DNS服務器的資源記錄緩存或者其權威回答(如果所查詢的域名是該服務器管轄的);第三種是遞歸查詢,即設定的DNS服務器代表客戶端向其他DNS服務器查詢,以便完全解析該名稱,並將結果返回至客戶端。第四種是迭代查詢,即設定的DNS服務器向客戶端返回一個可以解析該域名的其他DNS服務器,客戶端再繼續向其他DNS服務器查詢。

1.本地解析

本地解析的過程如圖14-2所示。客戶機平時得到的DNS查詢記錄都保留在DNS緩存中,客戶機操作系統上都運行着一個DNS客戶端程序。當其他程序提出DNS查詢請求時,這個查詢請求要傳送至DNS客戶端程序。DNS客戶端程序首先使用本地緩存信息進行解析,如果可以解析所要查詢的名稱,則DNS客戶端程序就直接應答該查詢,而不需要向DNS服務器查詢,該DNS查詢處理過程也就結束了。
     DNS查詢過程


2.直接解析

如果DNS客戶端程序不能從本地DNS緩存回答客戶機的DNS查詢,它就向客戶機所設定的局部DNS服務器發一個查詢請求,要求局部DNS服務器進行解析。如圖14-3所示,局部DNS服務器得到這個查詢請求,首先查看一下所要求查詢的域名是不是自己能回答的,如果能回答,則直接給予回答,如是不能回答,再查看自己的DNS緩存,如果可以從緩存中解析,則也是直接給予迴應。

 DNS查詢過程


3.遞歸解析

當局部DNS服務器自己不能回答客戶機的DNS查詢時,它就需要向其他DNS服務器進行查詢。此時有兩種方式,如圖14-4所示的是遞歸方式。局部DNS服務器自己負責向其他DNS服務器進行查詢,一般是先向該域名的根域服務器查詢,再由根域名服務器一級級向下查詢。最後得到的查詢結果返回給局部DNS服務器,再由局部DNS服務器返回給客戶端。

DNS查詢過程




4.迭代解析

當局部DNS服務器自己不能回答客戶機的DNS查詢時,也可以通過迭代查詢的方式進行解析,如圖14-5所示。局部DNS服務器不是自己向其他DNS服務器進行查詢,而是把能解析該域名的其他DNS服務器的IP地址返回給客戶端DNS程序,客戶端DNS程序再繼續向這些DNS服務器進行查詢,直到得到查詢結果爲止。

DNS查詢過程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章