Назад | Перейти на главную страницу

DHCP-сервер ISC не обновляет DNS динамически

У меня есть сервер Ubuntu 14.04, на котором запущен isc_dhcp_server и bind9 DNS-сервер. Bind действует как кеш, и он поддерживает .m домен (и зона) в моей локальной сети. Адрес сервера 10.0.0.1, а его полное доменное имя - server.m.

Проблема в том, что DHCP-сервер не отправляет обновления DDNS на DNS-сервер. Я пробовал изменять конфигурацию DHCP-сервера (используя LDAP) множеством способов, но безрезультатно. Например: я переместил все операторы конфигурации, которые теперь являются частью subnet его родителю group. Обе конфигурации работают одинаково (не) хорошо.

Что я делаю не так?

я сделал однако удается отправить созданное вручную обновление DDNS на DNS-сервер, например этот ответ показывает, как это сделать. Это сработало отлично, и обновления появились в моих системных журналах. Даже если я использую неправильный ключ с nsupdate, это регистрируется. Таким образом, моя конфигурация привязки должна быть в порядке.

Мой DHCP-сервер настроен с использованием LDAP, согласно этому руководство. Результирующий файл конфигурации (который создается из дерева LDAP во время последовательности запуска DHCP-сервера) выглядит как код, опубликованный ниже. (Результат 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;
        }
    }
}

На странице руководства 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 во внешнюю область видимости, т.е. вне любого блока.