嗨,我正在学习 bind 的工作原理。我的目标是拥有一个本地 DNS 数据库,这样我的局域网中的查找就不会传到 WAN。
我设置了 bind,但没有特意将其配置为转发或缓存服务器,但似乎它正在做的事情就是如此,因为任何地方都没有“大 dns”文件,因此 bind 确实在 wan 中查找,但在哪里呢?
我已启用日志记录,但 bind 仅显示哪个 lan - 客户端正在执行请求、请求的内容以及请求是否失败。每个第二个请求都会失败,但第二个请求会起作用,我不知道为什么,但目前这是次要的。
--> 我怎样才能知道 bind 到底做了什么 - bind 在哪里查找自身?
我的 named.conf.options 文件是,其中 *.125 是我的局域网中的绑定服务器:
acl goodclients { // Name kann frei gewählt werden
192.168.1.0/24; // Lokales Netz (IP-Adressbereich anpassen)
localhost; // localhost sollte immer eingetragen sein
localnets;
};
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
//========================================================================
// If BIND logs error messages about the root key being expired,
// you will need to update your keys. See https://www.isc.org/bind-keys
//========================================================================
dnssec-validation auto;
listen-on {127.0.0.1;192.168.1.125;};
allow-query {goodclients;}; //ACL-Name von oben
querylog yes;
};
logging {
channel querylog {
file "/var/log/named/querylog";
severity debug 3;
};
};
谢谢!
答案1
解析器服务器的正常行为是根据以下信息进行自我准备:根提示(本质上是根区域的名称服务器列表,包括其 IP 地址)。BIND 具有默认使用的内置根提示,但您也可以在根提示区在配置中。
基于根提示,解析器服务器可以自行引导,然后能够根据需要从根开始按照委托链在公共 DNS 树中查找任何名称。
转发是一种特殊情况,您可以将解析器服务器配置为不使用此正常递归行为(如上所述),而是将递归请求传递给执行相同工作的其他解析器服务器。
(转发可以链接起来,但在某些时候需要有人真正完成工作,转发只是将工作传递给其他人。)
目前还不清楚目标是改变行为还是仅仅了解发生了什么。但是,如果您希望 BIND 充当仅权威的服务器,仅在其自己的区域中提供数据,则可以设置recursion no;
在选项中。