您的位置:首頁技術文章
文章詳情頁

Windows服務器DNS故障問題

瀏覽:84日期:2024-02-18 17:29:31

在開始討論如何排除DNS問題之前,我們想知道你是否清楚怎樣判斷某個問題是由DNS而不是由別的命名服務造成的。在Windows主機上,判斷問題的原因是否真的出在DNS上可是件困難的事。Windows支持的命名服務真是名目繁多:如DNS、Wins、HOSTS、LMHOSTS等數不勝數。然而常用的Windows 2000 nslookup 卻全然不理會其他這些命名服務。你可能會只顧在Windows 2000計算機上運行nslookup和查詢名稱服務器,而有問題的服務卻可能在使用另一種不同的命名服務。首先,你需要考慮是哪一類程序出了問題,如果是TCP/IP客戶端,如telnet或ftp,那么問題可能出在DNS和HOSTS文件上。如果是一個支持NetBIOS命名的實用程序,如net(與在net use中一樣)中,那么值得懷疑的還要包括Wins和LMHOSTS文件。其他也使用DNS名稱或NetBIOS名稱作為參數的客戶端(如ping)也會使用這些命名服務中的任意一種。接下來,再考慮Windows使用這些命名服務的順序。在查找問題時,應按照此順序檢查各種服務。這些提示對你查出問題的癥結會有幫助,至少可幫你排除一個懷疑對象。如果要檢查一個服務器的緩存區,請單擊DNS控制臺左窗格中該服務器名稱左邊的加號。你將看到一個名為Cached Lookups的文件夾。單擊其左邊的加號或雙擊文件夾圖標或標簽以展開下一級。這樣可顯示出你的名稱服務器已為其緩存了數據的那些頂級域。繼續展開,直至看到你要查看的緩存數據所在的那一域名。如我們的名稱服務器已為microsoft.com緩存了三條NS記錄和一條A記錄。如果依次雙擊net和hp,我們還會看到這些名稱服務器的緩存地址。如果想看緩存數據上的 TTL,請雙擊右窗格中的一條記錄。若 DNS 控制臺處于高級查看模式(選擇查看 > 高級),則出現的窗口將顯示出該記錄的 TTL。在檢查 TTL 之前,一定要用操作 > 刷新或用 F5 鍵刷新 DNS 控制臺,否則你看到的 TTL 可能會大于當前 TTL。如果右鍵單擊該記錄,你可能會注意到有一個刪除記錄選項。DNS的一些常見的錯誤1. 忘記增加序列號在你未使用 DNS 控制臺而是用手動方式更改區域數據文件時,就會出現一些問題。DNS 控制臺在它每次更改區域數據時都會記著在 SOA 記錄中增加序列號,所以你不必為此操心。不過,這也意味著你可能不會養成更新序列號的習慣,所以在進行一次性手動修改時,你可能會忘記增加序列號。此問題的主要癥狀是,從屬名稱服務器不會獲得你在主服務器上對該區域做的任何更改。從屬服務器認為區域數據并未更改,因為它看到的序列號仍是原來的序列號。該怎樣檢查當時是否記著增加序列號呢?不幸的是,這就不是那么容易了。如果你不記得原序列號是什么,而現在的序列號不能表明它是什么時候更新的,則沒有直接的方法判斷它是否已更改。在啟動主服務器時,不管你是否更改了序列號,它都將加載更新后的區域數據文件。最好的辦法只能是使用 nslookup 來比較主服務器和從屬服務器返回的數據。如果它們返回不同的數據,則表明你可能忘了增加序列號。如果你能想起最近作的一次更改,則可以查看此數據。如果記不起最近一次作的更改,則可以從一個主服務器和一個從屬服務器復制該區域,將結果排序并使用文件比較工具將它們加以比較。還有一個好消息,即,盡管確定該區域此前是否已復制比較難,但現在要確保該區域被復制卻非常簡單。只須在 DNS 控制臺中雙擊 SOA 記錄并手動編輯序列號字段,增加主服務器上此區域的副本中的序列號即可。從屬服務器將在刷新時間間隔內獲得此新的數據,如果它們用了 NOTIFY,則會更快。2. 以手動方式更改DNS服務器要記住 Microsoft DNS 服務器會定期更新其區域數據文件。每次用 DNS 控制臺對一個區域的數據進行更改時,就有一個寫操作掛起:在 DNS 服務器退出之前,它必須重寫該區域的數據文件,否則它就會丟失你所作的更改??梢詫⒋吮茸鲀却嬷幸粋€已更新的頁:操作系統在退出之前必須將它寫到磁盤上。如果你在一個寫操作掛起期間對一個區域數據文件作了手動更改,則在名稱服務器退出后你會莫名其妙地丟失所作的更改。比如你在服務器正在運行且有一個寫操作掛起時向一個名為microsoft.com的新子域添加了委派。作完更改后,你必須將服務器停下并再次啟動,以讓它再次讀取該區域數據。但是在服務器退出時,它將重寫 microsoft.com 區域數據文件,你的委派于是就會丟掉。如果仔細觀察(平時就需要這樣)事件查看器,會在服務器停止事件之前看到這樣一條消息:The DNS server wrote version 37 of zone microsoft.com to file microsoft.com.dns.(DNS 服務器寫入區域 microsoft.com 的版本 37 到文件 microsoft.com.dns。)如果你用操作 | 更新服務器數據文件來強制服務器重寫其區域數據文件,則服務器就會與區域數據文件同步,而不必在退出時重寫。所以,如果要對區域數據文件作手動更改,那么要么首先停止服務器(但這意味著在你作更改期間服務器將不響應任何查詢),要么使用 DNS 控制臺將服務器與區域數據文件同步,然后再進行更改。3. 從屬服務器無法加載區域數據如果一個從屬服務器無法從其主控服務器獲取某個區域的當前序列號,那么最初它是不會給你發警告消息的。然而,如果該問題一直存在而且從屬服務器在有效期時間內無法確定其數據是否是最新的,那么該區域就會過期。在一個 Microsoft DNS 服務器上,你將在事件查看器中看到與下文類似的一條消息:在獲得成功區域復制或從這個區域作為其源的主服務器獲得成功區域復制之前microsoft.com 區域就超時了,該區域已經被關閉。區域過期后,當你向名稱服務器查詢該區域中的數據時,就會收到 SERVFAIL 錯誤消息:C:> nslookup robocop wormhole.microsoft.com.Server: wormhole.microsoft.comAddresses: 207.46.230.219, 192.253.253.1wormhole.microsoft.com can’t find robocop.microsoft.com: Server failed出現此問題的原因主要有三個:由于網絡故障與主控服務器的連接斷開,為主控服務器配置的 IP 地址不正確,主控服務器上的區域數據文件中有語法錯誤。首先,應使用 DNS 控制臺檢查該從屬服務器在嘗試從中加載數據的那一(些)主控服務器的地址。右鍵單擊左窗格中該區域的域名,選擇屬性,然后查看常規選項卡,確認它是否真是主名稱服務器的 IP 地址。如果是,請檢查到此 IP 地址的連接:C:> ping 207.46.230.219Pinging 207.46.230.219 with 32 bytes of data:Request timed out.Request timed out.Request timed out.Request timed out.如果無法連接到主控服務器,請確定該服務器的主機是否真的在運行(例如,已通電),或檢查網絡問題。你可能還需要檢查主控服務器對該區域中數據的查詢是否返回權威性響應。如果主控服務器的響應對于該區域不是權威性的,則從屬服務器就不從該主控服務器中復制此區域。可使用 nslookup 檢查主控服務器的對于區域的 SOA 記錄的權威性響應,命令格式如下:C:> nslookup -norec -type=SOA microsoft.com. 207.46.230.219此命令向位于地址 152.104.1.6 的名稱服務器發送一個非遞歸查詢,以查詢 microsoft.com 的 SOA 記錄。我們必須發送非遞歸查詢,這樣位于 152.104.1.6 的名稱服務器就不會將該查詢轉發給另一個服務器。如果將此主控服務器配置正確,則對此查詢的響應就應是權威性的。(記住,除非 nslookup 返回了“非權威性響應,否則響應就是權威性的。)非權威性的響應可能表明主控服務器在加載該區域時發生問題,通常是由于區域數據文件中存在語法錯誤。請與該主控服務器的管理員聯系,讓他檢查其事件查看器或系統日志的輸出中是否有表明出現語法錯誤的消息。我們從來還沒有見到過 Windows 2000 名稱服務器因為區域數據文件中有語法錯誤而對于此區域失去非權威性的情況,但舊的 BIND 名稱服務器確實會表現出這種現象。所以,如果你的名稱服務器是某一區域的從屬服務器,而此區域的主要主名稱服務器是 BIND 名稱服務器,該服務器現在對該區域不具有權威性,那么問題可能就是一個語法錯誤。如果對查詢的響應是權威性的但從屬服務器仍無法成功復制該區域,那么你可以使用nslookup的ls命令來手動復制該區域。如果看到類似于下面的錯誤消息,則很可能是主控服務器限制區域復制:C:> nslookup - 152.104.1.6Default Server: terminator.microsoft.comAddress: 152.104.1.6> ls microsoft.com[terminator.microsoft.com]*** Can‘t list domain microsoft.com: Query refused請與該主控服務器的管理員聯系,問是否在對區域復制進行限制。請他檢查你正在嘗試復制的區域的屬性窗口的區域復制選項卡上的選項(如果他在運行 Microsoft DNS 服務器)。如果該遠程服務器在運行著 BIND,則請問他是否在使用 xfrnets 或 allow-transfer 功能來對區域復制進行限制。在問題已被排除而且你的服務器能成功復制該區域后,你會在事件查看器中看到下面的消息:A more recent version, version 212 of zone microsoft.com wasfound at DNS server at 207.46.230.219. Zone transfer is in progress.The DNS server wrote version 212 of zone microsoft.com tofile microsoft.com.dns.(在 207.46.230.219 的 DNS 服務器上找到區域microsoft.com 的更新的版本212。正在進行區域復制。DNS 服務器寫入區域 microsoft.com 的版本 212 到文件 microsoft.com.dns。)

標簽: Windows系統
相關文章:
国产综合久久一区二区三区