Chapter 13 DNS.

Slides:



Advertisements
Similar presentations
DNS DNS( Domain Name System): 域名系统 DNS 介绍 DNS 基本构成 DNS 名字解析过程 在 Windows2000 中配置 DNS.
Advertisements

2008年上海市精品课程 2007年度上海建桥学院教改课程 计算机网络技术 理论 DNS服务的应用 项目负责人 张嗣萍/本环节主讲教师 阮鹏.
第9章 DNS和DHCP.
网页的欣赏与设计 主讲:杨军锋.
第 13 章 DNS.
無線寬頻分享器設定範例 銜接硬體線路 推斷無線基地台的IP 設定無線基地台 相關觀念解釋.
第 13 章 DNS 著作權所有 © 旗標出版股份有限公司.
Transparent proxy 班級:資傳四A 組員:林佳辰 陳星宇 邱鈺翔
9/28號專題報告 Web網頁遊戲 曾建瑋.
實驗目的: 明瞭DNS運作原理 建置DNS伺服器
TCP協定 (傳輸層).
Q101 在701 SDX Linux上的標準安裝與使用程序v2
第一篇 Unix/Linux 操作介面 第 1 章 Unix/Linux 系統概論 第 2 章 開始使用 Unix/Linux
第九章 DNS和DHCP 課前指引 前面的章節已介紹了DoD模型的TCP/IP協定組合,前三層的協定,從本章開始將陸續介紹應用層的協定。本章要介紹的是用於查詢網域主機IP的DNS協定;還有可以讓主機自動取得IP的DHCP協定。
Socket () and TCP client-server
網路概論 第9章 DNS通訊協定.
DNS協定 11-1 DNS簡介 11-7 DNS資源記錄 11-2 DNS的架構 11-8 DNS客戶端的驗證
電子商務基本概念 電子商務的定義 1-1 電子商務的特性 1-2 電子商務的演進 1-3.
單元六:你信賴電子商務嗎? (網域名稱、商標與爭議處理)
實驗目的: 明瞭DNS運作原理 建置DNS伺服器
HiNet 光世代非固定制 用戶端IPv6設定方式說明
在NS-2上模擬多個FTP連線,觀察頻寬的變化
家用網路所遇到的問題 與解決方案 演講者:徐子浩 指導老師:梁明章 老師.
SQL Stored Procedure SQL 預存程序.
R教學 安裝RStudio 羅琪老師.
CHT IPv6測試 D-Link Taiwan 友訊科技台灣分公司 TTSS 電信技術支援課 Name:
Windows 2003 server 進階介紹 麋鹿.
Echo Server/Client Speaker:Fang.
TCP/IP介紹 講師:陳育良 2018/12/28.
連結資料庫管理系統.
FTP檔案上傳下載 實務與運用.
網際網路與電腦應用 林偉川 2001/11/08.
私立南山高中 信息組 電腦研習 電腦資料的備份 中華民國 99年4月20日 星期二.
IP, Port, Router and Port forward
DHCP for W2K.
電腦攻擊與防禦 使用電腦教室VMware軟體說明.
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
Topic Introduction—RMI
建立一 function s (type) 可以用來繪製cyclic-harmonic curves
网络域名及其管理 复习IP地址相关知识,上网时为什么没有输入IP地址而是输入如
Ch20. 計算器 (Mac 版本).
網路程式設計期末project B 張芸菱.
UpToDate Anywhere 設定方法
Linux作業系統 電腦教室Linux使用說明.
精明使用互聯網教育計劃 K9下載及安裝教學篇.
Firewall-pfsense Mars Su
第 19 章 XML記憶體執行模式.
Web Service 1.
網頁程式概論 建國科技大學資管系 饒瑞佶 2015/9 V1 2016/4 V2 2016/9 V3.
講師:陳永芳 網際網路資源運用 講師:陳永芳
網頁資料知多少? 事 實 ? 謠言?.
WinPXE 無硬碟系統 6.0 安裝說明 憶傑科技股份有限公司
安裝 / 操作 flashget SOP (以Win 7 作業系統為範例)
IIS Internet Information Services
MDNS Development Plan TWNIC May 2000.
FTP使用教學 簡介: 軟體名稱:FileZilla 軟體性質:Freeware 版本: 繁體中文版
MicroSim pspice.
取得與安裝TIDE 從TIBBO網站取得TIDE
MiRanda Java Interface v1.0的使用方法
大学计算机基础 5-5 网络地址与域名系统.
編輯網頁可用那些應用程式? 記事本 Word FrontPage Dreamweaver.
基本指令.
1. 查詢個人電腦版本 1.進入控制台 2.點選“所有控制台項目” 3.點選“系統”.
Cloud Operating System - Unit 03: 雲端平台建構實驗
資料表示方法 資料儲存單位.
ARP攻擊 A 吳峻誠.
Domain Name System 蔡 政 道 Ver
指導教授 :逄愛君 資訊三 B 莊惟舜 資訊三 B 張憶婷 資訊三 B 徐嘉偉
DNS (Domain Name System)
CHT IPv6測試 D-Link Taiwan 友訊科技台灣分公司 TTSS 電信技術支援課 Name:
Presentation transcript:

Chapter 13 DNS

本章提要 13-1 DNS 的基礎觀念 13-2 DNS 的架構 13-3 DNS 名稱查詢流程 13-4 DNS 資源紀錄

13-1 DNS 的基礎觀念 假如我們現在要連上雅虎網站, 可在瀏覽器的網址列輸入『www.yahoo.com.tw』, 便能連結到雅虎的 Web 站台!在網路發達的時代裡, 一切都是這麼的方便。 但是大家是否有個疑問, IP 封包不是以 IP 位址來識別目的地嗎?為何我們輸入這些名稱後, 對方一樣收得到信, 一樣可以連結到網站呢?

DNS 的基礎觀念 我們能利用易懂易記的名稱來和對方溝通, 是因為有 DNS(Domain Name System, 網域名稱系統)的存在! 透過 DNS, 我們可以由一部主機的完整網域名稱(FQDN, Fully Qualified Domain Name)查到其 IP 位址, 也可以由其 IP 位址反查到主機的完整網域名稱。

13-1-1 完整網域名稱 所謂『完整網域名稱』(FQDN, Fully Qualified Domain Name)是由『主機名稱』 + 『網域名稱』 + 『.』所組成, 以『www.flag.com.tw.』為例: www:就是這台 Web 伺服器的主機名稱。 flag.com.tw.:就是這台 Web 伺服器所在的網域名稱。

完整網域名稱 請注意, 光是『www.flag.com.tw』還不算是 FQDN, 真正標準的 FQDN 應該是『www.flag.com.tw.』! 沒錯, 就是多了最後的那一點, 才算是標準的 FQDN!最後的這一個『.』代表在整個 DNS 架構中的最上層網域-根網域(Root Domain), 這部份在下一節會有詳細的說明, 讀者現在先了解何謂 FQDN 即可。 還有, 整個 FQDN 的長度不得超過 255 個字元(包含『.』), 而不管是主機名稱或是網域名稱, 都不得超過 63 個字元。

為什麼平時不必輸入 FQDN? 令人好奇的是, 平常我們在輸入網址時, 大多數都沒加上結尾的『.』, 為何還是可以正常作業呢? 這是因為大部份網路應用程式在解讀名稱時, 會自動補上『.』, 以方便我們使用。

13-1-2 DNS 名稱解析 在 DNS 還沒出現前, 其實就已經有 FQDN 和 IP 位址的查詢機制, 也就是利用 Host file(主機檔案)來做轉換的動作。Host file 的格式如下: Host file 的格式很簡單, 就是 IP 位址和 FQDN 的對照而已。因為 Host file 屬於單機使用, 無法分享給其他電腦, 所以若要讓每台電腦都能利用相同的 FQDN 連結到相同的主機, 就必需為每一台電腦建立一份 Host file。

DNS 名稱解析 而理所當然, 若是某一台主機的 FQDN 變更, 就得到每一台電腦去更新。 在使用 Host file 的時代, 網際網路只是少數人的專利, 主機數量不多, 為每台電腦都準備一份 Host file 尚能接受。但時至今日, 網際網路盛行, 網路上的主機數量數都數不清, 要想使用 Host file 做 FQDN 的轉換, 簡直比夸父追日還要不可思議, 為此, 專家便發明了 DNS 系統。

DNS 名稱解析 DNS 系統是由 DNS 伺服器(DNS Server)和 DNS 用戶端(DNS Client)所組成。當使用者輸入一個 FQDN 後, DNS 用戶端會向 DNS 伺服器要求查詢此 FQDN 的 IP 位址, 而伺服器則會去對照其資料庫內的資料, 並將 IP 位址回覆給用戶端。

DNS 名稱解析 用戶端要求伺服器由 FQDN 查出 IP 位址的動作稱之為正向名稱查詢(Forward Name Query), 一般就直接說名稱查詢, 而伺服器查出 IP 位址並回傳給用戶端的動作就叫做正向名稱解析(Forward Name Resolution), 一般又簡稱為名稱解析。

13-2 DNS 的架構 既然 FQDN 全靠 DNS 伺服器來轉換為 IP 位址, 但是網路上的主機多不勝數, 難道全交由一台 DNS 伺服器來做嗎?當然不可能!若是如此, 以現今的主機數量來看, 查詢資料庫的時間就已經會讓使用者睡著了!再者, 雖然網路是無國界、無地域性的, 但連結到國外的速度總是比在國內慢, 若是所有 DNS 伺服器都集中在某一地點, 那每次我們需要解析 FQDN 時, 都要連線到國外, 實在很沒效率! 為此, DNS 系統採用了樹狀階層式(Hierarchy)的架構:

DNS 的架構

DNS 的架構 整個 DNS 系統是由許多的網域(Domain) 所組成, 每個網域下又細分更多的網域, 這些細分的網域又可以再切割成更多的網域, 不斷的循環下去。 每個網域最少都由一台 DNS 伺服器管轄, 該伺服器就只需儲存其管轄網域內的資料, 同時向上層網域的 DNS 伺服器註冊, 例如:管轄『.flag.com.tw.』的 DNS 伺服器就要向管轄『.com.tw.』的伺服器註冊, 層層向上註冊, 直到位於樹狀階層最高點的 DNS 伺服器為止。

DNS 的架構 除了查詢效率的考量外, 為方便管理及確保網路上每一台主機的 FQDN 絕對不會重覆, 因此整個 DNS 架構就設計成 4 層: 根網域(Root Domain) 頂層網域(Top Level Domain) 第二層網域(Second Level Domain) 主機(Host)。

13-2-1 根網域 這是 DNS 架構的最上層, 當下層的任何一台 DNS 伺服器無法解析某個 DNS 名稱時, 便可以向根網域的 DNS 伺服器尋求協助(詳細運作過程請見 13-3 節)。 理論上, 只要所尋找的主機有按規定註冊, 那麼無論它位於何處, 從根網域的 DNS 伺服器往下層尋找, 一定可以解析出它的 IP 位址。

13-2-2 頂層網域 頂層網域的命名方式分成『國家』和『組織性質』兩種。 在美國以外的大多數國家, 均以 ISO 3116 所制定的『國碼』(Country Code)來區分, 例如:tw 為台灣、jp 為日本、ca 為加拿大...等等, 如下圖:

頂層網域

頂層網域 但是在美國, 雖然它也有『us』這個國碼可用, 可是卻較少用來當成頂層網域。 反而是以『組織性質』來區分, 例如:com 代表一般營利機構、org 代表非營利機構、edu 代表教育機構等等, 如下圖:

頂層網域 net: 網路、電信公司 int: 國際公約組織 org: 法人機構

新的網域名稱命名持續出現 台灣在 2000 / 5 / 1 起推出『中文網域名稱』和『個人網域名稱』可供申請, 前者包括:『商業.tw』、『網路.tw』、『組織.tw』、『教育.tw』和『政府.tw』5 種;後者則是『idv.tw』1 種。 所以我們現在都可能看到諸如:總統府.政府.tw、life.mee.idv.tw 這類的 FQDN。

新的網域名稱命名持續出現 ICANN 在 2000 年 11 月通過了 7 個新的 TLD 網域名稱, 包括:『.aero』、『.coop』、『.museum』、『.name』、『.pro』、『.biz』及『.info』, 其中除了『.biz』和『.info』可以透過網域名稱代理商申請外, 其它名稱只供特定機構申請。 第三類頂級域名,也就是所謂的「新頂級域名」,是ICANN根據互聯網發展需要,在2000年11月做出決議,從2001年開始使用的國際頂級域名,也包含7類:biz, info,name,pro,aero, coop, museum。 其中前4個是非限制性域,後3個是限制性域,如aero需是航空業公司註冊,museum需是博物館,coop需是集體企業(非投資人控制,無須利潤最大化)註冊。這7個頂級域名的含義和註冊管理機構如下:   .aero,航空運輸業專用,由比利時國際航空通信技術協會(SITA)負責;   .biz,可以替代.com的通用域名,監督機構是JVTeam;   .coop,商業合作社專用,由位於華盛頓的美國全國合作商業協會(NCBA)負責管理;   .info,可以替代.net的通用域名,由19個因特網域名註冊公司聯合成立的Afilias負責;   .museum,博物館專用,由博物館域名管理協會(MDMA)監督;   .name,是個人網站的專用域名,由英國的「環球姓名註冊」(GlobeNameRegistry)負責;   .pro,醫生和律師等職業專用,監督機構是愛爾蘭都柏林的一家網絡域名公司「職業註冊」(RegistryPro)。   關於ICANN為什麼要增加新的7個域的背景資料:   自80年代國際互聯網出現以來,.com、.net、.org一直是商家和消費者最熱衷的三個通用頂級域。特別是.com域名,更是佔據了通用頂級域的80%以上。多年來NSI公司長期壟斷對這三個域的註冊和管理權。1999年,ICANN、美國商務部終止了這種壟斷局面,在REGISTRAR這個層面引入了競爭機制。但是在REGISTRY這個層面上的競爭還是不夠,造成了DNS體系多年來沒有顯著改善。新的7個頂級域的REGISTRY也於 2000年11月選定,NSI除了在INFO域REGISTRY的中有少量股份外,與其它各主要新域REGISTRY沒有干係。這樣,新的頂級域的推出,將會在REGISTRY業內引進競爭機制。新的REGISTRY從技術到運營機制方面都有改進,如:一改今日WHOIS分散在各個REGISGTRAR的局面,實行同一的WHOIS;域名信息(zone file)和WHOIS查詢全球範圍5分鐘更新,此前.COM域下需要24到48小時;更高的系統冗余性、安全性和認證的嚴密程度。似乎認識到新域帶來的嚴峻挑戰,.com域的運營商Verisign Global Registry Service(2000年兼併了NSI)在向ICANN提交的新合同中(新合同在2001年4月2日正式被ICANN批准),主動提出將在未來的幾年中投資兩億美金,用於加強.COM域下的基礎設施建設。   看了這些有關頂級域名及國內域名後綴的介紹之後,可以發現,很多域名資源可以利用,不過對於商業性公司來說,直到目前為止,最為通用的仍然是.com 域名,國內企業或者在國內有經營機構的外國企業則一般同時註冊.com.cn域名。自從.cn二級域名開發註冊以來,國內網站似乎更青睞用.cn域名。 

新的網域名稱命名持續出現 此外, 在 2001 / 2 / 16 台灣又開放了直接隸屬於 ccTLD 的中文網域名稱, 例如:竹山.tw、貓咪.tw、www.觀光旅遊.tw;接著在 2005 / 11 / 1 更進一步開放直接隸屬於 ccTLD 的英文網域名稱, 例如:pchome.tw、dod.tw, 這兩種網域名稱都省略了中間的.com 或.net 等等網域名稱。

13-2-3 第二層網域 在台灣, 官方正式採用的頂層網域是依據 ccTLD 命名方式而來的.tw.網域, 接下來的第二層網域即為.com、.net...等等以組織性質區分的網域, 而再細分下去的網域也全都隸屬於這一層, 例如:『.com.tw.』是屬於這一層的網域, 而再細分下去的網域『.flag.com.tw.』、『.testguy.com.tw.』也同屬於第二層網域。

第二層網域 第二層網域可說是整個 DNS 系統中最重要的部分。雖然世界各國所制定的組織性質名稱不一定相同(例如:我國採用.com 表示營利機構, 但是日本就採用.co 表示之), 但是通常會開放給一般民眾自由申請, 名稱則由申請者自訂, 例如:旗標出版公司就是『.flag.com.tw.』。 但是要特別注意, 每個網域名稱在這一層必需是唯一的, 不可以重覆。

第二層網域 例如:旗標出版公司申請了『.flag.com.tw.』, 則其他公司或許可以申請『.flag.org.tw.』、『.flag.co.jp.』, 但是絕對不能再申請『.flag.com.tw.』這個名稱。 不過這一點我們倒不用擔心, 因為當我們在申請網域名稱時, 若是已經註冊有案的名稱, 負責審核網域名稱的機構是不會核准的, 例如:『.flag.com.tw.』、『.yahoo.com.』等都是已經註冊有案的網域名稱, 我們就不能申請。

13-2-4 主機 最後一層是主機, 也就是隸屬於第二層網域的主機, 這一層是由各個網域的管理員自行建立, 名稱也是自己決定, 不需要向管理網域名稱的機構註冊。 例如:我們可以在『.flag.com.tw.』這個網域下再建立『www.flag.com.tw.』、『ftp.flag.com.tw.』及『username.flag.com.tw.』等主機。

13-2-5 DNS 區域 雖然說每個網域都至少要有一部 DNS 伺服器負責管理, 但是我們在指派 DNS 伺服器的管轄範圍時, 並非以網域為單位, 而是以區域(Zone)為單位。換言之, 區域是 DNS 伺服器的實際管轄範圍。 舉例而言, 倘若 flag 網域的下層沒有子網域, 那麼 flag 區域的管轄範圍就等於 flag 網域的管轄範圍, 如下圖:

DNS 區域

DNS 區域 但是, 若 flag 網域的下層有子網域, 假設為 sales 和 product, 則我們可以將 sales 網域單獨指派給 X 伺服器管轄;其餘的部份則交給 Y 伺服器管轄。 也就是說, 在 X 伺服器建立了『sales 區域』, 這個 sales 區域就等於 sales 網域;在 Y 伺服器建立了『flag 區域』, 而 flag 區域的管轄範圍是『除了 sales 網域以外的 flag 網域』, 如下圖:

DNS 區域

DNS 區域 如果 flag 的子網域更多, 而且每個子網域都自成一個區域, 那麼區域和網域的關係如下圖:

DNS 區域

DNS 區域 從上圖可知, 當獨立成區域的子網路愈多, flag 區域和 flag 網域所管轄範圍的差異就愈大。簡言之, 區域可能等於或小於網域, 當然絕不可能大於網域。 此外, 能被併入同一個區域的網域, 必定是有上下層緊鄰的隸屬關係。不能將沒有隸屬關係的網域, 或是雖有上下層關係、但未緊鄰的網域, 劃分為同一個區域。

DNS 區域

DNS 區域

13-2-6 DNS 伺服器類型 每個區域都會有一部 DNS 伺服器負責管理, 但是萬一這台伺服器當掉, 則該區域的用戶端將無法執行名稱解析與名稱查詢工作!為了避免這種情形, 我們可以把一個區域的資料交給多部 DNS 伺服器負責, 但這又會產生一個問題:以誰的資料為準? 所以當我們將一個區域交給多台伺服器管理時, 就會有主要名稱伺服器(Primary Name Server)和次要名稱伺服器(Secondary Name Server)的分別。

DNS 伺服器類型 另外, 還有快取伺服器(Cache Only Server)這個特殊的角色, 以下將分別說明這 3 種 DNS 伺服器的特性。

主要名稱伺服器 主要名稱伺服器(Primary Name Server)儲存區域內各台電腦資料的正本, 而且以後這個區域內的資料有所變更時, 也是直接寫到這台伺服器的資料庫, 這個資料庫通稱為區域檔案(Zone File)。 一個區域必定要有一部, 而且只能有一部主要名稱伺服器。

次要名稱伺服器 次要名稱伺服器(Secondary Name Server)會定期向另一部名稱伺服器拷貝區域檔案, 這個拷貝動作稱為區域傳送(Zone Transfer), 區域傳送成功後會將區域檔案設為『唯讀』(Read Only)屬性。 換言之, 要修改區域檔案時, 不能直接在次要名稱伺服器修改。

次要名稱伺服器 一個區域可以沒有次要名稱伺服器, 或擁有多部次要名稱伺服器。通常是為了容錯(Fault Tolerance)考量, 才會設立次要名稱伺服器。然而, 在用戶端也必須設定多部 DNS 伺服器, 才可以在主要名稱伺服器無法服務時, 自動轉接次要名稱伺服器。

快取伺服器 快取伺服器(Cache Only Server)是很特殊的 DNS 伺服器類型, 它本身並沒有管理任何區域, 但是 DNS 用戶端仍然可以向它要求查詢。 快取伺服器會向指定的 DNS 伺服器查詢, 並將查到的資料存放在自己的快取內, 同時也回覆給 DNS 用戶端。當下一次 DNS 用戶端再查詢相同的 FQDN 時, 就可以從快取查出答案, 不必再請指定的 DNS 伺服器查詢, 節省了查詢時間。

快取伺服器 快取伺服器雖然並不管理任何區域, 但在實作上卻非常好用, 特別是要考量頻寬的負擔時, 就會發現它的用處。舉例來說: 假設總公司和分公司隸屬於相同區域, 彼此之間以 64 Kbps 專線連接, 而且兩邊都擁有 DNS 伺服器。若採用『主要名稱伺服器 + 次要名稱伺服器』架構, 當這兩部伺服器在區域傳送時, 便可能佔用大量的專線頻寬, 降低網路效率。

快取伺服器 此時, 就適合改用『主要名稱伺服器 + 快取伺服器』架構, 由於沒有區域傳送的問題, 因此不會佔用大量的專線頻寬。 此外, 要注意一旦重新啟動快取伺服器時, 會完全清除快取中的資料。而它本身又沒有區域檔案, 所以每次的查詢都得求助於指定的 DNS 伺服器, 因此初期的查詢效率會較差。必須等到快取中累積大量的資料後, 查詢效率才會提升。

13-3 DNS 名稱查詢流程 當我們使用瀏覽器閱讀網頁時, 在網址列輸入網站的 FQDN 後, 作業系統會呼叫解析程式(Resolver, 亦即用戶端負責 DNS 查詢的 TCP / IP 軟體), 開始解析此 FQDN 所對應的 IP 位址, 其運作過程如下圖所示:

DNS 名稱查詢流程

DNS 名稱查詢流程 1. 首先解析程式會去檢查本機的快取記錄, 如果我們從快取內即可得知 FQDN 所對應的 IP 位址, 就將此 IP 位址傳給應用程式(在本例為瀏覽器), 如果在快取中找不到的話, 則會進行下一步驟。 2. 若在本機快取中找不到答案, 接著解析程式會去檢查 Host File, 看是否能找到相對應的資料。

DNS 名稱查詢流程 3. 若還是無法找到對應之 IP 位址, 則向本機指定的 DNS 伺服器要求查詢。DNS 伺服器在收到要求後, 會先去檢查此 FQDN 是否為管轄區域內的網域名稱。若然, 則會檢查區域檔案(Zone File), 看是否有相符的資料, 反之則進行下一步驟。

DNS 名稱查詢流程 4. 區域檔案中若找不到對應的 IP 位址, 則 DNS 伺服器會去檢查本身所存放的快取, 看是否能找到相符合的資料。

DNS 名稱查詢流程 由上述的 5 個步驟, 我們應該能很清楚的了解 DNS 的運作過程, 而事實上, 這 5 個步驟可以分為兩種查詢模式, 即用戶端對伺服器的查詢(第 3、4 步驟)及伺服器和伺服器之間的查詢(第 5 步驟)。

13-3-1 遞迴查詢 DNS 用戶端要求 DNS 伺服器解析 DNS 名稱時, 採用的多是遞迴查詢(Recursive Query)。當用戶端向 DNS 伺服器提出遞迴查詢時, DNS 伺服器會依照下列步驟來解析名稱: 1. 若 DNS 伺服器本身具有的資訊足以解析該項查詢, 則直接回應用戶端其查詢之名稱所對應的 IP 位址。

遞迴查詢 2. 若 DNS 伺服器本身無法解析該項查詢時, 會嘗試向其他 DNS 伺服器查詢。 3. 若其他 DNS 伺服器無法解析該項查詢時, 則告知用戶端找不到資料。 從上述過程可得知, 當 DNS 伺服器收到遞迴查詢時, 必然會回應用戶端其查詢之名稱所對應的 IP 位址, 或者是通知用戶端找不到資料, 而絕不會是告知用戶端去查詢另一部 DNS 伺服器。

13-3-2 反覆查詢 反覆查詢(Iterative Query)一般多用在伺服器對伺服器之間的查詢動作。這個查詢方式就像是對話一樣, 整個作業會在伺服器間一來一往, 反覆的查詢而完成。舉例來說: 假設用戶端向指定的 DNS 伺服器要求解析『www.flag.com.tw.』位址, 很不幸的, 伺服器中並未有此筆記錄, 此時伺服器便會向根網域的 DNS 伺服器詢問:「請問你知道『www.flag.com.tw.』的 IP 位址嗎?」

反覆查詢 根網域 DNS 伺服器回答:「喔!這台主機位在『.tw.』網域下, 請你向管轄『.tw.』網域的伺服器查詢。」同時告知管轄『.tw.』網域的 DNS 伺服器 IP 位址。

反覆查詢 當指定的伺服器收到此訊息後, 會再向管轄『.tw.』網域的 DNS 伺服器查詢『www.flag.com.tw.』所對應的 IP 位址, 同樣的, 管轄『.tw.』網域的伺服器也只會回覆管轄『.com.tw.』網域的伺服器 IP 位址, 而指定的伺服器便再藉由此 IP 位址繼續詢問, 一直問到管轄『.flag.com.tw.』的 DNS 伺服器回覆『www.flag.com.tw.』的 IP 位址, 或是告知無此筆資料為止。

反覆查詢

反覆查詢 上述的過程看似複雜, 其實可能只要短短一秒鐘就完成了, 而藉由這個架構, 只要欲連結的主機有按規定註冊登記, 我們就可以很快地查出各地主機的 FQDN 與 IP 位址了。

轉送程式 當 DNS 用戶端向指定的 DNS 伺服器要求名稱查詢時, 若伺服器無法解析, 雖然可以轉向根網域的 DNS 伺服器詢問, 不過為了節省頻寬及安全上的考量, 或許我們不希望直接問到根網域 DNS 伺服器, 所以我們可以設定轉送程式(Forwarder)。

轉送程式 轉送程式的功能就是將用戶端的要求導向特定的 DNS 伺服器, 例如:當用戶端向 X DNS 伺服器查詢『www.nctu.edu.tw』的 IP 位址時, 若在 X DNS 伺服器找不到記錄, 則透過轉送程式的設定, 將要求引導到 Y DNS 伺服器(如下圖的第 1 步驟)。 如果在指定的時間內沒有收到回應, 則 X 伺服器可以再轉向根網域 DNS 伺服器詢問(如下圖的第 2 步驟), 或是直接告訴用戶端找不到其所要求的資料。

轉送程式

13-3-3 完整的查詢流程 最後我們可以將上述遞迴查詢和反覆查詢合而為一, 成為完整的 DNS 解析過程:

完整的查詢流程

遞迴查詢與反覆查詢的生活實例 當用戶端向預設的 DNS 伺服器查詢時, 絕大多數都用遞迴查詢。目的就是要預設的 DNS 伺服器給一個確定的答案, 讓用戶端不需再去問其它伺服器。 當然, 累的就是預設的 DNS 伺服器了, 它可能要用 5、6 次的反覆查詢, 輾轉詢問其它的 DNS 伺服器, 才能得到結果。

DNS 與 UDP 了解 DNS 的運作原理後, 接著我們就來看看 DNS 協定的封包格式。在傳輸層(Transport Layer)傳送 DNS 封包時, 採用的是 UDP 協定, 所使用的 UDP Port 編號為 53。

如何知道 Root DNS Server 的 IP 位址? 曾經有讀者詢問:既然 Local DNS Server 找不到某個 FQDN 的 IP 位址時, 會去問 Root DNS Server, 那它怎麼知道 Root DNS Server 的 IP 位址呢?畢竟 Root DNS Server 已經在最頂層了, 不可能再問更上層的 DNS Server 了。

如何知道 Root DNS Server 的 IP 位址? 其實在每一部 DNS Server 上都有一個特殊用途的檔案, 專門記載著 Root DNS Server 的 FQDN 和 IP 位址, 所以毋需外部協助就可知道 Root DNS Server 的 IP 位址。 以 Windows NT / 2000 / 2003 為例, 該檔案為%systemroot%\system32\dns\cache.dns。

如何知道 Root DNS Server 的 IP 位址? 目前全球共有 13 部 Root DNS Server, 其 FQDN 依序為:『A.ROOT-SERVERS.NET.』、『B.ROOTSERVERS.NET.』、『C.ROOT-SERVERS.NET.』... 『M.ROOT-SERVERS.NET.』, 前文提到的 192.58.128.30 就是 J.ROOT-SERVERS.NET. 的 IP 位址。

如何知道 Root DNS Server 的 IP 位址? 雖然 Root DNS Server 的 IP 位址很少變動。但是 INTERNIC 組織仍建議 DNS 伺服器管理員定期更新記錄 Root DNS Server 的檔案內容, 該檔案可到ftp://ftp.internic.net/domain/ 下載。 檔名或許不同, 只要下載之後更改檔名, 覆蓋原有的檔案, 並重新啟動 DNS 服務即可。

如何在 DNS 伺服器中登記 IPv6 位址? 為了避免混淆, 若要在 DNS 伺服器中登記 IPv6 位址, 並不是以『A』這個資源紀錄, 而是以『AAAA』, 其格式為: FQDN AAAA IPv6 位址 例如:

如何在 DNS 伺服器中登記 IPv6 位址? 換言之, 『AAAA』這個資源紀錄係專門用來將 FQDN 對應到 128 bits 的 IPv6 位址。 是『Type AAAA』, 而不是一般 IPv4 位址的『Type A』。

每個查詢過程未必完全相同! 管轄網域的機構或業者, 為了避免因一部 DNS Server 當機, 而使整個查詢工作停擺, 通常都會以多部 DNS Server 共同管轄一個網域, 譬如光是 Root DNS Server 就有 13 部之多。

每個查詢過程未必完全相同! 而 Local DNS Server 如何在這些管轄同一個網域的 DNS Server 中, 選定其中一部作為查詢對象, 則會因該 Server 程式的設計而異。有的是固定選取;有的則是隨機選取。

每個查詢過程未必完全相同! 例如,依序向『J.ROOT-SERVERS.NET.』、『A.DNS.TW』、『B.TWNIC.NET.TW』這 3 部 DNS Server 查詢。