初次接觸 Active Directory 時,許多人像我一樣邊看說明邊執行 dcpromo,對 DNS 的運作機制一知半解。安裝精靈會提示自動部署 DNS,導致許多管理員忽略其深度配置。實際經驗證明,不懂 DNS 會在後續維護中付出高昂代價——論壇上關於 DNS 的求助帖佔比極高。本文整理自論壇精華帖、參考書與實戰經驗,旨在建立系統性認知,亦歡迎高手指正補充。
DNS 結構中,頂級域(如 com.)末尾有一個句點「.」。解析器從左至右解析 FQDN,最終以「.」結束。Windows DNS 會自動補上尾點,易使人忽略其存在。在命令列測試時最好手動加上「.」。因根域有此點,林根 DNS 的「轉發器」選項會變灰無法設定(因「.」認為自己是根,無需轉發)。解決方法:刪除該點,即可啟用轉發設定。
若企業外部服務(如網站)已在 Internet 註冊 contoso.com,內部 AD 建議使用不同名稱(如 contoso.net)或外部名稱的子域(如 corp.contoso.com),避免內外部命名空間重疊導致用戶端登入或存取 Internet 出現問題,尤其涉及 NAT 環境時更為關鍵。
位於 C:\WINDOWS\system32\drivers\etc\hosts,用於減少 DNS 伺服器負載:若用戶端查詢的主機名存在於 hosts 中,即直接解析 IP 而不查詢 DNS 伺服器。常被用於封鎖廣告或特定網站(如屏蔽 QQ)。
DNS 記錄皆有 TTL,hosts 快取超過 TTL 會被刪除,否則 DNS 變更無法在 hosts 中體現。實例:DNS 新增 A 記錄後,用戶端因快取仍無法存取,需在用戶端執行 ipconfig /flushdns 清除快取;伺服器端則用 dnscmd /clearcache。
此機制類似 NT 時代的 PDC/BDC,屬脆弱架構。微軟允許任何執行 DNS 的 DC 設為該域的主 DNS 伺服器以延長可用性。
DNS 伺服器被要求遞迴查詢時,向其他伺服器查詢預設採迭代方式。可在 DNS 伺服器進階選項中停用遞迴查詢。
啟用 NetBIOS 解析時,Windows 用戶端依序查詢:
理解此流程可解決「為何 ping 完整名稱才通」及「域成員身份變更時更改主 DNS 尾碼」等疑問。
DNS 範圍極廣,短時間難以盡錄。本文為基礎總結,後續將補充進階主題。歡迎留言指正交流,共同精進。