A
約 2 分鐘閱讀

DNS 深度解析 — 網路世界的地址簿與導航系統

我們在網路運作原理中提到了 DNS (Domain Name System) 將網址轉換為 IP 位址。但這個過程究竟是如何發生的?為什麼有時候網站明明沒掛,你卻連不上?今天我們就來深度解析這個網路世界的地址簿。

DNS 的階層式架構

DNS 不是一本巨大的電話簿,而是一個分散式、階層式的資料庫系統。想像它像是一個跨國公司的組織架構:

  1. 根域名伺服器 (Root Nameservers):總公司,知道每個頂級域名 (.com, .tw, .org) 的負責人在哪。
  2. 頂級域名伺服器 (TLD Nameservers):部門經理,管理特定結尾的網域 (例如 .com 的註冊局)。
  3. 權威名稱伺服器 (Authoritative Nameservers):專案負責人,真正知道該網域 IP 的伺服器 (通常是 Cloudflare, AWS Route53 或你的網域註冊商)。

當你輸入 google.com 時發生了什麼事?

這是一個遞迴查詢 (Recursive Query) 的過程:

sequenceDiagram
    participant 使用者
    participant 遞迴解析器
    participant Root伺服器
    participant TLD伺服器
    participant 權威伺服器

    使用者->>遞迴解析器: google.com 的 IP 是多少?
    遞迴解析器->>Root伺服器: 請問 .com 的負責人在哪?
    Root伺服器-->>遞迴解析器: 去問 .com 的 TLD 伺服器 (IP: 1.2.3.4)
    遞迴解析器->>TLD伺服器: 請問 google.com 的負責人在哪?
    TLD伺服器-->>遞迴解析器: 去問 google.com 的權威伺服器 (IP: 5.6.7.8)
    遞迴解析器->>權威伺服器: google.com 的 IP 是什麼?
    權威伺服器-->>遞迴解析器: 它是 142.250.1.1
    遞迴解析器-->>使用者: IP 是 142.250.1.1

遞迴解析器 (Recursive Resolver) 通常由你的 ISP (中華電信) 或公共 DNS (Google 8.8.8.8, Cloudflare 1.1.1.1) 提供。它負責幫你跑腿問路,並且快取 (Cache) 結果。下次再問同樣的網址,它就不用重新跑一次流程了。

常見的 DNS 紀錄類型

在 DNS 設定中,你會看到各種不同類型的紀錄 (Records),它們有不同的用途:

A 與 AAAA 紀錄

CNAME (Canonical Name)

將一個域名指向另一個域名,而不是 IP。

MX (Mail Exchanger)

指定負責處理該網域電子郵件的伺服器。

TXT (Text)

原本是用來放任意文字說明,現在主要用於驗證與安全性

DNS 故障排查 (Troubleshooting)

當網站連不上時,怎麼確認是不是 DNS 的問題?

1. 使用 nslookupdig

在終端機輸入:

nslookup google.com

如果看到 ServFail 或找不到 IP,但在手機 4G 網路上正常,那很可能是你的 DNS 伺服器有問題。可以嘗試將電腦的 DNS 改為 8.8.8.8 (Google) 或 1.1.1.1 (Cloudflare)。

2. 檢查 TTL (Time To Live)

如果你剛修改了 DNS 設定但沒生效,可能是因為 TTL 還沒過期。TTL 決定了 DNS 紀錄在快取中存活多久。

3. DNS 污染與劫持

有時候 DNS 會被惡意竄改,將你導向釣魚網站。這就是為什麼現代瀏覽器推動 DoH (DNS over HTTPS),將 DNS 查詢加密,防止中間人監聽或竄改。

結語

DNS 真的就像是網路世界裡的隱形接線生。懂了它是怎麼運作的,以後不管是買網域自己設定,還是網路斷掉要找原因,抓漏起來都會快很多。下次上網按 Enter 的時候,不妨想像一下這個只要幾毫秒就跑遍全球的問路小劇場吧!


站內相關文章: