我inheritance了一个为我们的内部局域网设置了BIND服务器的环境。 我注意到它没有任何外部请求的转发器(即google.com)。 我的笔记本电脑怎么知道google.com在我们的LAN之外? 我的DHCP作用域将BIND服务器列为主DNS服务器。
BIND在二进制文件中有预先安装的“根提示”列表。 它列出了根服务器的位置,或者至less在特定版本的BIND发布的时候。 幸运的是,他们很less移动,尽pipe可能会增加更多的地址。 通常这些是IPv6地址。
当BIND首次启动时,它将使用这些提示来查找当前的地址集。 这就是所谓的“启动”,完全是在现场完成的。
所以,一旦完成了这个工作,并且configuration了一些本地区域供您自己使用,它就足够了解您的区域以及其他任何域名的问题。 在这种情况下,google.com不是您文件中的本地区域,所以它会向google.com请求根服务器,并将其发送到.com服务器,然后将BIND发送到google.com的名称服务器。 他们回答,你会得到你的答案。
作为BIND的作者,我很高兴看起来很神奇。 🙂
BIND区分转发(AKA代理)和caching(AKArecursion)。
转发将查询转发到特定的目标服务器并caching结果。
caching将查询根名称服务器并caching结果。
在你的情况,BIND可能configurationcaching/recursion做外部查询。 你可能会发现这样一行:
// recursion is on by default recursion yes; // the DOT indicates all domains zone "." IN { type hint; file "root.servers";
绑定将从互联网的根服务器进行适当的查找 – 您并不需要转发器,因为绑定是一个适当的DNS客户端。
如果你想设置转发(例如,实际上不查找任何这些域,只要问这个其他服务器),那么下面可能是适当的:
forwarders { aaaa; bbbb; };`
其中aaaa和bbbb是您的其他名称服务器条目。