本地 BIND DNS 缓存服务器客户端无法解析公共 DNS,只能解析内部区域

本地 BIND DNS 缓存服务器客户端无法解析公共 DNS,只能解析内部区域

有许多注释部分可以让你了解我尝试过的方法。请注意,这是通过 ansible playbook 作为 jinja2 模板复制的(这就是为什么其中有一个 ansible 变量)。这是在运行 BIND 9.11.13 的主/从配置中的 CentOS 8 服务器上。DNS 服务器本身应该是仅用于内部的缓存 DNS 服务器,并且可以毫无问题地解析任何公共或私有内容。但是客户端最终只能解析本地区域。这是来自主服务器的 named.conf:

//
// named.conf
//

/*
acl "trusted" {
        10.0.0.10; #ns1
        10.0.0.11; #ns2
        10.0.0.0/24;
};
*/

options {
        listen-on port 53 { 127.0.0.1; {{ ansible_default_ipv4.address }}; }
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";
        allow-query     { any; };

        recursion yes;
        
        dnssec-enable no;
        dnssec-validation no;
        dnssec-lookaside auto;

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";

        /* https://fedoraproject.org/wiki/Changes/CryptoPolicy */
        include "/etc/crypto-policies/back-ends/bind.config";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

/*
zone "." {
        type forward;
        forward only;
        forwarders { 8.8.8.8; 8.8.4.4; };
};
*/

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

// forward lookup zone
zone "domain.local" {
     type master;
     file "domain.local.db";
     allow-update { none; };
     allow-query { any; };
     allow-transfer  { 10.0.0.11; };
     also-notify { 10.0.0.11; };
     notify yes;
};

// reverse lookup zone
zone "0.0.10.in-addr.arpa" {
     type master;
     file "domain.local.rev";
     allow-update { none; };
     allow-query { any; };
     allow-transfer  { 10.0.0.11; };
     also-notify { 10.0.0.11; };
     notify yes;
};

如您所见,我已恢复到基本原始设置。我尝试了多次调整仅转发和 acl。

这是数据库文件:

;
; BIND data file for local loopback interface
;
$TTL    604800
@   IN  SOA ns1.domain.local. admin.domain.local. (
                  5     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
@   IN  NS  ns1.domain.local.
@   IN  NS  ns2.domain.local.
ns1.domain.local.          IN      A       10.0.0.10
ns2.domain.local.          IN      A       10.0.0.11
web.domain.local.          IN      A       10.0.0.13

我可能已经盯着这个问题太久了,而且这是显而易见的事情,但此时此刻,我真的很需要第二双眼睛的帮助。

提前致谢!!

答案1

如果我理解您要做什么 - 如果您希望能够解析外部域,那么您需要启用一些转发器,以便您的 DNS 服务器可以查询外部世界并将结果传回。

答案2

好吧,又出现了一个缺失 ; 的情况。我在 listen-on 端口行中漏掉了结尾的分号,这导致了一切。奇怪的是,当我重新启动 named.service 时,它​​并没有抱怨。然而,在重新启动时,它确实对我大喊大叫,告诉我我是个白痴。::facepalm::

相关内容