Debian 和 Bind - 转发到外部 DNS 不起作用

Debian 和 Bind - 转发到外部 DNS 不起作用

我是配置 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

相关内容