Вопрос или проблема
Я настраиваю ISC dhcpd и Bind9 на SLES Linux в нашем офисе для внутреннего DNS. Я хотел бы разместить все в одной зоне, например city.domain.tld. Я могу заставить сервер dhcpd обновлять зону, но если я добавляю статические записи в зону (например, новый файловый сервер с его IP), Bind жалуется, что журнал больше не совпадает.
Назначение фиксированных IP через dhcp серверам не является решением, потому что dhcpd не отправляет обновления в DNS для фиксированных IP.
Я мог бы использовать две отдельные зоны: одну со статическими IP и одну для динамических обновлений, но я бы предпочел не проходить по всем рабочим станциям (около 80) и не добавлять второй суффикс поиска.
Рабочие станции являются смесью Windows, Linux и MAC. Нет доменов или активного каталога.
Какие-либо предложения? Удаление журнала и позволение DHCP повторно обновить DNS — это единственное решение? Поиск в Google ничего не дал.
Обновление 2010.7.14:
Вот номера версий:
- bind-9.3.2-17.15
- dhcpcd-1.3.22pl4-223.2
- SLES 10 i386
Обновление до более новой версии Bind/dhcpd не исключено, если это решит проблемы.
Вы используете версию bind новее 9.3.0?
Если да, вы можете использовать команду rndc freeze zone.tld
для заморозки зоны. Как только она находится в этом состоянии, запросы на динамическое обновление будут отклонены, и вы сможете вручную редактировать базу данных зоны. Используйте команду rndc unfreeze zone.tld
, чтобы вернуть зону в состояние, позволяющее динамические обновления. Вам нужно обновить серийный номер, если вы вручную вносите изменения.
Вы можете заставить DHCP сервер обновлять фиксированные назначения IP в DNS, используя эти два параметра в глобальной секции вашего dhcpd.conf:
update-static-leases on;
use-host-decl-names on;
Также, в каждом разделе хоста вы могли бы/должны добавить опцию ddns-hostname
(если имя хоста не соответствует имени DNS, которое вы хотите зарегистрировать). Пример:
host database {
hardware ethernet 00:26:73:66:e9:9b;
fixed-address 192.168.0.1;
ddns-hostname "database";
}
Больше информации:
Ответ или решение
Вопрос о том, можно ли объединить динамические обновления DNS от DHCP и статические IP-адреса в одной зоне BIND, является важным аспектом настройки систем управления сетью. Давайте подробно рассмотрим эту проблему, опираясь на ваш опыт конфигурации ISC DHCP и BIND9 на SLES Linux.
Общая идея
Вы хотите использовать одну зону DNS для как динамических, так и статических записей. Это вполне разумное стремление, поскольку упрощает управление сетью и сводит к минимуму необходимость в дополнительных шагах для администраторов пользователей.
Однако, наличие конфликтов между статическими записями и динамическими обновлениями — это довольно распространённая проблема. Ваша ошибка о несоответствии журнала может быть связана с несовместимыми обновлениями, которые возникают при попытке одновременно управлять статическими и динамическими записями в одной зоне.
Решение проблемы с конфликтом записей
-
Использование команды заморозки (freeze)
Если ваша версия BIND поддерживает функцию заморозки (например, версии 9.3.0 и выше), вы можете использовать команды
rndc freeze zone.tld
иrndc unfreeze zone.tld
, чтобы контролировать, когда зона должна принимать динамические обновления. Эта функция позволит вам временно заблокировать обновления, когда вы вручную вносите изменения в файл зоны, а затем разблокировать её, чтобы динамические обновления продолжали быть актуальными.При этом не забудьте обновить серийный номер зоны после внесения изменений. Это необходимо, чтобы BIND знал, что изменения были сделаны.
-
Конфигурация DHCP для обновления статических записей
Для того чтобы ваши статические IP-адреса, назначенные через DHCP, также обновляли записи в DNS, вы можете добавить следующие строки в глобальную секцию вашего файла конфигурации
dhcpd.conf
:update-static-leases on; use-host-decl-names on;
Это позволит вашему DHCP-серверу отправлять обновления DNS даже для фиксированных IP-адресов.
-
Настройка конкретных хостов
Каждую запись хоста в конфигурационном файле DHCP можно дополнить параметром
ddns-hostname
, чтобы задать желаемое имя DNS для соответствующего хоста. Например:host database { hardware ethernet 00:26:73:66:e9:9b; fixed-address 192.168.0.1; ddns-hostname "database"; }
Этот подход гарантирует, что имя хоста и его статический IP будут корректно отражены в DNS.
Заключение
Сочетание динамических обновлений DNS и статических записей в одной зоне действительно возможно, но требует детальной настройки и внимания к конфликтам. Использование функций заморозки зоны BIND и правильная конфигурация DHCP обеспечат стабильность и функциональность вашей сети. Если вы не против обновить версии ПО, это также может решить некоторые совместимости и проблемы, которые вы испытываете.
Таким образом, установив правильные параметры и управляя обновлениями, вы сможете обеспечить безаварийную работу вашей сети, не приводя к разветвлению зон и увеличению административной нагрузки.