Common DNS Records

即便像是非常基本的 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 是 01 兩種可能,所以如果有 16 個 bit,那就是 216=655362^{16} = 65536 個組合。然後因為 unsigned 16-bit 是從 0 開始,所以範圍是 065535。 同樣的概念,IPv4:32-bit3,就能有 2322^{32} 個可能的 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、哪個 portpriority、weight、port、target hostname
CAA哪些 CA6 可以幫這個 domain 發 certificateflags、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

  1. IANA:Internet Assigned Numbers Authority。負責全球 Internet identifier registry 的協調,其中包括 DNS Root Zone 的技術管理,例如維護 TLD delegation、TLD manager 與相關 root-zone 資料。

  2. TYPE is a 2-octet unsigned integer containing one of the RRTYPE codes.

  3. IPv4 addresses are 32-bit numbers often expressed as 4 octets in “dotted decimal” notation.

  4. TTL is a 32-bit integer specifying the time interval in seconds that the resource record may be cached.

  5. TXT 記錄最初設計是用來存放人類可讀的任意文字,但在現代實務上主要作為機器可讀的載體,廣泛用於 Email 防偽驗證(如 SPF、DKIM、DMARC)與第三方服務的網域所有權驗證(如 Google Search Console、SSL 憑證的 DNS-01 驗證)。

  6. CA:Certificate Authority「憑證授權中心」,是負責簽發、管理、撤銷數位憑證的機構。

  7. FQDN:Fully Qualified Domain Name. 格式為 [label].[label]...[domain].[tld].,例如 www.example.com.。最後的 . 代表 DNS Root。