我将Linux中的DNS服务器配置为转发器。
它只将DNS查询转发到组织的主DNS服务器。
在Windows客户端(在组织分支中),主DNS设置为其自己的DNS服务器,
另一种选择被设置为mine (转发器DNS)。
如果我的DNS服务器被设置为替代服务器,它将无法解析。
但是,当我的DNS服务器被设置为主服务器时,解析工作正常。
如果将DNS服务器设置为替代DNS,如何使其工作?
发布于 2020-04-02 09:02:01
基本DNS解析器(如Windows客户端中的DNS解析器)假设为其配置的每个DNS服务器都知道或能够找到需要知道的所有内容,而且如果一台服务器说不存在什么东西,那么向另一台服务器请求第二种意见是没有意义的。
DNS服务器可以在获取信息的地方具有更大的灵活性。许多DNS服务器可以配置为有选择地转发请求:“如果请求涉及域X.Y.example
,则将请求转发到服务器A,如果涉及任何其他Y.example
,则转发到服务器B,否则尝试通过询问internet的DNS服务器解决它。”
但这不是建立DNS解析的正常方式。
如果主DNS服务器中的信息是关于域Y.example
的,而您的DNS服务器有关于子域X.Y.example
的信息,那么主DNS服务器应该在其Y.example
域中的信息中有所谓的胶水记录。类似于:
X.Y.example. IN NS <your.DNS.server.name.>
如果您的DNS服务器位于Y.example
域中(即X.Y.example
域的一部分,或Y.example
域或其任何其他子域的一部分),也可以:
<your.DNS.server.name.> IN A <your DNS server IP address>
NS记录将告诉主DNS服务器与您的DNS服务器联系,以获取有关X.Y.example
域的任何信息。这被称为DNS委托。A记录只是提供要连接到的地址:胶水记录。
如果名称服务器中的信息与一个无关的域有关,例如Z.other.example
,那么有三个选项:
Z.other.example
域内容的完整副本,并通过定期检查您的DNS服务器来自动更新它。这通常被称为master/slave
关系:您的服务器将是Z.other.example
上的主权威,但是主DNS服务器将完全了解该域的内容,并且能够根据下载的数据权威地回答。使用BIND,这意味着您的服务器将拥有如下内容:
options {
allow-transfer { <IP address of primary DNS server>; };
# The next line is not absolutely necessary but speeds up propagation of updates:
also-notify { <IP address of primary DNS server>; };
<... any other options here...>
};
主服务器将有:
zone "Z.other.example" {
type slave;
masters { <IP address of your DNS server>; };
};
是的,这意味着组织的主DNS服务器将是仅用于Z.other.example
域的从服务器。对于其他域/区域,这不会产生任何影响。
通常,这种关系意味着主DNS服务器也可以在Z.other.example
域的NS记录中列出,但如果该域仅供主DNS服务器的用户内部使用,则不必这样做。
为此,主服务器需要有:
zone "Z.other.example" {
type forward;
forwarders { <IP of your DNS server>; };
forward only;
};
Z.other.example
域:。example
顶级域的DNS服务器example
域服务器必须有指向other.example
二级域DNS服务器的NS记录。other.example
域的DNS服务器必须有指向您的DNS服务器的NS记录,作为Z.other.example
的负责人。这样,主DNS服务器就可以找到您的域,就像internet上的任何其他域一样。
如果您试图使您的DNS服务器只向Y.example
域提供一些额外的记录,这是行不通的。
如果DNS服务器对特定域具有权威性(不包括委托子域,如果有的话),那么它必须始终对该域的内容有完整的了解;对于处于权威位置的DNS服务器来说,没有“可能”这样的东西。如果主DNS服务器是Y.example
的权威,并且当被查询到X.Y.example
时,它没有记录,也没有匹配的子域委托,那么它的“没有这样的主机/域”响应将是人工的:
“我知道关于Y.example的一切,而且绝对没有X.Y.example这样的东西。”
从技术上讲,可以让主服务器拒绝对您的域的查询,这样客户端就会请求替代DNS服务器,但我强烈建议您不要这样做。
这样的设置一开始可能看起来很有效,但往往以意想不到的方式失败,特别是当其中一个名称服务器暂时无法到达时。许多人尝试过这样的设置,但都失败了。学习经验往往涉及在您不选择的时候进行痛苦的故障排除会话,以及/或来自更有经验的DNS管理员的提示,以帮助解决问题。
https://unix.stackexchange.com/questions/577222
复制相似问题