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