我是配置 DNS 服务器的新手,我需要您的帮助......
我有一个安装了 webmin + bind 9.11 的 debian 10。我有一个运行良好的本地域。
从我的局域网上的一个主机,我可以解析内部主机名:
dig @myinternalDNS host1.local.lan +show
<@IP-host1>
但是当我尝试解析互联网名称时,没有得到任何回应:
dig @myinternalDNS www.google.com
; <<>> DiG 9.11.5-P4 <<>> @<@IP-myinternalDNS> www.google.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 16965
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 2c052e0915fc346f652fbf325e8c51c9a65c4fbb5204c698 (good)
;; QUESTION SECTION:
;www.google.com. IN A
;; Query time: 13 msec
;; SERVER: <@IP-myinternalDNS>#53(<@IP-myinternalDNS>)
;; WHEN: mar. avr. 07 12:11:22 2020
;; MSG SIZE rcvd: 71
我的配置非常简单:
acl allowed {
X.Y.Z.0/24;
};
options {
directory "/var/cache/bind";
recursion yes;
allow-recursion { localhost; allowed; };
listen-on port 53 { localhost; <@IP-myinternalDNS>; };
allow-query {
localhost;
allowed;
};
allow-transfer {
localhost;
allowed;
};
forwarders {
8.8.8.8;
};
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside auto;
auth-nxdomain no;
listen-on-v6 { none; };
};
zone "local.lan" {
type master;
file "/var/lib/bind/local.lan.hosts";
};
zone "Z.Y.X.in-addr.arpa" {
type master;
file "/var/lib/bind/Z.Y.X.rev";
};
注意:我用 XYZ 替换了我的真实 IP 网络
并且从我的 DNS,我可以解析互联网名称。
为什么这不起作用?你能帮助我吗?
编辑1:
我在传出路由器上捕获了数据包,DNS 请求正在发送到公共 DNS 服务器并且正在做出响应。
dig @8.8.8.8 和请求我的服务器之间没有网络差异。当我的服务器请求公共 DNS 时,数据包会传出并返回,但 DNS 答案为空,而直接从我的服务器 dig @8.8.8.8 时,我会得到一个成功的 DNS 答案。
很奇怪,我不明白发生了什么。
答案1
您似乎已经设置了缓存和转发 DNS 服务器,因此我建议对递归服务器进行如下设置:
acl allowed {
X.Y.Z.0/24;
};
options {
directory "/var/cache/bind";
recursion yes;
allow-recursion { localhost; allowed; };
listen-on port 53 { localhost; <@IP-myinternalDNS>; };
allow-query {
localhost;
allowed;
};
allow-transfer {
localhost;
allowed;
};
};
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside auto;
auth-nxdomain no;
listen-on-v6 { none; };
};
或者像这样对于转发服务器:
acl allowed {
X.Y.Z.0/24;
};
options {
directory "/var/cache/bind";
listen-on port 53 { localhost; <@IP-myinternalDNS>; };
allow-query {
localhost;
allowed;
};
allow-transfer {
localhost;
allowed;
};
forwarders {
8.8.8.8;
};
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside auto;
auth-nxdomain no;
listen-on-v6 { none; };
};
还要记得在重新启动绑定之前检查您的配置:
sudo named-checkconf