asm*_*h00 5 domain-name-system ubuntu bind
我正在运行一个权威服务器,在 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
Run Code Online (Sandbox Code Playgroud)
我的选择是这样的:
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;
};
};
Run Code Online (Sandbox Code Playgroud)
我做了一些快速测试,并相信您的问题与以下行有关:
allow-query-cache { any; };
Run Code Online (Sandbox Code Playgroud)
您的配置不允许向公众递归,但仍允许缓存访问。通常,远程客户端会REFUSED
在未启用递归时收到 rcode ,但由于已明确允许访问缓存,因此客户端正在从不包含该响应的缓存中接收可能的最具体的答案。
我的 DNS 专家建议在没有明确需要的所有情况下禁用权威服务器上的递归+缓存。如果您确信需要保留此功能,则最好对两者应用相同的 ACL。(或干脆allow-query-cache
完全删除,因为它默认为的值allow-recursion
)
我不会考虑你描述的 BIND9 的正常行为(它肯定不会像默认配置那样表现),但是我很确定我明白是什么原因造成的。
您的权威服务器也启用了递归(不一定是个好主意)但已锁定(更好),但是您特别允许每个人访问已缓存的结果。
如果您删除allow-query-cache { any; };
,它应该回答REFUSED
(如预期)。
归档时间: |
|
查看次数: |
895 次 |
最近记录: |