Обновите имя хоста с компьютера Debian с DHCP на DNS-сервер Windows 2008


9

У меня есть установка 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 ничего не обновляется.


2
Вы настроили свой DNS-сервер Windows, чтобы разрешить обновления без проверки подлинности?
Зоредаче

Ответы:


2

Таким образом, вы хотите, чтобы ваш клиент отправлял свое имя хоста на ваш DNS-сервер?

Это прекрасно работает с клиентами Windows, но для компьютеров Linux я бы пошел другим путем: настройте своих клиентов на запрос к DHCP-серверу IP- адреса и имени хоста. Используя опцию «request host-name», dhclient просит DHCP-сервер отправить имя хоста вместе с IP-адресом, а затем задает имя хоста виртуальной машины.

Конечно, вам нужно подготовить в вашем DNS имя хоста для каждого IP-адреса в диапазоне DHCP.

Таким образом, у вас нет проблемы с кэшированием / задержкой распространения DNS, и у вас может быть центральное место со всеми IP-адресами и именами хостов - ваш DNS-сервер.

Я не знаю, поддерживает ли DHCP-сервер вашего устройства отправку имен хостов - большинство делает, но я думаю, что это самый простой способ для клиентов Linux.

Примечание. Если вы настроили свой DHCP-сервер таким образом, чтобы один и тот же компьютер всегда получал один и тот же IP-адрес (например, используя mac-адрес), то он, очевидно, всегда будет также получать одно и то же имя хоста. На некоторых серверах DHCP вы можете напрямую использовать имя хоста вместо IP-адреса в файлах конфигурации.


это не будет делать, так как я устанавливаю имя хоста в сценарии, который принимает его (имя хоста) в качестве аргумента.
электрический монах

2

Я закончил, используя скрипт, который запускает nsupdate после создания виртуальной машины из шаблона и при каждой загрузке.


1

Это несколько похоже на мой собственный вопрос . Посмотрите мой последний комментарий к единственному полученному ответу, где я ссылаюсь на dhclient.conf.


в общем, вы просто добавили 'send host-name' в dhclient.conf? потому что это не сработало для меня
электрический монах

Это все, что я должен был сделать. Страница man указывает, что полное доменное имя является обязательным, но в моем случае простая отправка имени хоста работала в системах DHCP и DNS Windows и Linux. Машины были добавлены в DNS службой DHCP, как только клиентская аренда DHCP была освобождена и воссоздана.
Джон Гарденье

1

Я обнаружил две вещи, которые потребовались для регистрации компьютера, не подключенного к домену, и обновления его DNS-записей на Windows DC \ DNS-сервере:

  1. Настройте сервер DC \ DNS, чтобы разрешить как безопасные, так и незащищенные динамические обновления DNS.

  2. Настройте полное доменное имя присоединенного хоста, не входящего в домен, в соответствии с вашим именем AD \ DNS: как на host.domain.com


1

Хм. Никогда не пробовал эту точную конфигурацию - у меня была такая работа с клиентами 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.


1

Многие могут счесть это очевидным, но обязательно укажите свою собственную директиву запроса, в 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;
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.