У меня есть установка XenServer с машинами Debian (lenny), которые создаются ежедневно с использованием сценария, который создает машину из шаблона и присваивает ей новое имя хоста.
В нашей сети есть устройство Fortinet 60B, которое выступает в качестве DHCP-сервера, и Microsoft Windows 2008 DC, который также служит в качестве DNS-сервера. Я хотел бы настроить шаблон виртуальной машины для отправки имени хоста на DNS-сервер, когда он получает арендованный IP-адрес от DHCP.
В настоящее время Fortinet назначает DC в качестве DNS-сервера вместе с арендой IP. Я попытался добавить строку "send host-name" my-host-name "в /etc/dhcp3/dhclient.conf, но в DC ничего не обновляется.
Я закончил с помощью сценария, который запускает nsupdate после создания виртуальной машины из шаблона и при каждой загрузке.
Итак, в основном вы хотите, чтобы ваш клиент отправлял свое имя хоста на ваш DNS-сервер?
Это отлично работает с клиентами Windows, но для машин Linux я бы пошел другим путем: настройте своих клиентов так, чтобы они запрашивали IP-адрес DHCP-сервера. и имя хоста. Используя опцию «request host-name», dhclient просит DHCP-сервер отправить имя хоста вместе с IP-адресом, а затем устанавливает имя хоста виртуальной машины.
Конечно, вам необходимо подготовить в своем DNS имя хоста для каждого IP-адреса в диапазоне DHCP.
Таким образом, у вас не будет проблемы с кешем DNS / задержкой распространения, и у вас может быть центральное место со всеми IP и именами хостов - ваш DNS-сервер.
Я не знаю, поддерживает ли DHCP-сервер вашего устройства отправку имен хостов - большинство поддерживает, но я думаю, что это самый простой способ для клиентов Linux.
Примечание: если вы настроили свой DHCP-сервер так, чтобы один и тот же компьютер всегда получал один и тот же IP-адрес (например, с использованием MAC-адреса), то он, очевидно, всегда будет получать одно и то же имя хоста. На некоторых DHCP-серверах вы можете напрямую использовать имя хоста вместо IP-адреса в файлах конфигурации.
Хм. Никогда не пробовал эту точную конфигурацию - я работал с клиентами Linux на DHCP-серверах Windows, но в этой настройке DHCP-сервер выполняет обновление. Не уверен, что коробка Fortinet делает то же самое.
Вы можете попробовать заставить клиента разговаривать с DNS-сервером напрямую; что-то вроде:
send fqdn.server-update off;
send fqdn.encoded on;
send fqdn.fqdn "hostname.example.com.";
в /etc/dhcp3/dhclient.conf. Проверьте man dhclient.conf
для получения дополнительной информации. Я должен был установить как минимум send fqdn.fqdn
чтобы он работал в моей настройке.
Вам также придется включить небезопасные обновления для ваших зон DNS.
Я обнаружил две вещи, которые необходимы для регистрации машины, не присоединенной к домену, и обновления ее записей DNS на сервере Windows DC \ DNS:
Настройте сервер DC \ DNS, чтобы разрешить как безопасные, так и незащищенные динамические обновления DNS.
Настройте полное доменное имя узла, не присоединенного к домену, в соответствии с вашим именем AD \ DNS: как в host.domain.com
Это несколько похоже на мой собственный вопрос. Взгляните на мой последний комментарий к единственному ответу, который я получил, где я ссылаюсь на dhclient.conf.
Многие могут посчитать это очевидным, но обязательно укажите свою директиву запроса в dhclient.conf
который не запрашивает имя хоста или доменное имя. По умолчанию в моем дистрибутиве было:
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, host-name,
netbios-name-servers, netbios-scope, interface-mtu;
Обратите внимание, что при этом запрашиваются имена хоста и домена с сервера, что обнуляет send host-name ...
директива. Мои директивы request и send-host выглядят так:
send host-name "leaf.node.domain.com";
request subnet-mask, broadcast-address, time-offset, routers,
domain-name-servers,
netbios-name-servers, netbios-scope, interface-mtu;