什么是DNS
DNS(Domain Name System,域名系統),因特網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)。
DNS域名稱
域名系統作為一個層次結構和分布式數據庫,包含各種類型的數據,包括主機名和域名。DNS數據庫中的名稱形成一個分層樹狀結構稱為域命名空間。域名包含單個標簽分隔點,例如:im.qq.com。
-
FQDN:(Fully Qualified Domain Name)完全合格域名/全稱域名,唯一地標識在 DNS 分層樹中的主機的位置,通過指定的路徑中點分隔從根引用的主機的名稱列表。
下圖顯示與主機稱為 im 內 qq.com DNS 樹的示例。 主機的 FQDN 是 im.qq.com。
DNS域的名稱層次結構
-
根域:dns域名中使用時,規定有尾部句點(.)來指定名稱位于根或更高級別的域層次結構
-
頂級域:用來指示某個國家/地區或組織使用的名稱的類型名稱,例如:.com
-
二級域:個人或組織在Internet上使用的注冊名稱,例如:qq.com
-
子域:已注冊的二級域名衍生的域名,通俗的講就是網站名,例如:www.qq.com
-
主機名:通常情況下,DNS域名的最左側的標簽標識網絡上的特定計算機,例如:h1.www.qq.com
DNS服務器的類型:
DNS域名服務器是用來存儲主機-域名映射信息的,這些服務器具體又可以分為以下幾類:
1、主域名服務器(primary name server)
它是特定域所有信息的權威性信息源。它從域管理員構造的本地磁盤文件中加載域信息,該文件(區文件)包含著該服務器具有管理權的一部分域結構的最精確信息。主服務器是一種權威性服務器,因為它以絕對的權威去回答對其管轄域的任何查詢。
2、從域名服務器(secondary name server)
它可從主服務器中復制一整套域信息。區文件是從主服務器中復制出來的,并作為本地磁盤文件存儲在輔助服務器中。這種復制稱為"區文件復制"。在輔助域名服務器中有一個所有域信息的完整拷貝,可以有權威地回答對該域的查詢。因此,輔助域名服務器也稱作權威性服務器。配置輔助域名服務器不需要生成本地區文件,因為可以從主服務器中下載該區文件。
3、緩存名稱服務器(caching-only server)
可運行域名服務器軟件,但是沒有域名數據庫軟件。它從某個遠程服務器取得每次域名服務器查詢的結果,一旦取得一個,就將它放在高速緩存中,以后查詢相同的信息時就用它予以回答。高速緩存服務器不是權威性服務器,因為它提供的所有信息都是間接信息。對于高速緩存服務器只需要配置一個高速緩存文件,但最常見的配置還包括一個回送文件,這或許是最常見的域名服務器配置。
4、轉發域名服務器
負責所有非本地域名的本地查詢。轉發域名服務器接到查詢請求時,在其緩存中查找,如找不到把請求依次轉發到指定的域名服務器,直到查詢到結果為止,否則返回無法映射的結果。
DNS查詢過程
當客戶端程序要通過一個主機名稱來訪問網絡中的一臺主機時,它首先要得到這個主機名稱所對應的IP地址,因為IP數據報中允許放置的是目地主機的IP地址,而不是主機名稱。可以從本機的hosts文件中得到主機名稱所對應的IP地址,但如果hosts文件不能解析該主機名稱時,只能通過向客戶機所設定DNS服務器進行查詢了。
可以以不同的方式對DNS查詢進行解析:
-
第一種是本地解析,就是客戶端可以使用緩存信息就地應答,這些緩存信息是通過以前的查詢獲得的。
-
第二種是直接解析,就是直接由所設定的DNS服務器解析,使用的是該DNS服務器的資源記錄緩存或者其權威回答(如果所查詢的域名是該服務器管轄的)。
-
第三種是遞歸查詢,即設定的DNS服務器代表客戶端向其他DNS服務器查詢,以便完全解析該名稱,并將結果返回至客戶端。
-
第四種是迭代查詢,即設定的DNS服務器向客戶端返回一個可以解析該域名的其他DNS服務器,客戶端再繼續向其他DNS服務器查詢。
1、本地解析
本地解析的過程如圖所示。客戶機平時得到的DNS查詢記錄都保留在DNS緩存中,客戶機操作系統上都運行著一個DNS客戶端程序。當其他程序提出DNS查詢請求時,這個查詢請求要傳送至DNS客戶端程序。DNS客戶端程序首先使用本地緩存信息進行解析,如果可以解析所要查詢的名稱,則DNS客戶端程序就直接應答該查詢,而不需要向DNS服務器查詢,該DNS查詢處理過程也就結束了。
2、直接解析
如果DNS客戶端程序不能從本地DNS緩存回答客戶機的DNS查詢,它就向客戶機所設定的局部DNS服務器發一個查詢請求,要求局部DNS服務器進行解析。如圖所示,局部DNS服務器得到這個查詢請求,首先查看一下所要求查詢的域名是不是自己能回答的,如果能回答,則直接給予回答,如是不能回答,再查看自己的DNS緩存,如果可以從緩存中解析,則也是直接給予回應。
3、遞歸解析
當局部DNS服務器自己不能回答客戶機的DNS查詢時,它就需要向其他DNS服務器進行查詢。此時有兩種方式,如圖所示的是遞歸方式。局部DNS服務器自己負責向其他DNS服務器進行查詢,一般是先向該域名的根域服務器查詢,再由根域名服務器一級級向下查詢。最后得到的查詢結果返回給局部DNS服務器,再由局部DNS服務器返回給客戶端。
4、迭代解析
當局部DNS服務器自己不能回答客戶機的DNS查詢時,也可以通過迭代查詢的方式進行解析,如圖所示。局部DNS服務器不是自己向其他DNS服務器進行查詢,而是把能解析該域名的其他DNS服務器的IP地址返回給客戶端DNS程序,客戶端DNS程序再繼續向這些DNS服務器進行查詢,直到得到查詢結果為止。
一次完整的DNS解析過程圖解
原創文章,作者:641348038@qq.com,如若轉載,請注明出處:http://www.www58058.com/67736
對dns原理和解析過程整理的非常詳細