ISC DHCP 服务器未动态更新 DNS

ISC DHCP 服务器未动态更新 DNS

我有一台 Ubuntu 14.04 服务器,运行着isc_dhcp_serverDNSbind9服务器。Bind 充当缓存,它维护.m我本地网络上的域(和区域)。服务器的地址是10.0.0.1,其 FQDN 是server.m

问题是 DHCP 服务器没有向 DNS 服务器发送任何 DDNS 更新。我尝试过多种方式更改 DHCP 服务器的配置(使用 LDAP),但都无济于事。例如:我将现在属于 的所有配置语句移至其父subnetgroup。这两种配置似乎都运行良好(或不良好)。

我究竟做错了什么?

做过但是设法向 DNS 服务器发送手动构建的 DDNS 更新,例如这个答案显示了如何操作。这非常有效,更新显示在我的系统日志中。即使我使用了错误的密钥nsupdate,也会被记录下来。因此,我的绑定配置应该没问题。

我的 DHCP 服务器是使用 LDAP 配置的,如下所示教程. 生成的配置文件(在 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被视为known-clients,因为它们最终从 接收地址range 10.0.0.64 10.0.0.127。我以这种方式配置的所有主机也都有dhcpOption: host-name "some-host-name"dhcpStatements: ddns-hostname "some-host-name"

尽管known-clients被认出来了,但我没看到任何DHCP 服务器尝试更新我的日志中的任何 DNS 记录。

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;
        }
    }
}

答案1

来自 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.

在您的配置中,您已将其放入ddns-update-style一个subnet块内。根据上述内容,ddns-update-style仅在外部范围内有意义,因此您编写的配置将不起作用。移至ddns-update-style外部范围,即任何块之外。

相关内容