我正在运行一个权威服务器,对BIND 9.11.3上不在我网络中的主机禁用递归.当从网络外部的主机查询不在服务器权限范围内的域时,我在权限部分中没有得到答案和根服务器列表.我理解为什么会发生这种情况,我想知道是否可以完全禁用权限部分.是否存在类似于最小响应的选项,在递归不可用时不会返回任何权限数据?
挖掘示例:
; <<>> 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
我的选项看起来像这样:
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; }; };
我做了一些快速测试,并且相信您的问题与以下行有关:
allow-query-cache { any; };
您的配置禁止向公众递送,但仍允许缓存访问.通常,当未启用递归时,远程客户端将收到REFUSED的rcode,但由于已明确允许访问缓存,因此客户端正在从不包含该响应的缓存中接收可能的最具体的答案.
我的DNS专业人员建议在没有明确需要的所有情况下在权威服务器上禁用递归缓存.如果您确信需要保留此功能,那么最好对两者应用相同的ACL. (或者只是简单地删除allow-query-cache,因为它默认为allow-recursion的值)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。