天天看點

最全DNS域名解析流程及域名注冊(細節!)

DNS詳解

DNS解析流程詳解
最全DNS域名解析流程及域名注冊(細節!)

圖 1 DNS解析流程圖

​ 1.客戶機上的使用者在應用程式(如web浏覽器)中輸入網址。應用程式首先檢查其浏覽器緩存,如果緩存中有,則這個域名解析過程就結束。如果浏覽器緩存中沒有,浏覽器會查找本地的hosts檔案是否有這個映射關系,如果有,就先調用這個IP位址映射,完成域名解析。如果沒有,應用程式則調用客戶機上的解析器,解析器先向其内部的緩存進行查詢,如果沒有,則建立一個包含伺服器名稱的DNS遞歸查詢消息,并将其傳輸到在計算機的TCP/IP配置中确定的DNS伺服器(指令行中輸入“ipconfig -all”回車,可以檢視到,見圖2),如圖1中的本地DNS伺服器所示。這個專門的遞歸解析器(本地DNS伺服器)性能都會很好,它們一般都會緩存域名解析結果,當然緩存時間是受到域名的失效時間控制的。大約80%的域名解析到這裡就結束了,是以本地DNS伺服器主要承擔了域名的解析工作。

用戶端通常是一個存根解析器 - 内置于作業系統的簡單解析器

緩存:用于存儲解析後的IP位址。當用戶端申請一個需要解析為IP位址的名稱時,在向其DNS伺服器發送請求之前,它首先檢查其本地緩存。

hosts檔案:這種作業系統級别的域名解析規程也被很多黑客利用,通過修改hosts檔案裡的内容把特定的域名解析到他指定的ip位址上,造成所謂的域名劫持。是以在windows中将hosts檔案設定成了readonly,防止被惡意篡改。

本地DNS伺服器:一般預設設定情況下DNS為DHCP配置設定到的營運商的伺服器位址。如果電腦和營運商之間還加了無線或者有線路由,那極有可能路由器本身還内置了一個DNS轉發器,它的作用是将發往他所有的DNS請求轉發到上層DNS,也就是上層ISP的DNS。此時由于路由器本身也接管了下挂電腦的DHCP服務,是以它配置設定給下面電腦的DNS位址就是它自身。實際上就是路由器自身,而路由器的DNS轉發器将請求轉發到上層ISP的DNS。是以這裡說DNS是區域網路或者是營運商的都可以(因為最終都是轉發到營運商)。(注意細節:路由器的DNS轉發器在什麼情況下将請求轉發到上層ISP的DNS?)

最初的時候,解析器至少有一個NS的位址。由于 DNS 根區域位于 DNS 層次結構的頂部,是以遞歸解析器無法在 DNS 查找中被引導到這些位置。是以,每個 DNS 解析器都在其軟體中内置了 13 個 IP 根伺服器位址的清單。每次發起 DNS 查找時,遞歸器的第一個通信就是與這 13 個 IP 位址之一進行的。

最全DNS域名解析流程及域名注冊(細節!)

圖 2 使用手機熱點連接配接筆記本電腦查詢得到的DNS伺服器位址

​ 2.本地DNS伺服器在接收到查詢後,檢查其資源記錄,以确定它是否是包含所請求伺服器名稱所在區域的權威源。如果區域檔案(主檔案)中有,則傳回結果,該解析具有權威性。如果沒有,則向緩存中查詢,如果沒有,并且未用轉發模式,則DNS伺服器将生成一個疊代查詢并将其送出到13台根名稱伺服器中的一台,如圖1所示。根名稱伺服器檢查本地DNS伺服器請求的域名,并查詢其資源記錄(判斷這個域名(.com)是誰來授權管理),以确定該名稱的頂級域名的位址。然後根名稱伺服器向本地DNS伺服器發送應答(即該域對應的頂級域伺服器所在位址),即對該頂級域伺服器位址的一個引用。

​ 如果本地DNS伺服器中沒有查詢到,有兩種方法可以繼續查詢:一種是直接轉發查詢請求到根域DNS伺服器,進行疊代查詢。還有一種就是直接将請求轉發給其他DNS伺服器。将本地DNS伺服器無法解析的查詢轉發給網絡上的其它DNS伺服器,該DNS伺服器即被指定為轉發器。當本地DNS伺服器将查詢轉發給轉發器時,這種查詢通常為遞歸查詢。通過将DNS伺服器指定為轉發器,該伺服器負責所有外部DNS解析,并且可以建立外部位址的緩存,進而減少了查詢遞歸解析器的需求并減少了流量。對于可用帶寬有限的小型公司,DNS轉發可以通過減少帶寬使用和提高DNS請求的執行速度來提高網絡效率。通過DNS轉發處理内部位址的子集通常也很有用。對于具有多個域和子域的較大的Intranet,使用專用伺服器處理對這些域的子集的DNS請求可能會更加有效,專用伺服器将使用條件DNS轉發将請求轉發到該專用伺服器。

​ 遞歸名稱伺服器(本地DNS伺服器)中的根名稱伺服器資訊是需要管理者提前配置的,需要一個包含根名稱伺服器的域名和IP位址的根提示檔案。根提示使非根域的DNS伺服器可以查找到根域DNS伺服器。

一個DNS伺服器向另一個DNS伺服器發送名稱解析請求的過程稱為引用(referrals)。在DNS名稱解析過程中,引用是必不可少的。

全球共有13台根域名伺服器。這13台根域名伺服器中名字分别為“A”至“M”,其中10台設定在美國,另外各有一台設定于英國、瑞典和日本。1個為主根伺服器,放置在美國。其餘12個均為輔根伺服器,其中9個放置在美國,歐洲2個,位于英國和瑞典,亞洲1個,位于日本。一個域名必須首先經過根資料庫的解析後,才能轉到頂級域名伺服器進行解析。這些伺服器使用Anycast 路由基于負荷和距離分發請求。目前,地球上每座有人生活的大陸上都分布着 600 多台 DNS 根伺服器。根區域的最終權限屬于國家電信和資訊管理局 (NTIA),後者是美國商務部的一部分。NTIA 将根區域的管理委托給 Internet 名稱與數字位址配置設定機構 (ICANN)。

有 13 個不同的 IP 位址為 DNS 根區域提供服務,并且全球有數百個備援根伺服器來處理對根區域的請求。

**在極少數情況下,根伺服器将必須更新其 IP 位址。**在這種情況下,遞歸解析器可以繼續使用根區域中的其他 12 個 IP 位址執行 DNS 查找,直到它們的軟體更新為所有 13 台伺服器的正确位址為止。

13台根域名伺服器位址:

A,INTERNIC.NET(美國弗吉尼亞州),IP位址:198.41.0.4

B,美國資訊科學研究所(美國加利弗尼亞州),IP位址:128.9.0.107

C,PSINet公司(美國弗吉尼亞州),IP位址:192.33.4.12

D,馬裡蘭大學(美國馬裡蘭州) IP位址:128.8.10.90

E,美國航空航天管理局(美國加利弗尼亞州),IP位址:192.203.230.10

F,網際網路軟體聯盟(美國加利弗尼亞州),IP位址:192.5.5.241

G,美國國防部網絡資訊中心(美國弗吉尼亞州),IP位址:192.112.36.4

H,美國陸軍研究所(美國馬裡蘭州),IP位址:128.63.2.53

I,Autonomica公司(瑞典斯德哥爾摩),IP位址:192.36.148.17

J,VeriSign公司(美國弗吉尼亞州),IP位址:192.58.128.30

K,RIPE NCC(英國倫敦),IP位址:193.0.14.129

L,IANA(美國弗吉尼亞州),IP位址:198.32.64.12

M,WIDE Project(日本東京),IP位址:202.12.27.33

​ 3.本地DNS伺服器現在擁有請求名稱的頂級域伺服器位址,然後生成一個新的疊代查詢并将其傳輸到頂級域伺服器,如圖1所示。頂級域伺服器檢查請求名稱中的二級域,并将包含該二級域的權威域名伺服器位址的引用傳送回客戶機的DNS伺服器。

引用(referrals):表示對查詢的響應,該響應不包含答案部分(為空),但包含一個或多個權威域名伺服器,這些域名伺服器更加接近所需查詢的問題。該響應通常(總是來自根伺服器和頂級域名伺服器)在“附加資訊”部分中包含所提供伺服器的IP位址。(“授權”-伺服器名稱、“響應資訊”-IP位址)

​ 4.本地DNS伺服器生成另一個疊代查詢,并将其傳輸到二級域伺服器,如圖1所示。如果二級域伺服器是包含請求名稱的區域的權威伺服器,那麼它會查詢其資源記錄以确定請求域名的IP位址,并将其以應答消息的形式發送回該本地DNS伺服器。

​ 5.本地DNS伺服器接收來自二級域伺服器的權威伺服器的應答,将IP位址傳回客戶機系統上的解析器,同時緩存被請求系統的IP位址和特定域的權威伺服器的位址,如圖1所示。解析器将位址轉發給應用程式,然後應用程式可以與使用者指定的伺服器進行IP通信。

域名注冊

​ 域名注冊商是處理域名保留以及為這些域名配置設定IP位址的公司。域名是用于通路網站的字母數字别名。

​ 注冊管理機構是管理頂級域(TLD)的組織,例如以 .com 和 .net 結尾的域。這些注冊管理機構由 Internet 編号配置設定機構(IANA)管理,後者是 Internet 名稱與數字位址配置設定機構(ICANN)的一個部門。

​ 注冊管理機構将域名注冊的商業銷售委托給注冊商。例如,VeriSign是 “.com”域的注冊商。當注冊商向使用者出售“.com”域名注冊時,注冊商必須通知 VeriSign 以便正確定留該域。注冊商還必須向 VeriSign 支付費用,該費用已計入注冊商向最終使用者收取的價格中。

​ 注冊商就像域名的經銷商,注冊管理機構就如制造商。注冊商協助交易并提供支援服務,而注冊管理機構則負責生産和傳遞商品。應當指出,注冊域名和購買汽車之間的主要差別在于,汽車可以歸消費者所有,而域名則不能。

最全DNS域名解析流程及域名注冊(細節!)

圖 3

​ 注冊管理機構擁有所有的域名,而注冊商隻是為客戶提供在有限時間内保留這些域名的機會。域名的最長保留期限為十年。使用者可以保留域名的時間則超過十年,因為注冊商可以無限續期保留,但是使用者從不真正擁有該域名,而隻是在租用。

​ 除了注冊商外,還有一些轉銷商出售域名注冊。這些轉銷商代表注冊商出售域名,以收取中間人報酬。盡管這些轉銷商是合法的,但通常隻是副業,并且可能缺乏專門的客戶支援。轉銷商的網站很少明确表明自己是轉銷商,是以可能難以和注冊商區分。幸運的是,有一種簡單的方法可以知道一家公司是否為合法的注冊商:ICANN 在其網站上公布了各個認證并有效的域名注冊商的名單。

​ 保留頂級域名的每個人都必須填寫該域名的 WHOIS 資訊。這是有關注冊這個域的人(注冊人)的資訊,包括姓名、電子郵件位址、實際位址和電話号碼。許多注冊商提供了私密注冊的選項;根據這種安排,在該域的 WHOIS 清單中提供注冊商的資訊,并且該注冊商充當注冊人的代理。這種私密注冊的安全性僅與注冊商一樣安全,因為實際注冊人的資訊儲存在注冊商的資料庫中。

繼續閱讀