DNSLint 公用程式的描述

本文說明 DNSLint 公用程式及其語法。

適用:Windows Server 2012 R2
原始 KB 編號: 321045

摘要

DNSLint 是 Microsoft Windows 公用程式,可協助您診斷常見的域名系統 (DNS) 名稱解析問題。

如需如何下載 Microsoft 支援服務 檔案的詳細資訊,請參閱下列文章:

119591如何從在線服務取得 Microsoft 支援服務 檔案

Microsoft 已掃描此檔案是否有病毒。 Microsoft 使用了最新的病毒偵測軟體,該軟體可在檔案張貼的日期取得。 檔案會儲存在安全性增強的伺服器上,以協助防止對檔案進行任何未經授權的變更。

DNSLint 函式

DNSLint 有三個函式,可驗證 DNS 記錄併產生 HTML 報告。 三個函式包括:

  • dnslint /d:診斷「Lame 委派」和其他相關 DNS 問題的潛在原因。
  • dnslint /ql:驗證多部 DNS 伺服器上的一組使用者定義 DNS 記錄。
  • dnslint /ad:驗證特別用於Active Directory 複寫的 DNS 記錄。

DNSLint 是命令行公用程式。 語法為:

dnslint /d domain_name | /ad [LDAP_IP_address] | /ql input_file [/c [smtp,pop,imap]] [/no_open] [/r report_name] [/t] [/test_tcp] [/s DNS_IP_address] [/v] [/y]  

當您執行 /dDNSLint 時,請指定 、 /ad/ql 。 其他參數是選擇性的。

您可以使用 /d 參數來要求功能變數名稱測試。 當您針對 lame 委派問題進行疑難解答時,此參數非常有用。

  • 指定要測試的功能變數名稱。
  • 您無法將 參數與 參數搭配/ad使用/d

您可以使用 /ad 參數來要求 Active Directory 測試。

  • 參數 /ad 會解析用於AD樹系複寫的 DNS 記錄。

  • 根據預設,會使用本機系統的LDAP服務。

  • 您可以指定選取) (遠端 LDAP 伺服器 IP 位址。

  • 只接受有效的IP位址。 不接受名稱。
    一般而言,它是 Active Directory 域控制器。

  • 使用 參數 /ad 搭配 /s 選項,其中 /s 指定 DNS 伺服器的 IP 位址,該 DNS 伺服器對於 AD 樹系根目錄中_msdcs區域具有權威性。

  • 您無法搭配 或使用 /ad 參數/d/c

您可以使用 /ql 參數從清單要求 DNS 查詢測試。

  • 參數會 /ql 傳送文字輸入檔中指定的 DNS 查詢

  • 指定輸入檔的路徑和名稱。

  • 參數 /ql 支援 A、PTR、CNAME、SRV 和 MX 記錄查詢。

  • 您可以執行下列命令來建立範例輸入檔:

    dnslint /ql autocreate  
    
  • 您無法搭配、 /ad/c使用 /ql 參數/d

注意事項

  • 您無法同時使用 /d/ad/ql
  • 您無法與 /ad/ql一起使用/c
  • 當您使用 /ad時,也必須指定 /s

選擇性參數

用來 /c 要求電子郵件伺服器上的連線能力測試。

  • 參數會 /c 在找到的電子郵件伺服器上測試簡易郵件傳輸通訊協定 (SMTP) 、POP 和 IMAP 埠。
  • 根據預設,會測試 SMTP、POP 和 IMAP 埠) 的所有三個 (。 您可以指定一個或一個組合。 若要這樣做,請使用逗號分隔清單: /c pop,imap,smtp

若要防止報表自動開啟,請使用 /no_open。 參數 /no_open 在腳本中很有用。

/r使用 參數來指定所建立之報表檔案的名稱。

  • .htm 擴展名會自動新增至報表名稱。
  • 報表會以 HTML 格式建立。 預設名稱為 Dnslint.htm
  • 預設位置是當前目錄。

/s使用 參數略過 InterNIC whois 查閱。

  • 您可以指定 DNS 伺服器 IP 位址,而不是查詢其中一個的 InterNIC。
  • 參數 /s 會使用提供的IP位址開始檢查 DNS 記錄。
  • 只接受有效的IP位址。 不接受名稱。
  • 使用此選項來檢查 InterNIC 不支援的功能變數名稱。
  • 當您使用 /ad時,您必須使用 /s 來指定對AD樹系根域中_msdcs子域具有權威性的 DNS 伺服器。
  • 當您使用 /ad時,您可以執行 /s localhost來判斷本機系統是否可以解析AD測試中找到的記錄。

使用 /t 來要求文本文件的輸出。

  • 文字檔與 .htm 報表共用相同的名稱,但擴展名為 .txt。
  • 與 .htm 報表檔案相同目錄中建立的文本檔。

使用 /test_tcp 來要求測試 TCP 連接埠 53。

  • 根據預設,只會測試 UDP 連接埠 53。
  • 選項 /test_tcp 會檢查 TCP 連接埠 53 是否回應查詢。
  • 選項 /test_tcp 無法與 搭配 /ql使用。

使用 /v 要求畫面的詳細信息輸出。

使用 /y 覆寫現有的報表檔案,而不會出現提示。 參數 /y 在腳本中很有用。

必要參數

若要執行 DNSLint,您必須使用下列三個參數之一:

  1. 用於 /d 域名測試
  2. 用於 /ad Active Directory 複寫測試。
  3. 用於 /ql 查詢清單中指定的測試。

使用 (/d 功能變數名稱測試) 參數來測試特定 DNS 功能變數名稱。 使用此參數來協助診斷「Lame 委派」問題和其他相關的 DNS 問題。 您測試的網域名稱可以是:

  • 已註冊以在因特網上使用的名稱。
  • 私人命名空間中使用的名稱。

當您在專用網上測試功能變數名稱,或在因特網上註冊且深度超過兩層的功能變數名稱時,您必須使用 選項 /s

使用 (/ad Active Directory 測試) 參數來測試負責 Active Directory 樹系復寫的 DNS 記錄。 切換 /ad 之後,指定用於此測試之LDAP伺服器的IP位址。 一般而言,它是 Active Directory 域控制器。 如果 DNSLint 是在域控制器上執行,則不需要 IP 位址,因為此參數的預設值為 127.0.0.1。

使用 (/ql 查詢清單測試) 參數來測試文字輸入檔中指定的 DNS 記錄。 在參數之後,立即指定文字輸入檔的完整路徑和名稱。 執行 dnslint /ql autocreate 以產生名為 In-dnslint.txt 的範例文字輸入檔。 此檔案包含所需格式的說明。 您可以使用此檔案作為範本來建立其他輸入檔。

其他選擇性參數

/v (詳細資訊) 開關會開啟「詳細資訊模式」。 開啟此開關后,DNSLint 會將收集數據所採取的步驟輸出到畫面。 您可以將此輸出傳送至檔案。 例如,dnslint /v /d msn.com。 根據預設,DNSLint 產生的報表名稱會 Dnslint.htm。 /r 透過 (報表) 參數,您可以指定 DNSLint 所產生之報表檔案的名稱和位置。 您可以為報表檔案指定與已測試的功能變數名稱或 DNS 伺服器相同的名稱。 “.htm” 擴展名會自動附加至報表名稱,因為報表是 HTML 格式。

根據預設,DNSLint 會嘗試使用與報表檔案的 .htm 檔案相關聯的任何程式,在產生報表檔案之後自動開啟報表檔案。 一般而言,Microsoft Internet Explorer 會與 .htm 擴充功能相關聯。 無法使用 DNSLint 將報表格式變更為 HTML 以外的格式。

若要定義報表檔案的寫入位置,請指定報表檔案的完整路徑和名稱。 DNSLint 支援本機磁碟驅動器和通用命名約定 (UNC) 路徑。 例如, 命令 dnslint /d msn.com /r c:\reports\reskit 會在 C:\Reports 資料夾中建立名為 Reskit.htm 的報表。 dnslint /d mydom.local /r \\\server1\reports\mydom命令會在報表共用中名為 server1 的遠端系統上建立報表。 報表名稱會 Mydom.htm。

如果您指定 /t (文字) 參數,DNSLint 會產生文字報表和 HTML 報表。 文字報表使用與 .htm 報表相同的名稱,不同之處在於其擴展名 .txt。 檔案會建立在與 .htm 檔案相同的資料夾中。 例如, 命令 dnslint /d msn.com /r c:\reports\reskit /t 會在 C:\Reports 資料夾中建立兩個報表。 一個報表稱為 Reskit.htm,另一個稱為 Reskit.txt。

根據預設,當 DNSLint 偵測到與目標資料夾中已經有相同名稱的報表檔案存在時,DNSLint 會提示您覆寫檔案。 使用 選項 /y 時,DNSLint 可以覆寫現有的報表檔案,而不會提示您提供許可權。 當您使用此選項時,會覆寫 .htm 檔案和選擇性 .txt 檔案。

dnslint /y /d msn.com /r c:\reports\reskit /t命令會在 C:\Reports 資料夾中建立兩個報表。 一個報表稱為 Reskit.htm,另一個稱為 Reskit.txt。 系統會覆寫現有的報表檔案,而不會提示您。

參數 /no_open 可防止 DNSLint 在產生報表之後自動開啟報表。 如果您不想要在文稿中使用 DNSLint,此選項非常有用:

  • 立即檢閱報告。
  • 檢閱從系統執行 DNSLint 的報告。

例如, 命令 dnslint /y /d msn.com /no_open 會產生名為 Dnslint.htm 的報表,該報表會以相同的名稱覆寫既有的報表,而不會提示使用者。 DNSLint 不會在報表完成時自動開啟報表。

/test_tcp 使用 (測試 TCP 連接埠 53) 選項,在使用 時/d要求測試 TCP 連接埠 53。 現今因特網上的許多 DNS 伺服器都不接受 TCP 連接埠 53 上的 DNS 查詢,以避免該埠可能遭受攻擊。 根據預設,執行 DNSLint 時,只會測試 UDP 連接埠 53。 指定選項 /test_tcp 會讓 DNSLint 透過 TCP 傳送單一 DNS 查詢,並報告是否已收到回應。

您可以使用 選項 /test_tcp 搭配 /d/ad。 不過,您無法使用 /test_tcp 選項搭配 /ql/ad/s localhost組合。 透過函式 /ql ,可以直接從輸入檔測試 TCP 連接埠 53。 函 /ad /s localhost 式會測試本機設定的 DNS 伺服器是否可以解析用於 Active Directory 樹系複寫的 DNS 記錄。 您可以改用 /ad/sip_addr 來測試 TCP 連接埠 53 連線,其中 ip_addr 是 DNS 伺服器的 IP 位址,而 DNS 伺服器是 Active Directory 網域根目錄中_msdcs區域的授權。

例如:dnslint /d microsoft.com /v /test_tcp

/c (連線測試) 參數會要求 DNSLint 在檢查 DNS 伺服器的指定功能變數名稱時,於找到的所有電子郵件伺服器上測試已知的電子郵件埠。 支援 SMTP、Post Office 通訊協定 (POP 第 3 版) ,以及因特網訊息存取通訊協定 (IMAP 第 4 版) 。 根據預設,當指定參數時 /c ,DNSLint 會嘗試連線到它找到之每個電子郵件伺服器上的所有三個埠:

  • 適用於 SMTP 的 TCP 連接埠 25
  • 適用於 POP 的 TCP 連接埠 110
  • 適用於 IMAP 的 TCP 連接埠 143

DNSLint 會報告每個埠的狀態:「正在接聽」、「未接聽」或「沒有回應」。如果 DNSLint 發現埠正在接聽,它也會從埠傳回回應。 例如,如果 SMTP 連接埠正在接聽,它通常會傳回與 SMTP 通訊協定規格一致的回應,例如下列範例:

220 mailsrv.contoso.com Microsoft ESMTP MAIL 服務,版本:5.0.2195.3705,於 Mon,2002 年 5 月 13 日 17:08:36 -0700

當埠回報為「不接聽」時,表示所查詢的電子郵件伺服器已回應 TCP 封包,並設定了 Reset 旗標。 它也指出埠上沒有接聽的服務或程式。

當目標電子郵件伺服器未回應連線嘗試時,會回報「沒有回應」。 如果目標伺服器可運作且正在執行,則表示正在篩選埠:

  • 目標伺服器。
  • 在執行 DNSLint 的用戶端與目標伺服器之間的某處。

dnslint /y /v /c /d msn.com命令會產生名為 Dnslint.htm 的報表,該報表會以相同的名稱覆寫既有的報表,而不會提示使用者。 因為已指定 選項 /c ,所以標準 DNSLint 報表底部會附加額外的區段:

網路連線能力測試
電子郵件伺服器: smtp-gw-4.msn.com
IP 位址:207.46.181.13

SMTP 回應:
220 cpimssmtpa18.msn.com Microsoft ESMTP MAIL 服務,版本:
5.0.2195.4905 已在 Tue 就緒,2002 年 5 月 14 日 09:26:06 -0700

POP 回應:可能篩選 (沒有回應)

IMAP 回應:可能篩選 (沒有回應)

注意事項

一或多部 POP 伺服器沒有回應。
一或多部 IMAP 伺服器沒有回應。

當目標電子郵件伺服器未在其其中一個電子郵件埠上回應連線嘗試時,DNSLint 會重試連線三次。 這是 TCP 用戶端的標準行為。 在 DNSLint 指出沒有回應之前,它會等候三個個別的 TCP 連線嘗試逾時。此程式可能會使報表的完成速度變慢。 若要優化 DNSLint 作業,您可以指定要檢查的電子郵件埠或埠,而不是一律檢查這三個埠。

根據預設,指定 選項時 /c ,會檢查所有三個 TCP 連接埠 (25、110、143) 。 但您可以指定要在 選項之後檢查的 /c 埠。 指定以逗號分隔的清單,緊接在 /c 選項後面。 僅指定有效的埠:smtp、、。popimap 這三個埠的任何組合都可運作。 例如, 命令 dnslint /d contoso.com /c smtp 會指定只檢查 TCP 連接埠 25 (SMTP 連接埠) 。

命令 dnslint /d contoso.com /c popsmtp 會指定只檢查 TCP 連接埠 25) 和 POP 連接埠 (TCP 連接埠 110) (SMTP 連接埠。

命令 dnslint /d contoso.com /c imappop 指定只檢查 TCP 連接埠 143) 和 POP 連接埠 (TCP 連接埠 110) 的 IMAP 連接埠 (。

您可以使用 /s (伺服器) 參數搭配 /d/ad 函式。 參數 /s 有數個用途,但只會使用一種數據類型、DNS 伺服器的有效IP位址 (一個例外狀況) 。

當您指定 /d時,選項 /s 會略過 DNSLint 預設執行的 InterNIC Whois 查閱。 因此,DNSLint 可以在專用網和比因特網上第二層網域更深的域名上執行測試。 DNSLint 也可以測試 InterNIC 不支援的功能變數名稱。 在撰寫本文時,InterNIC 支援Whois下列網域的查閱:.biz、、.com、、.coop.edu.info.int.museum.net.org

當您使用 /ad時, /s 會使用 參數來指定 DNS 伺服器的 IP 位址,該伺服器對於註冊 Active Directory 樹系複寫所用 DNS 記錄的子域具有權威性。 一般而言,它是 Active Directory 樹系根目錄下的_msdcs子域。 例如,如果 Active Directory 樹系的根目錄稱為 myad.contoso.com,則裝載此網域的 DNS 伺服器也可能是區域的 _msdcs.myad.contoso.com 授權。 在區域中,會註冊 Active Directory 複寫中使用的 DNS 記錄。 或者, _msdcs.myad.contoso.com 區域可能會委派給不同的 DNS 伺服器。 不過,已設計 DNS 基礎結構, /s 此選項可用來指定區域 _msdcs.myad.contoso.com 的授權 DNS 伺服器。

選項 /s 必須指定有效的IP位址。 此規則的唯一例外是下列組合: dnslint /ad /s localhost

“localhost” 不是有效的IP位址。 當您使用 /ad /s 組合指定此參數時,DNSLint 會測試本機系統的 (執行 DNSLint 的系統) 解析 Active Directory 樹系複寫所用 DNS 記錄的能力。 遞歸 DNS 查詢會傳送至本機系統設定的 DNS 伺服器,以確認本機系統可以解析用於 Active Directory 樹系復寫的 DNS 記錄。 在針對特定域控制器上的 Active Directory 複寫問題進行疑難解答時,這會很有用。

一般而言,並非所有本機系統設定的 DNS 伺服器都會在此程式期間進行查詢。 觀察到預設 DNS 用戶端解析程序行為。 如果本機系統 DNS 伺服器清單頂端的 DNS 伺服器沒有回應,則會使用清單中的下一部伺服器。