每當我們在瀏覽器輸入 www.hotmail.com 而非 209.185.243.135 就能連線,背後運作的就是 DNS(Domain Name System)。本文追溯 DNS 誕生背景、早期 HOSTS 檔限制、DNS 系統架構演進,幫助讀者理解為什麼需要 DNS 以及它如何解決大規模網路命名問題。
UNIX/Linux:/etc/hosts;Windows NT/2000/XP:C:\WINNT\system32\drivers\etc\hosts(或 C:\Windows\System32\drivers\etc\hosts)。
檔案格式:IP 位址 主機名 [別名...],例如:
192.168.1.10 server1 srv1
DNS 將命名資料分散儲存於全球數百萬台伺服器,無單一節點掌握所有資料。每個區域由授權伺服器負責,透過授權委派(Delegation)形成樹狀結構。
根域 . → 頂級域 → 二級域 → 子域 → 主機名,確保全球唯一性並支援本地自治。
查詢結果依 TTL 快存在本地 DNS 與用戶端,大幅降低重複查詢流量與延遲。
| 時期 | 里程碑 |
|---|---|
| 1983 | Paul Mockapetris 發表 RFC 882/883,定義 DNS 協議雛形 |
| 1987 | RFC 1034/1035 正式標準化 DNS 核心規格 |
| 1990s | BIND 成為事實標準實作;商業 DNS 軟體推出 |
| 1999 | EDNS0 (RFC 2671) 擴展封包大小與功能 |
| 2005 | DNSSEC (RFC 4033/4034/4035) 提供資料來源驗證與完整性 |
| 2010s | DNS over TLS (DoT)、DNS over HTTPS (DoH) 加密查詢流量 |
從單一 HOSTS 檔到全球分散式 DNS,核心動力始終是「解決大規模網路的命名管理與查詢效率」。理解這段演進歷程,有助於掌握 DNS 設計哲學、排查故障根因,並評估新技術(DoH、DNSSEC、ECH 等)對既有架構的影響。