730 likes | 897 Views
DNS & DHCP (1). Ren-Jie Wang, 王 仁 傑 , Ph.D. rjwang@mail.ntit.edu.tw http:// www.scs.ntit.edu.tw/rjwang/. OSI & DoD. FQDN ( 完整網域名稱 ). Fully Qualified Domain Name 。 『 主機名稱 』 + 『 網域名稱 』 + 『.』 如: www.flag.com.tw w ww :該伺服器的主機名稱。 flag.com.tw. :該伺服器所在的網域名稱。 DNS 的工作就是 IP ←→ FQDN 的轉換.
E N D
DNS & DHCP (1) Ren-Jie Wang,王 仁 傑, Ph.D. rjwang@mail.ntit.edu.tw http://www.scs.ntit.edu.tw/rjwang/
FQDN ( 完整網域名稱 ) • Fully Qualified Domain Name。 • 『主機名稱』 + 『網域名稱』 + 『.』 • 如:www.flag.com.tw • www:該伺服器的主機名稱。 • flag.com.tw.:該伺服器所在的網域名稱。 DNS 的工作就是 IP ←→ FQDN 的轉換 Domain Name System
名稱查詢與名稱解析Forward Name Query & Forward Name Resolution • 名稱查詢Forward Name Query:用戶端要求 DNS 伺服器由 FQDN 查出 IP 位址。 • 名稱解析Forward Name Resolution:DNS 伺服器查出 IP 位址並回傳給用戶端。 • 由 IP 位址查詢 FQDN 稱為反向查詢Reverse Name Query。而伺服器所對應的動作稱為反向解析Reverse Name Resolution。
DNS 的架構 • 根網域 • 頂層網域 • 第二層網域 • 主機
Root Domain (根網域) • DNS 架構的最上層。 • 當下層的任何一台 DNS 伺服器無法解析某個 DNS 名稱時, 便可以向 Root DNS 伺服器尋求協助。
Top Level Domain (頂層網域)-1 • 在美國以外的國家, 大多以 ISO 3116 所制定的『國碼』 (Country Code)來區分:
Top Level Domain (頂層網域)-2 • 在美國以『組織性質』來區分, 較少用國碼:
Second Level Domain (第二層網域) • 台灣採用 ccTLD 命名方式, 這一層即為 .com、.net 等以組織性質區分的網域 • 這些類別網域之下開放給所有人申請, 名稱則由申請者自訂。 • 每個網域名稱在這一層必須是唯一的。 • “.com.tw” “.edu.tw” “.flag.com.tw” “.ntit.edu.tw”
Host (主機) • 由各個網域的管理員自行建立, 不需要透過管理網域名稱的機構。 • 例如可以在 『.flag.com.tw.』 這個網域下再建立 『www.flag.com.tw.』。
區域 (Zone) -1 • 『區域』是 DNS 伺服器的實際管轄範圍。 • 有上下層緊臨的隸屬關係 才能併入同一區域 • 例如 flag 網域的下層若沒有子網域:
區域 (Zone) -2 • 若 flag 網域的下層有子網域:
區域 (Zone) -3 • 如果 flag 的子網域更多, 而且每個子網域都自成一個區域:
DNS 伺服器類型 • 主要名稱伺服器 • 每一區域一定要有而且唯一 • 次要名稱伺服器 • 可以沒有, 但為了容錯考量, 可以有一部或多部 • 快取伺服器 • 沒有管理任何區域, 只提供DNS快取查訽
DNS 的查詢流程 以上分為兩種查詢模式: • 用戶端對伺服器的查詢 (第 3、4 步驟) 。 • 伺服器和伺服器之間的查詢 (第 5 步驟)。
遞迴查詢 • 用戶端要求 DNS 伺服器解析 DNS 名稱時, 採用的多是『遞迴查詢』 (Recursive Query)。 • DNS server 收到遞迴查詢時, 必然回應用戶端查詢的IP或找不到資料, 絶不會告知用戶端去查詢另一部 DNS server.
反覆查詢 • 反覆查詢 (Iterative Query) 一般多用在伺服器對伺服器之間的查詢動作。
轉送程式 Forwarder • 為節省頻寬及安全考量, 不直接查詢 Root DNS server,而將用戶端的要求導向特定的 DNS 伺服器
DNS 資源記錄 • SOA (Start of Authority, 起始授權) • NS (Name Server, 名稱伺服器) • A (Address, 位址), AAAA (IPv6位址) • CNAME (Canonical Name, 別名) • MX (Mail Exchanger, 郵件交換器) • PTR (Pointer, 反向查詢指標) • HINFO (Host Information, 主機資訊)
SOA (起始授權) -1 • 記錄此區域的授權資訊, 包含主要名稱伺服器與管理此區域的負責人之電子郵件帳號…等。
SOA (起始授權) -2 • 『@』 :此區域的名稱。 • 1 ; serial number:此記錄的版次。 • 36000 ; refresh [10h]: Secondary DNS 伺服器每次比對、複製區域檔案的間隔時間。 • 600 ; retry [10m]:當 Secondary DNS 伺服器無法順利比對、複製區域檔案時, 重試的間隔時間。 • 86400 ; expire [1d]:此區域檔案的有效期間 • 3600 ; min TTL [1h]:最小的 TTL 時間。
NS (名稱伺服器) • 記錄管轄此區域的名稱伺服器, 它包含了主要名稱伺服器和次要名稱伺服器:
A (位址) • 表示 FQDN 所對應的 IP 位址。
CNAME (別名) • 記錄某台主機的別名。 • 一台主機可以設定多個別名。
MX (郵件交換器) • 設定此一網域所使用的郵件伺服器。
PTR (反向查詢指標) • 當我們在做反向查詢 (由 IP 位址查出 FQDN) 時, 便會利用此種記錄類型。 • IP 位址的寫法是將原本的數字由右向左寫回來:
HINFO (主機資訊) • 儲存某一主機的軟硬體資料, 例如 CPU 的類型、作業系統的類型等。
DNS 封包表頭 (2) • Query Identifier (Query ID, 查詢編號) • DNS 的封包編號 • Request/Response (QR, 要求/回覆) • 0 表示 Request 封包, 1 表示 Response封包 • Operation Code (OP Code, 操作代碼)
DNS 封包表頭 (3) • Flags
DNS 封包表頭 (4) • Reserved • 保留未使用, 欄位值全為 0。 • Return Code (R Code, 回覆代碼)
DNS 封包表頭 (5) • Question count • 存放 Question Section 欄位的資料筆數。 • Answer RR Count • 存放 Answer Section 欄位的資料筆數。 • Authority RR Count • 存放 Authority Section 欄位的資料筆數。 • Additional RR Count • 存放 Additional Section 欄位的資料筆數。
Question Section (查詢部分) -1 • Question Name • 存放所要解析的 FQDN。
Question Section (查詢部分) -2 • Question Type • 表示要查詢的資源記錄類型。 • Question Class • 表示要在哪一類的網路上做 DNS 查詢。
Answer Section (回應部分) -2 • Resource Name (資源名稱) • 存放查詢的 FQDN。 • Resource Type (資源記錄類型) • 存放此次查詢的資源記錄類型。 • Resource Class (資源類型) • 表示查詢的 FQDN 所屬的網路類型。 • TTL (存活時間) • 此筆資料保留在 DNS 伺服器 Cache 中的時間。 • Resource Data Length • 存放 Resource Data 欄位的長度。 • Resource Data • 存放查詢的結果, 通常是存放 IP 位址或 FQDN。
Authority Section (授權部分) • 表示在查詢 FQDN 時, 所找到可供查詢的 DNS 伺服器資訊。 • 除最後 Resource Data 存放的不是 IP 位址, 而是 DNS 伺服器的 FQDN 之外, 其餘欄位都和Answer Section 相同。
Additional Records Section (額外記錄部分) • 當 Authority Section 有存放資料時, 此欄位就會有相對應的資料。 • 包含 6 個欄位, 意義同前。
13-6 實作練習:擷取 DNS 封包 • 本節以 Windows Vista 為 DNS 用戶端, IP 位址為 192.168.0.135;以 Linux 為預設的 DNS 伺服器(後文簡稱為 Local 伺服器),IP 位址為 192.168.0.36 。在DNS 用戶端向 Local 伺服器查詢『www.flag.com.tw』 的 IP 位址時, 擷取到的封包經分析過濾後得知哪些封包為配對的查詢/ 回覆封包。 • 在 Linux 所使用的 DNS伺服器 (Bind9) 執行反覆 (Iterative) 查詢時, 每個階段均會詢問一部以上的 DNS伺服器, 但是在後文的每個階段僅說明詢問其中一部的過程。
用戶端向 Local 伺服器查詢 • 此封包為查詢封包(在 Wireshark 係以query 、而不以Request 代表查詢封包)。 • 此封包為標準查詢封包。 • 此封包為完整封包。 • 使用遞迴(Recursive)查詢, 這是用戶端對 DNS 伺服器最常採用的方式。 • 所要查詢的 FQDN 。 • 要查詢該 FQDN 對應的 IP 位址。 • 此查詢是在 Internet 進行。
13-6-2 Local 伺服器詢問其它 DNS 伺服器 • Local DNS Server 首先詢問 Root DNS Server -192.228.79.201 。RootDNS Server 告知管轄 .tw 網域的各 DNS Server 的 IP 位址, 請 Local DNS Server改問管轄 .tw 網域的其中一部 DNS Server。
Local 伺服器詢問其它 DNS 伺服器 • Transaction ID 相同, 表示兩者為配對的查詢/ 回覆封包。 • 此封包為查詢封包。 • 此封包為回覆封包。 • 不使用遞迴(Recursive)查詢, 意即使用反覆(Iterative)查詢。這是 DNS 伺服器彼此之間最常採用的方式。 • 要查詢『www.flag.com.tw』這個 FQDN 對應的 IP 位址。
Local 伺服器詢問其它 DNS 伺服器 • Root DNS 伺服器告知 Local DNS 伺服器, 應該向這些 DNS 伺服器其中之一查詢。這些 DNS 伺服器的 FQDN 在 Authoritative name servers 和 Additional records 都會出現, 但 IP 位址只出現在 Additional records。