Answers:
BIND的二进制文件中已预装了所谓的“根提示”列表。它列出了根服务器所在的位置,或者至少列出了该特定版本的BIND发布时的位置。幸运的是,尽管可以添加更多地址,但是它们很少移动。通常,这些是IPv6地址。
当BIND第一次启动时,它将使用这些提示来查找当前地址集的真正含义。这称为“启动”,完全在幕后完成。
因此,一旦完成此操作,并且您配置了一些本地区域供自己使用,它就足以回答您的区域和那里的任何其他域的问题。在这种情况下,google.com不是文件中的本地区域,因此它会向根服务器询问google.com,然后将其发送到.com服务器,然后将BIND发送到google.com的名称服务器。他们回答,您得到答案。
作为BIND的作者,我很高兴它看起来很神奇。:)
BIND区分转发(AKA代理)和缓存(AKA递归)。
转发会将查询转发到特定的目标服务器并缓存结果。
缓存将查询根名称服务器并缓存结果。
在您的情况下,可以为BIND配置缓存/递归以进行外部查找。您可能会沿着以下路线找到一些东西:
// recursion is on by default
recursion yes;
// the DOT indicates all domains
zone "." IN {
type hint;
file "root.servers";
Bind将在Internet的根服务器上进行适当的查找-您实际上并不需要转发器,因为Bind是适当的DNS客户端。
如果您希望设置转发(例如,实际上不查找任何这些域,只需向另一台服务器询问此内容),则以下方法可能适用:
forwarders {
a.a.a.a;
b.b.b.b;
};`
其中,aaaa和bbbb是您的其他名称服务器条目。