有许多注释部分可以让你了解我尝试过的方法。请注意,这是通过 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::