Atualizar nome do host da máquina Debian com DHCP para um servidor DNS do Windows 2008

9

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 possui um dispositivo Fortinet 60B que funciona como servidor DHCP e um Microsoft Windows 2008 DC que também serve como servidor DNS. Gostaria de configurar o modelo da VM para enviar seu nome de host para o servidor DNS quando obtiver um IP concedido do DHCP.

Atualmente, o Fortinet atribui o controlador de domínio como servidor DNS junto com a concessão de IP. Tentei adicionar uma linha 'send host-name "my-host-name"' ao /etc/dhcp3/dhclient.conf, mas nada é atualizado no controlador de domínio.

Monge elétrico
fonte
2
Você configurou o servidor DNS do Windows para permitir atualizações não autenticadas?
precisa saber é o seguinte

Respostas:

2

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 depois define o nome de host da VM.

Obviamente, você precisará preparar, no seu DNS, um nome de host para cada endereço IP no intervalo DHCP.

Dessa forma, você não tem o problema de atraso na propagação / cache do DNS e pode ter um lugar central com todos os nomes de IP e host - seu servidor DNS.

Não sei se o servidor DHCP do seu dispositivo suporta o envio de nomes de host - a maioria sim, mas acho que é a maneira mais fácil para os clientes Linux.

Nota: Se você configurou o servidor DHCP para que a mesma máquina sempre obtenha o mesmo endereço IP (por exemplo, usando o endereço mac), obviamente também sempre 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.

user9437
fonte
isso não serve, pois estou definindo o nome do host em um script que aceita (o nome do host) como argumento.
Electric Monk
2

Acabei usando um script que executa o nsupdate após a VM ser criada a partir do modelo e após cada inicialização.

Monge elétrico
fonte
1

Isso é um pouco semelhante à minha própria pergunta . Dê uma olhada no meu comentário final para a única resposta que recebi, onde me refiro ao dhclient.conf.

John Gardeniers
fonte
Então, basicamente, você acabou de adicionar 'send host-name' ao dhclient.conf? porque isso não funcionou para mim
elétrica Monk
Era tudo o que eu tinha que fazer. A página de manual indica que o FQDN é necessário, mas no meu caso, simplesmente o envio do nome do host funcionou com os sistemas DHCP e DNS do Windows e Linux. As máquinas foram adicionadas ao DNS pelo serviço DHCP assim que a concessão de DHCP do cliente foi liberada e recriada.
John Gardeniers
1

Descobri duas coisas necessárias para obter uma máquina que não ingressou no domínio para registrar e atualizar seus registros DNS em um servidor Windows DC \ DNS:

  1. Configure o servidor DC \ DNS para permitir atualizações DNS dinâmicas seguras e não seguras.

  2. Configure o FQDN do host não associado ao domínio para corresponder ao seu nome do AD \ DNS: como em host.domain.com

joeqwerty
fonte
1

Hmm. Nunca tentei essa configuração exata - já trabalhei com clientes Linux em 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.confpara mais informações. Eu tive que definir pelo menos send fqdn.fqdnpara fazê-lo funcionar na minha configuração.

Você também precisará ativar atualizações inseguras nas zonas DNS.

James
fonte
1

Muitos podem considerar isso flagrantemente óbvio, mas certifique-se de especificar sua própria diretiva de solicitação na dhclient.confqual não solicita um nome de host ou nome de domínio . O padrão na minha distribuição 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 domínio do servidor que anula uma send host-name ...diretiva. Minhas diretivas de solicitação e de envio de 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;
RobM
fonte