如何使用bind和nsupdate限制反向DNS更新的域名?

我已经build立绑定,以允许主机只更新自己的DNS条目,但我有这反向DNS部分的麻烦。 我的configuration如下:

named.conf中

options { listen-on port 53 { 127.0.0.1; 10.9.10.10; }; 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; 10.0.0.0/8; }; recursion yes; allow-recursion { 10.0.0.0/8; }; dnssec-enable yes; dnssec-validation no; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; include "mydomain.com.keys"; zone "mydomain.com" IN { type master; file "dynamic/forward.mydomain.com.zone"; update-policy { grant *.mydomain.com self *.mydomain.com A TXT; }; }; zone "9.10.in-addr.arpa" IN { type master; file "dynamic/reverse.mydomain.com.zone"; update-policy { grant * tcp-self * PTR; }; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; 

mydomain.com.keys

 key myserver1.mydomain.com. { algorithm HMAC-SHA512; secret "blahblahblah"; }; key myserver2.mydomain.com. { algorithm HMAC-SHA512; secret "blahblahblah"; }; 

什么是正确的

mydomain.com区域configuration可以正确阻止服务器更新不属于它们的DNS条目:

 [root@myserver1 ~]# nsupdate -v -k Kmyserver1.mydomain.com.+165+55228.key > server dns1.mydomain.com > zone mydomain.com > update add myserver2.mydomain.com 86400 A 10.9.10.50 > show Outgoing update query: ;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: 0 ;; flags:; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 ;; ZONE SECTION: ;mydomain.com. IN SOA ;; UPDATE SECTION: myserver2.mydomain.com. 86400 IN A 10.9.10.50 > send update failed: REFUSED 

此强制通过nsupdate命令中指定的密钥来实现。 Nsupdate将密钥从Kmyserver1.mydomain.com.+165+55228.key文件中Kmyserver1.mydomain.com.+165+55228.key送到绑定。 绑定在mydomain.com.keysfind匹配的密码,并根据您要更新的域名validation密钥名称。

什么是不正确的

但是反向区域( 9.10.in-addr.arpa )的设置似乎不会根据用于进行反向DNS更新的密钥名称来限制更新。

 [root@myserver1 ~]# nsupdate -v -k Kmyserver1.mydomain.com.+165+55228.key > server dns1.mydomain.com > zone 9.10.in-addr.arpa > update add 50.10.9.10.in-addr.arpa 86400 IN PTR myserver2.mydomain.com > show Outgoing update query: ;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: 0 ;; flags:; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 ;; ZONE SECTION: ;9.10.in-addr.arpa. IN SOA ;; UPDATE SECTION: 50.10.9.10.in-addr.arpa. 86400 IN PTR myserver2.mydomain.com. > send > ^C [root@myserver1 ~]# nslookup 10.9.10.50 Server: 10.9.10.10 Address: 10.9.10.10#53 50.10.9.10.in-addr.arpa name = myserver1.mydomain.com. 50.10.9.10.in-addr.arpa name = myserver2.mydomain.com. 

此外,我已经尝试configuration反向区域更新策略,只允许来自特定地址(而不是* )的更新,但是这对问题没有影响。

我正在尝试做什么

我想为9.10.in-addr.arpa区域configuration更新策略,以便上面的示例将被拒绝。 我只希望服务器能够更新反向DNS为他们自己的IP地址和域名。 我搜遍了各种网站,似乎无法find任何有关如何configuration更新策略的信息,或者甚至有可能实现此目的。

我运行的绑定版本是BIND 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6