域名系統(DNS,Domain Name System)是網際網路的「電話簿」,將人類易讀的網域名稱(如 www.google.com)轉換為電腦識別的 IP 位址(如 142.250.190.78),讓使用者無需記憶數字位址即可存取網站。它採用分散式階層架構,透過全球數千台名稱伺服器協作,每秒處理數十億筆查詢,是現代網路運作不可或缺的基礎設施。
DNS 的階層式架構
DNS 像倒立的樹狀結構,從根開始逐層解析:
.(根)
/ |
.com .org .tw
| | |
example.com
|
www.example.com
四個關鍵伺服器角色:
-
根伺服器(Root):13 組全球根伺服器,指引頂級網域(TLD)
-
TLD 伺服器:管理
.com、.org、.tw等頂級網域 -
權威伺服器(Authoritative):儲存特定網域的 DNS 記錄
-
遞迴伺服器(Recursive):使用者 ISP 或 Google DNS(8.8.8.8)
DNS 解析流程(8 步驟)
當你在瀏覽器輸入 www.example.com 時:
-
瀏覽器快取:檢查本地 DNS 快取
-
作業系統快取:檢查 hosts 檔案與系統快取
-
ISP 遞迴伺服器:向根伺服器查詢
.com -
根伺服器回應:指引
.comTLD 伺服器位址 -
TLD 伺服器:查詢
example.com的權威伺服器 -
權威伺服器:返回
www.example.com的 A 記錄(IP 位址) -
快取結果:ISP 伺服器快取數分鐘至數小時(TTL)
-
瀏覽器連線:使用 IP 位址建立 TCP 連線
視覺化流程:
www.example.com
↓ 遞迴查詢
根 → .com → example.com → 93.184.216.34 ✓
↑ 快取(TTL 300 秒)
常見 DNS 記錄類型
| 記錄類型 | 用途 | 範例 |
|---|---|---|
| A | IPv4 位址 | example.com. 3600 IN A 93.184.216.34 |
| AAAA | IPv6 位址 | example.com. 3600 IN AAAA 2606:2800:220:1:248:1893:25c8:1946 |
| CNAME | 別名 | www.example.com. IN CNAME example.com. |
| MX | 郵件伺服器 | example.com. 3600 IN MX 10 mail.example.com. |
| TXT | 文字記錄 | SPF、DKIM、DMARC 驗證 |
| NS | 網域名稱伺服器 | example.com. IN NS ns1.example.com. |
DNS 快取機制(多層快取)
為提升效能,DNS 在多層快取結果:
瀏覽器(數秒)→ OS(數分鐘)→ ISP(數小時)→ 根伺服器(全球同步)
**TTL(Time To Live)**控制快取時間:
長 TTL(24小時):穩定網站,減少查詢
短 TTL(60秒):CDN、A/B 測試,快速切換
現代 DNS 技術與優化
Anycast DNS
相同 IP → 全球多節點 → 就近路由
Google DNS:8.8.8.8 → 全球 100+ 資料中心
Cloudflare:1.1.1.1 → 平均延遲 < 10ms
DNSSEC(DNS 安全擴展)
數位簽章驗證 → 防止 DNS 欺騙(DNS Spoofing)
根 → TLD → 權威伺服器 → 信任鏈完整性
DoH/DoT(加密 DNS)
傳統 DNS:UDP 53 明文 → 易被攔截、篡改
DoH:DNS over HTTPS(443 埠)
DoT:DNS over TLS(853 埠)
DNS 管理與設定
Cloudflare DNS 範例:
Type: A
Name: @
Content: 192.0.2.1
TTL: Auto
Proxy: Proxied(CDN)/ DNS only
cPanel 介面:
新增 A 記錄:blog → 192.0.2.1
新增 CNAME:www → example.com
新增 MX:優先級 10 → mail.example.com
常見 DNS 問題與排錯
| 問題 | 症狀 | 解決方案 |
|---|---|---|
| NXDOMAIN | 網域不存在 | 檢查拼寫、等待傳播 |
| SERVFAIL | 伺服器故障 | 檢查 NS 記錄、TTL |
| CNAME 衝突 | @ 不能 CNAME |
改用 A 記錄 |
| 傳播延遲 | 新記錄未生效 | dig @8.8.8.8 domain.com 檢查 |
| 雙重 CNAME | 無效配置 | 僅根域用 A 記錄 |
排錯指令:
# 本地快取清除
nslookup domain.com
ipconfig /flushdns (Windows)
sudo dscacheutil -flushcache (macOS)
# 直接查詢權威伺服器
dig domain.com @ns1.example.com
# 追蹤解析路徑
dig +trace domain.com
DNS 在現代架構的角色
CDN 整合:
使用者 → CDN Edge(就近)→ Origin Server(來源)
Cloudflare:DNS + CDN + WAF 一體化
負載平衡:
example.com → A 93.184.216.34
→ A 93.184.216.35
→ A 93.184.216.36(輪詢)
動態 DNS:
家用伺服器 → DDNS → 動態 IP 更新
no-ip.com、dynu.com
公共 DNS 伺服器
| 提供者 | IPv4 | IPv6 | 特色 |
|---|---|---|---|
| 8.8.8.8 8.8.4.4 |
2001:4860:4860::8888 | 全球覆蓋、快速 | |
| Cloudflare | 1.1.1.1 1.0.0.1 |
2606:4700:4700::1111 | 隱私保護、DoH |
| Quad9 | 9.9.9.9 | 2620:fe::fe | 資安防護 |
| OpenDNS | 208.67.222.222 | 2620:119:35::35 | 家長控制 |
DNS 是網際網路的導航系統,從輸入網址到載入網頁的每一秒都依賴它運作。理解 DNS 階層架構、快取機制與記錄類型,就能有效管理網域、加速網站、排除連線問題。現代 DNS 不僅是名稱解析,更整合 CDN、安全與效能優化,是雲端時代不可或缺的基礎設施。