如何解析本地未找到但存在于另一台 DNS 服务器上的同一区域的 DNS 名称?

Shy*_*rka 4 dns bind

我需要为一系列 Linux 容器运行本地 BIND DNS 服务器。假设该区域是 example.com

我的基础结构中已经有一个 example.com 域,我想使用我的本地 DNS 服务器(它必须是 DNS 而不是本地主机)覆盖一些记录。

有没有办法告诉 BIND 检查我的本地 DNS 服务器,如果没有找到记录,则在另一台 DNS 服务器上查找相同区域的记录。

我曾尝试设置转发器,但我认为这仅适用于不同的区域而不是相同的区域。

有任何想法吗?

小智 5

您可以使用rpz允许覆盖通过绑定服务器查询的任何名称的响应策略区域(以下称为)。

路径是指 Debian。

options部分中/etc/bind/named.conf.options,添加:

options {
    # Create a response-policy zone to allow overrides
    response-policy { zone "rpz"; };
};
Run Code Online (Sandbox Code Playgroud)

在 中添加rpz区域/etc/bind/named.conf.local

zone rpz {
    type master;
    file "/etc/bind/db.rpz";
    allow-query { none; };
};
Run Code Online (Sandbox Code Playgroud)

最后,rpz区域文件/etc/bind/db.rpz

; BIND zone file for rpz zone
;
$TTL    600
@               SOA     localhost.        root.localhost. (
                            2017100300      ; Serial
                            86400           ; Refresh
                            10800           ; Retry
                            3600000         ; Expire
                            600             ; Negative Cache TTL
                    )
            NS      localhost.

google.com      CNAME   forcesafesearch.google.com.
example.com     A       192.0.2.123
Run Code Online (Sandbox Code Playgroud)