即便像是非常基本的 DNS(Domain Name System)概念中的 DNS record type 其實是有非常多種的,截止 2026/08,IANA1 的官方 DNS Resource Record TYPE registry 中,就有 90+ 已命名/分配的 TYPE,而不是只有我“常見”的那幾種而已!
實務上也不太會碰到這所有的 TYPE,因為裡面其實也包含了一些已淘汰、實驗性、特殊查詢用途的類型。且 DNS 的 TYPE 欄位本身是 16-bit2 的,所以理論上可以有到 65536 個可能的 Type Code。
複習一下,因為一個 bit 是 0 或 1 兩種可能,所以如果有 16 個 bit,那就是 個組合。然後因為 unsigned 16-bit 是從 0 開始,所以範圍是 0 ~ 65535。
同樣的概念,IPv4:32-bit3,就能有 個可能的 addresses。
每一筆 Resource Record(RR)除了紀錄名稱(NAME)、類型(TYPE)與實際資料(RDATA)外,還有一個關鍵的欄位:TTL(Time to Live4)。它以秒為單位,決定了各級 DNS Resolver 與 Client 可以 cache 這筆記錄多久。這也是為什麼在網站遷移或更換伺服器 IP 前,通常會提前幾天把 TTL 調低(例如縮短到 300 秒),以避免切換時因快取尚未過期而導致全球解析蔓延延遲(Propagation Delay)。
以下是一些我認為常見的 DNS record type:
| Record | 它回答的問題 | RDATA 存的東西 |
|---|---|---|
| A | 這個 hostname 的 IPv4 是什麼 | IPv4 地址 |
| AAAA | 這個 hostname 的 IPv6 是什麼 | IPv6 地址 |
| CNAME | 這個名字其實是哪個名字的別名 | 目標 hostname |
| NS | 誰有權回答這個 zone | 權威 DNS server hostname |
| SOA | 這個 zone 的基本管理資訊是什麼 | primary NS、管理者信箱、serial、refresh、retry、expire、minimum |
| MX | 這個 domain 的 email 要送去哪裡 | preference、mail server hostname |
| TXT | 這個 domain 想發布什麼文字資料 | 文字字串5 |
| PTR | 這個 IP 反查回什麼 hostname | 目標 hostname |
| SRV | 某個 service 在哪台 server、哪個 port | priority、weight、port、target hostname |
| CAA | 哪些 CA6 可以幫這個 domain 發 certificate | flags、tag、value |
在 terminal 中,dig 是檢視這些 Resource Record 最直接的工具。
查詢某個 FQDN7 時,可以指定要查詢的 record type(未指定時則預設查詢 A record);查詢結果中的 ANSWER SECTION 也會一併印出該筆記錄當前剩餘的 TTL 與回傳的 RDATA:
# 基本查詢:預設查 A record,或指定 AAAA / MX 等不同 record type
dig www.microsoft.com
dig www.microsoft.com AAAA
dig www.microsoft.com MX
# 指定向特定 DNS Server 查詢(如 Cloudflare 1.1.1.1 或 Google 8.8.8.8)
dig @1.1.1.1 www.microsoft.com
# 只輸出精簡的解析結果(RDATA)
dig www.microsoft.com +short
# 追蹤完整解析鏈:從 Root Server -> TLD Server -> 權威 DNS 一層層往下解析
dig www.microsoft.com +trace
Footnotes
-
IANA:Internet Assigned Numbers Authority。負責全球 Internet identifier registry 的協調,其中包括 DNS Root Zone 的技術管理,例如維護 TLD delegation、TLD manager 與相關 root-zone 資料。 ↩
-
TYPE is a 2-octet unsigned integer containing one of the RRTYPE codes. ↩
-
IPv4 addresses are 32-bit numbers often expressed as 4 octets in “dotted decimal” notation. ↩
-
TTL is a 32-bit integer specifying the time interval in seconds that the resource record may be cached. ↩
-
TXT 記錄最初設計是用來存放人類可讀的任意文字,但在現代實務上主要作為機器可讀的載體,廣泛用於 Email 防偽驗證(如 SPF、DKIM、DMARC)與第三方服務的網域所有權驗證(如 Google Search Console、SSL 憑證的 DNS-01 驗證)。 ↩
-
CA:Certificate Authority「憑證授權中心」,是負責簽發、管理、撤銷數位憑證的機構。 ↩
-
FQDN:Fully Qualified Domain Name. 格式為
[label].[label]...[domain].[tld].,例如www.example.com.。最後的.代表 DNS Root。 ↩