让我们看看是否有人可以帮助我。在我的场景中,我有一个来自供应商的 DNS 服务,它必须接收所有查询并检查白名单以解析域。为了回答查询,源 IP 地址必须只有一个受信任的 IP 地址,该地址来自我 DMZ 中的公共 DNS 服务器。因此,我将 BIND 配置为“仅转发”。所有客户查询我的公共 DNS 服务器,它都会转发到供应商 DNS 服务。
问题:有些页面包含来自不同来源的内容或来自其他网站和不同域的提要。当我从本地站点直接向供应商 DNS 服务查询时,允许的域会得到答复,并且只加载了部分网页(不允许的域的内容没有得到答复,网页无法正确加载)。这是预期的行为。当我通过应该转发查询的公共 DNS 服务器进行查询时,页面的任何部分都没有加载。似乎在第一次拒绝后,页面停止加载,或者我的公共 DNS 服务器没有将所有查询转发到供应商 DNS 服务。
你们都遇到过类似的问题吗?这应该是 Linux/OS 问题、BIND 的安全配置问题,还是我应该设置其他参数来转发所有查询?
这是我的 named.conf.options 文件:
options {
directory "/var/cache/bind";
recursion yes;
allow-query { any; };
forward only;
forwarders{ X.X.X.X; Y.Y.Y.Y; };
allow-recursion { any; };
allow-query-cache {any; };
clients-per-query 0;
recursive-clients 0;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
先感谢您!
答案1
解决了!找不到使用 BIND 实现此问题的方法,因此转移到 PowerDNS,将递归器配置为供应商 DNS 服务,并且不启用缓存,现在它可以按我需要的方式工作了。