Como meu servidor DHCP conhece o nome do host da minha máquina quando não defini um no dhclient.conf?

12

Estou tentando resolver alguns problemas de DNS relacionados ao DHCP em nossa rede (suspeito que tenhamos mais de um servidor DHCP em execução no momento) e, ao tentar descobrir isso, notei algo estranho com um novo servidor que acabei de configurar.

O servidor em questão é uma máquina virtual Xen que executa o Ubuntu 9.10 Server. O servidor Xen físico também está em nossa rede, e quando eu inicializei a VM pela primeira vez em Xen (eu a importei de uma VM Virtualbox local em execução na minha máquina, onde ela estava sendo executada em uma rede diferente), ela obteve um Locação de DHCP da nossa rede de escritórios e tudo foi bom.

Eu verifiquei o arquivo dhclient.eth0.leases para ver o que foi configurado e vi que a antiga concessão do DHCP da rede anterior em que a máquina estava ainda estava lá, bem como a nova concessão do DHCP para a rede do escritório . Há duas coisas que notei imediatamente:

  1. As informações antigas de concessão de DHCP da rede anterior não têm uma linha options host-name , o que considero significar que a versão original do VirtualBox da VM não estava enviando essa opção para o servidor DHCP. Ou isso significa que o servidor DHCP antigo não oferece suporte à opção de nome de host DHCP? Ele estava usando o servidor DHCP interno da VirualBox na época ...

  2. As novas informações de concessão de DHCP têm uma linha options host-name , que inclui o nome do host atual correto para o servidor ("fozzie"). Se bem entendi, isso significa que o servidor enviou seu nome de host para o servidor DHCP em nossa rede.

Há uma série de coisas que eu não entendo sobre tudo isso.

Primeiro , não alterei dhclient.conf para o servidor a qualquer momento; está usando a configuração padrão. Na verdade, contém a seguinte linha textual:

send host-name "<hostname>"

Então, minha primeira pergunta é: como diabos ele sabe enviar o nome do host real do servidor se a configuração não estiver configurada para enviá-lo?

Segundo , por que a primeira concessão de DHCP (para a antiga rede) não incluiu option host-name , mas a segunda concessão de DHCP (na nova rede) incluiu isso, se eu não tiver tocou em algum dos arquivos de configuração?

Tudo que fiz foi exportar a máquina VirtualBox original como um OVF, e depois importá-la para o XenServer, então como configurar magicamente meu nome de host via DHCP se ele não estiver configurado com o nome do host real em dhclient.conf ?

Terceiro : quando executo hostname , o servidor retorna fozzie.our.domain , mas dhclient.eth0.leases diz que a opção hostname foi definida como fozzie (sem domínio). Como soube retirar o domínio?

    
por Mike Spross 14.01.2010 / 06:12

1 resposta

12

OK, depois de muito tempo vasculhando a Internet e tentando ler man páginas, eu principalmente descobri o que está acontecendo:

[H]ow in the heck did it know to send the server's real hostname if the configuration isn't set up to send it in the first place?

Aparentemente, send host-name "<hostname>" e, mais especificamente, <hostname> , tem um significado especial no Ubuntu. Ele diz dhclient para enviar o nome do host atual da sua máquina para o servidor DHCP. Observe que isso diferencia maiúsculas de minúsculas (ou seja, se você digitar <HOSTNAME> , o dhclient enviará o texto literal <HOSTNAME> para o servidor DHCP). Conforme relatado aqui e aqui , isso funciona no Ubuntu Feisty e acima, sendo parte de um patch para (ironicamente) corrigir um problema com dhclient não enviando o nome do host da máquina por padrão.

[W]hy did the first DHCP lease (for the old network) not include option host-name, but the second DHCP lease (on the new network) did include it, if I haven't touched any of the configuration files?

Isso parece ser porque nem todos os servidores DHCP ecoarão o nome do host de volta ao cliente. Ontem nós ainda usamos um roteador ClarkConnect baseado em Linux como nosso servidor DHCP, que retornou o nome do host para cada cliente. Hoje desativamos o DHCP nesse servidor e passamos a usar o servidor DHCP integrado em nosso controlador de domínio principal. Nossas concessões de DHCP do PDC não incluem option host-name , mas não parece afetar nada. As máquinas são atualizadas no DNS e podem se encontrar pelo hostname.

When I run hostname, the server returns fozzie.our.domain, but dhclient.eth0.leases says the hostname option was set to fozzie (no domain). How did it know to strip off the domain?

Eu não entendo completamente as complexidades do DHCP. Nosso servidor DHCP foi configurado para configurar todos os nossos clientes com nosso domínio. Eu estou supondo que o servidor DHCP foi inteligente o suficiente para remover a parte do nome de domínio do hostname enviado pelo cliente.

Alguém tem alguma correção ou esclarecimento para adicionar a essa resposta? Ainda parece um pouco "mão-ondulado", então eu não vou aceitar como está.

    
por 15.01.2010 / 06:20