什麼是 DNS (域名系統) ?

1
什麼是 DNS (域名系統) ?:域名系統(DNS,Domain Name System)是網際網路的「電話簿」,將人類易讀的網域名稱(如 www.google.com)轉換為電腦識別的 IP 位址(如 142.250.190.78),讓使用者無需記憶數字位址即可存取網站。它採用分散式階層架構,透過全球數千台名稱伺服器協作,每秒處理數十億筆查詢,是現代網路運作不可或缺的基礎設施。

什麼是 DNS (域名系統) ?

域名系統(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 時:

  1. 瀏覽器快取:檢查本地 DNS 快取

  2. 作業系統快取:檢查 hosts 檔案與系統快取

  3. ISP 遞迴伺服器:向根伺服器查詢 .com

  4. 根伺服器回應:指引 .com TLD 伺服器位址

  5. TLD 伺服器:查詢 example.com 的權威伺服器

  6. 權威伺服器:返回 www.example.com 的 A 記錄(IP 位址)

  7. 快取結果:ISP 伺服器快取數分鐘至數小時(TTL)

  8. 瀏覽器連線:使用 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 特色
Google 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、安全與效能優化,是雲端時代不可或缺的基礎設施。