Acabei usando um script que executa o nsupdate depois que a VM é criada a partir do modelo e em cada inicialização.
Eu tenho uma instalação do XenServer com máquinas Debian (lenny) criadas diariamente usando um script que cria a máquina a partir de um modelo e a atribui com um novo nome de host.
Nossa rede tem um appliance Fortinet 60B que atende como servidor DHCP e Microsoft Windows 2008 DC, que também serve como servidor DNS. Gostaria de configurar o modelo de VM para enviar seu nome de host para o servidor DNS quando receber um IP concedido do DHCP.
Atualmente, a Fortinet atribui o CD como o servidor DNS juntamente com a concessão de IP. Tentei adicionar uma linha 'send host-name' my-host-name "'em /etc/dhcp3/dhclient.conf, mas nada é atualizado no DC.
Então, basicamente, você quer que seu cliente envie o nome do host para o servidor DNS?
Isso funciona muito bem com clientes Windows, mas para máquinas Linux, eu faria o contrário: configure seus clientes para solicitar ao servidor DHCP um IP e um nome de host. Usando a opção "request host-name", o dhclient pede ao servidor DHCP para enviar um nome de host junto com o endereço IP e, em seguida, define o nome do host da VM.
É claro que você precisará preparar, em seu DNS, um nome de host para cada endereço IP no intervalo de DHCP.
Dessa forma, você não tem o problema de atraso de propagação / cache DNS, e você pode ter um local central com todos os IP e nomes de host - seu servidor DNS.
Eu não sei se o servidor DHCP do seu appliance suporta o envio de nomes de host - a maioria faz isso, mas acho que é a maneira mais fácil para os clientes Linux.
Nota: Se você configurou seu servidor DHCP para que a mesma máquina sempre obtenha o mesmo endereço IP (por exemplo, usando um endereço mac), obviamente, ele também obterá o mesmo nome de host. Em algum servidor DHCP, você pode usar diretamente o nome do host em vez do endereço IP nos arquivos de configuração.
Isso é um pouco semelhante a minha própria pergunta . Dê uma olhada no meu comentário final para a primeira e única resposta que recebi, onde me refiro ao dhclient.conf.
Duas coisas que descobri foram necessárias para que uma máquina não associada ao domínio registrasse e atualizasse seus registros DNS em um servidor Windows \ DNS do Windows:
Configure o servidor DC \ DNS para permitir atualizações de DNS dinâmicas seguras e não seguras.
Configure o FQDN do host associado não pertencente ao domínio para corresponder ao seu nome AD \ DNS: como em host.domain.com
Hmm. Nunca tentei esta configuração exata - eu tive este trabalho com clientes Linux para servidores DHCP do Windows, mas nessa configuração o servidor DHCP faz a atualização. Não tenho certeza se a caixa Fortinet faz a mesma coisa.
Você pode tentar fazer o cliente falar diretamente com o servidor DNS; algo como:
send fqdn.server-update off;
send fqdn.encoded on;
send fqdn.fqdn "hostname.example.com.";
em /etc/dhcp3/dhclient.conf. Verifique man dhclient.conf
para mais informações. Eu tive que definir pelo menos send fqdn.fqdn
para trabalhar na minha configuração.
Você também terá que ativar atualizações inseguras em suas zonas DNS.
Muitos podem considerar isso óbvio, mas não se esqueça de especificar sua própria diretiva de solicitação em dhclient.conf
, que não solicita um nome de host ou nome de domínio . O padrão na minha distro era:
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, host-name,
netbios-name-servers, netbios-scope, interface-mtu;
Observe que isso solicita nomes de host e de domínio do servidor, o que anula uma diretiva send host-name ...
. Minhas diretivas de solicitação e envio-host são assim:
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;