Download presentation
Presentation is loading. Please wait.
1
DNS協定 11-1 DNS簡介 11-7 DNS資源記錄 11-2 DNS的架構 11-8 DNS客戶端的驗證
11-3 階層且分散式的資料庫 11-4 DNS的查詢 11-5 遞迴查詢與反覆查詢 11-6 DNS伺服器的種類 11-7 DNS資源記錄 11-8 DNS客戶端的驗證 11-9 DNS的封包格式 11-10 DNS封包的擷取分析
2
11-1 DNS簡介 DNS的主要功能,就是以較容易記住的FQDN轉換成為電腦使用的IP位址,而避免一長串需記住的數字號碼。
DNS系統由DNS伺服器和DNS客戶端主機組成。當客戶端主機輸入一個FQDN後,會向DNS伺服器要求查詢此FQDN的IP位址,稱為前向名稱查詢(Forward Name Query),伺服器會至資料庫找出對應的IP位址並回覆給客戶端,稱為前向名稱解析(Forward Name Resolution)。 FQDN是由主機名稱加上網域名稱,再加上根網域「.」所組成,以「
3
範例1:若FQDN為「www. google. com. tw」所對應的IP位址為「61. 224. 52
解 DNS客戶端會依據FQDN向DNS伺服器要求查詢此FQDN的IP位址,因而伺服器會去對照其資料庫內的資料,若FQDN為「 DNS 處理反向查詢時, 就必須將I P 位址反向安排, 再附加上in-addr及arpa這兩標記, 才能為反向網域所作業。因此,DNS 解析器收到IP位址為「 」,解析器會將它變成「 in-addr.arpa」,然後送到本地的網域伺服器,找到一筆記錄「23」對應到「
4
11-2 DNS的架構 DNS架構分為4層,由上而下分別是根網域(root domain)、頂層網域(top level domain)、第二層網域(second level domain)和主機。舉例來說,一家公司有一部主機的網域名稱為acc.topic.com,其中的com為頂層網域;topic為com的子網域;acc則為topic.com這個網域內的一個主機名稱。 根網域管理下層稱為頂層網域(Top Level Domain;TLD),TLD又分為通用頂層網域,英文簡稱為gTLD(generic TLD),以及國碼頂層網域,英文簡稱為ccTLD(country code TLD)。前者的名稱是以組織性質來區分,例如com(商業)、edu(教育)、gov(政府)、int(國際組織)、mil(軍方)、net(網路中心)、org(組織機構)等,如圖11-1及表11-1所示;後者是以國家為分類的,例如:cn代表中國大陸、tw代表台灣、jp代表日本、ca代表加拿大,如圖11-2所示。
7
第二層網域 在台灣採用的頂層網域是依據c cTLD方式來命名, 即「. tw」網域。第二層網域則是以組織性質區分的.com、.org等網域;再細分下去的網域也全都歸類在第二層網域。
8
DNS Zone
9
11-3 階層且分散式的資料庫
10
範例2:參考圖11-5,用戶端(或稱客戶端)如何知道 解 首先,用戶端向根伺服器詢問該網域名稱是記錄在哪一部com DNS伺服器,然後用戶端從com DNS伺服器得知google.com DNS伺服器,最後用戶端向google.com DNS伺服器查詢而得到www. google.com的IP位址。
11
11-4 DNS的查詢 當客戶端需要查詢一個FQDN對應的IP位址時,會交由DNS解析器來負責查詢,而解析器會先去「DNS解析器的快取(DNS Resolver Cache)」查詢,如果無法從快取得到所要的資訊,才向指定的DNS伺服器查詢。
14
範例3:圖11-8中的chen.tti.edu主機要求查詢yuan.flag.free.edu的位址。
解 假設本地DNS伺服器稱為dns.tti.edu;官方DNS伺服器稱為dns.flag.free.edu。圖11-8共分成10步驟,使得chen.tti.edu的主機可得知yuan.flag.free.edu主機的IP位址。 步驟1:主機chen.tti.edu會先送出DNS查詢訊息至本地DNS伺服器dns.tti.edu。注意:DNS查詢訊息包含目的端的主機名稱yuan.flag.free.edu。 步驟2:本地DNS伺服器會將DNS要求查詢訊息轉送至根DNS伺服器。 步驟3:根DNS伺服器會將負責edu的TLD DNS伺服器清單回應給本地DNS伺服器。 步驟4:本地DNS伺服器dns.tti.edu重送要求查詢訊息至其中一部TLD DNS伺服器。
15
步驟5:但TLD DNS伺服器只知道其中一部中間DNS伺服器dns. free. edu才能得知yuan. flag. free
步驟5:但TLD DNS伺服器只知道其中一部中間DNS伺服器dns.free.edu才能得知yuan.flag.free.edu主機的IP位址。 步驟6:本地DNS伺服器dns.tti.edu重送要求查詢訊息至中間TLD DNS伺服器dns.free.edu。 步驟7:當中間DNS伺服器dns.free.edu接收到dns.tti.edu的主機查詢,結果發現此主機要找的官方DNS伺服器是dns.flag.free.edu,而它的IP位址也會傳回給dns.tti.edu。 步驟8:於是本地DNS伺服器dns.tti.edu重送要求查詢訊息至dns.flag.free.edu。 步驟9:dns.flag.free.edu會回應本地DNS伺服器所要求查詢的相關資訊。 步驟10:本地DNS伺服器會將得到的IP位址(指yuan.flag.free.edu)傳給發出此要求查詢的主機chen.tti.edu。
17
11-5 遞迴查詢與反覆查詢 當本地DNS伺服器接收到客戶端查詢時,必須要回覆客戶端所要查詢(可能先透過DNS解析器的快取查詢)的主機名稱解析所對應的IP位址,若找不到對應的資料,也不會通知客戶端去查詢另一部DNS伺服器,像這種會增加DNS伺服器在名稱解析時的負擔,使其更為吃重的查詢稱為遞迴查詢(Recursive Query)。例如:在圖11-8的步驟1的主機chen.tti.edu送出DNS查詢訊息至本地DNS伺服器就屬此查詢。但接下來的步驟2至10都是用在進行伺服器對伺服器之間的查詢動作,且回覆均直接傳回給本地DNS伺服器chen.tti.edu,像這樣反覆的查詢稱為循環查詢(Iterative Query)。
18
11-6 DNS伺服器的種類 主要名稱伺服器 次要名稱伺服器 快取伺服器
19
11-7 DNS資源記錄 SOA(Start Of Authority;起始授權) NS(Name Server;名稱伺服器)
A(Address;位址) AAAA(Address;位址) PTR(Pointer;反向查詢指標) CNAME(Canonical Name;別名) MX(Mail Exchanger;郵件交換器) HINFO(Host Information;主機資訊)
20
11-8 DNS客戶端的驗證
21
11-9 DNS的封包格式
22
Query Identifier(Query ID,查詢編號)佔16bits
用戶端每次送出要求查詢封包時會自動產生此編號;而伺服器會複製此編號到回覆的封包,用戶端也可依此編號辨認是回覆哪一個查詢封包。 Query/Response(QR)佔1bit 0代表要求查詢封包;1代表回覆封包。 OP Codes(Operation Codes,操作碼)佔4bits 用來識別DNS封包的類型。注意:標準查詢包含前向查詢、逆向查詢與反向查詢。反向查詢已取代逆向查詢(逆向查詢已不再使用),如表11-2所示。
24
Flags佔4bitz s 由左至右各佔1bit,分別是AA (Authoritative Answer)、TC (Truncation)、RD(Recursion Desired)、RA (Recursion Available),如表11-3所示。
25
Reserved佔3bits 保留未用,欄位值全為0。 RCode(Return Code)佔4bits 指出DNS查詢時,回覆封包會通知所發生的錯誤訊息,如表11-4所示。注意:6-15保留未用。
26
Question Section、Answer Section、Authority Section、Additional Records Section各佔32bits
共4個Section,每一Section又分為NAME、TYPE、CLASS等3個子欄位,分別作為查詢、回應、授權、額外記錄等封包的資訊。至於Question Count佔16bits,用來存放Question Section欄位的資料筆數。其他依序為:Answer RR Count佔16bits,用來存放Answer Section欄位的資料筆數,Authority RR Count佔16bits,用來存放Authority Section欄位的資料筆數,以及Additional RR Count,用來存放Additional Section欄位的資料筆數。
27
11-10 DNS封包的擷取分析
30
圖11-13 本地伺服器向客戶端回覆
Similar presentations