公共和私人权威 DNS 服务器

公共和私人权威 DNS 服务器

关于此设置:

我的公共权威 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 服务器,一个在公共域中,一个在私有域中。我需要公共 DNS 服务器为特定子集的域提供一些 TXT 记录,但不提供 A 记录。私有 DNS 服务器需要提供 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

相关内容