共用方式為


DNSLint 公用程式的描述

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

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

摘要

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

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

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

Microsoft 已對此檔案進行病毒掃描。 Microsoft 是利用發佈當日的最新病毒偵測軟體來掃描檔案。 檔案會儲存在安全性增強的伺服器上,以協助防止對檔案進行任何未經授權的變更。

DNSLint 功能

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

  • dnslint /d:診斷「跛腳委派」和其他相關 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]  

執行 DNSLint 時,請指定 /d/ad/ql。 其他開關是選擇性的。

您可以使用 /d 參數來要求功能變數名稱測試。 當您針對跛腳委派問題進行疑難解答時,這個開關很有用。

  • 指定要測試的網域名稱。
  • 您無法將 /d 開關與 /ad 開關搭配使用。

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

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

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

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

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

  • 使用 /ad 切換搭配 /s 選項,其中 /s 指定在 AD 樹系根的 _msdcs 區域中具有權威性的 DNS 伺服器的 IP 位址。

  • 您無法將 /ad 開關與 /d/c 一同使用。

您可以使用 /ql 開關從清單中要求 DNS 查詢測試。

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

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

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

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

    dnslint /ql autocreate  
    
  • 您不能將 /ql/d/ad/c一起使用。

注意

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

選項開關

請使用 /c 來要求電子郵件伺服器的連線測試。

  • 交換器 /c 會在找到的電子郵件伺服器上測試 Simple Mail Transfer Protocol (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 網域名稱。 使用此參數來協助診斷「跛腳委派」問題和其他相關的 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 使用 (report) 參數,您可以指定 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 (text) 參數,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 localhost組合使用 /ad 選項/s。 透過函式 /ql ,可以從輸入檔直接測試 TCP 連接埠 53。 函式 /ad /s localhost 會測試本機設定的 DNS 伺服器是否可以解析用於 Active Directory 樹系複寫的 DNS 記錄。 您可以改為使用 /ad/sip_addr 來測試 TCP 連接埠 53 連線,其中 ip_addr 是 Active Directory 網域根目錄中_msdcs區域的 DNS 伺服器的 IP 位址。

例如: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 準備於 2002 年 5 月 13 日 17:08:36 -0700

當端口顯示為「未接聽」時,表示被查詢的電子郵件伺服器回傳了一個 TCP 封包,其上設定了重設旗標。 它也表示在埠口上沒有任何服務或應用程式在監聽。

當目標電子郵件伺服器未回應連線嘗試時,會回報「無回應」。 如果目標伺服器正常運作,這表示埠可能被設定為篩選:

  • 目標伺服器。
  • 在執行 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 準備於 2002 年 5 月 14 日 星期二 09:26:06 UTC-7

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

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

注意

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

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

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

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

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

您可以使用 /s (server) 參數搭配 /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 位址,此子網域的 DNS 紀錄是為了 Active Directory 樹系複寫註冊的。 一般而言,它是 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 伺服器沒有回應,則會使用清單中的下一部伺服器。