![BIND 作为专用网络 DNS 服务器 - 被拒绝](https://linux22.com/image/61912/BIND%20%E4%BD%9C%E4%B8%BA%E4%B8%93%E7%94%A8%E7%BD%91%E7%BB%9C%20DNS%20%E6%9C%8D%E5%8A%A1%E5%99%A8%20-%20%E8%A2%AB%E6%8B%92%E7%BB%9D.png)
我已经使用 dhcpd 设置了 name 作为我的专用网络上的本地动态 dns 服务器。一切正常。
唯一让我烦恼的是,当我应该获取 NXDOMAIN 时,查询不存在的主机名时,我却被拒绝了。
例如:
host -t a ns
ns.domain.local has address 192.168.1.225
host -t a ns1
Host ns1 not found: 5(REFUSED)
我的/etc/named.conf
有recursion no;
当我查询不存在的 FQDN 记录时,我实际上得到了正确的 NXDOMAIN 响应。
host -t a ns1.domain.local
Host ns1.domain.local not found: 3(NXDOMAIN)
使用tcpdump
I 可以跟踪以下行为:
17:22:04.602686 IP localhost.33281 > localhost.domain: 29032+ A? ns1.domain.local. (31)
17:22:04.602895 IP localhost.domain > localhost.33281: 29032 NXDomain*- 0/1/0 (75)
17:22:04.603198 IP localhost.60655 > localhost.domain: 49935+ A? ns1. (21)
17:22:04.603270 IP localhost.domain > localhost.60655: 49935 Refused- 0/0/0 (21)
我/etc/resolv.conf
有搜索,search domain.local
所以它首先尝试并报告 NXDOMAIN ,这很好,但然后继续ns1。并拒绝了。
我缺少什么?
答案1
要查找ns1.
(注意点)bind
(实际上是这个named
过程)必须递归,并且您已将其关闭;因此它返回拒绝。
问题不在于bind
客户端 (),而dig
在于使用包含 的搜索列表的客户端 () .
。