首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用递归的权威服务器上的绑定权限部分

禁用递归的权威服务器上的绑定权限部分
EN

Server Fault用户
提问于 2018-08-16 16:55:49
回答 2查看 1.2K关注 0票数 5

我正在运行一台权威服务器,对于不在绑定9.11.3的网络中的主机,禁用递归。当从我网络之外的主机查询服务器权限之外的域时,我在权限部分没有得到答案和根服务器列表。我理解为什么会发生这种情况,我想知道是否可以完全禁用权限部分。当递归不可用时,是否有类似于最小响应的选项不返回任何权威数据?

示例挖掘:

代码语言:javascript
复制
; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> @NS google.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6847
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 5ed7760df1d65f05baba487c5b75a318b3065456b81ca133 (good)
;; QUESTION SECTION:
;google.com.                        IN      A

;; AUTHORITY SECTION:
.                   518400  IN      NS      D.ROOT-SERVERS.NET.
.                   518400  IN      NS      F.ROOT-SERVERS.NET.
.                   518400  IN      NS      B.ROOT-SERVERS.NET.
.                   518400  IN      NS      L.ROOT-SERVERS.NET.
.                   518400  IN      NS      I.ROOT-SERVERS.NET.
.                   518400  IN      NS      A.ROOT-SERVERS.NET.
.                   518400  IN      NS      E.ROOT-SERVERS.NET.
.                   518400  IN      NS      C.ROOT-SERVERS.NET.
.                   518400  IN      NS      M.ROOT-SERVERS.NET.
.                   518400  IN      NS      H.ROOT-SERVERS.NET.
.                   518400  IN      NS      K.ROOT-SERVERS.NET.
.                   518400  IN      NS      G.ROOT-SERVERS.NET.
.                   518400  IN      NS      J.ROOT-SERVERS.NET.

;; Query time: 36 msec

我的选择如下:

代码语言:javascript
复制
options {
        listen-on { any; };
        directory "/var/cache/bind";
        allow-recursion { acls; };

        rate-limit {
                responses-per-second 10;
                exempt-clients { acls; };
                window 5;
        };

        allow-query-cache { any; };
        allow-query { any; };
        allow-update { none; };
        dnssec-enable no;
        dnssec-validation no;
        minimal-responses yes;
        forwarders {
                208.67.222.222;
                208.67.220.220;
        };
};
EN

回答 2

Server Fault用户

回答已采纳

发布于 2018-08-16 17:43:22

我做了一些快速测试,并相信您的问题与以下一行有关:

代码语言:javascript
复制
    allow-query-cache { any; };

您的配置不允许递归到公共,但仍然允许缓存访问。通常,当不启用递归时,远程客户端将收到REFUSED的rcode,但由于已显式允许对缓存的访问,因此客户端将从不包含该响应的缓存接收最具体的答案。

我中的DNS专业人员建议在没有明确需求的所有情况下禁用权威服务器上的recursion+caching。如果您确信需要保留此功能,那么最好将相同的ACL应用于这两种功能。(或者干脆完全删除allow-query-cache,因为它默认为allow-recursion的值)

票数 8
EN

Server Fault用户

发布于 2018-08-16 17:44:03

我不会考虑您对BIND9的正常行为的描述(在默认配置中,它的行为肯定不是那样),但是我很确定我理解是什么导致了它。

您的权威服务器还启用了递归(不一定是一个好主意),但是已经锁定(更好),但是您特别允许每个人访问已经缓存的结果。

如果您删除了allow-query-cache { any; };,它应该响应REFUSED (如预期的那样)。

票数 7
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/926730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档