我的环境中有 2 个域。其中一个是位于 10.60.0.0/16 的“myproductionlab.local”的活动目录域,
然后我有一个为域“mytestlab.local”运行 bind9 的 debian 机器,
我在 named.conf.local 中添加了一个条目:
zone "60.10.in-addr.arpa" {
type forward;
forwarders {
10.60.10.5;
10.60.10.7;
10.60.10.9;
};
};
zone "myproductionlab.local" {
type forward;
forwarders {
10.60.10.5;
10.60.10.7;
10.60.10.9;
};
};
Debian 框配置为 127.0.0.1 用于 DNS 解析,并且没有全局配置转发器。
名称解析很好:
nslookup mymachine.myproductionlab.local
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
Name: mymachine.myproductionlab.local
Address: 10.60.10.200
从查询日志中可以看到:
client 127.0.0.1#36076 (mymachine.myproductinlab.local): query: mymachine.myproductionlab.local IN A + (127.0.0.1)
但反向 DNS 未被转发:
nslookup 10.60.10.200
Server: 127.0.0.1
Address: 127.0.0.1#53
** server can't find 200.10.60.10.in-addr.arpa: NXDOMAIN
来自查询日志:
client 127.0.0.1#40295 (200.10.60.10.in-addr.arpa): query: 200.10.60.10.in-addr.arpa IN PTR + (127.0.0.1)
我尝试了很多区域变化:
zone "60.10.in-addr.arpa" {
zone "10.60.10.in-addr.arpa" {
zone "200.10.60.10.in-addr.arpa" {
我也尝试过 tcpdump,对于 nslookup 10.60.10.200 没有捕获到任何数据包,但是对于名称却捕获到了数据包。
当我在 nslookup 中手动指定 DNS 服务器时它也能正常工作:
nslookup 10.60.10.200 10.60.10.5
Server: 10.60.10.5
Address: 10.60.10.5#53
200.10.60.10.in-addr.arpa name = mymachine.myproductionlab.local.
答案1
nslookup 没什么帮助,输出是什么dig -x 10.60 10.200
这表明您的默认私有范围已启用并且将您的请求作为权限捕获。
删除或者编辑它们以使其更具体。
答案2
DIG 的输出让我发现了这个问题
dig -x 10.60.10.200
; <<>> DiG 9.9.5-9+deb8u6-Debian <<>> -x 10.60.10.200
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 26824
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;200.10.60.10.in-addr.arpa. IN PTR
;; AUTHORITY SECTION:
10.in-addr.arpa. 86400 IN SOA localhost. root.localhost. 1 604800 86400 2419200 86400
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Feb 21 13:46:50 CST 2017
;; MSG SIZE rcvd: 104
10.in-addr.arpa. 在 zone.rfc1918 中定义,它指向 db.empty。
在以前版本的 bind 中,zones.rfc1918 默认不包含在内,而且我仍然检查了所有的配置,没有任何配置告诉 bind 读取该文件,因此现在在这个版本中必须默认读取它,否则它会在其他地方进行配置。
dpkg -l | grep bind
ii bind9 1:9.9.5.dfsg-9+deb8u6 amd64 Internet Domain Name Server
ii bind9-host 1:9.9.5.dfsg-9+deb8u6 amd64 Version of 'host' bundled with BIND 9.X
ii bind9utils 1:9.9.5.dfsg-9+deb8u6 amd64 Utilities for BIND
ii libbind9-90 1:9.9.5.dfsg-9+deb8u6 amd64 BIND9 Shared Library used by BIND
答案3
万一有人遇到这个问题…对于较新版本的 Bind9(至少在 Debian 上),禁用
include "/etc/bind/zones.rfc1918";
语句,因为 Bind9 随后会自动创建它们。相反,
empty-zones-enable no;
在您的选项部分中是必需的(named.conf.options
)。