DNS(Domain Name System,網域名稱系統)是互聯網的「電話簿」:把人類易記的域名(例如 www.hkezit.com)轉換為機器通訊所需的 IP 地址。本頁講解 DNS 的分層架構與查詢流程、常見記錄類型的用途、快取與 TTL 的影響,以及香港公司網絡 DNS 故障的排查方法。
DNS 的定義:把名稱轉換為地址的分層資料庫
網絡設備之間的通訊建基於 IP 地址,但要求用戶記住一串數字並不現實。網域名稱系統因此而生:它是一個全球分佈式的分層資料庫,把整個名稱空間組織成樹狀結構——由根(root)開始,向下是 .com、.hk 等頂級域,再向下是各機構註冊的域名,每一層由不同的名稱伺服器(name server)負責管理各自的區域(zone)。應用程式透過稱為解析器(resolver)的程式向名稱伺服器發出查詢,取得名稱對應的資料。
這種分層授權的設計令 DNS 可以無限擴展:每間機構只需維護自己域名之下的記錄,毋須任何中央機構管理全部資料。對一般公司而言,日常接觸 DNS 的兩個層面是:其一,內部裝置需要正確的解析服務才能上網及存取內部系統;其二,公司對外的網站、郵件與遠程存取服務,依賴域名記錄正確指向公司的伺服器或公網地址。IP 地址的基本概念可參考 IPv4 與 IPv6 的分別。
一次完整的 DNS 查詢流程
檢查本機快取——用戶在瀏覽器輸入網址後,作業系統先檢查本機的 DNS 快取及 hosts 檔案,若已有有效記錄則直接使用。
向遞歸解析器查詢——本機沒有記錄時,向裝置所設定的遞歸解析器(通常是路由器、公司 DNS 伺服器或 ISP/公共解析服務)發出查詢。
DNS 是整個互聯網把名稱轉換為 IP 地址的基礎系統,記錄一般假設 IP 地址相對固定。DDNS(動態 DNS)則是建基於 DNS 之上的服務:當寬頻線路的公網 IP 地址不定期改變時,路由器或 NVR 會自動把最新地址更新到 DDNS 服務商,令域名長期指向正確位置。公司網站通常用固定 IP 配合標準 DNS 記錄,而遠程監控、遙距存取等場景在沒有固定 IP 時便需要 DDNS。
為何網頁打不開,但 ping IP 地址卻正常?
這是典型的 DNS 故障徵狀:網絡連通本身沒有問題,但名稱無法解析為地址。常見原因包括裝置設定了失效的 DNS 伺服器地址、公司內部 DNS 伺服器停止回應、路由器 DHCP 派發了錯誤的 DNS 設定,或 ISP 的解析服務出現故障。排查時可用 nslookup 或 dig 指令直接查詢,再嘗試改用 8.8.8.8 或 1.1.1.1 等公共解析服務對比結果,即可判斷問題所在。
公司應該用哪個 DNS 伺服器?
小型辦公室一般直接使用 ISP 提供的解析服務,或改用 Google(8.8.8.8)、Cloudflare(1.1.1.1)等公共解析服務,回應速度與穩定性通常較好。設有 Windows 網域(Active Directory)的公司則必須讓內部電腦優先指向網域控制站的 DNS 服務,否則登入網域、存取檔案伺服器都會出現問題;由網域 DNS 再向外轉發互聯網查詢。
什麼是 DNS 快取?為何改了記錄要等一段時間才生效?
每條 DNS 記錄都帶有 TTL(存活時間)值,遞歸解析器與作業系統會在 TTL 期限內把查詢結果暫存於快取,期間再查詢同一名稱時直接使用暫存結果,不再向外查詢。這大幅減少查詢流量並加快回應,但代價是修改記錄後,世界各地的快取要等原有 TTL 過期後才會取得新值。計劃遷移伺服器時,可預先把 TTL 調低,縮短切換時的生效時間。
更換寬頻服務商會影響 DNS 設定嗎?
會有兩方面影響。第一,若公司裝置以手動方式指定了舊 ISP 的 DNS 伺服器地址,轉台後該地址可能無法再使用,需改為新 ISP 提供的地址或公共解析服務。第二,若公司有對外服務(網站、郵件、遠程監控)而公網 IP 地址隨轉台改變,必須同步更新域名的 A 記錄或 DDNS 設定,否則外界仍會解析到舊地址而無法連接。