外部域的BIND DNS转发


0

我继承了一个环境,该环境具有用于内部LAN的BIND服务器。我注意到它没有任何用于外部请求的转发器(即google.com)。我的笔记本电脑怎么知道google.com在我们的局域网之外?我的DHCP作用域将BIND服务器列为主要DNS服务器。

Answers:


4

BIND的二进制文件中已预装了所谓的“根提示”列表。它列出了根服务器所在的位置,或者至少列出了该特定版本的BIND发布时的位置。幸运的是,尽管可以添加更多地址,但是它们很少移动。通常,这些是IPv6地址。

当BIND第一次启动时,它将使用这些提示来查找当前地址集的真正含义。这称为“启动”,完全在幕后完成。

因此,一旦完成此操作,并且您配置了一些本地区域供自己使用,它就足以回答您的区域和那里的任何其他域的问题。在这种情况下,google.com不是文件中的本地区域,因此它会向根服务器询问google.com,然后将其发送到.com服务器,然后将BIND发送到google.com的名称服务器。他们回答,您得到答案。

作为BIND的作者,我很高兴它看起来很神奇。:)


如果您只想向某些外部ip添加名称空间引用,该怎么办?即也许用它的主机名来称呼它?我想在我的本地PVT区域文件使用一个A记录,但是那不是工作....
布莱恩·托马斯

2

BIND区分转发(AKA代理)和缓存(AKA递归)。
转发会将查询转发到特定的目标服务器并缓存结果。
缓存将查询根名称服务器并缓存结果。

在您的情况下,可以为BIND配置缓存/递归以进行外部查找。您可能会沿着以下路线找到一些东西:

// recursion is on by default 
recursion yes;
// the DOT indicates all domains
zone "." IN {
    type hint;
    file "root.servers";

递归是一个坏主意,因为您的服务器可能会被用于DNS解析放大攻击,并且您会丢失一些传出带宽。
Marcel

1

Bind将在Internet的根服务器上进行适当的查找-您实际上并不需要转发器,因为Bind是适当的DNS客户端。

如果您希望设置转发(例如,实际上不查找任何这些域,只需向另一台服务器询问此内容),则以下方法可能适用:

 forwarders {
      a.a.a.a;
      b.b.b.b;
 };`

其中,aaaa和bbbb是您的其他名称服务器条目。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.