我有这样一个 /etc/resolv.conf:
# Generated by NetworkManager
search mydom.com-local site
nameserver 127.0.0.1
nameserver 10.11.12.13
nameserver 8.8.8.8
如果我搜索具有域名的主机只有公司的 DNS 服务器知道(这里是 10.11.12.13),如果我使用命令“host”,它不起作用:
# host myhost.mycompany.grp
Host myhost.mycompany.grp not found: 3(NXDOMAIN)
但是如果我在 resolv.conf 中注释掉名称服务器 127.0.0.1
# Generated by NetworkManager
search mydom.com-local site
#nameserver 127.0.0.1
nameserver 10.11.12.13
nameserver 8.8.8.8
它立即起作用:
# host myhost.mycompany.grp
myhost.mycompany.grp has address 10.55.66.77
看起来“名称服务器 127.0.0.1”没有将外部区域的请求转发到其他 DNS 服务器。
我不使用 dnsmasq(我也不想使用)。我在 named.conf 中尝试了很多选项,但都没有成功。
我的named.conf:
options {
check-names master warn;
directory "/var/named";
dump-file "/var/log/named_dump.db";
include "/etc/named/forwarders.conf";
listen-on-v6 { any; };
notify no;
statistics-file "/var/log/named.stats";
empty-zones-enable no;
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "appdom.com-local" in {
type master;
file "master/appdom.com-local.zone";
allow-transfer { any; };
};
zone "in-addr.arpa" in {
type master;
file "master/appdom.com-local_reverse.zone";
allow-transfer { any; };
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
我的 /etc/named/forwarders.conf:
forwarders { 10.11.12.13; 8.8.8.8; };
我已将命名(rndc trace 1000)置于调试模式:我没有在跟踪中看到命名试图将请求转发到 10.11.12.13。
我的本地名称服务器上的转发有什么问题?
答案1
虽然我很难判断,因为您正在使用其中一个 BIND 安装,它将配置分散到许多小文件中(并且因为您没有告诉我们您正在尝试做什么,只告诉我们您如何尝试去做),但我怀疑您想要做的是基于每个区域进行转发(因为我做的也是同样的事情)。
这有两种情况:本地 BIND 应解决除应继续发送的某些区域的查询之外的所有问题,本地 BIND 应仅解决某些区域的查询,而其他所有区域均应继续发送。对于前者,请尝试
zone "example.org" {
type forward;
forward first;
forwarders {
10.11.12.13 ;
} ;
} ;
如果你选择后者,请删除区域的提示.
- 如果你的本地服务器可以解析一切,为什么它需要转发查询?
答案2
我终于找到了解决办法,
激活查询日志记录(rndc querylog)后,我能够在消息中看到:
error (insecurity proof failed) resolving 'myhost.mycompany.grp/A/IN': 10.11.12.13#53
我停用了 DNSSEC 验证:
dnssec-validation no;
然后我遇到了一个非常奇怪的行为,比如转发器 IP 以循环方式使用:有时主机被解析,有时不解析(仅从第一个 IP 可以知道主机)
通过仅将第一个 IP 放入转发器中,它现在就可以工作了。
如果可能的话,我会尽快尝试在转发器 IP 上添加一些优先级。
所以,现在它更多的是一个 DNSSEC 问题,我稍后会处理它。