針對 DNS 進行疑難排解
您是 Contoso 的首席系統工程師,需要知道如何識別及解決重大的名稱解析和 DNS 服務問題。 在本單元中,您將探索如何對 Azure DNS 和 Windows Server DNS 進行疑難排解,以及一般名稱解析的疑難排解。
針對 Azure DNS 進行疑難排解
如果在管理 Azure DNS 時發生問題,請檢閱下表以取得繼續作業的指引。
問題 | 檢查内容 |
---|---|
您無法建立 DNS 區域 | 請先檢查 Azure DNS 稽核記錄。 此外,請記住資源群組中的所有 DNS 區域名稱均不得重複。 如果收到錯誤:You have reached or exceeded the maximum number of zones in subscription {subscription id} ,請使用其他的 Azure 訂閱或刪除區域。 您也可以連絡 Azure 支援,要求增加您的區域訂閱限制。 如果收到錯誤:The zone '{zone name}' is not available ,請嘗試使用其他的區域名稱。 |
您無法建立 DNS 記錄 | 請先檢查 Azure DNS 稽核記錄。 接下來,請驗證是否還不存在記錄集。 驗證您未嘗試在區域根目錄建立記錄集;如已嘗試,請使用 @ 字元作為前置詞。 確定沒有別名 (CNAME) 衝突。 此外,請檢查是否已達到您 DNS 區域允許的記錄集數量限制。 如已達到上限,請刪除一些記錄集或連絡 Azure 支援提高上限。 |
您無法解析 DNS 記錄 | 驗證查詢的記錄是否正確。 請確定 Azure DNS 中的記錄正確無誤。 驗證所要求的記錄可在 Azure DNS 名稱伺服器上解析。 如果您是使用本機電腦執行查詢,請檢查 DNS 名稱快取。 如有必要,請清空此快取,然後再試一次。 |
注意
您可以使用 DNS 分析來存取 DNS 記錄檔資訊。
針對 Windows Server DNS 進行疑難排解
名稱解析和大部分其他技術一樣,有時也需要疑難排解。 當 DNS 伺服器、其區域或資源記錄設定錯誤時,就可能發生問題。 當資源記錄造成問題時,有時很難找出問題,因為設定問題不一定很明顯。 有數種工具可供設定、管理及疑難排解 DNS 伺服器和名稱解析問題之用。
用於疑難排解的命令列工具和命令
下表說明有哪些命令列工具和程序可用於針對名稱解析與設定問題進行疑難排解。
工具 | 描述 |
---|---|
NSLookup | 用以查詢 DNS 資訊。 這項工具富有彈性,而且可以提供有關 DNS 伺服器狀態的重要資訊。 您也可以使用此工具查閱資源記錄,並驗證其設定。 此外,您還可以測試區域傳輸、安全性選項,以及 MX 記錄解析。 |
DNSCmd | 用以管理 DNS 伺服器角色。 這款命令列工具在指令碼批次檔中很有用,可協助將例行的 DNS 管理工作自動化,或在您的網路上執行新 DNS 伺服器的簡單自動安裝及設定。 |
DNSlint | 用以診斷常見的 DNS 問題。 這項工具可快速診斷 DNS 中的設定問題,並可產生您正在測試之網域狀態的 HTML 格式報告。 |
IPConfig | 用以檢查電腦使用的 IP 設定詳細資料。 此命令包含其他命令列選項,您可用來疑難排解和支援 DNS 用戶端。 例如,您可以使用命令 ipconfig /displaydns 來檢查用戶端電腦的本機 DNS 快取,使用命令 ipconfig /flushdns 來清除本機 DNS 快取。 如果您想要在 DNS 中重新登錄主機,您可以使用 ipconfig /registerdns 命令。 |
在 DNS 伺服器上監視 | 從 [DNS 伺服器屬性] 對話方塊中的 [監視] 索引標籤執行簡單的本機查詢和遞迴查詢,測試伺服器是否可與上游伺服器進行通訊。 您也可以排程這些測試依固定間隔進行。 |
注意
您必須從 Microsoft 下載網站下載 DNSlint,因為它並未包含在 Windows 中。
在 Windows Server 中,您也可以使用 Windows PowerShell Cmdlet 管理 DNS 用戶端和伺服器。 下表說明一些最常使用的 Cmdlet。
Cmdlet | 描述 |
---|---|
Clear-DNSClientCache |
此 Cmdlet 會清除用戶端快取,類似 ipconfig /flushdns 命令。 |
Get-DNSClient |
這個 Cmdlet 會顯示網路介面詳細資料。 |
Get-DNSClientCache |
這個 Cmdlet 會顯示本機 DNS 用戶端快取的內容。 |
Register-DNSClient |
這個 Cmdlet 會將電腦上所有 IP 位址登錄到已設定的 DNS 伺服器。 |
Resolve-DNSName |
這個 Cmdlet 會針對特定名稱執行 DNS 名稱解析,類似 NSLookup 的運作方式。 |
Set-DNSClient |
這個 Cmdlet 會在電腦上設定介面專用 DNS 用戶端設定。 |
Test-DNSServer |
這個 Cmdlet 會測試指定的電腦是否為正常運作的 DNS 伺服器。 |
名稱解析疑難排解程序
對名稱解析進行疑難排解時,您必須了解電腦使用的名稱解析方法,以及電腦使用這些方法的順序。 每次嘗試解析後,請務必清除 DNS 解析快取。 如果您無法連線到遠端主機,而且懷疑有名稱解析問題,請執行下列步驟針對名稱解析進行疑難排解:
開啟提升權限的命令提示字元,然後在命令提示字元中輸入下列命令,清除 DNS 解析快取:
ipconfig /flushdns
注意
對等的 Windows PowerShell 命令是:
Clear-DNSClientCache
。嘗試按 IP 位址 Ping 遠端主機。 這有助於識別問題是否與名稱解析相關。 如果使用 IP 位址成功 Ping 到主機,但使用主機名稱卻失敗,則問題與名稱解析有關。
嘗試使用主機名稱 Ping 遠端主機。 例如,在 Contoso,您會在命令提示字元中輸入下列命令:
Ping LON-DC1.contoso.com
注意
對等的 Windows PowerShell 命令是:
Test-connection LON-DC1.Contoso.com
。在命令提示字元中輸入下列命令,然後按 ENTER 鍵:
NSLookup.exe -d2 LON-DC1.contoso.com. > filename.txt
注意
對等的 Windows PowerShell 命令是:
Resolve-dnsname lon-DC1.Contoso.com. > filename.txt
。檢查 filename.txt 檔案的內容,以識別名稱解析的失敗階段。
您應該了解如何解讀 NSLookup 命令輸出,以便識別在用戶端電腦的設定、名稱伺服器或名稱伺服器區域資料庫內記錄的設定中,是否有名稱解析問題。
延伸閱讀
您可藉由檢閱下列文件來深入了解。