在開始討論如何排除DNS問題之前
我們想知道你是否清楚怎樣判斷某個問題是由DNS而不是由別的命名服務造成的
在Windows主機上
判斷問題的原因是否真的出在DNS上可是件困難的事
Windows支持的命名服務真是名目繁多
如DNS
Wins
HOSTS
LMHOSTS等數不勝數
然而常用的Windows
nslookup 卻全然不理會其他這些命名服務
你可能會只顧在Windows
計算機上運行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 之前
一定要用操作 > 刷新或用 F
鍵刷新 DNS 控制台
否則你看到的 TTL 可能會大於當前 TTL
如果右鍵單擊該記錄
你可能會注意到有一個刪除記錄選項
DNS的一些常見的錯誤
忘記增加序列號 在你未使用 DNS 控制台而是用手動方式更改區域數據文件時
就會出現一些問題
DNS 控制台在它每次更改區域數據時都會記著在 SOA 記錄中增加序列號
所以你不必為此操心
不過
這也意味著你可能不會養成更新序列號的習慣
所以在進行一次性手動修改時
你可能會忘記增加序列號
此問題的主要症狀是
從屬名稱服務器不會獲得你在主服務器上對該區域做的任何更改
從屬服務器認為區域數據並未更改
因為它看到的序列號仍是原來的序列號
該怎樣檢查當時是否記著增加序列號呢?不幸的是
這就不是那麼容易了
如果你不記得原序列號是什麼
而現在的序列號不能表明它是什麼時候更新的
則沒有直接的方法判斷它是否已更改
在啟動主服務器時
不管你是否更改了序列號
它都將加載更新後的區域數據文件
最好的辦法只能是使用 nslookup 來比較主服務器和從屬服務器返回的數據
如果它們返回不同的數據
則表明你可能忘了增加序列號
如果你能想起最近作的一次更改
則可以查看此數據
如果記不起最近一次作的更改
則可以從一個主服務器和一個從屬服務器復制該區域
將結果排序並使用文件比較工具將它們加以比較
還有一個好消息
即
盡管確定該區域此前是否已復制比較難
但現在要確保該區域被復制卻非常簡單
只須在 DNS 控制台中雙擊 SOA 記錄並手動編輯序列號字段
增加主服務器上此區域的副本中的序列號即可
從屬服務器將在刷新時間間隔內獲得此新的數據
如果它們用了 NOTIFY
則會更快
以手動方式更改DNS服務器 要記住 Microsoft DNS 服務器會定期更新其區域數據文件
每次用 DNS 控制台對一個區域的數據進行更改時
就有一個寫操作掛起
在 DNS 服務器退出之前
它必須重寫該區域的數據文件
否則它就會丟失你所作的更改
可以將此比作內存中一個已更新的頁
操作系統在退出之前必須將它寫到磁盤上
如果你在一個寫操作掛起期間對一個區域數據文件作了手動更改
則在名稱服務器退出後你會莫名其妙地丟失所作的更改
比如你在服務器正在運行且有一個寫操作掛起時向一個名為microsoft
com的新子域添加了委派
作完更改後
你必須將服務器停下並再次啟動
以讓它再次讀取該區域數據
但是在服務器退出時
它將重寫 microsoft
com 區域數據文件
你的委派於是就會丟掉
如果仔細觀察(平時就需要這樣)事件查看器
會在服務器停止事件之前看到這樣一條消息
The DNS server wrote version
of zone microsoft
com to file microsoft
com
dns
(DNS 服務器寫入區域 microsoft
com 的版本
到文件 microsoft
com
dns
)如果你用操作 | 更新服務器數據文件來強制服務器重寫其區域數據文件
則服務器就會與區域數據文件同步
而不必在退出時重寫
所以
如果要對區域數據文件作手動更改
那麼要麼首先停止服務器(但這意味著在你作更改期間服務器將不響應任何查詢)
要麼使用 DNS 控制台將服務器與區域數據文件同步
然後再進行更改
從屬服務器無法加載區域數據 如果一個從屬服務器無法從其主控服務器獲取某個區域的當前序列號
那麼最初它是不會給你發警告消息的
然而
如果該問題一直存在而且從屬服務器在有效期時間內無法確定其數據是否是最新的
那麼該區域就會過期
在一個 Microsoft DNS 服務器上
你將在事件查看器中看到與下文類似的一條消息
在獲得成功區域復制或從這個區域作為其源的主服務器獲得成功區域復制之前 microsoft
com 區域就超時了
該區域已經被關閉
區域過期後
當你向名稱服務器查詢該區域中的數據時
就會收到 SERVFAIL 錯誤消息
C:> nslookup robocop wormhole
microsoft
com
Server: wormhole
microsoft
com
Addresses:
wormhole
microsoft
com can
t find robocop
microsoft
com: Server failed
[] []
From:http://tw.wingwit.com/Article/Fault/201311/10683.html