ISC DHCP服务器不dynamic更新DNS

我有一个Ubuntu 14.04服务器,运行isc_dhcp_serverbind9 DNS服务器。 绑定充当caching, 在本地networking上维护.m域(和区域)。 服务器的地址是10.0.0.1 ,其FQDN是server.m

问题是DHCP服务器没有发送任何DDNS更新到DNS服务器。 我曾尝试以多种方式更改DHCP服务器的configuration(使用LDAP),但无济于事。 例如:我把现在是subnet一部分的所有configuration语句移到它的父group 。 两种configuration似乎同样(不)很好地工作。

我究竟做错了什么?

然而,我确实设法发送一个手动构build的DDNS更新到DNS服务器,就像这个答案显示了怎么做。 这工作完美,更新显示在我的系统日志。 即使我在nsupdate使用了错误的密钥,那也是被logging下来的。 因此,我的绑定configuration应该没问题。

按照本教程 ,我的DHCP服务器是使用LDAPconfiguration的。 生成的configuration文件(在DHCP服务器启动序列期间从LDAP树生成)看起来像下面的代码。 ( ldap-debug-file "/var/log/dhcp-ldap.conf";

你可能想知道“ host在哪里? ”。 在我的LDAP目录中,这些目录位于group ,如objectClass: dhcpGroup ,但它们不出现在派生的dhcp-ldap.conf文件中。 那些使用dhcpHWAddress: ethernet 01:23:45:67:89:ab属性configuration的主机被认为是known-clients ,因为这些known-clients端的地址range 10.0.0.64 10.0.0.127 。 我configuration的所有主机也有一个dhcpOption: host-name "some-host-name"dhcpStatements: ddns-hostname "some-host-name"

尽pipeknown-clients被识别,但我没有看到DHCP服务器试图更新我的日志中的任何DNSlogging的任何尝试。

 log-facility local7; default-lease-time 43200; max-lease-time 86400; key DHCP_UPDATER { algorithm hmac-md5; secret somesecretkey; } group { option domain-name "m"; option subnet-mask 255.255.255.0; option broadcast-address 10.0.0.255; option time-servers server.m; option routers server.m; option domain-name-servers server.m; subnet 10.0.0.0 netmask 255.255.255.0 { authoritative; update-static-leases on; deny client-updates; ddns-update-style interim; ddns-updates on; zone 0.0.10.in-addr.arpa. { primary server.m; key DHCP_UPDATER; } zone m. { primary server.m; key DHCP_UPDATER; } ddns-rev-domainname "0.0.10.in-addr.arpa."; ddns-domainname "m."; pool { range 10.0.0.128 10.0.0.192; allow unknown-clients; } pool { range 10.0.0.64 10.0.0.127; allow known-clients; } } } 

从dhcpd.conf(5)手册页:

 The ddns-update-style parameter ddns-update-style style; The style parameter must be one of ad-hoc, interim or none. The ddns-update-style statement is only meaningful in the outer scope - it is evaluated once after reading the dhcpd.conf file, rather than each time a client is assigned an IP address, so there is no way to use different DNS update styles for different clients. The default is none. 

在你的configuration中,你已经把ddns-update-style放在一个subnet内。 根据以上所述, ddns-update-style只在外部范围内有意义,所以你写的configuration将不起作用。 将ddns-update-style移动到外部作用域,即任何块的外部。