DNS 記錄總覽

本頁提供記錄簡介,並列出 Cloud DNS 支援的 DNS 記錄類型。

A 記錄是 DNS 資源與網域名稱之間的對應檔。每筆 DNS 記錄都具有類型 (名稱和編號)、到期時間 (存留時間) 和類型專屬資料。

支援的 DNS 記錄類型

Cloud DNS 支援下列類型的記錄:

記錄類型 說明
A

位址記錄,用來將主機名稱對應至其 IPv4 位址。

AAAA

IPv6 位址記錄,用來將主機名稱對應至其 IPv6 位址。

ALIAS

別名記錄,用來將別名網域名稱對應至區域頂點節點的正規名稱。別名記錄也稱為 ANAME 記錄或 CNAME 扁平化。

您可以透過 gcloud CLI 或 Cloud DNS API 設定別名記錄,但無法使用 Google Cloud 控制台設定。

CAA

憑證授權單位 (CA) 授權,用來指定允許哪些 CA 建立網域的憑證。

CNAME

正規名稱記錄,用來指定別名。

如果建立 CNAME 記錄時發生問題,請參閱「私人區域中定義的 CNAME 記錄無法運作」。

DNSKEY

其他營運商用於安全轉移作業的 DNSSEC 金鑰。這個記錄集類型只能新增至已啟用 DNSSEC 且處於「Transfer」(轉移) 狀態的區域。

DS

用於安全委任區域的 DNSSEC 金鑰指紋。除非您為委任區域啟用並啟動 DNSSEC,否則這個記錄集類型不會為該區域啟動 DNSSEC。

HTTPS

HTTPS Service binding 記錄,用於讓來源指定多個替代端點,每個端點都有相關聯的參數。這項記錄也會將 HTTP 重新導向 HTTPS。這個記錄類型是以更廣泛的 SVCB 記錄類型為基礎,且值採用相同的格式。

IPSECKEY

IPsec 通道閘道資料和公開金鑰,可供具 IPsec 功能的用戶端啟用隨機加密

MX

郵件交換記錄,用於將要求轉送至郵件伺服器。

NAPTR

RFC 3403 定義的命名機構指標記錄。

NS

名稱伺服器記錄,用於將 DNS 區域委派給權威伺服器。

PTR

指標記錄,通常用於反向 DNS 查詢。

SOA

起始授權機構記錄,用於指定有關 DNS 區域的權威資訊。代管區域建立時,系統會自動建立 SOA 資源記錄。您可以視需要修改此記錄 (例如將序號變更為任意編號,支援以日期為準的版本管理)。

SPF

寄件者政策架構記錄,先前用於電子郵件驗證系統的記錄類型,現已淘汰,改用 TXT 記錄。

SRV

服務定位器記錄,用於部分 VoIP、即時傳訊通訊協定和其他應用程式。

SSHFP

SSH 指紋,供 SSH 用戶端用來驗證 SSH 伺服器的公開金鑰

SVCB

Service binding 記錄,可供邏輯服務用於指定多個替代端點,每個端點都有相關聯的參數。如果使用 HTTPS 來源,請參閱 HTTPS 記錄類型。

TLSA

TLS 驗證記錄,供 TLS 用戶端用來驗證 X.509 伺服器憑證

TXT

文字記錄,可含有任意文字,也可用來定義機器可讀的資料,例如安全或防濫用資訊。

TXT 記錄可包含一或多個文字字串;個別字串的長度上限為 255 個字元。郵件代理程式和其他軟體代理程式會串聯多個字串,每個字串都須置於引號之中。

如要新增、刪除或更新記錄,請參閱「管理記錄」。

萬用字元 DNS 記錄

Cloud DNS 支援所有記錄類型的萬用字元記錄,但 NS 記錄除外。

別名記錄

別名 (ALIAS) 記錄是 Cloud DNS 的自訂記錄類型,行為類似 CNAME 記錄,但只能在區域頂層使用,且只會回應位址記錄 (A 或 AAAA) 查詢。具體來說,ALIAS 記錄類型會將別名網域名稱對應至正規名稱,並使用正規名稱查詢回應。如需在頂層採取 CNAME 行為,這個記錄類型就非常實用。頂層無法放置 CNAME 記錄,因為這類記錄無法與任何其他記錄類型並存,包括區域頂層必須具備的 SOA 記錄。

ALIAS 記錄是 Cloud DNS 專用的記錄,絕不會向查詢 Cloud DNS 區域的外部用戶端公開。對用戶端而言,ALIAS 記錄會以標準 A 或 AAAA 記錄的形式顯示在 DNS 回應中。ALIAS 記錄與 DNSSEC 不相容,因此無法在具有 ALIAS 記錄的區域啟用 DNSSEC。

管理 ALIAS 記錄的方式與管理其他記錄相同。如要瞭解如何管理記錄,請參閱「管理記錄」。

查詢解析程序

別名記錄僅適用於 Cloud DNS 公開區域。

針對 CNAME 記錄,解析器會負責解析正規名稱。ALIAS 記錄則由 Cloud DNS 名稱伺服器解析正規名稱,並產生合成的 A 或 AAAA 記錄,傳回給解析器。合成的 A 或 AAAA 記錄會使用 ALIAS 記錄的名稱,以及解析 ALIAS 記錄目標時找到的 IP 位址。Cloud DNS 名稱伺服器會使用 Google 可用的遞迴解析器來解析別名記錄。

如果別名目標解析為具有多個位址的資源記錄集 (RRSet),Cloud DNS 會傳回所有記錄,但會先隨機排序,再傳回合成位址記錄。這個程序類似於 Cloud DNS 處理網域名稱伺服器回應的方式。

解析 ALIAS 記錄目標時,系統只會合成位址記錄。查詢 ALIAS 記錄,並不會傳回解析別名記錄目標時找到的任何中介 CNAME 記錄。在到達 ALIAS 記錄之前,透過 CNAME 追蹤找到的 CNAME 記錄會原封不動傳回。如果 ALIAS 目標解析失敗 (即傳回 NOERROR 以外的回應代碼),Cloud DNS 名稱伺服器會向用戶端傳回 SERVFAIL 回應。如果解析作業產生 NODATA 回應 (即不具位址記錄的 NOERROR 回應),Cloud DNS 名稱伺服器會傳回 NODATA 回應。

解析 ALIAS 記錄目標時,Cloud DNS 不會使用由用戶端提供的 EDNS 用戶端子網路

存留時間 (TTL) 參數和快取

透過合成位址記錄傳回的 TTL 值,是 ALIAS 記錄設定的 TTL 值,以及解析 ALIAS 目標時遇到的 TTL 值中最小的值。使用這個方法時,傳回的 TTL 可能小於 ALIAS 記錄設定的 TTL,但絕不會大於設定的 TTL。

以下範例說明如何判斷合成位址記錄的 TTL。

假設 Cloud DNS 代管區域中已設定下列記錄:

example.com.    3600    SOA      ns.com.  admin.example.com. (...)
                86400   NS       ns.com.
                6000    ALIAS    test-cname.example.com.
test-cname      3000    CNAME    address.example.com.
address         5000    A        1.2.3.4

對這個區域查詢 example.com 的 A 記錄時,傳回的回應類似下列內容:

QUESTION SECTION
example.com.                  A

ANSWER SECTION
example.com.        3000      A      1.2.3.4

解析期間遇到的 TTL 為 6000 (ALIAS 記錄)、3000 (CNAME 記錄) 和 5000 (A 記錄)。其中最小的值是 3000,因此合成的位址記錄會傳回此值。

為簡單起見,這個範例顯示同一區域中的所有記錄,但即使解析作業跨越不同區域,TTL 邏輯也完全相同。

權威回應位元

DNS 回應中的權威位元,以鏈結 (原始 qname) 中的第一個名稱為準,無論與該名稱相關聯的資料是否位於伺服器上,或是透過 ALIAS 記錄解析擷取而來,皆是如此。

錯誤處理

為解析 ALIAS 記錄,Cloud DNS 會使用第三方權威名稱伺服器來判斷 DNS 委派作業,並擷取外部託管的 DNS 資料。如果 Cloud DNS 無法解析 ALIAS 記錄目標 (即 ALIAS 目標解析作業產生錯誤 RCODE 值,例如 NXDOMAINREFUSED),會傳回 SERVFAIL 回應。舉例來說,如果 ALIAS 目標不存在或其權威伺服器無法連線,Cloud DNS 會傳回 SERVFAIL

由於 SERVFAIL 提供的錯誤資訊有限,Cloud DNS 記錄會包含 ALIAS 記錄解析期間遇到的特定 RCODE 值,協助排解錯誤。如要瞭解如何使用 Cloud DNS 記錄,請參閱「使用記錄和監控功能」。

如果 ALIAS 目標解析作業產生 NODATA 回應 (含有 NOERROR RCODE 的空白回應),Cloud DNS 會傳回 NODATAALIAS 記錄同時符合 AAAAA 查詢,但 ALIAS 目標只能保留一種記錄類型。這是預期行為,不會產生含有錯誤 RCODE 值的回應。

匯入及匯出記錄

您可以匯入及匯出 BIND 區域檔案或 YAML 檔案中的記錄。

BIND 檔案不支援 ALIAS 記錄,因為 ALIAS 記錄類型並非標準 DNS 記錄類型。雖然 Cloud DNS 可辨識這些項目,但其他與 BIND 相容的 DNS 軟體可能無法辨識。

ALIAS 記錄會匯出至 Cloud DNS 專用的 YAML 檔案,格式如下:

kind: dns#resourceRecordSet
name: DNS Name
rrdatas: RR Data
ttl: TTL
type: ALIAS

Cloud DNS 能以上述格式從 YAML 檔案匯入 ALIAS 記錄。

安全性與隱私

Cloud DNS 公開名稱伺服器會代您解析 ALIAS 目標,但您必須確保 ALIAS 目標正確設定;錯誤的 ALIAS 目標可能會導致公開記錄無法正常運作,或傳回非預期的 IP 位址。

監控代管區域

Cloud DNS 可透過 Logging 記錄針對代管區域發出的所有查詢。DNS 查詢記錄檔提供選填欄位 alias_query_response_code,可記錄 ALIAS 名稱解析狀態的相關資訊,因為 DNS 回應不提供這類資訊。

詳情請參閱「查看記錄」。

只有在使用 ALIAS 記錄解析查詢時,才需設定 alias_query_response_code。如果值為 NoError,表示 ALIAS 記錄解析成功,其他值則代表錯誤。SERVFAIL 值可能代表下列任一問題:

  • 無法連線至目標網域名稱伺服器
  • 目標解析作業已逾時,但系統尚未找到回應
  • DNSSEC 驗證失敗

記錄項目的 qtype 欄位沒有 ALIAS 選項。如果使用 ALIAS 記錄回應 A 或 AAAA 查詢,qtype 欄位內容會維持為 A 或 AAAA。

後續步驟