緯育 2026-0421.2
出自頂極製作所
網域名稱系統 (DNS) 核心概念與實務
本次系列演講深入探討了網域名稱系統(DNS)的核心概念、演進歷史、階層架構、查詢流程、伺服器類型、網域註冊實務以及相關資安議題。演講從早期依賴手動維護的hosts檔案,說明其如何因應網際網路擴張的瓶頸,進而催生出分散式、階層式的DNS系統。
講師詳細解釋了DNS如何將人類易於記憶的網址轉換為機器可讀的IP位址,並闡述其在簡化上網、集中管理網域、實現簡易負載平衡等方面對使用者和管理者的益處。內容涵蓋了DNS查詢的遞迴過程(從本地DNS到根、頂級域、最終到權威伺服器),並介紹了Master/Slave、Cache-only、Forwarder等不同DNS伺服器類型與運作原理。此外,講座還實際演示了如何透過註冊代理商(如中華電信、GoDaddy)查詢、比較和購買網域,以及後續設定DNS的兩種主要方式:自行架設或使用託管服務。最後,對DNS設定檔中的SOA、A、CNAME、MX、PTR等關鍵記錄類型進行了詳細解釋。
DNS 基礎概念與演進
- DNS 的核心功能與重要性
- DNS (Domain Name System) 的主要作用是記錄網址與IP位址的對應關係,如同網路世界的電話簿,將人類易記的網址(如 facebook.com)轉換為機器所需的IP位址。
- 若無DNS,使用者需手動記錄並輸入複雜的IP位址,極為不便。
- DNS是目前唯一取得公開IP的方式,其重要性與網頁服務相當,瀏覽網頁前必須先存取DNS服務。
- DNS 的演進歷史:從 hosts 檔案到DNS服務
- 在DNS出現前,早期網路規模較小(約數百至千台主機),使用者依賴一個名為 hosts.txt (位於 /etc/hosts) 的檔案手動記錄主機名稱與IP位址的對應關係。
- 此檔案最初由一個名為SRI-NIC的機構維護,使用者需透過FTP下載更新。
- 隨著網路規模擴大,人工維護成本高、檔案過大、更新流量增加等瓶頸浮現,促使社群開發出DNS這種全新的、可擴展的網路服務。
- 儘管有了DNS,/etc/hosts 檔案至今仍存在於作業系統中並保有其相容性用途。
DNS 的階層架構與查詢流程
- 階層式樹狀結構
- DNS採用階層式的樹狀結構管理網域名稱,從上到下依次為:
1. 根網域 (Root Domain):位於層級最頂端,以一個「點」(.)表示。全球共有13組根伺服器,由超過500台主機組成,只記錄各頂級網域(TLD)伺服器的位置。 2. 頂級網域 (Top-Level Domain, TLD):如 .com, .org, .gov (一般gTLD) 及各國的 .tw, .jp (國家代碼ccTLD)。TLD伺服器只管理其下的次級網域。 3. 次級網域 (Second-Level Domain):使用者向註冊商申請的網域,如 google.com。 4. 主機名稱 (Hostname):在次級網域內設定的具體伺服器名稱,如 www。
- 遞迴查詢流程
- 當使用者電腦要存取 www.google.com.tw 時,會向其設定的本地DNS伺服器(如 8.8.8.8)發出請求。
- 若本地DNS無快取,它會依序進行遞迴查詢:
1. 詢問根伺服器,得到 .tw TLD伺服器的位址。 2. 詢問 .tw 伺服器,得到 .com.tw TLD伺服器的位址。 3. 詢問 .com.tw 伺服器,得到 google.com.tw 的權威DNS伺服器位址。 4. 詢問 google.com.tw 的權威DNS伺服器,最終獲得 www 主機的IP位址。
- 本地DNS伺服器將結果回傳給使用者,並將記錄快取 (Cache) 一段時間,以加速後續相同查詢。
- 「未經授權的回答」(Non-authoritative answer)
- 當使用nslookup等工具查詢時,若看到此訊息,表示提供答案的DNS伺服器並非該網域的「權威伺服器」,其答案是從快取中提供的。
DNS 的效益與多重用途
- 對使用者的益處
- 簡化上網:只需記憶網址,無需記錄複雜IP。
- IP變更無感:網站更換伺服器IP時,使用者端不受影響,DNS會自動導向新位址。
- 對管理者的益處
- 集中管理:可透過一台DNS伺服器集中管理多個網域。
- 變更簡易:增減服務或變更IP只需修改DNS記錄。
- 內外網分流:可設定對內部和外部使用者回傳不同IP。
- 簡易負載平衡:將使用者查詢輪流導向不同IP,分散流量,節省專用設備成本。
- DNS 的多重用途
- 除了網址解析,DNS還可用於網站所有權驗證(如申請HTTPS憑證時)等。
- 濫用風險:其設計也可能被用於DDoS攻擊,如分散式反射放大攻擊 (Distributed Reflection and Amplification Attack)。
網域註冊與DNS設定實務
- 網域名稱註冊流程
1. 構思與查詢:先想好網域名稱,再到網域註冊機構(代理商,如中華電信、GoDaddy)網站查詢該名稱是否可用。 2. 訂購與審查:確認可用後下訂單,並依註冊機構要求提交資格審查文件(公司需營業執照等,個人需身分證)。 3. 繳費啟用:審查通過後完成繳費,即可獲得網域使用權,可選擇購買年限並設定是否自動續約。
- DNS 設定的兩種方式
1. 自行架設DNS主機:在註冊商的管理介面,選擇「自行架設」,並填入自己DNS主機的公有IP位址。一台DNS主機可管理多個網域。 2. 購買DNS託管服務:若不自行架設,可向註冊商購買DNS託管服務。只需在管理介面中,為www, mail等主機名稱填寫對應的IP位址即可。
- 選擇註冊商的考量
- 除了比較價格,還應考量其DNS設定介面的易用性及DNS記錄更新的生效速度。
DNS 伺服器與記錄類型
- DNS 伺服器分類
- 權威伺服器 (Authoritative Server):對其管理的網域(Zone)具有最終解釋權,儲存該網域的完整記錄。
- Master/Primary Server:主要的DNS伺服器。
- Slave/Secondary Server:從屬伺服器,用於同步Master的資料以做備援。
- Cache-only Server:只負責快取查詢結果以加速回應,本身不管理任何網域。Ubuntu的systemd-resolved即為一例。
- Forwarder:將所有查詢請求轉發給上游DNS伺服器,自身通常只做簡單轉發,可能不做深度快取。家用IP分享器多為此類或Cache-only類型。
- 權威伺服器 (Authoritative Server):對其管理的網域(Zone)具有最終解釋權,儲存該網域的完整記錄。
- 常見DNS伺服器軟體
- 市面上有Bind DNS、微軟DNS、Securio DNS等多種軟體,其中 Bind DNS 是目前最廣泛使用的。
- 查詢類型
- 正解 (Forward Lookup):將網域名稱轉換為IP位址。
- 反解 (Reverse Lookup):將IP位址轉換回網域名稱。
- Zone File 內的記錄類型
- SOA (Start of Authority):授權起始記錄,定義網域的管理資訊與同步參數。
- NS (Name Server):指定管理該網域的DNS伺服器主機名稱。
- A:將主機名稱對應到IPv4位址。
- AAAA (Quad-A):將主機名稱對應到IPv6位址。
- CNAME (Canonical Name):別名記錄,將一個主機名稱指向另一個主機名稱(如 w3 指向 www)。
- MX (Mail Exchanger):郵件交換記錄,指定負責接收該網域郵件的伺服器。
- PTR (Pointer):指標記錄,用於反解查詢,將IP對應回主機名稱。
- 重要名詞
- Domain Name:網域名稱,如 google.com。
- Hostname:主機名稱,如 www。
- FQDN (Fully Qualified Domain Name):完整網域名稱,由主機名稱和網域名稱組成,結尾有一個代表根的點,如 www.google.com.。