定義
CNAME(Canonical Name)記錄是一種 DNS 項目,用來將一個主機名稱對應到另一個主機名稱,而不是直接對應到 IP 位址。當解析器查詢 CNAME 時,DNS 會依照別名指向目標主機名稱,再正常解析該目標,這會在整個查詢鏈中多出一個額外的查詢步驟。CNAME 是將子網域指向代管服務的標準做法:例如將 www.example.com 指向 CDN、將 blog.example.com 指向代管平台、將 shop.example.com 指向 SaaS 商店系統。由於目標主機可以自由變更其底層 IP 位址,CNAME 非常適合用於會輪替或在多台伺服器間進行負載平衡的服務,例如 CDN 與無伺服器平台。DNS 規範禁止在頂點網域(即 example.com 本身)使用 CNAME,因為頂點網域還必須承載 MX、TXT 等其他記錄類型,而這些無法與 CNAME 共存;現代 DNS 服務商因此提供 ALIAS 或 ANAME 記錄,在頂點網域提供類似 CNAME 的行為。
運作方式
CNAME 記錄包含一個主機名稱與單一目標主機名稱。當來源被查詢時,DNS 會回傳目標名稱,解析器再依序查詢該名稱。目標最終必須能解析為 A 或 AAAA 記錄。
這點為何重要
CNAME 讓您可以將易記的子網域指向代管服務,而完全不需要知道或維護底層的 IP 位址,這在服務使用多個會隨時間變動的 IP 時(例如 CDN、負載平衡器、無伺服器平台)尤其重要。這是將第三方服務串接到您網域最安全的方式。