par*_*hon 5 bind reverse-dns forwarding
我的环境中有 2 个域。其中之一是“myproductlab.local”的活动目录域,位于 10.60.0.0/16
然后我有一个为域“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;
};
};
Run Code Online (Sandbox Code Playgroud)
debian 盒子配置为 DNS 解析为 127.0.0.1,并且全局没有配置转发器。
名称解析解析得很好:
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
Run Code Online (Sandbox Code Playgroud)
并从查询日志中:
client 127.0.0.1#36076 (mymachine.myproductinlab.local): query: mymachine.myproductionlab.local IN A + (127.0.0.1)
Run Code Online (Sandbox Code Playgroud)
但反向 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
Run Code Online (Sandbox Code Playgroud)
并从查询日志中:
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)
Run Code Online (Sandbox Code Playgroud)
我尝试了很多区域变化:
zone "60.10.in-addr.arpa" {
zone "10.60.10.in-addr.arpa" {
zone "200.10.60.10.in-addr.arpa" {
Run Code Online (Sandbox Code Playgroud)
我还尝试过 tcpdump,并为 nslookup 10.60.10.200 捕获了 0 个数据包,但捕获了该名称的数据包。
当我在 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.
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
10.in-addr.arpa。是在 zone.rfc1918 中定义的,它指向 db.empty
在以前版本的 bind zone.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
Run Code Online (Sandbox Code Playgroud)
小智 5
以防万一有人点击此 \xe2\x80\xa6 对于 Bind9 的最新版本(至少在 Debian 上),禁用
\n\ninclude "/etc/bind/zones.rfc1918";\n
Run Code Online (Sandbox Code Playgroud)\n\n声明,因为 Bind9 然后会自动创建它们。反而,
\n\nempty-zones-enable no;\n
Run Code Online (Sandbox Code Playgroud)\n\n在您的选项部分 ( named.conf.options
) 中是必需的。
请参阅https://deepthought.isc.org/article/AA-00800/0/Automatic-empty-zones-include-RFC-1918-prefixes.html。
\n