DNS 不僅將域名解析為 IP,還攜帶郵件路由、伺服器資訊等關鍵資料。這些資料以「資源記錄」形式儲存在區域檔案中。本文以 Linux BIND 區域檔為例,詳細解析常見記錄類型的語法、用途與實戰範例。
; Zone file for siyongc.domain
$TTL 86400
@ IN SOA redhat52.siyongc.domain. netman.siyongc.domain. (
1999092801 ; serial
8H ; refresh
2H ; retry
1W ; expire
1D ) ; minimum
IN TXT "A test domain, created by Netman"
IN NS redhat52
IN NS debian.home.
IN MX 10 redhat52.siyongc.domain.
IN MX 20 debian.home.
localhost IN A 127.0.0.1
gw IN A 192.168.0.17
gw IN HINFO "Redhat" "MASQ"
gw IN TXT "The masquerade gateway to internet"
redhat52 IN A 192.168.0.17
redhat52 IN MX 10 redhat52
redhat52 IN MX 20 debian.home.
redhat52 IN HINFO "Dell PII 266" "Linux RedHat"
www IN CNAME redhat52
mail IN CNAME redhat52
ftp IN CNAME redhat52
news IN CNAME redhat52
smtp IN CNAME redhat52
pii266 IN A 192.168.0.15
pii266 IN MX 10 redhat52.siyongc.domain.
pii266 IN MX 20 debian.home.
slware36 IN A 192.168.0.18
slware36 IN MX 10 redhat52.siyongc.domain.
slware36 IN MX 20 debian.home.
rhroute IN A 192.168.0.4
rhroute IN MX 10 redhat52.siyongc.domain.
rhroute IN MX 20 debian.home.
| 記錄類型 | 全稱 | 用途 | 範例 |
|---|---|---|---|
| SOA | Start of Authority | 區域授權起始記錄,定義序列號、重新整理/重試/過期/最小 TTL 等參數,每個區域僅能有一筆。 | @ IN SOA ns.domain. admin.domain. (serial refresh retry expire minimum) |
| NS | Name Server | 指定該區域的授權名稱伺服器,通常有多筆提供冗餘。 | IN NS ns1.domain. |
| A | Address (IPv4) | 將主機名對應至 IPv4 位址,最基礎且最常用的記錄。 | www IN A 192.168.1.10 |
| AAAA | Address (IPv6) | 將主機名對應至 IPv6 位址。 | www IN AAAA 2001:db8::1 |
| CNAME | Canonical Name | 別名記錄,將一個名稱指向另一個規範名稱(A/AAAA 記錄)。不建議 CNAME 指向另一個 CNAME。 | www IN CNAME server1.domain. |
| MX | Mail Exchanger | 指定郵件交換伺服器,優先權數值越小優先級越高。可設多筆實現備援與負載分擔。 | IN MX 10 mail.domain. |
| TXT | Text | 任意文字說明,常用於 SPF、DKIM、域名驗證等。 | IN TXT "v=spf1 mx -all" |
| HINFO | Host Information | 主機硬體/作業系統資訊,較少見。 | IN HINFO "Dell R740" "Ubuntu 22.04" |
| PTR | Pointer | 反向解析記錄,用於 in-addr.arpa 區域,將 IP 對應回主機名。 | 10 IN PTR www.domain. |
refresh 參數控制。nslookup
> pii266.siyongc.domain
Server: redhat52.siyongc.domain
Address: 192.168.0.17
Name: pii266.siyongc.domain
Address: 192.168.0.15
set q=any)> set q=any
> pii266.siyongc.domain
pii266.siyongc.domain preference = 20, mail exchanger = debian.home
pii266.siyongc.domain preference = 10, mail exchanger = redhat52.siyongc.domain
pii266.siyongc.domain internet address = 192.168.0.15
siyongc.domain nameserver = debian.home
siyongc.domain nameserver = redhat52.siyongc.domain
debian.home internet address = 192.168.0.2
redhat52.siyongc.domain internet address = 192.168.0.17
可一次看到 MX、NS、A 等所有記錄。
set debug)顯示完整 DNS 封包內容:Header、Question、Answer、Authority、Additional 區段,包含 TTL、旗標、RCODE 等,適合深度分析解析流程。
set q=mx:專查 MX 記錄。set q=ptr:反向查詢。ls domain.name:列出該域所有主機記錄(需區域傳送權限)。熟悉各類資源記錄語法與用途,是設計穩健 DNS 架構的基礎。善用 nslookup 進行驗證與除錯,能快速定位配置錯誤。嚴謹規劃區域結構、合理設定 TTL、啟用主從同步與安全機制(TSIG、DNSSEC),是企業級 DNS 運維的關鍵。