域管理員新手必看:域環境下DNS設置的常見誤解
DNS服務是保證機器能夠上網瀏覽的基礎。它將形如GOOGLE.COM的名字翻譯成IP地址。
對於域環境來說,DNS服務器還有一個重要的作用,就是客戶機用它來尋找域中的服務。在DNS服務器中,這些記錄被稱爲服務資源記錄。這些記錄只存在你自己建的DNS服務器中。
一直以來,Windows系統在IP地址的設置中,有主DNS和次DNS的設置。如圖:
對於域管理員新手,有可能會有以下的誤解:
誤解1, 可以將主DNS設置成公用DNS服務器,將次DNS設置成內網的DNS。
這種設置的潛臺詞是:如果第一個DNS服務器查找不到相應的記錄,機器會自動尋找第二個DNS服務器。
真實的情況是,WINDOWS在第一個DNS服務器在線的情況下,是不會去向第二個DNS服務器查詢的。所以這種設置會讓有關對域的操作直接失敗。
誤解2, 可以將主DNS設置成內網DNS服務器,將次DNS設置成公用的DNS。
管理員的想法是:如果第一個DNS服務器不可用, 那麼機器可以查詢公用DNS,這樣如果內網的DNS離線,用戶還能保證上網。
我不能說這種設置錯誤或會立即造成的服務問題,但是在實際工作中,我的確發現這種設置會帶來問題。
出現問題的機器還是當然是找不到域服務器,通過分析,發現出現這種問題的機器在使用第二個DNS服務器作解析。因爲公用DNS沒有域資源記錄,所以對域的操作失敗。
你肯定會問,是不是此時主DNS服務器離線了。經驗告訴我,即使主DNS服務器在線的情況下,WINDOWS依然有可能使用次DNS作解析服務器。我個人猜想,可能有時主服務器繁忙,Windows以爲其離線而自動轉成次DNS。
你可能會說,如果主DNS服務器繁忙,Windows轉成使用次DNS,不就是我們想要的嗎?等主DNS不繁忙或上線後,Windows自己換回主DNS服務器不就沒事了。
問題就在這,Windows啓用次DNS後,要經過一定的時間,纔會重新對DNS服務器進行再次排隊,這個時間默認是15分鐘。
15分鐘裏,不同用戶可能有不同的問題,有人嘗試登錄,會說服務器不可用;有人正在解email,突然蹦出一個窗口,要輸入用戶密碼。然後,可憐的你的電話就會被打爆。
網友未按本文正確配置DNS而出現解析問題事例:
http://bbs.51cto.com/thread-1091171-1.html
http://bbs.51cto.com/viewthread.php?tid=1089936
http://bbs.51cto.com/thread-1089804-1.html
誤解3 可以通過NSLOOUP知道當前機器正在使用哪一個DNS服務器。
如果你想通過NSLOOKUP對上面的問題進行排錯,想知道機器正在使用哪一個DNS,那麼你一開始就錯了,NSLOOKUP默認只查詢主DNS服務器,而不是查詢你正在用的DNS服務器。
講了誤解,那正解是什麼,正解就是:在域環境下,只使用內網的DNS服務器。
補充:
下面的註冊表修改,可以使WINDOWS每次DNS查詢先嚐試主DNS。(未實驗,請自行驗證)
Click Start, click Run, type regedit, and then click OK.
Locate and then click the following key in the registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
On the Edit menu, point to New, and then click REG_DWORD.
Type ServerPriorityTimeLimit, and then press ENTER.
On the Edit menu, click Modify.
Type 0, and then click OK.
參考:
The DNS Client Service does not revert to using the first server
http://support.microsoft.com/kb/320760/en-us