iT邦幫忙

0

先敘述問題一下情境
公司有ad伺服器做管理,還有兩台dns(只有對內服務)
同仁電腦dns兩組都指向公司內部dns,查不到再往外查

目前遇到的狀況是,我嘗試在使用者電腦新增第三組dns 如168.95.1.1
發現使用者解析域名會先跑去168.95.1.1而不是先來問內部dns
例如 abc.com 問內部dns會給 192.168.0.1 ,但是現在 abc.com 變成外部ip了..
想新增第三組dns也是因為最近dns伺服器硬體有些不穩
想說新增第三組dns 在內部dns伺服器故障時 使用者還是可以順利上網
不知道我這種作法是正確的嗎?
是否有什麼辦法指定讓使用者先訪問內部dns都問不到再去問最後一組dns?

slime iT邦大師 1 級 ‧ 2015-07-23 20:03:22 檢舉
請用 forwarder
zyman2008 iT邦大師 8 級 ‧ 2015-07-23 21:28:41 檢舉
這邊僅針對第一個問題來研究討論:
henrys提到:
發現使用者解析域名會先跑去168.95.1.1而不是先來問內部


這要看作業系統內建的DNS client程式的行為.
Windows內建的DNS client作DNS查詢,預設的行為是有一套演算法則,讓DNS查詢可以盡量找到最佳的
DNS server.有興趣了解演算法細節的,可以參考下列微軟的文件.(還蠻複雜的)
https://technet.microsoft.com/en-us/library/dd197552(WS.10).aspx
選擇DNS server的邏輯,主要列在 "Querying the DNS Server, Part 3" 這個流程.

另外這位前輩的文章說明,讓上述的流程更容易解讀.(真的利害)
http://blogs.technet.com/b/stdqry/archive/2011/12/15/dns-clients-and-timeouts-part-2.aspx

網路上有人說,修改Windows registry可以改變這個預設行為.但沒試過在不同版本Windows上修改後會是甚麼結果.
https://onemoretech.wordpress.com/2014/06/08/forcing-windows-to-obey-dns-server-order/

1 個回答

24
raytracy
iT邦大神 1 級 ‧ 2015-07-23 20:34:20
最佳解答

先回第一個問題: 為何 DNS 會跑去問 168.95.1.1?

這是因為你內部的 DNS 回應太慢, Client 發現查詢沒反應, 就自動跑去問第三台.

第二個問題則是隱性的, 很多人不知道:
在 AD 的環境內, 不要使用外部的 DNS, 只能用內部的 DNS.

像你這樣的狀況, 把 DNS 指到外面去, 而不是把內部的 DNS 修好, 短期之內可能會覺得沒事, 但長期來說, 除了你現在遇到的問題之外, 將來可能會開始逐漸出現 User 無法登入, 或是電腦不認得 DC, 或是檔案明明有權限卻無法使用....等等, 奇怪的問題, 而這些問題都是因為使用者沒有使用 AD 所提供的 DNS 所導致的.

最嚴重者可以造成所有電腦脫離 AD 管控, 所有用戶都無法登入. 而且這些問題不會馬上出現, 如果你一直不去修好他的話, 會逐漸慢慢惡化, 可能會在 60~90 天之後發生這些狀況, 到時你想救都很困難了.....

DNS 是 AD 裡面非常重要的元件, 他不是只有提供電腦名稱的查詢而已, 請你去看一下裡面的 _msdcs 這個網域, 裡面包含了許多跟 AD 相關的資訊, 這些都是 168.95.1.1 無法提供的, 一旦用戶查不到這些資訊, 他跟 AD 之間的關聯就會逐漸消失, 最後被隔離在 AD 之外.

看更多先前的回應...收起先前的回應...

iT邦幫忙MVPraytracy提到:
DNS 回應太慢, Client 發現查詢沒反應, 就自動跑去問第三台

大神講的是重點...呵

henrys iT邦新手 5 級 ‧ 2015-07-23 22:47:10 檢舉

內部dns回應太慢!? 走內網訪問怎麼會比外網慢呢..
所以一般有AD伺服器管理的架構,使用者電腦兩個DNS都是先指向內部
找不到再由DNS轉寄查詢到外部這樣嗎?

James iT邦大師 7 級 ‧ 2015-07-24 08:27:49 檢舉

內網的DNS因為使用人數少,快取的DOMAIN NAME就比較少,USER查詢冷門網站有可能沒有立即回應,DNS CLIENT就會向下一組DNS SERVER查詢,如果順利查到了DNS CLIENT就會把這一組DNS SERVER當成預設DNS SERVER。

raytracy iT邦大神 1 級 ‧ 2015-07-24 10:50:32 檢舉

henrys提到:
內部dns回應太慢!? 走內網訪問怎麼會比外網慢呢..

這在 AD 環境很常見, 通常都是 DC 上面的 DNS Server 負荷太重, 回復查詢的時間太晚; 並非是網路傳輸太慢. 即使內網的網路超快, 若你的 DNS Server 反應超慢, Client 也是認為他沒反應....

raytracy iT邦大神 1 級 ‧ 2015-07-24 10:53:26 檢舉

raytracy提到:
DC 上面的 DNS Server 負荷太重

還有, 負荷太重這件事, 並不一定會看到 CPU 飆高, 因為 AD 的 DNS 是跟 AD 資料庫整合, 如果你的 NTDS 資料庫有問題, 他遇到查詢時, 會去資料庫撈很久還出不來, 此時反應就變慢, 這個問題從 CPU 上面看不出來.

henrys iT邦新手 5 級 ‧ 2015-07-24 11:21:58 檢舉

非常感謝 raytracy 大神為小弟解惑,今日上班dns完全沒更動的情況下,竟然又正常了..
內網的域名解析都正常了倒
為了保險起見,我還是把外部dns刪掉了

第二個問題則是隱性的, 很多人不知道:
在 AD 的環境內, 不要使用外部的 DNS, 只能用內部的 DNS.

所以一般都是指向內部dns,若dns server查詢不到再轉送轉寄站嗎?

我要發表回答

立即登入回答