
重新設定:
我的公共權威 DNS 伺服器位於<public dns ip>
:
example.com. A <public webserver IP>
foo.bar.example.com. TXT "Hello World"
我的私人權威 DNS 伺服器位於192.168.0.2
:
foo.bar.example.com. A "192.168.0.1"
bar.bar.example.com. CNAME "foo.bar.example.com"
所以我有兩台權威的DNS伺服器,一台在公共網域,一台在私有網域。我需要公共記錄來為特定的網域子集提供一些 TXT 記錄,而不是 A 記錄。私有記錄需要提供 A 和 CNAME 記錄,僅供內部使用,但不會提供 TXT 記錄。
如果我的客戶端的 DNS 伺服器 IP 順序錯誤(公有、私有),公有權威 DNS 伺服器回應是否會阻止私有 DNS 伺服器被查詢?
例子:
客戶端已resolv.conf
設定為:
<public dns ip>
192.168.0.2
如果他們nslookup foo.bar.example.com
從控制台運行,它會解析為192.168.0.1
還是公共 DNS 伺服器會告訴他們名稱不存在並停止尋找?
答案1
解決並不像你想像的那樣有效。當您的文件中有多行時,resolv.conf
它們將用作後備:系統始終使用第一個名稱伺服器,並且僅當它根本不回复(這與回復名稱不存在不同)時,它才會查詢第二個名稱伺服器等等。這基本上適用於每個查詢。
您應該以不同的方式進行設定:只有一個權威名稱伺服器,如果您使用它,請bind
使用其views
機制向不同的客戶端回覆不同的內容。讓客戶端透過正常的 DNS 樹遍歷來找到它。
但從理論上講,你是對的:如果「公共」伺服器確實回覆並說 NXDOMAIN,搜尋將在那裡停止。除非你混合了權威和遞歸(中的那些resolv.conf
),這是一個非常壞的習慣。而且您的設定仍然比需要的更複雜,並且稍後會給您帶來問題。
答案2
這是 Windows 網路中的常見設定;其中(由於 Active-Directory DNS 整合)遞歸解析器也是該 DNS 區域的權威伺服器。
如果公共DNS 中也存在具有相同名稱(但記錄不同)的區域,則查詢公共記錄的嘗試將在內部遞歸解析器處終止(因為它對該區域具有權威性,因此可以權威地聲明該記錄不存在) .);因此,對於使用私有解析器的任何客戶端,公用區域都會被私有區域屏蔽。
答案3
在我看來,如果您的<public dns ip>
網域沒有 A 記錄,那麼它肯定會到達輔助 DNS 伺服器192.168.0.2