域名系統(Domain Name System,DNS)是互聯網的電話簿:當用戶輸入網址,DNS 便把域名解析為伺服器位址,再建立連線。DNS 的協定定義與查詢流程,最初規範於 RFC 1034 與 RFC 1035,全球域名層級結構(根伺服器、頂級域名、註冊商與授權伺服器)至今仍沿用該架構。
每一筆 DNS 記錄都包含四個基本要素:名稱(Name)、類型(Type)、記錄值(Value)與 TTL(存續時間)。TTL 決定其他伺服器可快取這筆記錄多久,是「DNS 改動何時生效」問題的核心。記錄存放在域名的權威名稱伺服器(Authoritative Name Server)上,不同類型的記錄由不同的服務在背後使用:網頁瀏覽查 A 記錄,電郵伺服器查 MX 記錄,安全驗證查 TXT 記錄。理解各記錄的職責,才能準確判斷「改錯哪一筆」。
查詢記錄的實際工具與操作,可參考本站〈DNS 是什麼?〉一文。
位址記錄:A 與 AAAA
A 記錄(Address Record)是 DNS 最核心的記錄類型,把域名解析到 IPv4 位址(例如 203.0.113.10)。AAAA 記錄是 A 記錄在 IPv6 上的對應,把域名解析到 IPv6 位址。兩者的運作完全相同,只是位址格式不同。
常見的設定錯誤包括:
把 CNAME 用於根網域
CNAME 記錄不能與根網域(裸域名)上的其他記錄並存,因此 www.example.com 常用 CNAME,example.com 本身則須以 A 記錄直接指向伺服器。
同時設定多筆 A 記錄作負載分擔
DNS 輪詢(Round-robin)讓相同名稱的多筆 A 記錄輪流回應,但個別記錄失效時不會自動移除,訪問會間歇失敗,故不建議以多筆 A 記錄代替負載平衡器。
電郵伺服器錯誤使用 A 記錄名稱
電郵的 MX 記錄指向的名稱必須另有 A/AAAA 記錄存在,若把 MX 直接填成 IP 位址,或指向的名稱沒有對應 A 記錄,收發電郵便會失敗。
以香港的實際情況而言,中小企業多經註冊商或寄存公司管理 A 記錄,伺服器遷移(例如轉用香港本地寄存)時若只改網頁的 A 記錄而遺漏 MX、TXT 等記錄,便會出現「網站已轉但電郵失聯」的典型事故。