1、Chapter 17 網域名稱系統,目標,本章結束後,您將能夠: 了解 如何構成 DNS 知道 DNS 中的網域 知道名稱或位址的對應如何被解析 熟悉詢問訊息及回應訊息的格式 了解為什麼需要 DDNS,17.1 命名空間,因為 IP 位址是唯一的,所以指派給機器的名稱也必須是唯一的。一個命名空間 ( name space ) 可以由以下兩種方式組成:單層式 ( flat ) 或階層式 ( hierarchical )。,本節所討論的主題包括:,單層式命名空間 階層式命名空間,17.2 網域名稱空間,網域名稱空間 ( domain name space ) 的設計就是採用階層式命名空間的方式。在
2、這種設計之下,某個名稱被定義在一個反樹狀 ( inverted-tree ) 結構內,其根位於頂點。這顆樹最多可以有 128 個階層,從第 0 層的根到第 127 層 。,本節所討論的主題包括:,標記 網域名稱 網域,17.3 名稱空間的分布,網域名稱空間裡的資訊被分散地儲存在很多台電腦上,我們稱這些電腦為 DNS 伺服器 ( DNS server )。,本節所討論的主題包括:,名稱伺服器的階層架構 地區 根伺服器 主伺服器與副伺服器,主伺服器由其硬碟載入所有訊息,副伺服器由主伺服器載入所有訊息。如果副伺服器下載來自主伺服器的訊息時,這稱為地區傳送( zone transfer )。,請注意:
3、,17.4 網際網路中的DNS,網域名稱空間 ( 樹狀 ) 可劃分成三個部分:一般網域 ( generic domain )、國家網域 ( country domain )、與反向網域 ( inverse domain ) 。,本節所討論的主題包括:,一般網域 國家網域 反向網域 註冊機構,17.5 對應解析,將一個名稱對應到一個位址,或將一個位址對應到一個名稱,被稱為名稱位址對應解析 ( name-address resolution )。,本節所討論的主題包括:,解析者 將名稱對應到位址 把位址對應到名稱 遞迴式求解 疊代式求解 快取,17.6 DNS 訊息,DNS的詢問訊息 ( quer
4、y message ) 包含一個標頭及問題紀錄( question record );而DNS的回應訊息( response message ) 則包含一個標頭、問題紀錄( question record )、回答紀錄( answer record )、管轄紀錄( authoritative record ) 及一些額外紀錄( additional record ) 。,本節所討論的主題包括:,標頭,17.7 紀錄的類型,DNS 使用 2 種類型的紀錄。問題紀錄 ( question record ) 被使用於詢問訊息及回應訊息的問題區域內。資源紀錄 ( resource record ) 被
5、使用於回應訊息裡的回答區域、管轄區域、及額外資訊區域內。,本節所討論的主題包括:,問題紀錄 資源紀錄,17.8 壓縮,DNS 規定其網域名稱若是重複出現時,要以差量指標( offset pointer ) 取代之。DNS 定義了一個 2 個位元組長的差量指標,用來指到之前出現名稱的地方。,範例1,一個解析者送出一個詢問訊息,向本地的 DNS 伺服器要求尋找主機 chal.fhda.edu. 的 IP 位址。這個範例的詢問與回應訊息我們分開討論。 圖17.21說明由解析者所送出的詢問訊息。最前面 2 個位元組為識別碼 ( 1333 ) 做為序號及關聯相同序號的回應訊息。因為解析者可能送出很多詢問
6、給相同的伺服器,這個識別碼可以幫忙亂序抵達之回應的排序動作。下一個位元組為旗標,其十六進位值為0 x0100,而二進制值為0000000100000000,將它分成以下各欄位來表示會比較有意義:,QR OpCode AA TC RD RA Reserved rCode 0 0000 0 0 1 0 000 0000,範例1 (續),QR 位元定義此訊息為一詢問訊息。OpCode ( 運作碼 ) 為0000,代表這是標準詢問。RD 位元被設定為 1。各旗標欄位的描述請參考圖17.16。此訊息只包含一個問題紀錄,網域名稱為4chal4fhda3edu0。接下來的 2 個位元組定義其詢問類別為 IP
7、 位址。最後 2 個位元組定義詢問等級為Internet。 圖17.22 說明了伺服器的回應訊息。回應與詢問相似,除了旗標不同及回答紀錄個數為 1 之外。旗標為0 x8180,其二進制值為100000011000000,我們再一次將它分成以下各欄位來表示:,QR OpCode AA TC RD RA Reserved rCode 1 0000 0 0 1 1 000 0000,範例1 (續),QR 位元定義此訊息為回應訊息,OpCode ( 運作碼 ) 為0000代表標準詢問。RA、RD 都是設定為1。此訊息包括一個問題紀錄及一個回答紀錄。 問題紀錄和詢問訊息中的相同 ( 重複 ),所以回答紀
8、錄有一個指標 0 xC00C ( 被分成兩行 ),用來指向問題紀錄,以避免重複網域名稱。 接下來的欄位定義網域類別 ( 位址 )。之後那個欄位定義網域等級 ( Internet )。數值為 12,000 那一欄是TTL ( 代表12,000秒 )。接著是資源資料的長度,之後為 IP 位址153.18.8.105。,範例2,一台 FTP 伺服器收到來自位址 153.2.7.9 的 FTP 用戶端封包,FTP伺服器要確認此 FTP 用戶是否為一合法授權用戶。 FTP 伺服器可以詢問一個含有授權用戶名稱列表的檔案,但是此檔案只列出網域名稱,而 FTP 伺服器只有從剛剛收到的 IP 資料包中的來源位址
9、獲得要求的用戶端之 IP位址。 所以,FTP 伺服器要求解析者 ( DNS用戶端 ) 送一個反向詢問給 DNS 伺服器,要找出這個 FTP 用戶的名稱,這個範例的詢問與回應訊息我們分開討論。,範例2 (續),圖17.23說明了解析者傳送給伺服器的詢問訊息。前 2 個位元組為識別碼 ( 0 x1200 )。接著旗標值為0 x0900,其二進制值為0000100100000000,我們將它分成以下各欄位來表示: OpCode ( 運作碼 ) 為0001,代表是反向詢問。訊息中只有一個問題紀錄,網域名稱為19171231537in-addr4arpa。接下來的 2 個位元組定義詢問類別為 PTR。最
10、後 2 個位元組定義詢問等級為 Internet。,QR OpCode AA TC RD RA Reserved rCode 0 0001 0 0 1 0 000 0000,範例2 (續),圖17.24 說明了回應訊息。旗標值為 0 x8D80,二進制為1000110110000000,我們將它分成以下各欄位來表示:,QR OpCode AA TC RD RA Reserved rCode 1 0001 1 0 1 1 000 0000,範例3,在 UNIX 或 Windows 系統中,nslookup 系統工具可以用來檢索位址/名稱之對應關係。下面顯示我們如何給予一個網域名稱來檢索其對應的位
11、址。,$ nslookup fhda.edu Name: fhda.edu Address: 153.18.8.1,$ nslookup 153.18.8.1 1.8.18.153.in-addr.arpa name = tiptoe.fhda.edu.,nslookup 系統工具也可以讓我們給予一個位址來檢索其對應的網域名稱,如下所示:,17.9 DDNS,動態網域名稱系統 ( Dynamic Domain Name System, DDNS ) 動態地更新 DNS 主控檔案。,17.10 封裝,當 DNS 回應訊息長度小於 512 個位元組時,可以使用 UDP當成傳輸層通訊協定;如果回應訊息大於 512 個位元組,那麼就要使用 TCP 連線。,DNS 可以使用 UDP 或 TCP 的服務, 使用公認埠 53 號。,請注意:,