我已经配置了 dns 服务器,如果我启用递归,我可以 ping 并得到结果。
[root@seobd ec2-user]# nslookup google.com
Server: 52.10.197.195
Address: 52.10.197.195#53
Non-authoritative answer:
Name: google.com
Address: 216.58.193.78
但如果我禁用递归,我将无法 ping 我的结果。配置:
options {
listen-on port 53 { 127.0.0.1; 52.10.197.195; 0.0.0.0/0;};
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; 0.0.0.0/0; };
notify yes;
recursion no;
dnssec-enable no;
dnssec-validation yes;
};
zone "iftibd.com" IN {
type master;
file "seobd.fz";
allow-update {none;};
};
zone "197.10.52.in-addr.arpa" IN {
type master;
file "seobd.rz";
allow-update {none;};
};
[root@seobd ec2-user]# ping google.com
ping: unknown host google.com
答案1
这是预期的行为;如果您不允许递归,BIND 将不会迭代可能性/服务器以最终获得答案,因此将无法回答。
重要的部分是创建 ACL 来限制可以执行递归请求的网络,并避免拥有可能且将会被远程滥用的开放 DNS 服务器。
我还建议添加到您的选项部分的顶部:
allow-recursion { 127.0.0.0/8; x.x.x.x/24; y.y.y.y/24; };
其中 xxxx 和 yyyy 是您的网络块。
看一下:bind中的递归和转发有什么区别
对于安全影响,请查看 打开解析器项目
开放解析器通过回答其域外主机的递归查询,对全球网络基础设施构成重大威胁。它们被用于 DNS 放大攻击,并构成与 20 世纪 90 年代末常见的 Smurf 攻击类似的威胁。