是这样的设置:
<public dns ip>:example.com. A <public webserver IP>
foo.bar.example.com. TXT "Hello World"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服务器会告诉他们名称不存在并停止查找?
发布于 2017-12-12 14:33:44
解决问题不像你想的那样有效。当您的resolv.conf中有多行时,就会使用它们作为后盾:系统总是使用第一个名称服务器,并且只有当它根本没有回复时(这与回答名称不存在不同),系统就会查询第二个名称,依此类推。这基本上适用于每个查询。
您应该以不同的方式进行设置:只有一个权威的名称服务器,如果使用bind,可以使用它的views机制向不同的客户端响应不同的内容。让正常的树走的DNS由客户端找到它。
但从理论上讲,你是对的:如果“公共”服务器确实回复并说了NXDOMAIN,搜索就会停止。除了你是权威的和递归的(在resolv.conf中),这是一个非常坏的习惯。而且你仍然有一个比需要更复杂的设置,它会给你带来问题。
发布于 2018-01-07 12:24:47
这是Windows网络中常见的设置;其中(由于Active-Directory DNS集成)递归解析器也是该DNS区域的权威服务器。
如果公共DNS中也存在具有相同名称(但不同记录)的区域,则查询公共记录的尝试将在内部递归解析器处终止(因为它对该区域具有权威性,它可以权威地声明记录不存在。);因此,使用私有解析器的任何客户端都会屏蔽该公用区域。
发布于 2017-12-12 12:10:29
在我看来,如果您的<public dns ip>没有域的A记录,那么它肯定会转到辅助DNS服务器192.168.0.2
https://serverfault.com/questions/887685
复制相似问题