我正在学习如何配置 DNS 服务器。我的第一个任务是设置本地转发服务器 - 执行不是执行递归查询但将其转发到其他公共开放 DNS。
好的,这是我的/etc/bind/named.conf.options
options {
directory "/var/cache/bind";
recursion no;
allow-query { localhost; };
forwarders {
8.8.8.8;
8.8.4.4;
};
forward only;
dnssec-enable yes;
dnssec-validation yes;
auth-nxdomain no; # conform to RFC1035
listen-on port 53 {
127.0.0.1;
192.168.1.33;
};
listen-on-v6 { any; };
};
但是当我发出
dig askubuntu.com
它返回:
...
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 57563
...
;; WARNING: recursion requested but not available
...
;; SERVER: 127.0.0.1#53(127.0.0.1)
...
据我了解,dig 应该对本地进行 DNS 查询绑定实例,它应该将该请求转发到 8.8.8.8 并返回答案。
然而它抱怨说递归不可用。但我没有请求它。
如何解决这个问题?谢谢。
答案1
你所做的基本上是正确的,只是你需要设置“递归是”,即使你的 DNS 设置要求你的服务器是仅转发服务器。这似乎违反直觉,但这就是处方的方式。这是一个示例配置:
acl goodclients {
192.0.2.0/24;
localhost;
localnets;
};
options {
directory "/var/cache/bind";
recursion yes;
allow-query { goodclients; };
forwarders {
8.8.8.8;
8.8.4.4;
};
forward only;
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};