什麼是 DNS?

DNS 是網際網路的電話簿,負責將域名轉換為 IP 位址。本文說明其運作原理、查詢類型,以及台灣用戶應知的 DNSSEC 與 Quad 101 安全設定。

Dig Trace 團隊Dig Trace 團隊· 網路工程團隊4 分鐘閱讀
什麼是 DNS?

DNS(Domain Name System,網域名稱系統)是網際網路的電話簿。它將人類易讀的網域名稱(例如 twnic.net.tw)轉換為電腦能識別的 IP 位址(例如 192.0.2.1)。沒有這套系統,使用者必須記住每一個網站的數字地址才能上網。

從本質上說,DNS 是一個分散式資料庫服務。全球沒有任何一台伺服器儲存了全部的域名資料,取而代之的是數百萬台伺服器彼此協作,分層管理不同層級的記錄。這種設計讓網際網路能在數十億裝置同時查詢的情況下保持運作。

域名(Domain Name)存在的意義在於取代難記的 IP 位址。當使用者在瀏覽器輸入 digtrace.net,真正建立連線的是背後的 IP 位址。DNS 就是負責完成這項名稱與地址對應的基礎設施。

DNS 如何運作?

一次 DNS 查詢通常從本地快取開始。瀏覽器與作業系統會暫存近期造訪過的域名記錄。如果快取命中,整個過程幾乎在瞬間完成。若快取中沒有結果,查詢才會向外發送。

此時,遞迴解析器(Recursive Resolver)會接手。這可能是你家 ISP 提供的伺服器,也可能是公共 DNS 服務(例如台灣的 Quad 101)。解析器代表使用者去追蹤答案。它先向根伺服器(Root Server)發出查詢。根伺服器不會直接給出 IP,但會告知負責該頂級域名的伺服器位置,例如 .tw 或 .com。

接著,解析器向頂級域名(TLD)伺服器查詢。TLD 伺服器再將其導向該域名的權威 DNS 伺服器。權威伺服器才擁有最終的正確記錄,例如 A 記錄或 AAAA 記錄。解析器取得答案後,會依據 TTL(存活時間)設定快取,再回傳給使用者的電腦。

以台灣網路資訊中心(TWNIC)的教學文件為例,查詢 www.twnic.net.tw 的完整路徑會依序經過根伺服器、.tw 伺服器、net.tw 伺服器,最後才到 twnic.net.tw 的權威伺服器。TWNIC 官方文件詳細說明了這段迭代查詢過程。整個冷查詢通常在數十到一百多毫秒內完成。

遞迴查詢與迭代查詢的差別

許多人會混淆遞迴與迭代這兩種查詢模式。遞迴查詢發生在使用者與解析器之間:使用者丟出一個問題,解析器負責全程追查並給出最終答案。相對地,迭代查詢發生在解析器與各層 DNS 伺服器之間:根伺服器只會告訴解析器「我不知道,但你可以問這個伺服器」,由解析器自行繼續追問。

這種分工有其必要性。根伺服器若接受遞迴查詢,將承受難以想像的負載。因此,根與 TLD 伺服器通常只回應迭代查詢,而遞迴解析器則扮演中介角色,替終端使用者處理所有繁瑣的往返。Cloudflare 的說明文件以圖書館員與字典的比喻闡述了兩者的差異。

常見的 DNS 記錄類型

DNS 不只負責將域名轉成 IP。不同的記錄類型承載不同功能。最常見的幾種包括:

  • A 記錄:將域名指向 IPv4 位址,是最基本的對應記錄。

  • AAAA 記錄:功能與 A 記錄相同,但對應 IPv6 位址。四個 A 代表 IPv6 位址長度是 IPv4 的四倍。

  • CNAME 記錄:將一個域名別名指向另一個域名,而非直接指向 IP。例如 blog.example.com 可以設為 example.com 的 CNAME,讓管理者不必重複設定 IP。

  • MX 記錄:指定負責接收該域名電子郵件的伺服器地址。沒有 MX 記錄,寄到該域名的郵件就無法送達。

  • TXT 記錄:存放任意文字資訊,常用於 SPF、DKIM 等郵件驗證,以及網域擁有權驗證。

  • NS 記錄:指定該域名的權威 DNS 伺服器。當解析器查詢某域名時,NS 記錄告訴它要去哪台伺服器找答案。

  • SOA 記錄:每個 DNS 區域的起點,包含管理員信箱、序號、更新間隔等區域傳輸資訊。

實務上,一個域名通常同時擁有多筆記錄。解析器會根據查詢類型回傳對應內容。

實際操作:查詢與清除 DNS

在終端機中,dig 是最常用的 DNS 查詢工具。以下示範查詢 digtrace.net 的 A 記錄:

$ dig digtrace.net A +short
172.67.150.29
104.21.47.167

若想查看完整的查詢路徑與回應細節,可以移除 +short 參數。輸出會顯示查詢時間、伺服器來源,以及 TTL 值。

Windows 使用者則可以使用 nslookup

C:\> nslookup digtrace.net
伺服器:  UnKnown
Address:  192.168.1.1

名稱:    digtrace.net
Addresses:  2606:4700:3030::6815:2fa7
          104.21.47.167
          172.67.150.29

當網站剛更換伺服器或 DNS 記錄異常時,本地快取可能導致連到舊地址。這時可以手動清除快取。在 Windows 的命令提示字元中執行:

C:\> ipconfig /flushdns
已成功清除 DNS 解析程式快取。

在 macOS 上,指令會依版本略有不同。較新版本使用:

$ sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Linux 使用者若使用 systemd-resolved,則可執行 resolvectl flush-caches。清除後,下一次查詢就會重新向權威伺服器取得最新記錄。

清除 DNS 快取不會影響路由器或外部解析器上的快取。如果記錄變更後仍未生效,可能需要等待 TTL 過期,或聯繫域名託管商確認權威記錄是否已更新。

使用不同 DNS 伺服器查詢

dig 可以指定 DNS 伺服器,方便比較不同解析器的結果。這對於檢查 DNS 是否已被同步更新、或診斷特定解析器的問題非常有用。以下用台灣常用的幾組 DNS 進行對比:

# 使用 Quad 101(TWNIC 公共 DNS)
dig @101.101.101.101 digtrace.net A

# 使用 HiNet DNS(中華電信)
dig @168.95.1.1 digtrace.net A

# 使用 Cloudflare
dig @1.1.1.1 digtrace.net A

查詢其他記錄類型同樣簡單:

dig @101.101.101.101 digtrace.net MX        # 郵件伺服器
dig @101.101.101.101 digtrace.net TXT       # SPF/DKIM 等文字記錄
dig @101.101.101.101 digtrace.net NS        # 權威 DNS 伺服器
dig @101.101.101.101 digtrace.net AAAA      # IPv6 位址

如果 Quad 101 和 HiNet 回傳的 IP 不同,可能是其中一個解析器尚未同步最新的 DNS 變更,或是兩者之間存在 CDN 分流差異。

DNS 安全機制與台灣現況

傳統 DNS 查詢多以 UDP 連接埠 53 明文傳輸。這表示路徑上的任何人都有機會竊聽查詢內容,甚至竄改回應導向釣魚網站。為了解決這個問題,業界發展出 DNS over HTTPS(DoH)與 DNS over TLS(DoT),將查詢封包加密。

台灣使用者可以選用 TWNIC 營運的 Quad 101(101.101.101.101)。這組公共 DNS 支援 DoH 與 DoT,並採用 Anycast 與雲地混合架構,除了提升解析速度,也具備一定的 DDoS 防禦能力。對於在意隱私的用戶,將路由器或瀏覽器設定為使用加密 DNS,是相對簡單的強化手段。

另一方面,DNSSEC(DNS Security Extensions)透過數位簽章建立信任鏈,確保解析器收到的記錄確實來自該域名的權威伺服器,而非被竄改的偽造資料。TWNIC 已於 2026 年 2 月 2 日起,對使用其 DNS 代管服務的 .tw 域名預設啟用 DNSSEC。網站擁有者應確認自己的域名是否已簽署,並在註冊商端完成相關設定。

此外,TWNIC 也推動「.tw 域名安全鎖」與「綠色域名認證」,作為 DNSSEC 之外的補充驗證層,降低域名遭惡意轉移或竄改的風險。

總結與後續學習

DNS 是網際網路最容易被忽略,卻也最不可或缺的基礎建設。從輸入網址到建立連線,每一次上網都依賴這套分散式系統在毫秒間完成名稱解析。理解其運作原理,有助於診斷連線問題、選擇合適的解析服務,並為域名設定正確的安全政策。

若想進一步了解網路連線品質,可以參考 Traceroute 與 MTR 的運作原理,學習如何追蹤封包在網路中的實際路徑。或者閱讀 網路速度測試的完整說明,理解延遲、下載與上傳頻寬的測量方式。掌握這些工具,就能更有效地排查從 DNS 解析到實際連線的各種網路問題。